Struct EcdsaSignature

Source
pub struct EcdsaSignature {
    pub(crate) expanded_sig: Vec<u8>,
}
Expand description

A signature for ECDSA cryptographic operations.

This struct encapsulates the components of an ECDSA signature, which include the ‘r’ and ‘s’ values as byte arrays, a ‘v’ recovery id, and the signature in DER encoding. The ‘r’ and ‘s’ components are the main parts of the signature, ‘v’ is used to recover the public key from the signature, and the DER encoding is used for compatibility with systems that require the signature in ASN.1/DER format.

Fields§

§expanded_sig: Vec<u8>

Implementations§

Source§

impl EcdsaSignature

Source

pub(crate) const FIELD_SIZE: usize = 32usize

The size of a field element in bytes (32 bytes for secp256k1).

Source

pub(crate) const MIN_SIZE: usize = 73usize

Minimum size: 2 field elements + minimum 8 DER bytes + 1 v byte.

Source

pub(crate) const MAX_SIZE: usize = 137usize

Maximum size: 2 field elements + maximum 72 DER bytes + 1 v byte.

Source

pub fn r(&self) -> [u8; 32]

Returns the ‘r’ component of the ECDSA signature.

Source

pub fn s(&self) -> [u8; 32]

Returns the ‘s’ component of the ECDSA signature.

Source

pub fn v(&self) -> u8

Returns the ‘v’ value (recovery ID) of the ECDSA signature.

Source

pub fn der(&self) -> &[u8]

Returns the DER-encoded representation of the ECDSA signature.

Source

pub fn compact(&self) -> [u8; 64]

Returns the compact representation of the ECDSA signature as a 64-byte array. This is equivilant to self.r() || self.s()

Trait Implementations§

Source§

impl Clone for EcdsaSignature

Source§

fn clone(&self) -> EcdsaSignature

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for EcdsaSignature

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl FromFFI for EcdsaSignature

Source§

fn parse_ffi<'a>(s: impl Into<Cow<'a, str>>) -> Self

Parses this type from an FFI string representation. Read more
Source§

impl PartialEq for EcdsaSignature

Source§

fn eq(&self, other: &EcdsaSignature) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for EcdsaSignature

Source§

impl StructuralPartialEq for EcdsaSignature

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.