8 releases (5 breaking)

0.6.0 Aug 27, 2024
0.5.2 Aug 27, 2024
0.5.1 Jul 13, 2023
0.5.0 Mar 7, 2023
0.1.0 Jun 26, 2021

#108 in Cryptography

Download history 2965/week @ 2024-08-12 3607/week @ 2024-08-19 3593/week @ 2024-08-26 3545/week @ 2024-09-02 2962/week @ 2024-09-09 2556/week @ 2024-09-16 2683/week @ 2024-09-23 2944/week @ 2024-09-30 2905/week @ 2024-10-07 2749/week @ 2024-10-14 2958/week @ 2024-10-21 3300/week @ 2024-10-28 3198/week @ 2024-11-04 2900/week @ 2024-11-11 3352/week @ 2024-11-18 2717/week @ 2024-11-25

12,227 downloads per month
Used in 8 crates (7 directly)

Apache-2.0

18MB
1.5K SLoC

Wycheproof (Deserialized)

crates.io docs.rs

Google's Wycheproof project is an immensely useful set of tests which cover common corner cases in cryptographic code.

The author is currently on their third job in a row where he had to write code in Rust to deserialize the JSON formatted Wycheproof tests so they can be used to test some code. This crate was born out of a desire to never ever have to do this again. It also does all the nice things I wanted but didn't have the time to do on previous attempts, like decoding the hex and base64 during deserialization, using enums to aid type checking, verifying that schemas match the expected one, etc.

The minimum supported Rust version (MSRV) of this crate is currently Rust 1.57.0. If the MSRV increases in the future, this will be accompanied by an increment to the minor version number.

Comments and patches are welcome.

This crate is licensed Apache 2.0-only, just as Wycheproof itself is. The files in src/data are taken from the latest Wycheproof commit

By default all available tests are compiled in. If you only need to test a few specific algorithms, you can do so with no-default-features plus one or more feature flags

  • aead
  • cipher
  • dsa
  • ec
  • ecdh
  • ecdsa
  • eddsa
  • fpe
  • hkdf
  • keywrap
  • mac
  • primality
  • rsa_enc
  • rsa_sig
  • xdh

Dependencies