Index: doc/tls.html ================================================================== --- doc/tls.html +++ doc/tls.html @@ -33,12 +33,12 @@
 
tls::ciphers ?protocol? ?verbose? ?supported?
tls::protocols
tls::version
 
-
tls::hash type data
-
tls::hashes
+
tls::digest type data
+
tls::digests
tls::md4 data
tls::md5 data
tls::sha1 data
tls::sha256 data
@@ -73,12 +73,12 @@
tls::ciphers ?protocol? ?verbose? ?supported?
tls::protocols
tls::version

-tls::hash type data
-tls::hashes
+tls::digest type data
+tls::digests
tls::md4 data
tls::md5 data
tls::sha1 data
tls::sha256 data

@@ -447,32 +447,31 @@
tls::version
Returns the OpenSSL version string.

-
tls::hash type data
-
Calculate the hash for data using type digest. - Returns value as a hex string. Type cam be any OpenSSL supported - hash digest including: md4, md5, sha1, - sha2 (sha224, sha256, sha384, sha512, - sha512-224, and sha512-256), - sha3 (sha3-224, sha3-256, sha3-384, and sha3-512), etc.
- -
tls::hashes
-
Returns a list of the valid hash digests.
+
tls::digest type data
+
Calculate the message digest for data using type + hash algorithm. Returns value as a hex string. Type can be any + OpenSSL supported hash algorithm including: md4, md5, + sha1, sha256, sha512, sha3-256, etc. + See digests command for a full list.
+ +
tls::digests
+
Returns a list of the valid hash algorithms used to create message digests.
tls::md4 data
-
Calculate the hash for data using the MD4 message-digest algorithm.
+
Return the MD4 message-digest for data.
tls::md5 data
-
Calculate the hash for data using the MD5 message-digest algorithm.
+
Return the MD5 message-digest for data.
tls::sha1 data
-
Calculate the hash for data using the SHA-1 secure hash algorithm.
+
Return the SHA1 secure hash algorithm digest for data.
tls::sha256 data
-
Calculate the hash for data using the SHA-2 SHA-256 secure hash algorithm.
+
Return the SHA-2 SHA256 secure hash algorithm digest for data.

CALLBACK OPTIONS

Index: generic/tls.c ================================================================== --- generic/tls.c +++ generic/tls.c @@ -982,21 +982,23 @@ } /* *------------------------------------------------------------------- * - * Hash Commands -- Return hash value for digest as hex string + * Hash Commands -- + * + * Return the digest as a hex string for data using type message digest. * * Results: * A standard Tcl result. * * Side effects: * None. * *------------------------------------------------------------------- */ -HashCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { +DigestCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { int len; const char *name; const EVP_MD *type; if (objc != 3) { @@ -1013,65 +1015,65 @@ objv++; return HashCalc(interp, objc, objv, type); } /* - * Command to Calculate MD4 Hash + * Command to Calculate MD4 Message Digest */ int -HashMD4Cmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { +DigestMD4Cmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { return HashCalc(interp, objc, objv, EVP_md4()); } /* - * Command to Calculate MD5 Hash + * Command to Calculate MD5 Message Digest */ int -HashMD5Cmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { +DigestMD5Cmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { return HashCalc(interp, objc, objv, EVP_md5()); } /* * Command to Calculate SHA-1 Hash */ int -HashSHA1Cmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { +DigestSHA1Cmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { return HashCalc(interp, objc, objv, EVP_sha1()); } /* - * Command to Calculate SHA-256 Hash + * Command to Calculate SHA2 SHA-256 Hash */ int -HashSHA256Cmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { +DigestSHA256Cmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { return HashCalc(interp, objc, objv, EVP_sha256()); } /* *------------------------------------------------------------------- * - * Hash List Command -- Return list of hash message digests + * Hash List Command -- + * + * Return a list of all valid hash algorithms or message digests. * * Results: - * A standard Tcl result. + * A standard Tcl result list. * * Side effects: * None. * *------------------------------------------------------------------- */ - -void HashListCallback(const OBJ_NAME *obj, void *arg) { +void ListCallback(const OBJ_NAME *obj, void *arg) { Tcl_Obj *objPtr = (Tcl_Obj *) arg; + if (1 || !obj->alias) { Tcl_ListObjAppendElement(NULL, objPtr, Tcl_NewStringObj(obj->name,-1)); } +} -/* - * Command to list available Hash values - */ int -HashListCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { +DigestListCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { Tcl_Obj *objPtr = Tcl_NewListObj(0, NULL); #if OPENSSL_VERSION_NUMBER < 0x10100000L OpenSSL_add_all_digests(); /* Make sure they're loaded */ #endif @@ -2966,16 +2968,16 @@ Tcl_CreateObjCommand(interp, "tls::ciphers", CiphersObjCmd, (ClientData) 0, (Tcl_CmdDeleteProc *) NULL); Tcl_CreateObjCommand(interp, "tls::protocols", ProtocolsObjCmd, (ClientData) 0, (Tcl_CmdDeleteProc *) NULL); Tcl_CreateObjCommand(interp, "tls::version", VersionObjCmd, (ClientData) 0, (Tcl_CmdDeleteProc *) NULL); - Tcl_CreateObjCommand(interp, "tls::hash", HashCmd, (ClientData) 0, (Tcl_CmdDeleteProc *) NULL); - Tcl_CreateObjCommand(interp, "tls::hashes", HashListCmd, (ClientData) 0, (Tcl_CmdDeleteProc *) NULL); - Tcl_CreateObjCommand(interp, "tls::md4", HashMD4Cmd, (ClientData) 0, (Tcl_CmdDeleteProc *) NULL); - Tcl_CreateObjCommand(interp, "tls::md5", HashMD5Cmd, (ClientData) 0, (Tcl_CmdDeleteProc *) NULL); - Tcl_CreateObjCommand(interp, "tls::sha1", HashSHA1Cmd, (ClientData) 0, (Tcl_CmdDeleteProc *) NULL); - Tcl_CreateObjCommand(interp, "tls::sha256", HashSHA256Cmd, (ClientData) 0, (Tcl_CmdDeleteProc *) NULL); + Tcl_CreateObjCommand(interp, "tls::digest", DigestCmd, (ClientData) 0, (Tcl_CmdDeleteProc *) NULL); + Tcl_CreateObjCommand(interp, "tls::digests", DigestListCmd, (ClientData) 0, (Tcl_CmdDeleteProc *) NULL); + Tcl_CreateObjCommand(interp, "tls::md4", DigestMD4Cmd, (ClientData) 0, (Tcl_CmdDeleteProc *) NULL); + Tcl_CreateObjCommand(interp, "tls::md5", DigestMD5Cmd, (ClientData) 0, (Tcl_CmdDeleteProc *) NULL); + Tcl_CreateObjCommand(interp, "tls::sha1", DigestSHA1Cmd, (ClientData) 0, (Tcl_CmdDeleteProc *) NULL); + Tcl_CreateObjCommand(interp, "tls::sha256", DigestSHA256Cmd, (ClientData) 0, (Tcl_CmdDeleteProc *) NULL); if (interp) { Tcl_Eval(interp, tlsTclInitScript); }