[Cryptech-Commits] [test/novena_entropy] 01/01: Started to add code for using the avalanche entropy source in the Novena.

git at cryptech.is git at cryptech.is
Wed Dec 3 13:14:11 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 test/novena_entropy.

commit a21b4ff7a7a294d3b7f0fdd5b0db434475c6ce2f
Author: Joachim Strömbergson <joachim at secworks.se>
Date:   Wed Dec 3 14:14:07 2014 +0100

    Started to add code for using the avalanche entropy source in the Novena.
---
 src/sw/entropy_tester.py | 78 +++++++++++++++++++++++++++++++-----------------
 1 file changed, 51 insertions(+), 27 deletions(-)

diff --git a/src/sw/entropy_tester.py b/src/sw/entropy_tester.py
index 6a5ff0b..fcc993d 100755
--- a/src/sw/entropy_tester.py
+++ b/src/sw/entropy_tester.py
@@ -16,37 +16,37 @@
 # NIST KAT document:
 # http://csrc.nist.gov/groups/ST/toolkit/documents/Examples/SHA_All.pdf
 #
-# 
+#
 # Authors: Joachim Strömbergson, Paul Selkirk
 # Copyright (c) 2014, SUNET
-# 
-# Redistribution and use in source and binary forms, with or 
-# without modification, are permitted provided that the following 
-# conditions are met: 
-# 
-# 1. Redistributions of source code must retain the above copyright 
-#    notice, this list of conditions and the following disclaimer. 
-# 
-# 2. Redistributions in binary form must reproduce the above copyright 
-#    notice, this list of conditions and the following disclaimer in 
-#    the documentation and/or other materials provided with the 
-#    distribution. 
-# 
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
-# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
-# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
+#
+# Redistribution and use in source and binary forms, with or
+# without modification, are permitted provided that the following
+# conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in
+#    the documentation and/or other materials provided with the
+#    distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
-# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 
-# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #
 #=======================================================================
- 
+
 #-------------------------------------------------------------------
 # Python module imports.
 #-------------------------------------------------------------------
@@ -195,7 +195,7 @@ class I2C:
     def __del__(self):
         if (self.file):
             self.file.close()
-            
+
     # write a command to the i2c device
     def write(self, buf):
         if DEBUG:
@@ -635,6 +635,28 @@ def TC10(i2c):
     print "TC10-4: Double block message test for SHA-512."
     tc10(i2c, MODE_SHA_512, SHA512_DOUBLE_DIGEST)
 
+    tc_wait_valid(i2c, SHA1_ADDR_PREFIX)
+
+
+
+# Avalanche entropy tests
+
+AVALANCHE_ADDR_PREFIX      = 0x20
+
+def avalanche_read(i2c, addr, data):
+    tc_read(i2c, AVALANCHE_ADDR_PREFIX, addr, data)
+
+def avalanche_write(i2c, addr, data):
+    tc_write(i2c, AVALANCHE_ADDR_PREFIX, addr, data)
+
+
+# TC11 Read name and version from SHA-1 core.
+def TC11(i2c):
+    print "TC1: Reading name, type and version words from SHA-1 core."
+
+    avalanche_read(i2c, ADDR_NAME0,   0x73686131)    # "sha1"
+    avalanche_read(i2c, ADDR_NAME1,   0x20202020)    # "    "
+    avalanche_read(i2c, ADDR_VERSION, 0x302e3530)    # "0.50"
 
 #----------------------------------------------------------------
 # main
@@ -642,11 +664,13 @@ def TC10(i2c):
 if __name__ == '__main__':
     import argparse
 
-    all_tests = [ TC1, TC2, TC3, TC4, TC5, TC6, TC7, TC8, TC9, TC10 ]
+    # all_tests = [ TC1, TC2, TC3, TC4, TC5, TC6, TC7, TC8, TC9, TC10 ]
     sha1_tests = all_tests[0:3]
     sha256_tests = all_tests[3:7]
     sha512_tests = all_tests[7:]
 
+    all_tests = [TC11]
+
     parser = argparse.ArgumentParser()
     parser.add_argument('-d', '--debug', action='store_true',
                         help='add debugging/trace information')



More information about the Commits mailing list