aboutsummaryrefslogtreecommitdiff
path: root/core/crypto
Commit message (Collapse)AuthorAgeFilesLines
* Added rand_bytes for Windows in core:cryptozhibog2022-03-022-1/+24
|
* initial OpenBSD supportSébastien Marie2022-02-252-1/+13
|
* Add generic procedure for default SipHash 2-4zhibog2022-02-221-0/+20
|
* Added SipHash + tests and fixed remaining semicolons in vendor/botanzhibog2022-02-221-0/+316
|
* Merge branch 'master' into odin-global-constants-as-enumsgingerBill2022-02-1521-62/+62
|\
| * Strip unneeded semicolonsgingerBill2022-01-2521-62/+62
| |
* | Convert `ODIN_OS` and `ODIN_ARCH` to use enums rather than use stringsgingerBill2022-01-203-3/+3
|/
* `ODIN_ENDIAN` changed to an enum constant; `ODIN_ENUM_STRING` is the new ↵gingerBill2022-01-152-3/+3
| | | | string version of the old constant
* Rename architecture `386` to `i386`gingerBill2022-01-152-2/+2
|
* Extended crypto API by variants that write the result into a destination ↵zhibog2021-12-3122-479/+1893
| | | | buffer, instead of returning it
* crypto: Add rand_bytesYawning Angel2021-11-173-0/+55
| | | | | | | 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 chacha20poly1305Yawning Angel2021-11-171-0/+146
| | | | | This package implements the chacha20poly1305 AEAD construct as specified in RFC 8439.
* core/crypto: Add chacha20Yawning Angel2021-11-171-0/+581
| | | | | | | | | | | | 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/poly1305: Triple performance on amd64 with -o:speedYawning Angel2021-11-171-13/+34
|
* core/crypto: Add poly1305Yawning Angel2021-11-173-0/+564
| | | | | This package implements the Poly1305 MAC algorithm as specified in RFC 8439, using routines taked from fiat-crypto and poly1305-donna.
* core/crypto: Add x25519Yawning Angel2021-11-175-0/+939
| | | | | This package implements the X25519 key agreement scheme as specified in RFC 7748, using routines taken from fiat-crypto and Monocypher.
* core/crypto: Add constant-time memory comparison routinesYawning Angel2021-11-171-0/+41
| | | | | | | | | Using a constant-time comparison is required when comparing things like MACs, password digests, and etc to avoid exposing sensitive data via trivial timing attacks. These routines could also live under core:mem, but they are somewhat specialized, and are likely only useful for cryptographic applications.
* Removed context switching system from the crypto library to simplify the codezhibog2021-11-0930-7083/+3063
|
* Fix order of operations to make it correct and work with -o:speed flafzhibog2021-11-073-7/+7
|
* Added note due address thread safetyzhibog2021-10-161-0/+3
|
* Fixed some typos in proc nameszhibog2021-10-166-62/+62
|
* Remove the read_entire_file from the crypto utils and now use the one within ↵zhibog2021-10-1624-104/+64
| | | | core:os
* Improved API. hash_file procs now just take a file handle instead of a pathzhibog2021-10-1526-794/+696
|
* Added note for the botan.dll to README.mdzhibog2021-10-141-0/+1
|
* Add crypto library. Additional information is included in the README.mdzhibog2021-10-1431-0/+16416