[Cryptech-Commits] [sw/cryptlib] 01/01: Clean up test_hashes script.
git at cryptech.is
git at cryptech.is
Fri Dec 5 22:37:39 UTC 2014
This is an automated email from the git hooks/post-receive script.
sra at hactrn.net pushed a commit to branch master
in repository sw/cryptlib.
commit 1b88a31f228b4b0eddc23b31d71fb1e5ca6abe66
Author: Rob Austein <sra at hactrn.net>
Date: Fri Dec 5 23:37:15 2014 +0100
Clean up test_hashes script.
---
tests/test_hashes.py | 60 ++++++++++++++++++++++------------------------------
1 file changed, 25 insertions(+), 35 deletions(-)
diff --git a/tests/test_hashes.py b/tests/test_hashes.py
index 2e38ca3..d84fe6b 100644
--- a/tests/test_hashes.py
+++ b/tests/test_hashes.py
@@ -12,8 +12,8 @@ atexit.register(cryptDeviceClose, hwdev)
# Usual NIST sample messages.
-def hextext(s):
- return "".join(s.split()).lower()
+def hextext(text):
+ return "".join(text.split()).lower()
NIST_512_SINGLE = "abc"
SHA1_SINGLE_DIGEST = hextext("A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D")
@@ -36,44 +36,34 @@ SHA384_DOUBLE_DIGEST = hextext("09330C33 F71147E8 3D192FC7 82CD1B47 53111B17 3B3
SHA512_DOUBLE_DIGEST = hextext("8E959B75 DAE313DA 8CF4F728 14FC143F 8F7779C6 EB9F7FA1 7299AEAD B6889018"
"501D289E 4900F7E4 331B99DE C4B5433A C7D329EE B6DD2654 5E96E55B 874BE909")
-def do_hash(ctx, s):
+def do_hash(dev, algorithm, text, blocksize = None):
+ ctx = None
try:
- cryptEncrypt(ctx, array("c", s))
+ if dev is None:
+ ctx = cryptCreateContext(CRYPT_UNUSED, algorithm)
+ else:
+ ctx = cryptDeviceCreateContext(dev, algorithm)
+ if blocksize is not None:
+ ctx.CTXINFO_BLOCKSIZE = blocksize
+ cryptEncrypt(ctx, array("c", text))
cryptEncrypt(ctx, array("c", ""))
result = ctx.CRYPT_CTXINFO_HASHVALUE
return result.encode("hex")
finally:
- cryptDestroyContext(ctx)
-
-def sha1(d, s):
- if d is None:
- ctx = cryptCreateContext(CRYPT_UNUSED, CRYPT_ALGO_SHA1)
- else:
- ctx = cryptDeviceCreateContext(d, CRYPT_ALGO_SHA1)
- return do_hash(ctx, s)
-
-def sha256(d, s):
- if d is None:
- ctx = cryptCreateContext(CRYPT_UNUSED, CRYPT_ALGO_SHA2)
- else:
- ctx = cryptDeviceCreateContext(d, CRYPT_ALGO_SHA2)
- return do_hash(ctx, s)
-
-def sha384(d, s):
- if d is None:
- ctx = cryptCreateContext(CRYPT_UNUSED, CRYPT_ALGO_SHA2)
- else:
- ctx = cryptDeviceCreateContext(d, CRYPT_ALGO_SHA2)
- ctx.CTXINFO_BLOCKSIZE = 48
- return do_hash(ctx, s)
-
-def sha512(d, s):
- if d is None:
- ctx = cryptCreateContext(CRYPT_UNUSED, CRYPT_ALGO_SHA2)
- else:
- ctx = cryptDeviceCreateContext(d, CRYPT_ALGO_SHA2)
- ctx.CTXINFO_BLOCKSIZE = 64
- return do_hash(ctx, s)
+ if ctx is not None:
+ cryptDestroyContext(ctx)
+
+def sha1(dev, text):
+ return do_hash(dev, CRYPT_ALGO_SHA1, text)
+
+def sha256(dev, text):
+ return do_hash(dev, CRYPT_ALGO_SHA2, text)
+
+def sha384(dev, text):
+ return do_hash(dev, CRYPT_ALGO_SHA2, text, 48)
+
+def sha512(dev, text):
+ return do_hash(dev, CRYPT_ALGO_SHA2, text, 64)
have_i2c = os.path.exists("/dev/i2c-2")
More information about the Commits
mailing list