[Cryptech-Commits] [core/sha256] 01/01: Adding helper functions for printing digest. Adding testcase for message with 1000 blocks.

git at cryptech.is git at cryptech.is
Fri May 16 14:36:41 UTC 2014


This is an automated email from the git hooks/post-receive script.

joachim at secworks.se pushed a commit to branch master
in repository core/sha256.

commit 3c7c7c3b829c857e72d75d5054e39f6e0417c58f
Author: Joachim Strömbergson <joachim at secworks.se>
Date:   Fri May 16 16:36:37 2014 +0200

    Adding helper functions for printing digest. Adding testcase for message with 1000 blocks.
---
 src/model/sha256.py | 42 +++++++++++++++++++++++++++++++++++-------
 1 file changed, 35 insertions(+), 7 deletions(-)

diff --git a/src/model/sha256.py b/src/model/sha256.py
index ca0a77c..3b16e1f 100755
--- a/src/model/sha256.py
+++ b/src/model/sha256.py
@@ -10,7 +10,8 @@
 #
 #
 # Author: Joachim Strömbergson
-# Copyright (c) 2014, SUNET
+# Copyright (c) 2013, SUNET
+# All rights reserved.
 # 
 # Redistribution and use in source and binary forms, with or 
 # without modification, are permitted provided that the following 
@@ -46,6 +47,12 @@ import sys
 
 
 #-------------------------------------------------------------------
+# Constants.
+#-------------------------------------------------------------------
+VERBOSE = True
+
+
+#-------------------------------------------------------------------
 # ChaCha()
 #-------------------------------------------------------------------
 class SHA256():
@@ -214,13 +221,31 @@ class SHA256():
         return (n >> r)
 
 
+#-------------------------------------------------------------------
+# print_digest()
+#
+# Print the given digest.
+#-------------------------------------------------------------------
+def print_digest(digest):
+    print("0x%08x, 0x%08x, 0x%08x, 0x%08x" %\
+          (digest[0], digest[1], digest[2], digest[3]))
+    print("0x%08x, 0x%08x, 0x%08x, 0x%08x" %\
+          (digest[4], digest[5], digest[6], digest[7]))
+    print("")
+
+
+#-------------------------------------------------------------------
+# compare_digests()
+#
+# Check that the given digest matches the expected digest.
+#-------------------------------------------------------------------
 def compare_digests(digest, expected):
     if (digest != expected):
         print("Error:")
         print("Got:")
-        print(digest)
+        print_digest(digest)
         print("Expected:")
-        print(expected)
+        print_digest(expected)
     else:
         print("Test case ok.")
         
@@ -285,20 +310,23 @@ def main():
 
 
     # TC3: Huge message with n blocks
-    n = 10000
+    n = 1000
     print("TC3: Huge message with %d blocks test case." % n)
     TC3_block = [0xaa55aa55, 0xdeadbeef, 0x55aa55aa, 0xf00ff00f,
                  0xaa55aa55, 0xdeadbeef, 0x55aa55aa, 0xf00ff00f,
                  0xaa55aa55, 0xdeadbeef, 0x55aa55aa, 0xf00ff00f,
                  0xaa55aa55, 0xdeadbeef, 0x55aa55aa, 0xf00ff00f]
 
-    TC3_expected = [0xf407ff0d, 0xb9dce2f6, 0x9b9759a9, 0xd3cdc805,
-                    0xf250086d, 0x73bbefd5, 0xa972e0f7, 0x61a9c13e]
+    TC3_expected = [0x7638f3bc, 0x500dd1a6, 0x586dd4d0, 0x1a1551af,
+                    0xd821d235, 0x2f919e28, 0xd5842fab, 0x03a40f2a]
 
     my_sha256.init()
     for i in range(n):
         my_sha256.next(TC3_block)
-    my_digest = my_sha256.get_digest()
+        my_digest = my_sha256.get_digest()
+        if (VERBOSE):
+            print("Digest for block %d:" % i)
+            print_digest(my_digest)
     compare_digests(my_digest, TC3_expected)
     
 



More information about the Commits mailing list