-
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