Skip to content

Testing suite

brycx edited this page Oct 7, 2018 · 34 revisions

This section explains how orion is being tested.

Official test vectors

  • RFC 4231 test vectors for HMAC
  • NIST CAVP HMACVS test vectors (Only test cases where the MAC length matches the digest size)
  • KeccakCodePackage test vectors for cSHAKE
  • RFC 8439 test vectors for ChaCha20, Poly1305 and ChaCha20Poly1305.

Custom test vectors

  • Custom test vectors for PBKDF2. These test vectors have been generated with the cryptography.io Python package. More information here.
  • Test vectors from here for HKDF.
  • Custom test vectors for HKDF. These test vectors have been generated with the cryptography.io Python package. More information here.

Other test vectors

  • OpenSSL test vectors for Poly1305 that ring uses.
  • BoringSSL test vectors for ChaCha20 and ChaCha20Poly1305.
  • Monocypher test vectors for Poly1305.
  • Wycheproof test vectors for ChaCha20Poly1305.

Fuzzing

orion is fuzzed using libFuzzer through cargo-fuzz. Fuzzing is done both to detect unwanted behavior but also verify the results. Right now, orion is fuzzed along with ring (amongst others) to see if the results that orion produces match those that ring does.

Clone this wiki locally