3 releases

0.1.2 Sep 6, 2021
0.1.1 Aug 13, 2021
0.1.0 Aug 8, 2021

#1539 in Cryptography

MIT OR Apache-2.0 OR CC-BY-4.0

88KB
2.5K SLoC

libkrypton

It's a toy cryptography library.

Security

It should theoretically be correctly implemented and resistant against timing attacks. However, you have no assurances of it being actually secure without proper auditing. You should never use this in production for that reason.

Algorithms

This library implements various algorithms:

  • ChaCha20, a 256-bit security level stream cipher and pseudorandom entropy source
  • Poly1305, a ~100-bit security level MAC / authenticator
  • X25519, a 128-bit security level Diffie-Hellman key exchange over the Curve25519 elliptic curve
  • Ed25519, a 128-bit security level digital signature over the Edwards25519 elliptic curve
  • SHA-2, a family of hash functions targeting multiple security levels

Support for no_std

This library has #![no_std] support if compiled with the std default feature disabled.

Random values

In the case that you end up using this library:

  1. Reconsider your life choices.
  2. Consider using the getrandom or the rand crates to generate random values, as libkrypton provides no way to securely generate random values for use as private keys.

No runtime deps

Features