Index: doc/tls.html
==================================================================
--- doc/tls.html
+++ doc/tls.html
@@ -33,12 +33,12 @@
 	    <dt>&nbsp;</dt>
 	    <dd><b>tls::ciphers</b> <em>?protocol? ?verbose? ?supported?</em></dd>
 	    <dd><b>tls::protocols</b></dd>
 	    <dd><b>tls::version</b></dd>
 	    <dt>&nbsp;</dt>
-	    <dd><b>tls::hash</b> <em>type data</em></dd>
-	    <dd><b>tls::hashes</b></dd>
+	    <dd><b>tls::digest</b> <em>type data</em></dd>
+	    <dd><b>tls::digests</b></dd>
 	    <dd><b>tls::md4</b> <em>data</em></dd>
 	    <dd><b>tls::md5</b> <em>data</em></dd>
 	    <dd><b>tls::sha1</b> <em>data</em></dd>
 	    <dd><b>tls::sha256</b> <em>data</em></dd>
 	</dl>
@@ -73,12 +73,12 @@
 <br>
 <a href="#tls::ciphers"><b>tls::ciphers</b> <i>?protocol? ?verbose? ?supported?</i></a><br>
 <a href="#tls::protocols"><b>tls::protocols</b></a><br>
 <a href="#tls::version"><b>tls::version</b></a><br>
 <br>
-<a href="#tls::hash"><b>tls::hash</b> <i>type data</i></a><br>
-<a href="#tls::hashes"><b>tls::hashes</b></a><br>
+<a href="#tls::digest"><b>tls::digest</b> <i>type data</i></a><br>
+<a href="#tls::digests"><b>tls::digests</b></a><br>
 <a href="#tls::md4"><b>tls::md4</b> <i>data</i></a><br>
 <a href="#tls::md5"><b>tls::md5</b> <i>data</i></a><br>
 <a href="#tls::sha1"><b>tls::sha1</b> <i>data</i></a><br>
 <a href="#tls::sha256"><b>tls::sha256</b> <i>data</i></a><br>
 </p>
@@ -447,32 +447,31 @@
 
     <dt><a name="tls::version"><strong>tls::version</strong></a></dt>
     <dd>Returns the OpenSSL version string.</dd>
 
     <br>
-    <dt><a name="tls::hash"><strong>tls::hash</strong> <em>type data</em></a></dt>
-    <dd>Calculate the hash for <em>data</em> using <em>type</em> digest.
-	Returns value as a hex string. Type cam be any OpenSSL supported
-	hash digest including: <b>md4</b>, <b>md5</b>, <b>sha1</b>,
-	sha2 (<b>sha224</b>, <b>sha256</b>, <b>sha384</b>, <b>sha512</b>,
-	<b>sha512-224</b>, and <b>sha512-256</b>),
-	sha3 (<b>sha3-224</b>, <b>sha3-256</b>, <b>sha3-384</b>, and <b>sha3-512</b>), etc.</dd>
-
-    <dt><a name="tls::hashes"><strong>tls::hashes</strong></a></dt>
-    <dd>Returns a list of the valid hash digests.</dd>
+    <dt><a name="tls::digest"><strong>tls::digest</strong> <em>type data</em></a></dt>
+    <dd>Calculate the message digest for <em>data</em> using <em>type</em>
+	hash algorithm. Returns value as a hex string. Type can be any
+	OpenSSL supported hash algorithm including: <b>md4</b>, <b>md5</b>,
+	<b>sha1</b>, <b>sha256</b>, <b>sha512</b>, <b>sha3-256</b>, etc.
+	See <b>digests</b> command for a full list.</dd>
+
+    <dt><a name="tls::digests"><strong>tls::digests</strong></a></dt>
+    <dd>Returns a list of the valid hash algorithms used to create message digests.</dd>
 
     <dt><a name="tls::md4"><strong>tls::md4</strong> <em>data</em></a></dt>
-    <dd>Calculate the hash for <em>data</em> using the MD4 message-digest algorithm.</dd>
+    <dd>Return the MD4 message-digest for <em>data</em>.</dd>
 
     <dt><a name="tls::md5"><strong>tls::md5</strong> <em>data</em></a></dt>
-    <dd>Calculate the hash for <em>data</em> using the MD5 message-digest algorithm.</dd>
+    <dd>Return the MD5 message-digest for <em>data</em>.</dd>
 
     <dt><a name="tls::sha1"><strong>tls::sha1</strong> <em>data</em></a></dt>
-    <dd>Calculate the hash for <em>data</em> using the SHA-1 secure hash algorithm.</dd>
+    <dd>Return the SHA1 secure hash algorithm digest for <em>data</em>.</dd>
 
     <dt><a name="tls::sha256"><strong>tls::sha256</strong> <em>data</em></a></dt>
-    <dd>Calculate the hash for <em>data</em> using the SHA-2 SHA-256 secure hash algorithm.</dd>
+    <dd>Return the SHA-2 SHA256 secure hash algorithm digest for <em>data</em>.</dd>
 </dl>
 
 <h3><a name="CALLBACK OPTIONS">CALLBACK OPTIONS</a></h3>
 
 <p>

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);
     }