[Cryptech-Commits] [core/util/keywrap] branch master created (now 4333178)

git at cryptech.is git at cryptech.is
Wed Mar 25 17:17:59 UTC 2020


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

paul at psgd.org pushed a change to branch master
in repository core/util/keywrap.

      at 4333178  Move keywrap from user/js to core/util.

This branch includes the following new commits:

     new f5a1869  Adding initial version of repo and design for core implementing aes key wrap.
     new 4b4c2e9  Oops! Removing file that should not have been in the commit.
     new 3884cd3  Implemented test design for key wrap memory. To be tested in ISE.
     new 16f31cd  Reworked code a bit to match what ISE expects to map to block RAM instances.
     new a472f7e  Increased size of memory to 64 kByte to match what is needed for key wrap. No problems.
     new 36fcc28  (1) Added initial version of keywrap_core which will implement the actual wrapping using aes_core and the keywrap_mem. (2) Minor cleanup to the keywrap_mem code.
     new 83df274  Adding more functionality in the core. Updated Makefile to build and simulate with the AES core. Minor update to header and README. Clarified that it is RFC 5649 we are implementing.
     new fce71f2  Adding initial version of keywrap python model. Adding local copy of aes model.
     new 8ee2913  Added a simple test case to verify that the aes model is usable.
     new 3fc9647  Adding initial version of top level wrapper for the keywrap core.
     new 3a600f8  (1) Adding initial version of top level testbench. (2) Updating Makefile to be able to bild and run top level simulation as well as linting all rtl code.
     new da4e5fa  Adding the Python keywrap model from sw/libhal/unit-tests.py to modify as needed to get intermediate values. Removed the aes model taken from the aes core.
     new a2248a8  Minor speling erorr fix.
     new 3561980  Minor edit.
     new 0b3c532  Updated top level wrapper to better match the planned API. Updated core interface. Connected core into the top level wrapper.
     new c585951  Interface debugging.
     new 311ab5f  A lot of cleanup of interconnections between cores and hierarchy. Fixed a number of nits and bugs. Added address generator for the API.
     new 9e08b2d  Adding a lot of functionality. Starting to get everthing in place.
     new 7af04fe  Fixed magical capitalizations.
     new 9d6d500  Adding working keywrap python model by Rob Austein.
     new 404075f  Removed old keywrap model. We have a new, working model to destroy.
     new d50f872  Added test vectors from NISTs set of vectors for SP800-38F KWP. Added header with short description and copyright, license used in Cryptech.
     new c74cf5f  Starting to add verbose debug print statements to get internal values during processing. This includes breaking up code statements.
     new fd6c919  Changed name in API for A words to clarify their meaning. Corrected case order in API logic.
     new d03e013  Completed first version of core that should have all functionality needed to do key wrap.
     new 7fe900d  Fixed bugs in the API decoding logic.
     new 2817f5b  Fixed nits found during linting.
     new 4f1e43b  Updated status for the core. Getting there.
     new 1b987d1  Adding dut to top level testbench. Adding API definitions. Adding tasks to read and write words from and to the dut API.
     new 79cd684  Adding more tasks for tb infrastructure.
     new caa7950  Connected the keymem dut into the testbench.
     new 1b89da8  Connected the dut in the core testbench.
     new bdc6e67  Added first tasks to test api write and core read. Everything works as expected.
     new ef107e0  Adding additional test code to verify that core read-modify-write and api rread works correctly.
     new 5eb133c  Focusing on a single NIST KWP test case that is non-trivial.
     new 86a438f  Adding a lot of verbose output to get the internal values we need.
     new 2d35319  Added test case with vectors from NIST KWP AE. Test fails. But at least it doesn't hang. Now for some bug hunting.
     new c874d87  Add support to dump contents of memory to check that data has been written correctly.
     new 558493b  Debugged a lot of minor errors and added a lot of debug functions. Things are starting to work. As in AES is actually initialized and used.
     new 156237c  Good news: The core peformcs all AES operations and stops after correct number of operations. Bad news: All values are wrong.
     new b26c895  Adding more dump outputs. wrap does not yet work, but one can see when things go bad and where the isssues are.
     new 84164cf  Removed the streaming interface in favor of a normal address based interface. A bit more kludgy, esp since we need to use bank switching to be able to provide enough address space. But this removes a possible problem of the streaming address counter running wild.
     new 6b15816  Fixed memory word order. Fixed a number of bugs. First block encrypted correctly. A state is wrong and memory is read too far.
     new 2748621  Debugged keywrap processing including A update. All AES operations works correctly. Now we just need to stop processing whe we should.
     new 8aa976a  We haz keywrap! Time to add more testcases and make them self testing. Oh and implement unwrap.
     new d96a6b9  Adding testcase for wrapping 4096 bit data.
     new d912c91  Adding tool to generate write commands.
     new 05805e7  We use the aes_speed core instead.
     new e7aa2b3  Removed a few states and a few cycles.
     new 3bd8c3e  Adding wrap test case with 4096 bit plaintext from NIST. Test result matches model.
     new 243474b  Adding unwrap test case.
     new f7da709  Adding state and counter functionality to support unwrap. Changed name of define to something more comprehensible.
     new 732478f  Updated keywrap logic to support unwrap. Split state to handle next start in both wrap and unwrap cases.
     new 9897e1e  Fixed minor details in unwrap test case. Enabled unwrap test case.
     new 96463cb  Fixing block counter init bug. Enabling detailed debugging. Fixing minor nits.
     new f4ac53a  Adding wait state to allow access from memory to complete. Should be possible to optimize.
     new 694ff57  (1) Fixed dump of core_addr in testbench to actually show the core_addr. Fixed boundaries for the block counter. Now we don't read mem out of bounds.
     new 697456b  Debugged key unwrap. First testcase for unwerap passed. Added some more debug outputs.
     new 44caddc  Adding test case for 4096 bit unwrap. Testcase passed! We have unwrap.
     new c72e099  (1) Updated version to reflect status. (2) Minor fix after running sim in ModelSim.
     new e255452  Updated README with status and information about the implementation.
     new a2ce5e7  Added explicit width specification for constant to silence truncation warning.
     new 5a96b9a  Fix some misleading messages, and enable all tests.
     new b75bd86  Updated the info about max object size supports and number of banks.
     new b1b208d  Adding delay cycle to API regs to match the latency for accessing the blockRAM. Added test case that checks access to the API regs.
     new 378cce5  Adding top level defines for setting size and address bits.
     new 860dc81  Performed Verilog parameter magic to make the design scaleable in terms of capacity. Does not yet work, but at least the linter is fairly happy.
     new e27c1af  Killed the bank switching.
     new e236151  We probably want to be able to read data too.
     new 8836e5d  Updated testbench to work with the parameterized memory.
     new 2fb042d  Updated testbench to handle parameterized core.
     new ef8a8ea  Updated rtl and tb to support parameterized memory size.
     new cc8b25b  Test write to all positions in the mem.
     new f8407a8  Removed r_bank from dump since it no longer exists.
     new 1d9543b  Updated testbench to use the new API. Verified that the new API works. No more banks.
     new 6cfcc1e  Adding a huge, self testing test case.
     new 1304440  Adding API support for key loaded status and key timeout control. Added ports in the core to support key status and timeout. Updated core testbench to match the new interface.
     new f1e48a9  Adding untested code to implement timer controlled automatic zeroisation of key loaded into the aes core.
     new 2841e92  Adding a more sane default timeout value.
     new 31ccc06  Adding support for SW to keep loaded key alive by reading status. Adding support for SW to trigger zeroisation of a loaded key.
     new 4665dcc  Adding test case for auto_zeroise. Can see that a loaded key gets wiped after timeout. Status bits looks fishy though.
     new 462c86f  Zeroisation of wrapper key registers. Adding reset of key_loaded register.
     new b57fa44  Fixed some bugs in auto-zeroise functionality. Now it really zeroises key automatically. It seems to work, but needs a bit more testing.
     new 3c0ce8c  Splitted the auto-zeroise test case into three separate tests.
     new 0500077  Cleaned up and made auto zeroise test case 1 self-testing:
     new b03f8a2  valid should not be set from reset. There is no valid data.
     new acd123d  Adding the same API hardening to keywrap as implemented for other cores after the Cryptech audit.
     new 3455dd0  Fixed parameterized widths.
     new dddf349  Adding test case that verifies that SW can keep a key alive by reading status register.
     new e481321  Add testcase that verifies forced zeroisation.
     new 4b8d7ab  Adding key timeout output port to allow core to inform the top level wrapper that timeout has occured. Added functionality to zeroise API key registers when timout has happened. Updated all auto_zeroise test cases to check that API key registers are properly zeroised.
     new 5827799  Debugging keywrap after auto_zeroise. Now the core starts processing as expected.
     new f7c9cd1  Added non-zero default timeout value in core. This fixes the keywrap problems by not automatically reset the key in the API. Enabled all testcases and disabled excessive debug outputs.
     new 7d0ab8d  Updated README to current status. Added section about the auto zeroise functionality that has been merged. Moved sections around to be in a (hopefully) more pedagogical order.
     new 4333178  Move keywrap from user/js to core/util.

The 95 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




More information about the Commits mailing list