FROST dependencies

This is a list of production Rust code that is in scope and out of scope for FROSTs second audit.

--

Full Audit

FROST Crates

NameVersionNotes
frost-corev0.2.0
frost-ed25519v0.2.0
frost-ed448v0.2.0
frost-p256v0.2.0
frost-ristretto255v0.2.0
frost-secp256k1v0.2.0

ZF Dependencies

NameVersionNotes
redjubjubv0.6.0This library is being partially audited as part of the Zebra audit.
reddsav0.5.0This library is being partially audited as part of the Zebra audit.

Partial Audit

NameVersionReasonNotes
ed448-goldilocksv0.4.0Doesn't have a lot of users on github (12) or crates.io (~2k recent downloads) and it's not been previously audited and reviewedA pure-Rust implementation of Ed448 and Curve448 and Decaf.

The following ed448-goldilocks modules are used by frost-ed448:

  • src/field/scalar.rs
  • src/curve/edwards/extended.rs (converting to/from TwistedExtendedPoint, MontgomeryPoint and AffinePoint are out of scope)
  • src/field/mod.rs
  • src/curve/scalar_mul/variable_base.rs

Out of Scope

The following crates and dependencies are out of scope for the audit.

FROST Crates

NameVersionNotes
frost-rerandomizedv0.2.0To be audited after the security proof is complete.

frost-core Dependencies

NameVersionReasonNotes
byteorderv1.4.3Library for reading/writing numbers in big-endian and little-endian.
criterionv0.4.0Statistics-driven micro-benchmarking library
debugless-unwrapv0.0.4This library provides alternatives to the standard .unwrap* methods on Result and Option that don't require Debug to be implemented on the unexpected variant.
digestv0.10.6Traits for cryptographic hash functions and message authentication codes
hexv0.4.3Encoding and decoding data into/from hexadecimal representation.
proptestv1.1.0Hypothesis-like property-based testing and shrinking.
proptest-derivev0.3.0Custom-derive for the Arbitrary trait of proptest.
rand_corev0.6.4Core random number generator traits and tools for implementation.
serde_jsonv1.0.93A JSON serialization file format
thiserrorv1.0.38This library provides a convenient derive macro for the standard library's std::error::Error trait.
visibilityv0.0.1Attribute to override the visibility of items (useful in conjunction with cfg_attr)
zeroizev1.5.7This crate implements a portable approach to securely zeroing memory using techniques which guarantee they won't be "optimized away" by the compiler.

frost-ed25519 Dependencies

NameVersionReasonNotes
curve25519-dalekv4.0.0-pre.1A pure-Rust implementation of group operations on ristretto255 and Curve25519
rand_corev0.6.4Core random number generator traits and tools for implementation.
sha2v0.10.6Pure Rust implementation of the SHA-2 hash function family including SHA-224, SHA-256, SHA-384, and SHA-512.

frost-ed448 Dependencies

NameVersionReasonNotes
rand_corev0.6.4Pure Rust implementation of the SHA-2 hash function family including SHA-224, SHA-256, SHA-384, and SHA-512.
sha3v0.10.6SHA-3 (Keccak) hash function

frost-p256 Dependencies

NameVersionReasonNotes
p256v0.11.1Pure Rust implementation of the NIST P-256 (a.k.a. secp256r1, prime256v1) elliptic curve with support for ECDH, ECDSA signing/verification, and general purpose curve arithmetic
rand_corev0.6.4Core random number generator traits and tools for implementation.
sha2v0.10.6Pure Rust implementation of the SHA-2 hash function family including SHA-224, SHA-256, SHA-384, and SHA-512.

frost-rerandomized Dependencies

NameVersionReasonNotes
rand_corev0.6.4Core random number generator traits and tools for implementation.

frost-ristretto255 Dependencies

None

frost-secp256k1 Dependencies

NameVersionReasonNotes
k256v0.12.0-pre.0secp256k1 (a.k.a. K-256) elliptic curve library written in pure Rust with support for ECDSA signing/verification/public-key recovery, Taproot Schnorr signatures, Elliptic Curve Diffie-Hellman (ECDH), and general-purpose secp256k1 elliptic curve group operations which can be used to implement arbitrary group-based protocols.
rand_corev0.6.4Core random number generator traits and tools for implementation.
sha2v0.10.6Pure Rust implementation of the SHA-2 hash function family including SHA-224, SHA-256, SHA-384, and SHA-512.