Module bign256::dsa

source ·
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

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