[Cryptech-Commits] [staging/core/platform/terasic_c5g] 18/20: Fixed huge message test. We now run test of message with 100 blocks in SHA-256.

git at cryptech.is git at cryptech.is
Tue Mar 17 13:18:12 UTC 2015


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

paul at psgd.org pushed a commit to branch master
in repository staging/core/platform/terasic_c5g.

commit ab819878444d72366ce1e2819dc074d96d3fb155
Author: Joachim Strömbergson <joachim at secworks.se>
Date:   Fri May 16 16:24:11 2014 +0200

    Fixed huge message test. We now run test of message with 100 blocks in SHA-256.
---
 src/sw/hash_tester.py | 43 +++++++++++++++++++++++--------------------
 1 file changed, 23 insertions(+), 20 deletions(-)

diff --git a/src/sw/hash_tester.py b/src/sw/hash_tester.py
index f042b01..52bca7d 100755
--- a/src/sw/hash_tester.py
+++ b/src/sw/hash_tester.py
@@ -79,7 +79,7 @@ VERBOSE = False
 
 # Delay times we wait
 PROC_DELAY_TIME = 0.0001
-COMM_DELAY_TIME = 0.005
+COMM_DELAY_TIME = 0.05
 
 # Memory map.
 SOC                   = '\x55'
@@ -603,34 +603,33 @@ def huge_message_test_sha256(block, n, ser):
                   block[(i * 4) : ((i * 4 ) + 4)] + [EOC]
         write_serial_bytes(message, ser)
 
-    # Start initial block hashing, wait.
+    # Start initial block hashing, wait and check status.
     write_serial_bytes([SOC, WRITE_CMD, SHA256_ADDR_PREFIX, SHA256_ADDR_CTRL,
                         '\x00', '\x00', '\x00', SHA256_CTRL_INIT_CMD, EOC], ser)
     time.sleep(PROC_DELAY_TIME)
-    print "Block 0 done."
-
-    # First block done.
-    n = n - 1
+    write_serial_bytes([SOC, READ_CMD, SHA256_ADDR_PREFIX, SHA256_ADDR_STATUS, EOC], ser)
 
-    # Extract the digest for the current block.
+    # Extract the first digest.
+    print "Digest for block 00:"
     for digest_addr in sha256_digest_addr:
         message = [SOC, READ_CMD, SHA256_ADDR_PREFIX] + [digest_addr] + [EOC]
         write_serial_bytes(message, ser)
-        print""
+    print""
 
-    for i in range(n):
-        # Start next block hashing, wait.
+    # First block done. Do the rest.
+    for i in range(n - 1):
+        # Start next block hashing, wait and check status.
         write_serial_bytes([SOC, WRITE_CMD, SHA256_ADDR_PREFIX, SHA256_ADDR_CTRL,
                             '\x00', '\x00', '\x00', SHA256_CTRL_NEXT_CMD, EOC], ser)
-        print "Block %d done." % (i + 1)
         time.sleep(PROC_DELAY_TIME)
+        write_serial_bytes([SOC, READ_CMD, SHA256_ADDR_PREFIX, SHA256_ADDR_STATUS, EOC], ser)
 
-        # Extract the digest for the current block.
+        # Extract the second digest.
+        print "Digest for block %02d" % (i + 1)
         for digest_addr in sha256_digest_addr:
             message = [SOC, READ_CMD, SHA256_ADDR_PREFIX] + [digest_addr] + [EOC]
             write_serial_bytes(message, ser)
-            print""
-        time.sleep(PROC_DELAY_TIME)
+        print""
 
 
 #-------------------------------------------------------------------
@@ -809,24 +808,28 @@ def tc6(ser):
 # TC7: SHA-256 Huge message test.
 #-------------------------------------------------------------------
 def tc7(ser):
-    n = 10
+    n = 100
     print "TC7: Message with %d blocks test for SHA-256." % n
     tc7_block = ['\xaa', '\x55', '\xaa', '\x55', '\xde', '\xad', '\xbe', '\xef',
                  '\x55', '\xaa', '\x55', '\xaa', '\xf0', '\x0f', '\xf0', '\x0f',
+
                  '\xaa', '\x55', '\xaa', '\x55', '\xde', '\xad', '\xbe', '\xef',
                  '\x55', '\xaa', '\x55', '\xaa', '\xf0', '\x0f', '\xf0', '\x0f',
+
                  '\xaa', '\x55', '\xaa', '\x55', '\xde', '\xad', '\xbe', '\xef',
                  '\x55', '\xaa', '\x55', '\xaa', '\xf0', '\x0f', '\xf0', '\x0f',
+
                  '\xaa', '\x55', '\xaa', '\x55', '\xde', '\xad', '\xbe', '\xef',
                  '\x55', '\xaa', '\x55', '\xaa', '\xf0', '\x0f', '\xf0', '\x0f']
 
-    tc7_expected = [0xf407ff0d, 0xb9dce2f6, 0x9b9759a9, 0xd3cdc805,
-                    0xf250086d, 0x73bbefd5, 0xa972e0f7, 0x61a9c13e]
+    tc7_expected = [0x881e9d79, 0xba8b92b1, 0xbb72c103, 0x617e5580,
+                    0x31fb69ce, 0xd954e335, 0xb5e702c3, 0xc04b1379]
 
     print "TC7: Expected digest values after %d blocks:" %n
     for i in tc7_expected:
         print("0x%08x " % i)
     print("")
+
     huge_message_test_sha256(tc7_block, n, ser)
 
 
@@ -989,9 +992,9 @@ def main():
     my_thread.start()
 
     # Run the enabled test cases.
-    tc_list = [(tc1, True), (tc2, True), (tc3, True), (tc4, True),
-               (tc5, True), (tc6, True), (tc7, True), (tc8, True),
-               (tc9, True), (tc10, True)]
+    tc_list = [(tc1, False), (tc2, False), (tc3, False), (tc4, False),
+               (tc5, False), (tc6, False), (tc7, True), (tc8, False),
+               (tc9, False), (tc10, False)]
     for (test_case, action) in tc_list:
         if action:
             test_case(ser)



More information about the Commits mailing list