From: Stefan Kangas Date: Mon, 16 Sep 2019 21:42:56 +0000 (+0200) Subject: Add tests for secure-hash and improve doc string (Bug#37420) X-Git-Tag: emacs-27.0.90~1281 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=ef8fadf8c1399b4ce7086141ebf96610b6475df2;p=emacs.git Add tests for secure-hash and improve doc string (Bug#37420) * src/fns.c (Fsecure_hash_algorithms): Fix typo. (Fsecure_hash): Add algorithm list to doc string. * test/src/fns-tests.el (test-secure-hash): New test. --- diff --git a/src/fns.c b/src/fns.c index b800f1c47fe..fa52e5e1978 100644 --- a/src/fns.c +++ b/src/fns.c @@ -5081,7 +5081,7 @@ make_digest_string (Lisp_Object digest, int digest_size) DEFUN ("secure-hash-algorithms", Fsecure_hash_algorithms, Ssecure_hash_algorithms, 0, 0, 0, - doc: /* Return a list of all the supported `secure_hash' algorithms. */) + doc: /* Return a list of all the supported `secure-hash' algorithms. */) (void) { return list (Qmd5, Qsha1, Qsha224, Qsha256, Qsha384, Qsha512); @@ -5388,7 +5388,12 @@ anything security-related. See `secure-hash' for alternatives. */) DEFUN ("secure-hash", Fsecure_hash, Ssecure_hash, 2, 5, 0, doc: /* Return the secure hash of OBJECT, a buffer or string. ALGORITHM is a symbol specifying the hash to use: -md5, sha1, sha224, sha256, sha384 or sha512. +- md5 corresponds to MD5 +- sha1 corresponds to SHA-1 +- sha224 corresponds to SHA-2 (SHA-224) +- sha256 corresponds to SHA-2 (SHA-256) +- sha384 corresponds to SHA-2 (SHA-384) +- sha512 corresponds to SHA-2 (SHA-512) The two optional arguments START and END are positions specifying for which part of OBJECT to compute the hash. If nil or omitted, uses the diff --git a/test/src/fns-tests.el b/test/src/fns-tests.el index 7d56da77cf5..6236c9276d2 100644 --- a/test/src/fns-tests.el +++ b/test/src/fns-tests.el @@ -858,4 +858,22 @@ (puthash k k h))) (should (= 100 (hash-table-count h))))) +(ert-deftest test-secure-hash () + (should (equal (secure-hash 'md5 "foobar") + "3858f62230ac3c915f300c664312c63f")) + (should (equal (secure-hash 'sha1 "foobar") + "8843d7f92416211de9ebb963ff4ce28125932878")) + (should (equal (secure-hash 'sha224 "foobar") + "de76c3e567fca9d246f5f8d3b2e704a38c3c5e258988ab525f941db8")) + (should (equal (secure-hash 'sha256 "foobar") + (concat "c3ab8ff13720e8ad9047dd39466b3c89" + "74e592c2fa383d4a3960714caef0c4f2"))) + (should (equal (secure-hash 'sha384 "foobar") + (concat "3c9c30d9f665e74d515c842960d4a451c83a0125fd3de739" + "2d7b37231af10c72ea58aedfcdf89a5765bf902af93ecf06"))) + (should (equal (secure-hash 'sha512 "foobar") + (concat "0a50261ebd1a390fed2bf326f2673c145582a6342d5" + "23204973d0219337f81616a8069b012587cf5635f69" + "25f1b56c360230c19b273500ee013e030601bf2425")))) + (provide 'fns-tests)