wolf-crypto 0.1.0-alpha.2

Safe and thin API for wolfSSL's wolfcrypt
Documentation

Table of Contents

  1. wolf-crypto
  2. Current Priority and Roadmap
    1. Roadmap [0/5]
  3. License
  4. Notes

WARNING - THIS LIBRARY IS IN ITS EARLY STAGES, IT IS NOT READY FOR PRODUCTION USE, USE AT YOUR OWN RISK.

wolf-crypto

This library seeks to provide a safe, zero-cost, API for wolfcrypt by wolfSSL. It is in its very early stages, some feature flags are misleading, for instance allow-non-fips implies that when disabled only FIPS 140-3 certified cryptography is used. This is not currently the case due to the associated wolf-crypto-sys not currently leveraging the FIPS-MODE feature. This feature will eventually be enabled, as it was my original reason for beginning to work on this, though the library as previously mentioned is incredibly immature.

Currently, the hash module is the most tested segment of this codebase, outside of this module and the aes module I personally would not be comfortable using anything in a general purpose application (not any of my professional work in security).

Current Priority and Roadmap

  • Focus on implementing and stabilizing the core FIPS 140-3 compatible algorithms.
  • Improve test coverage in hashing, symmetric encryption, and AEAD modules.
  • Incrementally implement and test asymmetric cryptographic functions (RSA, ECDSA, ECDH).
  • Enable FIPS-MODE support in wolf-crypto-sys to align with the FIPS compliance goals.

Roadmap [0/5]

  • [-] Hashing [3/6]

    • SHA2 [6/6]
      • SHA-224
      • SHA-256
      • SHA-384
      • SHA-512
      • SHA-512/224
      • SHA-512/256
    • [-] SHA3 [4/5]
      • SHA3-224
      • SHA3-256
      • SHA3-384
      • SHA3-512
      • SHAKE [0/2]
        • SHAKE128
        • SHAKE256
    • SHA
    • RIPEMD-160
    • MD [2/2]
      • MD5
      • MD4
    • [-] BLAKE2 [1/2]
      • BLAKE2b
      • BLAKE2s
  • [-] AEAD [1/5]

    • AES-GCM [3/3]
      • 256
      • 192
      • 128
    • ChaCha20-Poly1305 [0/2]
      • 256
      • 128
    • AES-CCM [0/3]
      • 256
      • 192
      • 128
    • AES-EAX [0/3]
      • 256
      • 192
      • 128
    • AES-SIV [0/3]
      • 256
      • 192
      • 128
  • [-] Symmetric Encryption [0/3]

    • [-] AES [1/4]
      • CTR [3/3]
        • 256
        • 192
        • 128
      • CBC [0/3]
        • 256
        • 192
        • 128
      • XTS [0/2]
        • 256
        • 128
      • CFB [0/3]
        • 256
        • 192
        • 128
    • ChaCha20 [0/2]
      • 256
      • 128
    • 3DES [0/1]
      • 168
  • MAC [0/2]

    • HMAC [0/9]
      • SHA-256
      • SHA-384
      • SHA-512
      • SHA3-224
      • SHA3-256
      • SHA3-384
      • SHA3-512
      • SHA
      • MD5
    • Poly1305
  • Writing the Asymmetric Encryption Section

License

This library is under GPLv2 licensing unless you purchased a commercial license from wolfSSL.

Notes

  • Affiliation: I am not affiliated with wolfSSL, I just enjoy security and have appreciation for their work.
  • Why is this named wolf-crypto and not wolfcrypt: I did not want to take the official name by wolfSSL.