Expand description
§RustCrypto: DSA
Digital Signature Algorithm (DSA) as specified in FIPS 186-4 (Digital Signature Standard).
§About
This crate provides an implementation of DSA in pure Rust.
It utilises the signature
crate to provide an interface for creating and verifying signatures.
§⚠️ Security Warning
The DSA implementation contained in this crate has never been independently audited for security.
It may contain timing variabilities or other sidechannels which could potentially disclose secret information, including secret keys.
USE AT YOUR OWN RISK!
§Minimum Supported Rust Version
This crate requires Rust 1.65 at a minimum.
We may change the MSRV in the future, but it will be accompanied by a minor version bump.
§License
All crates licensed under either of
at your option.
§Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
§Examples
Generate a DSA keypair
let mut csprng = rand::thread_rng();
let components = Components::generate(&mut csprng, KeySize::DSA_2048_256);
let signing_key = SigningKey::generate(&mut csprng, components);
let verifying_key = signing_key.verifying_key();
Create keypair from existing components
let (p, q, g) = read_common_parameters();
let components = Components::from_components(p, q, g)?;
let x = read_public_component();
let verifying_key = VerifyingKey::from_components(components, x)?;
let y = read_private_component();
let signing_key = SigningKey::from_components(verifying_key, y)?;
Re-exports§
Structs§
- A big unsigned integer type.
- The common components of an DSA keypair
- DSA key size
- Container of the DSA signature
- DSA private key.
- DSA public key.
Constants§
- DSA object identifier as defined by [RFC3279 § 2.3.2].