pub struct EcdsaPrivateKey { /* private fields */ }Expand description
Private key for ECDSA.
Stores the curve parameters and the secret scalar d ∈ [1, n).
The matching public key is derived on demand via to_public_key.
Implementations§
Source§impl EcdsaPrivateKey
impl EcdsaPrivateKey
Sourcepub fn curve(&self) -> &CurveParams
pub fn curve(&self) -> &CurveParams
The curve parameters for this key.
Sourcepub fn private_scalar(&self) -> &BigUint
pub fn private_scalar(&self) -> &BigUint
The private scalar d ∈ [1, n).
Sourcepub fn to_public_key(&self) -> EcdsaPublicKey
pub fn to_public_key(&self) -> EcdsaPublicKey
Derive the matching public key Q = d·G.
Sourcepub fn sign_digest_with_nonce(
&self,
digest: &[u8],
nonce: &BigUint,
) -> Option<EcdsaSignature>
pub fn sign_digest_with_nonce( &self, digest: &[u8], nonce: &BigUint, ) -> Option<EcdsaSignature>
Sign with an explicit nonce k.
ECDSA requires a fresh k ∈ [1, n) for every signature. This
lower-level entry point keeps the arithmetic explicit for fixed-vector
tests.
Reusing the same k for two different messages with the same key
immediately reveals the private scalar. Outside of fixed vectors,
prefer Self::sign_digest or Self::sign_message.
Returned signatures are canonicalized to low-s form (s <= n/2) to
maximize interoperability with protocols that reject high-s ECDSA.
Sourcepub fn sign_digest<H: Digest>(&self, digest: &[u8]) -> Option<EcdsaSignature>
pub fn sign_digest<H: Digest>(&self, digest: &[u8]) -> Option<EcdsaSignature>
Sign a digest using RFC 6979 deterministic nonce derivation.
Sourcepub fn sign_digest_with_rng<R: Csprng>(
&self,
digest: &[u8],
rng: &mut R,
) -> Option<EcdsaSignature>
pub fn sign_digest_with_rng<R: Csprng>( &self, digest: &[u8], rng: &mut R, ) -> Option<EcdsaSignature>
Sign a digest using a fresh random nonce.
Retries only in the negligible edge cases where r = 0 or s = 0.
Sourcepub fn sign_message<H: Digest>(&self, message: &[u8]) -> Option<EcdsaSignature>
pub fn sign_message<H: Digest>(&self, message: &[u8]) -> Option<EcdsaSignature>
Hash one message with H, then sign deterministically.
Sourcepub fn sign_message_with_rng<H: Digest, R: Csprng>(
&self,
message: &[u8],
rng: &mut R,
) -> Option<EcdsaSignature>
pub fn sign_message_with_rng<H: Digest, R: Csprng>( &self, message: &[u8], rng: &mut R, ) -> Option<EcdsaSignature>
Hash one message with H, then sign with randomized nonces.
Sourcepub fn sign_digest_bytes<H: Digest>(&self, digest: &[u8]) -> Option<Vec<u8>>
pub fn sign_digest_bytes<H: Digest>(&self, digest: &[u8]) -> Option<Vec<u8>>
Sign and serialize a digest using deterministic nonce derivation.
Sourcepub fn sign_digest_bytes_with_rng<R: Csprng>(
&self,
digest: &[u8],
rng: &mut R,
) -> Option<Vec<u8>>
pub fn sign_digest_bytes_with_rng<R: Csprng>( &self, digest: &[u8], rng: &mut R, ) -> Option<Vec<u8>>
Sign and serialize a digest using randomized nonces.
Sourcepub fn sign_message_bytes<H: Digest>(&self, message: &[u8]) -> Option<Vec<u8>>
pub fn sign_message_bytes<H: Digest>(&self, message: &[u8]) -> Option<Vec<u8>>
Hash one message with H, then sign and serialize deterministically.
Sourcepub fn sign_message_bytes_with_rng<H: Digest, R: Csprng>(
&self,
message: &[u8],
rng: &mut R,
) -> Option<Vec<u8>>
pub fn sign_message_bytes_with_rng<H: Digest, R: Csprng>( &self, message: &[u8], rng: &mut R, ) -> Option<Vec<u8>>
Hash one message with H, then sign and serialize with randomized nonces.
Sourcepub fn to_key_blob(&self) -> Vec<u8> ⓘ
pub fn to_key_blob(&self) -> Vec<u8> ⓘ
Encode the private key in the crate-defined binary format.
Layout: one field-type byte (0x00 = prime, 0x01 = binary) followed
by [p, a, b, n, h, Gx, Gy, d].
Sourcepub fn from_key_blob(blob: &[u8]) -> Option<Self>
pub fn from_key_blob(blob: &[u8]) -> Option<Self>
Decode a private key from the crate-defined binary format.
pub fn to_pem(&self) -> String
Sourcepub fn from_pem(pem: &str) -> Option<Self>
pub fn from_pem(pem: &str) -> Option<Self>
Returns None if the PEM label does not match or the payload is malformed.
Trait Implementations§
Source§impl Clone for EcdsaPrivateKey
impl Clone for EcdsaPrivateKey
Source§fn clone(&self) -> EcdsaPrivateKey
fn clone(&self) -> EcdsaPrivateKey
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more