| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | tests/core/crypto: Use the `tests/common` boilerplate | Yawning Angel | 2024-03-04 | 6 | -105/+85 |
| | | |||||
| * | core/crypto/kmac: Initial import | Yawning Angel | 2024-03-04 | 1 | -0/+98 |
| | | |||||
| * | core/crypto/tuplehash: Initial import | Yawning Angel | 2024-03-04 | 2 | -131/+342 |
| | | |||||
| * | core/crypto/shake: Support cSHAKE | Yawning Angel | 2024-03-04 | 1 | -6/+60 |
| | | |||||
| * | core/crypto/hkdf: Initial import | Yawning Angel | 2024-03-04 | 1 | -0/+67 |
| | | |||||
| * | core/crypto/pbkdf2: Initial import | Yawning Angel | 2024-03-04 | 2 | -0/+120 |
| | | |||||
| * | core/crypto: Stop using context.temp_allocator | Yawning Angel | 2024-02-07 | 1 | -0/+25 |
| | | | | | | | | | | | | 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/hmac: Initial import | Yawning Angel | 2024-02-07 | 2 | -130/+243 |
| | | |||||
| * | core/crypto/hash: Make the low level interface allocator-less | Yawning Angel | 2024-02-07 | 1 | -4/+10 |
| | | | | | Just (ab)using reflect to victory is probably fine. | ||||
| * | tests/core/crypto: Reorganize | Yawning Angel | 2024-02-07 | 3 | -665/+671 |
| | | | | | | | | All of our crypto is modern now unless exiled to the legacy sub-package, so move the test cases for the currently un-unified algorithms into the main test driver file, and rename the benchmark driver to reflect reality. | ||||
| * | core/crypto/shake: SHAKE is an XOF, not a hash | Yawning Angel | 2024-02-07 | 2 | -31/+79 |
| | | |||||
| * | tests/core/crypto: Cleanup/modernize a bit | Yawning Angel | 2024-02-07 | 3 | -249/+366 |
| | | |||||
| * | core:crypto/hash: Add a generic higher level hash interface | Yawning Angel | 2024-02-07 | 2 | -388/+615 |
| | | | | | | | 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: Exile keccak, md5 and sha1 to legacy | Yawning Angel | 2023-11-17 | 1 | -3/+3 |
| | | | | | | | 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/whirlpool: Remove, historical/exotic | Yawning Angel | 2023-11-17 | 1 | -28/+0 |
| | | |||||
| * | core/crypto/tiger: Remove, historical/exotic | Yawning Angel | 2023-11-17 | 1 | -110/+0 |
| | | |||||
| * | core/crypto/streebog: Remove, exotic | Yawning Angel | 2023-11-17 | 1 | -31/+0 |
| | | |||||
| * | core/crypto/ripemd: Remove, historical/exotic | Yawning Angel | 2023-11-17 | 1 | -85/+0 |
| | | |||||
| * | core/crypto/md4: Remove, badly broken | Yawning Angel | 2023-11-17 | 1 | -21/+0 |
| | | |||||
| * | core/crypto/md2: Remove, badly broken | Yawning Angel | 2023-11-17 | 1 | -21/+0 |
| | | |||||
| * | core/crypto/jh: Remove, use SHA-3 | Yawning Angel | 2023-11-17 | 1 | -61/+0 |
| | | |||||
| * | core/crypto/haval: Remove, badly broken | Yawning Angel | 2023-11-17 | 1 | -171/+0 |
| | | |||||
| * | core/crypto/groestl: Remove, use SHA-3 | Yawning Angel | 2023-11-17 | 1 | -61/+0 |
| | | |||||
| * | core/crypto/gost: Remove, exotic | Yawning Angel | 2023-11-17 | 1 | -22/+0 |
| | | |||||
| * | core/crypto/blake: Remove, use BLAKE2b/BLAKE2s | Yawning Angel | 2023-11-17 | 1 | -61/+0 |
| | | |||||
| * | core/crypto/sha2: Add SHA-512/256 | Yawning Angel | 2023-11-17 | 1 | -0/+16 |
| | | |||||
| * | Add missing comma | gingerBill | 2023-05-29 | 1 | -1/+1 |
| | | |||||
| * | core/crypto: Add private attributes for internals | Yawning Angel | 2023-04-08 | 1 | -1/+7 |
| | | | | | | These constants and internal routines are not intended for use outside the actual implementations themselves. | ||||
| * | Fix issue 1761. Added the test vector to the core and vendor tests | zhibog | 2022-05-04 | 1 | -0/+4 |
| | | |||||
| * | [varint] Add LEB128 decoding + tests | Jeroen van Rijn | 2022-03-08 | 1 | -891/+889 |
| | | | | | Also make tests in general less spammy: Don't print [PASS] for each successful test, only report failures and progress. | ||||
| * | [tests] Make test runners exit with errorlevel 1 if a test fails. | Jeroen van Rijn | 2022-03-03 | 1 | -0/+4 |
| | | |||||
| * | Added SipHash + tests and fixed remaining semicolons in vendor/botan | zhibog | 2022-02-22 | 1 | -0/+43 |
| | | |||||
| * | Update tests | gingerBill | 2022-01-20 | 1 | -1/+1 |
| | | |||||
| * | crypto: Add rand_bytes | Yawning Angel | 2021-11-17 | 2 | -0/+41 |
| | | | | | | | | This adds `rand_bytes(dst: []byte)` which fills the destination buffer with entropy from the cryptographic random number generator. This takes the "simple is best" approach and just directly returns the OS CSPRNG output instead of doing anything fancy (a la OpenBSD's arc4random). | ||||
| * | core/crypto: Add chacha20poly1305 | Yawning Angel | 2021-11-17 | 2 | -2/+130 |
| | | | | | | This package implements the chacha20poly1305 AEAD construct as specified in RFC 8439. | ||||
| * | core/crypto: Add chacha20 | Yawning Angel | 2021-11-17 | 2 | -4/+147 |
| | | | | | | | | | | | | | This package implements the ChaCha20 stream cipher as specified in RFC 8439, and the somewhat non-standard XChaCha20 variant that supports a 192-bit nonce. While an IETF draft for XChaCha20 standardization exists, implementations that pre-date the draft use a 64-bit counter, instead of the IETF-style 32-bit one. This implementation opts for the latter as compatibility with libsodium is more important than compatibility with an expired IETF draft. | ||||
| * | core/crypto: Add poly1305 | Yawning Angel | 2021-11-17 | 2 | -0/+132 |
| | | | | | | This package implements the Poly1305 MAC algorithm as specified in RFC 8439, using routines taked from fiat-crypto and poly1305-donna. | ||||
| * | core/crypto: Add x25519 | Yawning Angel | 2021-11-17 | 2 | -0/+100 |
| | | | | | | This package implements the X25519 key agreement scheme as specified in RFC 7748, using routines taken from fiat-crypto and Monocypher. | ||||
| * | Removed context switching system from the crypto library to simplify the code | zhibog | 2021-11-09 | 1 | -183/+0 |
| | | |||||
| * | Move botan.dll to correct directory | zhibog | 2021-10-14 | 1 | -0/+0 |
| | | |||||
| * | Added botan.dll for tests | zhibog | 2021-10-14 | 1 | -0/+0 |
| | | |||||
| * | Add crypto library. Additional information is included in the README.md | zhibog | 2021-10-14 | 1 | -0/+1279 |