pub struct EcdsaSig(/* private fields */);
Expand description
A low level interface to ECDSA.
Implementations§
Source§impl EcdsaSig
impl EcdsaSig
Sourcepub fn sign<T>(data: &[u8], eckey: &EcKeyRef<T>) -> Result<EcdsaSig, ErrorStack>where
T: HasPrivate,
pub fn sign<T>(data: &[u8], eckey: &EcKeyRef<T>) -> Result<EcdsaSig, ErrorStack>where
T: HasPrivate,
Computes a digital signature of the hash value data
using the private EC key eckey.
This corresponds to ECDSA_do_sign
.
Sourcepub fn from_private_components(
r: BigNum,
s: BigNum,
) -> Result<EcdsaSig, ErrorStack>
pub fn from_private_components( r: BigNum, s: BigNum, ) -> Result<EcdsaSig, ErrorStack>
Returns a new EcdsaSig
by setting the r
and s
values associated with an ECDSA signature.
This corresponds to ECDSA_SIG_set0
.
Sourcepub fn from_der(der: &[u8]) -> Result<EcdsaSig, ErrorStack>
pub fn from_der(der: &[u8]) -> Result<EcdsaSig, ErrorStack>
Decodes a DER-encoded ECDSA signature.
This corresponds to d2i_ECDSA_SIG
.
Methods from Deref<Target = EcdsaSigRef>§
Sourcepub fn to_der(&self) -> Result<Vec<u8>, ErrorStack>
pub fn to_der(&self) -> Result<Vec<u8>, ErrorStack>
Serializes the ECDSA signature into a DER-encoded ECDSASignature structure.
This corresponds to i2d_ECDSA_SIG
.
Sourcepub fn verify<T>(
&self,
data: &[u8],
eckey: &EcKeyRef<T>,
) -> Result<bool, ErrorStack>where
T: HasPublic,
pub fn verify<T>(
&self,
data: &[u8],
eckey: &EcKeyRef<T>,
) -> Result<bool, ErrorStack>where
T: HasPublic,
Verifies if the signature is a valid ECDSA signature using the given public key.
This corresponds to ECDSA_do_verify
.
Sourcepub fn r(&self) -> &BigNumRef
pub fn r(&self) -> &BigNumRef
Returns internal component: r
of an EcdsaSig
. (See X9.62 or FIPS 186-2)
This corresponds to ECDSA_SIG_get0
.
Sourcepub fn s(&self) -> &BigNumRef
pub fn s(&self) -> &BigNumRef
Returns internal components: s
of an EcdsaSig
. (See X9.62 or FIPS 186-2)
This corresponds to ECDSA_SIG_get0
.
Trait Implementations§
Source§impl AsRef<EcdsaSigRef> for EcdsaSig
impl AsRef<EcdsaSigRef> for EcdsaSig
Source§fn as_ref(&self) -> &EcdsaSigRef
fn as_ref(&self) -> &EcdsaSigRef
Source§impl Borrow<EcdsaSigRef> for EcdsaSig
impl Borrow<EcdsaSigRef> for EcdsaSig
Source§fn borrow(&self) -> &EcdsaSigRef
fn borrow(&self) -> &EcdsaSigRef
Source§impl Deref for EcdsaSig
impl Deref for EcdsaSig
Source§type Target = EcdsaSigRef
type Target = EcdsaSigRef
Source§fn deref(&self) -> &EcdsaSigRef
fn deref(&self) -> &EcdsaSigRef
Source§impl DerefMut for EcdsaSig
impl DerefMut for EcdsaSig
Source§fn deref_mut(&mut self) -> &mut EcdsaSigRef
fn deref_mut(&mut self) -> &mut EcdsaSigRef
Source§impl ForeignType for EcdsaSig
impl ForeignType for EcdsaSig
impl Send for EcdsaSig
impl Sync for EcdsaSig
Auto Trait Implementations§
impl Freeze for EcdsaSig
impl RefUnwindSafe for EcdsaSig
impl Unpin for EcdsaSig
impl UnwindSafe for EcdsaSig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 8 bytes