[Cryptech-Commits] [sw/libhal] branch master created (now 0ababd7)
git at cryptech.is
git at cryptech.is
Tue Jul 7 18:24:44 UTC 2015
This is an automated email from the git hooks/post-receive script.
sra at hactrn.net pushed a change to branch master
in repository sw/libhal.
at 0ababd7 Track move of third party libraries to /sw/thirdparty/.
This branch includes the following new commits:
new 93941c6 Import FPGA I/O code from core/platform/novena/sw, add minimal autoconf, whack with a club until it builds.
new fa13a84 Add csprng and hash modules. Add real error codes instead of magic numbers, and propegate error codes up from lower layers. Whack C++-isms, add parenthesese to a lot of macro expressions for evaluation safety, other minor cleanup.
new 6d805ea Add AES Key Wrap using Cryptech AES core.
new e2de6b1 Copy Joachim's EIM timeout change, make timeout configurable at compile time. Detect not-multiple-of-four-byte errors before they trigger an infinite loop. Remove printfs() that don't belong in library code, along with an unnecessary malloc(). Other minor cleanup.
new f50805b Add test harness: no useful tests yet, just the framework. Add human-readable error strings for hal_error_t codes.
new c5f1ddb Add test cases for 128-bit and 256-bit KEKs.
new b932b19 Guess it might help to write the config value to the AES core after constructing it, doh.
new b7956f3 Typing "!" when one meant "~" has interesting effects when bit masking.
new d529414 AES key wrap now working with AES core.
new e4a7f76 First pass on hash test code.
new a05b7a9 Debug hash-testing code.
new 6c983f2 Cleanup.
new cd43115 Add missing truncated SHA-512 cases.
new 75688e2 Doh, skip tests when we know core isn't present.
new 9e00faa Cleanup: names of *_core_present() functions, Makefile.
new 2c81ecf First pass at RSA tests.
new f210238 More fun with RSA test cases, still not working.
new 86e3b10 Add padding options to test workaround for current ModExp bugs.
new 4079050 ModExp now working!
new 73a9466 Refactor hash code prior to adding HMAC (which we need for PBKDF2). Main changes: moving the ten zillion core-related constants from closures into a driver structure, rework API to the more common initialize/update/finalize because it's easier to understand, particularly with HMAC.
new 456de69 HMAC implementation and test vectors.
new 9176df4 Whoops, we're supposed to hash an entire block for the key regardless of how long the key is. With this fix, HMAC passes tests on Novena.
new cf865e9 Disable HMAC-SHA-384 tests as neither my implementation nor PyCrypto passes them. Add missing copyright notices, other trivial cleanup (whitespace, etc).
new 1655dbf First cut at PBKDF2.
new f7a65af HMAC for truncated SHA-512 digests would probably work better if we used the right digest length constants. Doh.
new ce372c3 Get feedback cycle right in PBKDF2 iteration.
new e1029f9 This time for sure, Rocky!
new 9cca190 Add hal_modexp(), since the protocol is a bit complex. Rewrite test-rsa to use hal_modexp(), and generate a new set of test keys without the whacky padding, since hal_modexp() now handles that.
new 5d21abb Operand lengths weren't including bug-workaround padding.
new 5f152f5 First cut at RSA decryption/signature using the Chinese Remainder Theorem. Not yet tested, and given the number of moving parts I would be astonished if this version actually worked, but it does compile. Added some timing code to tests/test-rsa.c so we can see whether this is doing anything useful once it does work.
new ab7d78b Build issues on Novena.
new 8934e10 Debug modexp_fp() buffer handling. Add basic timing report. Compensate for PyCrypto's weird inversion of p and q when calculating CRT coefficients, and add key the key components PyCrypto doesn't bother pre-calculating to our test data.
new 7a89eaa Refactor key loading code.
new e6e4a9a RSA key generation. Compiles, not (yet) tested otherwise.
new ab5a876 RSA key generation and DER support.
new 35733aa Debug RSA key generation.
new 5e4fc53 Refactor CRT code into public API.
new 8bf2dc8 Add RSA blinding.
new 3e679aa Add round-trip test for DER I/O code.
new 30e8216 Helps to set the return value when reading a key, doh.
new a615b13 Supply public exponent as bigendian byte string rather than unsigned long, since that's the form we'll need for PKCS #11.
new 1a719b0 Add replacement for fp_exptmod() using our ModExp core, so we don't drag in all of TFM's Montgomery just to support the Miller-Rabin test.
new 79d3c33 Add temporary workaround to let us use software ModExp when we're testing other code and don't want to wait for the as-yet-unoptimized FPGA ModExp core.
new aaec57f Add README.md.
new f23b4c6 Add methods to extract public components from an RSA key. Other minor cleanup and commenting within RSA module.
new bca97e1 Add digest algorithm IDs.
new 4dd62d6 Check for hash core present before running PBKDF2 tests.
new a3b7050 libcryptech -> libhal, doh.
new 10dfb62 Rework API for loading keys from components. Relax key size constraints to allow any key size within our supported range, since hsmbully seems to want to twist this knob to every possible setting.
new 66c47cc Verify signature in key generation test.
new 376fa94 Track ModExp core exponent padding change: this enables the short exponent fast path.
new e80f25d Change default to use software modexp until we sort out performance issues in ModExp core.
new 65f6634 Get rid of autoconf, as we don't really need it. Add eim_peek_poke utility program, based on Paul's example in the core/platform/novena repository.
new 7852309 novena-eim.h had an invisible dependency on <sys/types.h>, at least on Debian Wheezy (ie, on the Novena).
new 526e451 NULL-terminate string list, doh.
new 4856502 Use C99 variadic macro as safety wrapper around variadic function. Are we having fun yet?
new 94666f4 Add load_novena_fpga script.
new 0ababd7 Track move of third party libraries to /sw/thirdparty/.
The 58 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.
More information about the Commits
mailing list