Expand description
BignP256 Digital Signature Algorithm as defined in STB 34.101.45-2013 § 7.
Usage
NOTE: requires the dsa
crate feature enabled, and rand_core
dependency
with getrandom
feature enabled.
use rand_core::OsRng; // requires 'getrandom` feature
use bign256::{
dsa::{Signature, SigningKey, signature::Signer},
SecretKey
};
// Signing
let secret_key = SecretKey::random(&mut OsRng); // serialize with `::to_bytes()`
let signing_key = SigningKey::new(&secret_key)?;
let verifying_key_bytes = signing_key.verifying_key().to_sec1_bytes();
let message = b"test message";
let signature: Signature = signing_key.sign(message);
// Verifying
use bign256::dsa::{VerifyingKey, signature::Verifier};
let verifying_key = VerifyingKey::from_sec1_bytes(&verifying_key_bytes)?;
verifying_key.verify(message, &signature)?;
Re-exports
pub use signature;
Structs
- BignP256 Signature.
- BignP256 secret key used for signing messages and producing signatures.
- Bign256 public key used for verifying signatures are valid for a given message.
Type Aliases
- BignP256 signature serialized as bytes.