Stephen Heumann
e1ea84f11a
Make AES-CMAC context slightly smaller.
...
Since AES-CMAC is based on AES-128, the state specific to AES-CMAC can overlap the latter parts of the AES context structure, which are used only by AES-192 or AES-256.
2024-06-26 21:43:49 -06:00
Stephen Heumann
6a1eeb40ea
Update to newer ISC license wording with "and/or".
2024-06-26 20:46:58 -06:00
Stephen Heumann
58a9c564ae
Implement "KDF in Counter Mode" from NIST SP 800-108.
...
This is currently instantiated with HMAC-SHA256 as the pseudo-random function, but is implemented using a template so that other PRFs could also be used.
2024-04-15 19:48:42 -05:00
Stephen Heumann
d3d3dbbad9
Add and use result macros for all HMACs.
2024-04-15 18:39:36 -05:00
Stephen Heumann
0ae8f97c3c
Add header declarations and tests for all incremental HMACs.
2024-04-15 18:29:01 -05:00
Stephen Heumann
60e4998d16
Implement AES-CMAC.
2024-04-14 22:17:07 -05:00
Stephen Heumann
191a27af86
Update HMAC-MD5 code to support processing a message in multiple parts.
...
This is implemented in the common HMAC code and can apply to the other hash algorithms as well, but the header and tests are currently only implemented for HMAC-MD5.
2023-12-10 15:09:57 -06:00
Stephen Heumann
5a986a996f
Implement RC4.
...
This is another old algorithm with known vulnerabilities, but it is still used in some places.
2023-12-01 21:39:40 -06:00
Stephen Heumann
aece58138f
Update .gitignore file.
2023-11-30 18:35:36 -06:00
Stephen Heumann
e32645eaae
Correct a comment.
2023-11-30 18:35:23 -06:00
Stephen Heumann
8469c7744c
Implement MD4.
...
This is an old and insecure hash algorithm, but some things of interest still use it.
2023-11-30 18:35:11 -06:00
Stephen Heumann
c1e1caa766
Implement HMAC-MD5, HMAC-SHA1, and HMAC-SHA256.
2023-11-29 20:03:37 -06:00
Stephen Heumann
4f7c6c0eb8
Fix typos in comments.
2017-11-26 09:25:41 -06:00
Stephen Heumann
95acb9f43f
Mention sources of AES test vectors.
2017-11-25 21:27:25 -06:00
Stephen Heumann
eaa0d4865c
Add README.
2017-11-25 21:26:13 -06:00
Stephen Heumann
ed65d421fc
Add all generated programs and libraries to .gitignore.
2017-11-20 14:59:28 -06:00
Stephen Heumann
05ecf65baf
Add LICENSE file.
2017-11-20 14:51:00 -06:00
Stephen Heumann
8050c05a7a
Don't call srand unless we're actually randomizing read sizes.
2017-11-19 23:47:30 -06:00
Stephen Heumann
e288a7bc83
Allow checksumming multiple files, and print filenames with the checksums.
2017-11-19 23:41:05 -06:00
Stephen Heumann
0475dbf132
Display error messages where appropriate in checksum utilities.
2017-11-19 23:30:13 -06:00
Stephen Heumann
b5b268982a
By default, don't randomize read sizes in checksum programs.
...
This can still be done by adding a #define, if desired.
2017-11-19 22:48:43 -06:00
Stephen Heumann
df0de0d979
Use a common template for all the file checksum programs.
2017-11-19 22:43:31 -06:00
Stephen Heumann
5c9b2f0877
Build libraries containing the crypto and hash codes.
...
There are separate libraries for crypto and hashing, lib65816crypto and lib65816hash. The test programs are now built by linking to the libraries.
2017-11-19 22:40:09 -06:00
Stephen Heumann
756ff98a6a
Revise makefile to generate object files separately from programs.
2017-11-19 21:07:45 -06:00
Stephen Heumann
8dddba4f6e
Work around ORCA/C bug that affects lower optimization levels.
2017-07-05 12:24:37 -05:00
Stephen Heumann
4c0265d921
Work around ORCA/C bug.
2017-07-05 11:44:22 -05:00
Stephen Heumann
5b7c832600
One more tweak to MD5 rotate optimizations.
2017-07-04 14:42:01 -05:00
Stephen Heumann
2f34f006ba
Force MD5 tables to be page-aligned, which should save a cycle in some cases.
2017-07-04 14:37:17 -05:00
Stephen Heumann
e90af7c1a4
Small optimization to eliminate some unnecessary loads in MD5.
2017-07-04 14:31:04 -05:00
Stephen Heumann
129f371902
Add zero bytes to optimize some rotates in MD5.
2017-07-04 14:17:51 -05:00
Stephen Heumann
1d1d5251f6
Optimize the operations used for various shift sizes in MD5.
2017-07-04 13:57:01 -05:00
Stephen Heumann
748e0b5c24
Small optimizations for MD5.
2017-07-04 12:39:11 -05:00
Stephen Heumann
0f144df99b
Add implementation of MD5 hash function.
2017-07-04 12:15:00 -05:00
Stephen Heumann
015ae8559f
Add makefile entries for SHA-256 programs.
2017-07-03 23:58:57 -05:00
Stephen Heumann
1f3d51a5c9
Add sha256sum program.
2017-07-03 23:56:36 -05:00
Stephen Heumann
e7aa261e19
Add update and finalize functions for SHA-256.
2017-07-03 23:53:43 -05:00
Stephen Heumann
458e769212
Add initialization function to permit computation of SHA-224 hashes.
...
SHA-224 uses the exact same computation as SHA-256, just with different initial values.
2017-07-03 23:40:36 -05:00
Stephen Heumann
11148c78d1
Remove unused macros.
2017-07-03 23:05:51 -05:00
Stephen Heumann
bcc0efc327
Add zero bytes around SHA-256 state variables to optimize rotates.
2017-07-03 22:58:58 -05:00
Stephen Heumann
239024c3ce
Remove unneeded instruction.
2017-07-03 20:46:26 -05:00
Stephen Heumann
7034be04fb
Use more efficient approach for addressing into k array in SHA-256 computation.
2017-07-03 20:41:53 -05:00
Stephen Heumann
f0f034760b
Optimize SHA-256 computations to save instructions in various places.
2017-07-03 20:03:45 -05:00
Stephen Heumann
d2bf9a782e
Use shifts when called for, rather than more expensive rotates.
2017-07-03 17:12:13 -05:00
Stephen Heumann
011628d3ce
More rotate optimizations for SHA-256.
2017-07-03 15:50:20 -05:00
Stephen Heumann
6891b77fbc
Additional small rotate optimizations in SHA-256.
2017-07-03 15:30:46 -05:00
Stephen Heumann
6940f1fef4
Use operations on bytes to rotate by multiples of 8 in SHA-256.
2017-07-03 15:15:18 -05:00
Stephen Heumann
64fc1e62bb
Do some optimization of the rotates in SHA-256.
2017-07-03 14:46:46 -05:00
Stephen Heumann
61bc8f8b4f
Reduce duplicated code in SHA-256 implementation.
2017-07-03 14:33:17 -05:00
Stephen Heumann
91c107eb98
Add initial implementation of the basic block-processing function for SHA-256.
2017-07-03 14:27:19 -05:00
Stephen Heumann
2c34d17925
Typos
2017-07-02 22:54:18 -05:00