[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] scratch/tzz/nettle ecdfdd7: WIP: GnuTLS: add secure-hash-a
From: |
Teodor Zlatanov |
Subject: |
[Emacs-diffs] scratch/tzz/nettle ecdfdd7: WIP: GnuTLS: add secure-hash-algorithms to simplify tests |
Date: |
Mon, 17 Apr 2017 14:55:21 -0400 (EDT) |
branch: scratch/tzz/nettle
commit ecdfdd7416fa99c9831f787bcd51bea1ab15cf14
Author: Ted Zlatanov <address@hidden>
Commit: Ted Zlatanov <address@hidden>
WIP: GnuTLS: add secure-hash-algorithms to simplify tests
---
src/fns.c | 15 +++++++++++++++
test/lisp/net/gnutls-tests.el | 25 +++++++++++++------------
2 files changed, 28 insertions(+), 12 deletions(-)
diff --git a/src/fns.c b/src/fns.c
index 10d35b6..f148c13 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -4726,6 +4726,20 @@ make_digest_string (Lisp_Object digest, int digest_size)
return digest;
}
+DEFUN ("secure-hash-algorithms", Fsecure_hash_algorithms,
+ Ssecure_hash_algorithms, 0, 0, 0,
+ doc: /* Return a list of all the supported `secure_hash' algorithms. */)
+ (void)
+{
+ return listn (CONSTYPE_HEAP, 6,
+ Qmd5,
+ Qsha1,
+ Qsha224,
+ Qsha256,
+ Qsha384,
+ Qsha512);
+}
+
/* ALGORITHM is a symbol: md5, sha1, sha224 and so on. */
static Lisp_Object
@@ -5178,6 +5192,7 @@ this variable. */);
defsubr (&Sbase64_encode_string);
defsubr (&Sbase64_decode_string);
defsubr (&Smd5);
+ defsubr (&Ssecure_hash_algorithms);
defsubr (&Ssecure_hash);
defsubr (&Sbuffer_hash);
defsubr (&Slocale_info);
diff --git a/test/lisp/net/gnutls-tests.el b/test/lisp/net/gnutls-tests.el
index 87a149d..32246d5 100644
--- a/test/lisp/net/gnutls-tests.el
+++ b/test/lisp/net/gnutls-tests.el
@@ -38,14 +38,18 @@
(defsubst gnutls-tests-hexstring-equal (a b)
(and (stringp a) (stringp b) (string-equal (encode-hex-string a)
(encode-hex-string b))))
+(defvar gnutls-tests-internal-macs-upcased
+ (mapcar (lambda (sym) (cons sym (intern (upcase (symbol-name sym)))))
+ (secure-hash-algorithms)))
+
(defvar gnutls-tests-tested-macs
(remove-duplicates
- (append '(MD5 SHA1 SHA224 SHA256 SHA384 SHA512)
+ (append (mapcar 'cdr gnutls-tests-internal-macs-upcased)
(mapcar 'car (gnutls-macs)))))
(defvar gnutls-tests-tested-digests
(remove-duplicates
- (append '(MD5 SHA1 SHA224 SHA256 SHA384 SHA512)
+ (append (mapcar 'cdr gnutls-tests-internal-macs-upcased)
(mapcar 'car (gnutls-digests)))))
(defvar gnutls-tests-tested-ciphers
@@ -67,6 +71,7 @@
"Test the GnuTLS hashes and ciphers availability."
(skip-unless (gnutls-available-p))
(setq gnutls-tests-message-prefix "availability: ")
+ (should (> (length gnutls-tests-internal-macs-upcased) 5))
(let ((macs (gnutls-macs))
(digests (gnutls-digests))
(ciphers (gnutls-ciphers)))
@@ -89,22 +94,18 @@
(should (plist-get plist prop)))
(should (eq 'gnutls-symmetric-cipher (plist-get plist :type)))))))
-(ert-deftest test-gnutls-001-hashes-digests ()
+(ert-deftest test-gnutls-001-hashes-internal-digests ()
"Test the GnuTLS hash digests against the built-in `secure-hash'."
(skip-unless (gnutls-available-p))
(setq gnutls-tests-message-prefix "digest internal verification: ")
(let ((macs (gnutls-macs)))
- ;; These are the digest algorithms currently supported by
- ;; `secure-hash'. Unfortunately this list can't be obtained
- ;; programmatically.
- (dolist (sym '(md5 sha1 sha224 sha256 sha384 sha512))
- (let* ((mac (intern (upcase (symbol-name sym))))
- (plist (cdr (assq mac macs))))
- (gnutls-tests-message "Checking digest MAC %s %S" mac plist)
+ (dolist (mcell gnutls-tests-internal-macs-upcased)
+ (let ((plist (cdr (assq (cdr mcell) macs))))
+ (gnutls-tests-message "Checking digest MAC %S %S" mcell plist)
(dolist (input gnutls-tests-mondo-strings)
(should (gnutls-tests-hexstring-equal
- (gnutls-hash-digest mac input)
- (secure-hash sym input nil nil t))))))))
+ (gnutls-hash-digest (cdr mcell) input)
+ (secure-hash (car mcell) input nil nil t))))))))
(ert-deftest test-gnutls-002-hashes-digests ()
"Test some GnuTLS hash digests against pre-defined outputs."
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] scratch/tzz/nettle ecdfdd7: WIP: GnuTLS: add secure-hash-algorithms to simplify tests,
Teodor Zlatanov <=