65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
-
+
|
*
*-------------------------------------------------------------------
*/
int CipherInfo(Tcl_Interp *interp, Tcl_Obj *nameObj) {
const EVP_CIPHER *cipher;
Tcl_Obj *resultObj, *listObj;
unsigned long flags, mode;
unsigned char *modeName = NULL;
char *modeName = NULL;
char *name = Tcl_GetStringFromObj(nameObj, (Tcl_Size *) NULL);
/* Get cipher */
cipher = EVP_get_cipherbyname(name);
if (cipher == NULL) {
Tcl_AppendResult(interp, "Invalid cipher \"", name, "\"", (char *) NULL);
|
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
|
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
|
-
+
-
+
|
/*sk = SSL_CTX_get_ciphers(ctx);*/
}
if (sk != NULL) {
Tcl_Obj *resultObj = NULL;
if (!verbose) {
char *cp;
const char *cp;
resultObj = Tcl_NewListObj(0, NULL);
if (resultObj == NULL) {
res = TCL_ERROR;
goto done;
}
for (int i = 0; i < sk_SSL_CIPHER_num(sk); i++) {
const SSL_CIPHER *c = sk_SSL_CIPHER_value(sk, i);
if (c == NULL) continue;
/* cipher name or (NONE) */
cp = SSL_CIPHER_get_name(c);
if (cp == NULL) break;
Tcl_ListObjAppendElement(interp, resultObj, Tcl_NewStringObj(cp, -1));
Tcl_ListObjAppendElement(interp, resultObj, Tcl_NewStringObj((char *) cp, -1));
}
} else {
char buf[BUFSIZ];
resultObj = Tcl_NewStringObj("", 0);
if (resultObj == NULL) {
res = TCL_ERROR;
|
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
|
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
|
-
+
-
|
*
* Side effects:
* None.
*
*-------------------------------------------------------------------
*/
int DigestInfo(Tcl_Interp *interp, Tcl_Obj *nameObj) {
EVP_MD *md;
const EVP_MD *md;
Tcl_Obj *resultObj, *listObj;
unsigned long flags;
int res = TCL_OK;
char *name = Tcl_GetStringFromObj(nameObj, (Tcl_Size *) NULL);
/* Get message digest */
md = EVP_get_digestbyname(name);
if (md == NULL) {
Tcl_AppendResult(interp, "Invalid digest \"", name, "\"", (char *) NULL);
|