Struct schnorrkel::sign::Signature[][src]

pub struct Signature { /* fields omitted */ }

A Ristretto Schnorr signature “detached” from the signed message.

These cannot be converted to any Ed25519 signature because they hash curve points in the Ristretto encoding.

Implementations

impl Signature[src]

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

Convert this Signature to a byte array.

pub fn from_bytes(bytes: &[u8]) -> SignatureResult<Signature>[src]

Construct a Signature from a slice of bytes.

We distinguish schnorrkell signatures from ed25519 signatures by setting the high bit of byte 31. We return an error if this marker remains unset because otherwise schnorrkel signatures would be indistinguishable from ed25519 signatures. We cannot always distinguish between schnorrkel and ed25519 public keys either, so without this market bit we could not do batch verification in systems that support precisely ed25519 and schnorrkel.

We cannot distinguish amongst different SigningTranscript types using these markey bits, but protocol should not need two different transcript types.

pub fn from_bytes_not_distinguished_from_ed25519(
    bytes: &[u8]
) -> SignatureResult<Signature>
[src]

Depricated construction of a Signature from a slice of bytes without checking the bit distinguishing from ed25519. Deprecated.

Trait Implementations

impl Clone for Signature[src]

impl Copy for Signature[src]

impl Debug for Signature[src]

impl Eq for Signature[src]

impl PartialEq<Signature> for Signature[src]

impl StructuralEq for Signature[src]

impl StructuralPartialEq for Signature[src]

Auto Trait Implementations

impl RefUnwindSafe for Signature

impl Send for Signature

impl Sync for Signature

impl Unpin for Signature

impl UnwindSafe for Signature

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T[src]

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 
[src]