Struct ethers::core::k256::elliptic_curve::SecretKey [−][src]
pub struct SecretKey<C> where
C: Curve, { /* fields omitted */ }
Expand description
Elliptic curve secret keys.
This type wraps a secret scalar value, helping to prevent accidental
exposure and securely erasing the value from memory when dropped
(when the zeroize
feature of this crate is enabled).
Parsing PKCS#8 Keys
PKCS#8 is a commonly used format for encoding secret keys (especially ones generated by OpenSSL).
Keys in PKCS#8 format are either binary (ASN.1 BER/DER), or PEM encoded (ASCII) and begin with the following:
-----BEGIN PRIVATE KEY-----
To decode an elliptic curve private key from PKCS#8, enable the pkcs8
feature of this crate (or the pkcs8
feature of a specific RustCrypto
elliptic curve crate) and use the
[elliptic_curve::pkcs8::FromPrivateKey
][FromPrivateKey
]
trait to parse it.
When the pem
feature of this crate (or a specific RustCrypto elliptic
curve crate) is enabled, a [FromStr
] impl is also available.
Implementations
pub fn random(rng: impl CryptoRng + RngCore) -> SecretKey<C> where
C: ProjectiveArithmetic,
<C as ScalarArithmetic>::Scalar: Zeroize,
pub fn random(rng: impl CryptoRng + RngCore) -> SecretKey<C> where
C: ProjectiveArithmetic,
<C as ScalarArithmetic>::Scalar: Zeroize,
Generate a random SecretKey
Create a new secret key from a serialized scalar value
Deserialize raw private scalar as a big endian integer
Expose the byte serialization of the value this SecretKey
wraps
Borrow the inner secret ScalarBytes
value.
Warning
This value is key material.
Please treat it with the care it deserves!
pub fn to_secret_scalar(&self) -> NonZeroScalar<C> where
C: Curve + ProjectiveArithmetic,
<C as ScalarArithmetic>::Scalar: Zeroize,
pub fn to_secret_scalar(&self) -> NonZeroScalar<C> where
C: Curve + ProjectiveArithmetic,
<C as ScalarArithmetic>::Scalar: Zeroize,
Get the secret scalar value for this key..
pub fn public_key(&self) -> PublicKey<C> where
C: Curve + ProjectiveArithmetic,
<C as ScalarArithmetic>::Scalar: Zeroize,
pub fn public_key(&self) -> PublicKey<C> where
C: Curve + ProjectiveArithmetic,
<C as ScalarArithmetic>::Scalar: Zeroize,
Get the PublicKey
which corresponds to this secret key
Trait Implementations
Performs the conversion.
Performs the conversion.
Performs the conversion.
Performs the conversion.
Performs the conversion.
Performs the conversion.
Performs the conversion.
Performs the conversion.
impl<C> FromPrivateKey for SecretKey<C> where
C: Curve + AlgorithmParameters + ValidatePublicKey,
<<<C as Curve>::UInt as ArrayEncoding>::ByteSize as Add<<<C as Curve>::UInt as ArrayEncoding>::ByteSize>>::Output: Add<UInt<UTerm, B1>>,
<<<C as Curve>::UInt as ArrayEncoding>::ByteSize as Add<<<C as Curve>::UInt as ArrayEncoding>::ByteSize>>::Output: ArrayLength<u8>,
<<<<C as Curve>::UInt as ArrayEncoding>::ByteSize as Add<<<C as Curve>::UInt as ArrayEncoding>::ByteSize>>::Output as Add<UInt<UTerm, B1>>>::Output: ArrayLength<u8>,
impl<C> FromPrivateKey for SecretKey<C> where
C: Curve + AlgorithmParameters + ValidatePublicKey,
<<<C as Curve>::UInt as ArrayEncoding>::ByteSize as Add<<<C as Curve>::UInt as ArrayEncoding>::ByteSize>>::Output: Add<UInt<UTerm, B1>>,
<<<C as Curve>::UInt as ArrayEncoding>::ByteSize as Add<<<C as Curve>::UInt as ArrayEncoding>::ByteSize>>::Output: ArrayLength<u8>,
<<<<C as Curve>::UInt as ArrayEncoding>::ByteSize as Add<<<C as Curve>::UInt as ArrayEncoding>::ByteSize>>::Output as Add<UInt<UTerm, B1>>>::Output: ArrayLength<u8>,
pub fn from_pkcs8_private_key_info(
private_key_info: PrivateKeyInfo<'_>
) -> Result<SecretKey<C>, Error>
pub fn from_pkcs8_private_key_info(
private_key_info: PrivateKeyInfo<'_>
) -> Result<SecretKey<C>, Error>
Parse the PrivateKeyInfo
from a PKCS#8-encoded document.
Auto Trait Implementations
impl<C> RefUnwindSafe for SecretKey<C> where
<<<C as Curve>::UInt as ArrayEncoding>::ByteSize as ArrayLength<u8>>::ArrayType: RefUnwindSafe,
impl<C> Unpin for SecretKey<C> where
<<<C as Curve>::UInt as ArrayEncoding>::ByteSize as ArrayLength<u8>>::ArrayType: Unpin,
impl<C> UnwindSafe for SecretKey<C> where
<<<C as Curve>::UInt as ArrayEncoding>::ByteSize as ArrayLength<u8>>::ArrayType: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more