| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Merge pull request #3229 from Yawning/feature/moar-crypto | gingerBill | 2024-03-06 | 14 | -86/+730 |
| |\ | | | | | core/crypto: More improvements/additions | ||||
| | * | core/crypto: Misc cleanups and documentation improvements | Yawning Angel | 2024-03-04 | 5 | -39/+108 |
| | | | |||||
| | * | core/crypto/kmac: Initial import | Yawning Angel | 2024-03-04 | 2 | -11/+128 |
| | | | |||||
| | * | core/crypto/tuplehash: Initial import | Yawning Angel | 2024-03-04 | 2 | -0/+80 |
| | | | |||||
| | * | core/crypto/shake: Support cSHAKE | Yawning Angel | 2024-03-04 | 3 | -13/+144 |
| | | | |||||
| | * | core/crypto/_sha3: Cleanups, prepare for cSHAKE | Yawning Angel | 2024-03-04 | 4 | -38/+48 |
| | | | |||||
| | * | core/crypto/hkdf: Initial import | Yawning Angel | 2024-03-04 | 1 | -0/+103 |
| | | | |||||
| | * | core/crypto/pbkdf2: Initial import | Yawning Angel | 2024-03-04 | 1 | -0/+122 |
| | | | |||||
| | * | core/crypto/hmac: Add a clone method | Yawning Angel | 2024-03-04 | 1 | -0/+12 |
| | | | |||||
| * | | fix build tags | Laytan Laats | 2024-02-13 | 1 | -1/+6 |
| | | | |||||
| * | | implement part of core foundation framework bindings for err message | Laytan Laats | 2024-02-13 | 1 | -1/+2 |
| | | | |||||
| * | | remove darwin from bsd filename | Laytan Laats | 2024-02-13 | 1 | -0/+0 |
| | | | |||||
| * | | use `Security.framework` with `SecRandomCopyBytes` for rand_bytes on darwin | Laytan Laats | 2024-02-13 | 2 | -1/+12 |
| | | | |||||
| * | | add crypto.rand_bytes for Darwin and FreeBSD | Laytan Laats | 2024-02-13 | 3 | -16/+15 |
| |/ | |||||
| * | core/crypto: Stop using context.temp_allocator | Yawning Angel | 2024-02-07 | 3 | -15/+17 |
| | | | | | | | | | | | | The max digest size for the foreseeable future will be 512 bits, and the max block size is currently 1152 bits (SHA3-224). If people add more exotic hash algorithms without bumping the constants when required, tests will fail. The stream buffer will currently be 576 bytes, which is "fine" to just stick on the stack, and is a sensible multiple of the more common block size of 64 bytes. | ||||
| * | core/crypto/poly1305: Relax the tag length check on the verify helper | Yawning Angel | 2024-02-07 | 1 | -4/+0 |
| | | |||||
| * | core/crypto/hmac: Initial import | Yawning Angel | 2024-02-07 | 1 | -0/+163 |
| | | |||||
| * | core/crypto/hash: Make the low level interface allocator-less | Yawning Angel | 2024-02-07 | 2 | -177/+140 |
| | | | | | Just (ab)using reflect to victory is probably fine. | ||||
| * | core/crypto: Expose the block sizes for every hash algorithm | Yawning Angel | 2024-02-07 | 11 | -42/+100 |
| | | | | | | While I just went and made this private, this information is required for keying HMAC. | ||||
| * | core/crypto/shake: SHAKE is an XOF, not a hash | Yawning Angel | 2024-02-07 | 2 | -59/+27 |
| | | |||||
| * | core/crypto: Documentation cleanups | Yawning Angel | 2024-02-07 | 9 | -72/+239 |
| | | |||||
| * | core:crypto/hash: Add a generic higher level hash interface | Yawning Angel | 2024-02-07 | 15 | -1852/+899 |
| | | | | | | | There is a lot of code duplicated in convenience methods in each hash implementation, and having a generic hash type makes implementing higher-level constructs such as HMAC significantly easier down the road. | ||||
| * | core/crypto: Update the documentation (NFC) | Yawning Angel | 2023-11-17 | 1 | -35/+38 |
| | | |||||
| * | core/crypto: Exile keccak, md5 and sha1 to legacy | Yawning Angel | 2023-11-17 | 5 | -4/+14 |
| | | | | | | | In an perfect world these would just be removed, but the world is imperfect, and people are forced to interact/interface with things that are broken. | ||||
| * | core/crypto/sm3: API cleanup | Yawning Angel | 2023-11-17 | 1 | -8/+10 |
| | | | | | - sm3.Sm3_Context -> sm3.Context | ||||
| * | core/crypto/shake: API cleanup | Yawning Angel | 2023-11-17 | 1 | -34/+32 |
| | | | | | - shake.Shake_Context -> shake.Context | ||||
| * | core/crypto/sha3: API cleanup | Yawning Angel | 2023-11-17 | 1 | -52/+60 |
| | | | | | - sha3.Sha3_Context -> sha3.Context | ||||
| * | core/crypto/sha2: API cleanup | Yawning Angel | 2023-11-17 | 1 | -35/+45 |
| | | | | | | - sha2.Sha256_Context -> sha2.Context_256 - sha2.Sha512_Context -> sha2.Context_512 | ||||
| * | core/crypto/sha1: API cleanup | Yawning Angel | 2023-11-17 | 1 | -8/+10 |
| | | | | | -sha1.Sha1_Context -> Context | ||||
| * | core/crypto/md5: API cleanup | Yawning Angel | 2023-11-17 | 1 | -8/+10 |
| | | | | | - md5.Md5_Context -> md5.Context | ||||
| * | core/crypto/keccak: API cleanup | Yawning Angel | 2023-11-17 | 1 | -53/+60 |
| | | | | | - keccak.Keccak_Context -> keccak.Context | ||||
| * | core/crypto/blake2: API cleanup and bug fixes | Yawning Angel | 2023-11-17 | 3 | -42/+52 |
| | | | | | | | | - blake2s.Blake2s_Context -> blake2s.Context - blake2b.Blake2b_Context -> blake2b.Context - Fix the BLAKE2s low level API (context type was incorrect) - Support the configurable output size | ||||
| * | core/crypto/sha2: Refactor update/final | Yawning Angel | 2023-11-17 | 1 | -76/+78 |
| | | | | | | | | | | This is largely modeled off the SM3 versions of these routines, since the relevant parts of the code are the same between SHA-256 and SM3, and the alterations required to support SHA-512 are relatively simple. The prior versions of update and the transform would leak memory, and doing things this way also reduces the context buffer sizes by 1 block. | ||||
| * | core/crypto/util: Remove, no longer needed | Yawning Angel | 2023-11-17 | 1 | -146/+0 |
| | | |||||
| * | core/crypto/whirlpool: Remove, historical/exotic | Yawning Angel | 2023-11-17 | 2 | -807/+0 |
| | | |||||
| * | core/crypto/tiger: Remove, historical/exotic | Yawning Angel | 2023-11-17 | 4 | -972/+0 |
| | | |||||
| * | core/crypto/streebog: Remove, exotic | Yawning Angel | 2023-11-17 | 2 | -518/+0 |
| | | |||||
| * | core/crypto/ripemd: Remove, historical/exotic | Yawning Angel | 2023-11-17 | 2 | -920/+0 |
| | | |||||
| * | core/crypto/md4: Remove, badly broken | Yawning Angel | 2023-11-17 | 2 | -264/+0 |
| | | |||||
| * | core/crypto/md2: Remove, badly broken | Yawning Angel | 2023-11-17 | 2 | -183/+0 |
| | | |||||
| * | core/crypto/jh: Remove, use SHA-3 | Yawning Angel | 2023-11-17 | 2 | -585/+0 |
| | | |||||
| * | core/crypto/haval: Remove, badly broken | Yawning Angel | 2023-11-17 | 2 | -1815/+0 |
| | | |||||
| * | core/crypto/groestl: Remove, use SHA-3 | Yawning Angel | 2023-11-17 | 2 | -654/+0 |
| | | |||||
| * | core/crypto/gost: Remove, exotic | Yawning Angel | 2023-11-17 | 2 | -383/+0 |
| | | |||||
| * | core/crypto/blake: Remove, use BLAKE2b/BLAKE2s | Yawning Angel | 2023-11-17 | 2 | -727/+0 |
| | | |||||
| * | core/crypto/sha2: Add SHA-512/256 | Yawning Angel | 2023-11-17 | 1 | -5/+102 |
| | | |||||
| * | core/crypto: Add more assertions to the low level API | Yawning Angel | 2023-11-17 | 11 | -11/+86 |
| | | | | | | Assertions here are "fine" and it matches what the code that has the checks in init/update/final already does. | ||||
| * | core/crypto/sha2: Fix overflow for large amounts of hashed data | Yawning Angel | 2023-11-17 | 1 | -5/+6 |
| | | |||||
| * | core/crypto/shake: Add a TODO comment (NFC) | Yawning Angel | 2023-11-17 | 1 | -0/+3 |
| | | |||||
| * | core/crypto: Change hash asserts to panics | Yawning Angel | 2023-11-17 | 12 | -85/+44 |
| | | | | | | | | | | | Assertions can be disabled, but at the point where cryptographic anything is involved, a single branch has an infinitesimally small performance impact. The correct thing to do is to punch the caller in the face if they do something that is blatantly incorrect, especially in a security critical setting. | ||||