Commit Graph

  • 58a9c564ae Implement "KDF in Counter Mode" from NIST SP 800-108. master Stephen Heumann 2024-04-15 19:46:50 -0500
  • d3d3dbbad9 Add and use result macros for all HMACs. Stephen Heumann 2024-04-15 18:39:36 -0500
  • 0ae8f97c3c Add header declarations and tests for all incremental HMACs. Stephen Heumann 2024-04-15 18:29:01 -0500
  • 60e4998d16 Implement AES-CMAC. Stephen Heumann 2024-04-14 22:16:04 -0500
  • 191a27af86 Update HMAC-MD5 code to support processing a message in multiple parts. Stephen Heumann 2023-12-10 15:09:57 -0600
  • 5a986a996f Implement RC4. Stephen Heumann 2023-12-01 21:39:40 -0600
  • aece58138f Update .gitignore file. Stephen Heumann 2023-11-30 18:35:36 -0600
  • e32645eaae Correct a comment. Stephen Heumann 2023-11-30 18:35:23 -0600
  • 8469c7744c Implement MD4. Stephen Heumann 2023-11-30 18:29:50 -0600
  • c1e1caa766 Implement HMAC-MD5, HMAC-SHA1, and HMAC-SHA256. Stephen Heumann 2023-11-29 19:43:03 -0600
  • 4f7c6c0eb8 Fix typos in comments. Stephen Heumann 2017-11-26 09:25:41 -0600
  • 95acb9f43f Mention sources of AES test vectors. v1.0 Stephen Heumann 2017-11-25 21:27:25 -0600
  • eaa0d4865c Add README. Stephen Heumann 2017-11-22 22:18:58 -0600
  • ed65d421fc Add all generated programs and libraries to .gitignore. Stephen Heumann 2017-11-20 14:59:28 -0600
  • 05ecf65baf Add LICENSE file. Stephen Heumann 2017-11-20 14:51:00 -0600
  • 8050c05a7a Don't call srand unless we're actually randomizing read sizes. Stephen Heumann 2017-11-19 23:47:30 -0600
  • e288a7bc83 Allow checksumming multiple files, and print filenames with the checksums. Stephen Heumann 2017-11-19 23:41:05 -0600
  • 0475dbf132 Display error messages where appropriate in checksum utilities. Stephen Heumann 2017-11-19 23:30:13 -0600
  • b5b268982a By default, don't randomize read sizes in checksum programs. Stephen Heumann 2017-11-19 22:48:43 -0600
  • df0de0d979 Use a common template for all the file checksum programs. Stephen Heumann 2017-11-19 22:43:31 -0600
  • 5c9b2f0877 Build libraries containing the crypto and hash codes. Stephen Heumann 2017-11-19 22:03:44 -0600
  • 756ff98a6a Revise makefile to generate object files separately from programs. Stephen Heumann 2017-11-19 21:05:58 -0600
  • 8dddba4f6e Work around ORCA/C bug that affects lower optimization levels. Stephen Heumann 2017-07-05 12:24:37 -0500
  • 4c0265d921 Work around ORCA/C bug. Stephen Heumann 2017-07-05 11:44:22 -0500
  • 5b7c832600 One more tweak to MD5 rotate optimizations. Stephen Heumann 2017-07-04 14:42:01 -0500
  • 2f34f006ba Force MD5 tables to be page-aligned, which should save a cycle in some cases. Stephen Heumann 2017-07-04 14:37:17 -0500
  • e90af7c1a4 Small optimization to eliminate some unnecessary loads in MD5. Stephen Heumann 2017-07-04 14:31:04 -0500
  • 129f371902 Add zero bytes to optimize some rotates in MD5. Stephen Heumann 2017-07-04 14:09:41 -0500
  • 1d1d5251f6 Optimize the operations used for various shift sizes in MD5. Stephen Heumann 2017-07-04 13:57:01 -0500
  • 748e0b5c24 Small optimizations for MD5. Stephen Heumann 2017-07-04 12:39:11 -0500
  • 0f144df99b Add implementation of MD5 hash function. Stephen Heumann 2017-07-04 12:15:00 -0500
  • 015ae8559f Add makefile entries for SHA-256 programs. Stephen Heumann 2017-07-03 23:58:57 -0500
  • 1f3d51a5c9 Add sha256sum program. Stephen Heumann 2017-07-03 23:56:36 -0500
  • e7aa261e19 Add update and finalize functions for SHA-256. Stephen Heumann 2017-07-03 23:53:43 -0500
  • 458e769212 Add initialization function to permit computation of SHA-224 hashes. Stephen Heumann 2017-07-03 23:40:36 -0500
  • 11148c78d1 Remove unused macros. Stephen Heumann 2017-07-03 23:05:51 -0500
  • bcc0efc327 Add zero bytes around SHA-256 state variables to optimize rotates. Stephen Heumann 2017-07-03 22:58:58 -0500
  • 239024c3ce Remove unneeded instruction. Stephen Heumann 2017-07-03 20:46:26 -0500
  • 7034be04fb Use more efficient approach for addressing into k array in SHA-256 computation. Stephen Heumann 2017-07-03 20:14:36 -0500
  • f0f034760b Optimize SHA-256 computations to save instructions in various places. Stephen Heumann 2017-07-03 18:17:51 -0500
  • d2bf9a782e Use shifts when called for, rather than more expensive rotates. Stephen Heumann 2017-07-03 16:36:34 -0500
  • 011628d3ce More rotate optimizations for SHA-256. Stephen Heumann 2017-07-03 15:45:18 -0500
  • 6891b77fbc Additional small rotate optimizations in SHA-256. Stephen Heumann 2017-07-03 15:30:46 -0500
  • 6940f1fef4 Use operations on bytes to rotate by multiples of 8 in SHA-256. Stephen Heumann 2017-07-03 15:07:58 -0500
  • 64fc1e62bb Do some optimization of the rotates in SHA-256. Stephen Heumann 2017-07-03 14:46:46 -0500
  • 61bc8f8b4f Reduce duplicated code in SHA-256 implementation. Stephen Heumann 2017-07-03 14:33:17 -0500
  • 91c107eb98 Add initial implementation of the basic block-processing function for SHA-256. Stephen Heumann 2017-07-03 14:27:19 -0500
  • 2c34d17925 Typos Stephen Heumann 2017-07-02 21:35:17 -0500
  • 58a3945d53 Add basic makefile. Stephen Heumann 2017-07-02 20:26:20 -0500
  • a04d36eb6c Add copyright notices and comments. Stephen Heumann 2017-07-02 18:41:21 -0500
  • cfadee23bb Add implementation and test for AES CTR mode. Stephen Heumann 2017-07-02 18:25:43 -0500
  • 924789510b Optimize AES CBC operations a bit. Stephen Heumann 2017-07-02 16:16:17 -0500
  • 6532a3abc4 Add timing tests for AES CBC encryption and decryption. Stephen Heumann 2017-07-02 15:56:22 -0500
  • c8b0fb904b Add .gitignore file. Stephen Heumann 2017-07-02 15:29:51 -0500
  • 4e0903a708 Add simple toy program for encrypting/decrypting files with AES. Stephen Heumann 2017-07-02 15:24:49 -0500
  • 60a7aec49c Add functions for AES CBC mode encryption and decryption. Stephen Heumann 2017-07-01 23:27:08 -0500
  • 0386f928ff Add comments and copyright notices, and rename chunk to block. Stephen Heumann 2017-07-01 17:39:26 -0500
  • b2d3d3ffa8 Add sha1sum program as a test/application of the SHA-1 computation. Stephen Heumann 2017-07-01 15:11:13 -0500
  • 0ad5d39f07 Tweaks to SHA-1 update and finalization code. Stephen Heumann 2017-07-01 14:27:25 -0500
  • 8b17a15ada Add implementations of the SHA-1 update and finalize operations. Stephen Heumann 2017-06-30 22:53:59 -0500
  • 3aa0d1b89f Update SHA-1 test program. Stephen Heumann 2017-06-30 13:35:33 -0500
  • 97fc1ce981 Small cleanups in SHA-1. Stephen Heumann 2017-06-30 13:23:29 -0500
  • 6c1d703b84 Don't duplicate identical code for the last three schedule computation phases. Stephen Heumann 2017-06-30 12:49:51 -0500
  • d97e0c0153 Don't update index value in each unrolled loop iteration. Stephen Heumann 2017-06-30 00:34:09 -0500
  • 2d8c85bd98 Unroll SHA-1 loop with variables substituted to avoid cycling values around. Stephen Heumann 2017-06-30 00:15:47 -0500
  • aab47e38e7 Compute SHA-1 message schedule 20 elements at a time, reusing storage. Stephen Heumann 2017-06-29 22:22:06 -0500
  • 7182fc5817 Use separate loops for the four parts of the SHA-1 computation. Stephen Heumann 2017-06-29 20:51:36 -0500
  • dfdb3186fd Add macros for rotates. Stephen Heumann 2017-06-29 20:41:49 -0500
  • ad4e0a0dd5 More SHA-1 optimizations. Stephen Heumann 2017-06-29 20:16:22 -0500
  • 13654c0888 Small optimizations in SHA-1 computation. Stephen Heumann 2017-06-29 19:52:52 -0500
  • a519776847 Add implementation of the basic block-processing function for SHA-1. Stephen Heumann 2017-06-29 16:54:49 -0500
  • 1cb8841a46 state -> context Stephen Heumann 2017-06-29 16:52:34 -0500
  • f60585cc3e Add note about context size. Stephen Heumann 2017-06-28 01:26:24 -0500
  • d4baf7dbe4 Usage message and indentation cleanups in test program. Stephen Heumann 2017-06-27 23:42:20 -0500
  • 4ffd064204 Add comments and copyright notices. Stephen Heumann 2017-06-27 23:28:27 -0500
  • e46264f0c4 Small decryption optimization, saving a value in a register between rounds. Stephen Heumann 2017-06-27 22:35:57 -0500
  • 634ff1e865 Optimize decryption code. Stephen Heumann 2017-06-27 20:44:14 -0500
  • 18dabeb621 Allow number of test iters to be given on command line. Stephen Heumann 2017-06-27 20:07:07 -0500
  • d9b8467bb7 Rename some interfaces. Stephen Heumann 2017-06-27 19:42:53 -0500
  • 14fe68de79 Time decryption as well as encryption. Stephen Heumann 2017-06-27 19:35:38 -0500
  • a522ab6d88 Optimize decryption a bit. Stephen Heumann 2017-06-27 19:24:06 -0500
  • 46fcb3badc Add support for AES-256 decryption. Stephen Heumann 2017-06-27 18:35:04 -0500
  • 0e3e511ba8 Add basic decryption implementation for AES-128 and AES-192. Stephen Heumann 2017-06-27 18:17:00 -0500
  • 9d9f62444d Add timing test. Stephen Heumann 2017-06-27 12:45:58 -0500
  • 4314644e75 Update to also support AES-192 and AES-256. Stephen Heumann 2017-06-27 01:36:56 -0500
  • 293828584f Optimize key expansion a bit, removing unnecessary loads. Stephen Heumann 2017-06-26 22:22:55 -0500
  • f04000c83d Save a few cycles by not reloading the last written byte between rounds. Stephen Heumann 2017-06-26 21:49:16 -0500
  • 75aac0daa9 Save a couple values on the stack rather than looking them up again. Stephen Heumann 2017-06-26 21:11:19 -0500
  • 301021e75e Cut out a few instructions by reusing subexpressions in registers. Stephen Heumann 2017-06-26 20:53:17 -0500
  • 3df0080371 Initial working implementation of AES-128 encryption. Stephen Heumann 2017-06-26 20:41:44 -0500