Yawning Angel e1ba69ea51 base/runtime: Add `rand_bytes` and `HAS_RAND_BYTES` 1 month ago
..
_aes 655fab7227 Add core/hyperthread count for Windows and Linux (#5216) 7 months ago
_blake2 842cfee0f3 Change Odin's LICENSE to zlib from BSD 3-clause 2 months ago
_chacha20 45219f240e Rename `SIMD_IS_EMULATED` to capability-affirmative `HAS_HARDWARE_SIMD` 7 months ago
_edwards25519 2f301e46dc core/crypto: Switch to using `ensure` 9 months ago
_fiat 2f301e46dc core/crypto: Switch to using `ensure` 9 months ago
_sha3 842cfee0f3 Change Odin's LICENSE to zlib from BSD 3-clause 2 months ago
aead 7a9ea3ee6d Further overhaul of package line comments. 3 months ago
aegis 7a9ea3ee6d Further overhaul of package line comments. 3 months ago
aes 7a9ea3ee6d Further overhaul of package line comments. 3 months ago
blake2b 842cfee0f3 Change Odin's LICENSE to zlib from BSD 3-clause 2 months ago
blake2s 842cfee0f3 Change Odin's LICENSE to zlib from BSD 3-clause 2 months ago
chacha20 7a9ea3ee6d Further overhaul of package line comments. 3 months ago
chacha20poly1305 7a9ea3ee6d Further overhaul of package line comments. 3 months ago
deoxysii 7a9ea3ee6d Further overhaul of package line comments. 3 months ago
ed25519 7a9ea3ee6d Further overhaul of package line comments. 3 months ago
hash 842cfee0f3 Change Odin's LICENSE to zlib from BSD 3-clause 2 months ago
hkdf 7a9ea3ee6d Further overhaul of package line comments. 3 months ago
hmac 7a9ea3ee6d Further overhaul of package line comments. 3 months ago
kmac 7a9ea3ee6d Further overhaul of package line comments. 3 months ago
legacy 842cfee0f3 Change Odin's LICENSE to zlib from BSD 3-clause 2 months ago
pbkdf2 7a9ea3ee6d Further overhaul of package line comments. 3 months ago
poly1305 7a9ea3ee6d Further overhaul of package line comments. 3 months ago
ristretto255 7a9ea3ee6d Further overhaul of package line comments. 3 months ago
sha2 842cfee0f3 Change Odin's LICENSE to zlib from BSD 3-clause 2 months ago
sha3 842cfee0f3 Change Odin's LICENSE to zlib from BSD 3-clause 2 months ago
shake 842cfee0f3 Change Odin's LICENSE to zlib from BSD 3-clause 2 months ago
siphash 784f320e12 Fix indentation in comments 1 month ago
sm3 842cfee0f3 Change Odin's LICENSE to zlib from BSD 3-clause 2 months ago
tuplehash 7a9ea3ee6d Further overhaul of package line comments. 3 months ago
x25519 7a9ea3ee6d Further overhaul of package line comments. 3 months ago
x448 7a9ea3ee6d Further overhaul of package line comments. 3 months ago
README.md 842cfee0f3 Change Odin's LICENSE to zlib from BSD 3-clause 2 months ago
crypto.odin e1ba69ea51 base/runtime: Add `rand_bytes` and `HAS_RAND_BYTES` 1 month ago

README.md

crypto

A cryptography library for the Odin language.

Supported

This package offers various algorithms implemented in Odin, along with useful helpers such as access to the system entropy source, and a constant-time byte comparison.

Implementation considerations

  • The crypto packages are not thread-safe.
  • Best-effort is make to mitigate timing side-channels on reasonable architectures. Architectures that are known to be unreasonable include but are not limited to i386, i486, and WebAssembly.
  • Implementations assume a 64-bit architecture (64-bit integer arithmetic is fast, and includes add-with-carry, sub-with-borrow, and full-result multiply).
  • Hardware sidechannels are explicitly out of scope for this package. Notable examples include but are not limited to:
    • Power/RF side-channels etc.
    • Fault injection attacks etc.
    • Hardware vulnerabilities ("apply mitigations or buy a new CPU").
  • The packages attempt to santize sensitive data, however this is, and will remain a "best-effort" implementation decision. As Thomas Pornin puts it "In general, such memory cleansing is a fool's quest."
  • All of these packages have not received independent third party review.

License

This library is made available under the zlib license.