Commit graph

124 commits

Author SHA1 Message Date
Dag-Erling Smørgrav
fe2d45ad56 Create rol / ror functions for all integer sizes. 2014-07-19 15:36:07 +00:00
Dag-Erling Smørgrav
0023f57ab5 Add a library of general (non-cryptographic) hash functions, currently
consisting of the Pearson string hash function and the Murmur3-32 hash
function.
2014-07-19 06:03:57 +00:00
Dag-Erling Smørgrav
910c782b2f In the md4 code, use a 64-bit counter to avoid a manual carry operation. 2014-07-12 22:10:57 +00:00
Dag-Erling Smørgrav
340b3240cf Consistently use const void * for data and keys, uint8_t * for digests
and MACs, and uint8_t, uint32_t or uint64_t (as appropriate) for internal
state.  Also remove a few unnecessary casts.
2014-07-12 21:57:31 +00:00
Dag-Erling Smørgrav
30c8e19de7 Remove HMAC-MD2 and HMAC-MD4. They may or may not reappear at a later
date in libcryb-mac.
2014-07-11 13:54:22 +00:00
Dag-Erling Smørgrav
729e501b79 Mechanical whitespace cleanup 2014-07-11 13:40:06 +00:00
Dag-Erling Smørgrav
2c697a472b Implement SHA-224 and HMAC-SHA224. 2014-07-11 13:33:58 +00:00
Dag-Erling Smørgrav
6aa7f9a0e6 Implement HMAC-SHA{256,384,512} and add unit tests. Remove pre-existing
HMAC implementations from the libcperciva and XySSL code.
2014-07-11 13:01:32 +00:00
Dag-Erling Smørgrav
5bb81214cc Instead of storing the key in the hmac_sha1_ctx so we can compute the
output pad in hmac_sha1_final(), prepare a sha1 context in advance and
discard the key as early as possible.
Inspired by Colin Percival's HMAC-SHA-256 implementation.
2014-07-11 10:28:55 +00:00
Dag-Erling Smørgrav
cc13b6a16a Remove k from the sha1 context structure, as it is a constant.
Rearrange the sha1 context structure to improve alignment.
2014-07-11 09:17:05 +00:00
Dag-Erling Smørgrav
63bcbcca20 Rename the HMAC-SHA1 code. 2014-07-10 23:57:47 +00:00
Dag-Erling Smørgrav
b0ff5af2ba Clean up headers and typedefs.
Fix context length in the algorithm descriptors.
Expose the block length and include it in the algorithm descriptors.
Complete the list of available digest algorithms.
2014-07-10 18:09:47 +00:00
Dag-Erling Smørgrav
4c17e0f386 Empty and unlikely to ever be used. 2014-07-10 18:01:40 +00:00
Dag-Erling Smørgrav
dff909ba65 Spell the name of the University of Oslo in English. 2014-07-10 17:15:54 +00:00
Dag-Erling Smørgrav
efd34d4cc7 In an earlier version of the API, the _init function was responsible
for allocating the context structure.  This is no longer the case, but
the _init function type was not updated to reflect this.
2014-07-10 15:37:40 +00:00
Dag-Erling Smørgrav
593125c353 Import sha256 from libcperciva
Import md2, md4, sha384 and sha512 from XySSL
2014-07-10 14:51:07 +00:00
Dag-Erling Smørgrav
bb9690cd94 We need to distribute (but not install) these headers. 2014-07-10 14:39:28 +00:00
Dag-Erling Smørgrav
1d2f0661b3 Clean up namespace macros and provide algorithm definitions. 2014-07-10 13:53:05 +00:00
Dag-Erling Smørgrav
2f3ecfa7ba Fix include guard, and always declare the functions. 2014-07-10 13:40:23 +00:00
Dag-Erling Smørgrav
77202e13a8 Update setprops and fix props again 2014-07-10 13:33:08 +00:00
Dag-Erling Smørgrav
41c2325beb Fix copyright; this originated in OpenPAM. 2014-07-04 11:34:25 +00:00
Dag-Erling Smørgrav
5c33011d59 Add missing header 2014-07-04 11:26:45 +00:00
Dag-Erling Smørgrav
601403cba3 Use custom keywords. 2014-07-04 11:20:46 +00:00
Dag-Erling Smørgrav
ae99587ba4 initial code drop 2014-07-04 11:18:53 +00:00