/Krypto.jl

A futuristic crypto library. In Julia.

Primary LanguageJuliaOtherNOASSERTION

Krypto.jl

A futuristic crypto library. In Julia.

100% pure Julia implementations of most popular cryptographic algorithms. Contains native implementations of PQC (Post-Quantum Cryptography). Contributions welcome.

Disclaimer

WARNING: This package is in a Proof-of-Concept state and is NOT (yet) ready for production use. Proceed at your own risk.

Current features

  • 100% native Julia implementations. No wrappers. No non-Julia dependencies.
  • Support for RSA (working primitives, PKCS#1 not working)
  • Support for RLWE (working crypto-primitives, non-working NTT)
  • Support for ECC math (no primitives of yet)
  • Support for Salsa20 (fully working)

Algorithms

Implementation status: complete, partial. The higher an algorithm is listed in a specific section, the more of it is actually implemented.

Asymmetric

Symmetric

Block ciphers

Stream ciphers

Dependencies

Krypto.jl requires some packages to run properly. Besides the julia binary, you'll need the following.

  • SHA (general use of SHA), at least 0.3
  • Primes (needed by RSA and others), at least 0.1.1

License

MIT. Whatever happens to you, remember: it's not my fault but the code you used is. ¯\(ツ)