Enum Signature
#[non_exhaustive]pub enum Signature {
Ed25519 {
signature: Ed25519Signature,
public_key: Ed25519PublicKey,
},
Secp256k1 {
signature: Secp256k1Signature,
public_key: Secp256k1PublicKey,
},
Secp256r1 {
signature: Secp256r1Signature,
public_key: Secp256r1PublicKey,
},
}Expand description
A basic signature
This enumeration defines the set of simple or basic signature schemes supported by IOTA. Most signature schemes supported by IOTA end up comprising of at least one simple signature scheme.
§BCS
The BCS serialized form for this type is defined by the following ABNF:
simple-signature-bcs = bytes ; where the contents of the bytes are defined by <simple-signature>
simple-signature = (ed25519-flag ed25519-signature ed25519-public-key) /
(secp256k1-flag secp256k1-signature secp256k1-public-key) /
(secp256r1-flag secp256r1-signature secp256r1-public-key)Note: Due to historical reasons, signatures are serialized slightly
different from the majority of the types in IOTA. In particular if a
signature is ever embedded in another structure it generally is serialized
as bytes meaning it has a length prefix that defines the length of
the completely serialized signature.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Implementations§
§impl SimpleSignature
impl SimpleSignature
pub fn new_ed25519( signature: Ed25519Signature, public_key: Ed25519PublicKey, ) -> SimpleSignature
pub fn new_secp256k1( signature: Secp256k1Signature, public_key: Secp256k1PublicKey, ) -> SimpleSignature
pub fn new_secp256r1( signature: Secp256r1Signature, public_key: Secp256r1PublicKey, ) -> SimpleSignature
pub fn is_ed25519(&self) -> bool
pub fn is_ed25519(&self) -> bool
Checks if this is a ed25519 variant.
pub fn is_secp256k1(&self) -> bool
pub fn is_secp256k1(&self) -> bool
Checks if this is a secp256k1 variant.
pub fn is_secp256r1(&self) -> bool
pub fn is_secp256r1(&self) -> bool
Checks if this is a secp256r1 variant.
pub fn as_ed25519_sig_opt(&self) -> Option<&Ed25519Signature>
pub fn as_ed25519_sig(&self) -> &Ed25519Signature
pub fn as_ed25519_pub_key_opt(&self) -> Option<&Ed25519PublicKey>
pub fn as_ed25519_pub_key(&self) -> &Ed25519PublicKey
pub fn into_ed25519_opt(self) -> Option<(Ed25519Signature, Ed25519PublicKey)>
pub fn into_ed25519(self) -> (Ed25519Signature, Ed25519PublicKey)
pub fn as_secp256k1_sig_opt(&self) -> Option<&Secp256k1Signature>
pub fn as_secp256k1_sig(&self) -> &Secp256k1Signature
pub fn as_secp256k1_pub_key_opt(&self) -> Option<&Secp256k1PublicKey>
pub fn as_secp256k1_pub_key(&self) -> &Secp256k1PublicKey
pub fn into_secp256k1_opt( self, ) -> Option<(Secp256k1Signature, Secp256k1PublicKey)>
pub fn into_secp256k1(self) -> (Secp256k1Signature, Secp256k1PublicKey)
pub fn as_secp256r1_sig_opt(&self) -> Option<&Secp256r1Signature>
pub fn as_secp256r1_sig(&self) -> &Secp256r1Signature
pub fn as_secp256r1_pub_key_opt(&self) -> Option<&Secp256r1PublicKey>
pub fn as_secp256r1_pub_key(&self) -> &Secp256r1PublicKey
pub fn into_secp256r1_opt( self, ) -> Option<(Secp256r1Signature, Secp256r1PublicKey)>
pub fn into_secp256r1(self) -> (Secp256r1Signature, Secp256r1PublicKey)
pub fn scheme(&self) -> SignatureScheme
pub fn scheme(&self) -> SignatureScheme
Return the flag for this signature scheme
pub fn signature_bytes(&self) -> &[u8] ⓘ
pub fn signature_bytes(&self) -> &[u8] ⓘ
The raw signature bytes, without the scheme flag or the public key.
pub fn to_public_key(&self) -> PublicKey
pub fn to_public_key(&self) -> PublicKey
The public key embedded in this signature.
The raw public-key bytes are available via AsRef on the returned
[PublicKey].
§impl SimpleSignature
impl SimpleSignature
pub fn to_bytes(&self) -> Vec<u8> ⓘ
pub fn from_bytes( bytes: impl AsRef<[u8]>, ) -> Result<SimpleSignature, SignatureFromBytesError>
pub fn to_base64(&self) -> String
pub fn to_base64(&self) -> String
Base64-encode this signature as its flag || sig || pubkey bytes,
the same layout as to_bytes.
pub fn from_base64(s: &str) -> Result<SimpleSignature, Error>
pub fn from_base64(s: &str) -> Result<SimpleSignature, Error>
Decode a signature from the Base64 form produced by
to_base64, i.e. base64 over the
flag || sig || pubkey bytes.
Trait Implementations§
§impl Arbitrary for SimpleSignature
impl Arbitrary for SimpleSignature
§type Parameters = ()
type Parameters = ()
arbitrary_with accepts for configuration
of the generated Strategy. Parameters must implement Default.§type Strategy = BoxedStrategy<SimpleSignature>
type Strategy = BoxedStrategy<SimpleSignature>
Strategy used to generate values of type Self.§fn arbitrary_with(
args_shared: <SimpleSignature as Arbitrary>::Parameters,
) -> <SimpleSignature as Arbitrary>::Strategy
fn arbitrary_with( args_shared: <SimpleSignature as Arbitrary>::Parameters, ) -> <SimpleSignature as Arbitrary>::Strategy
Source§impl AuthenticatorTrait for Signature
This ports the wrapper trait to the verify_secure defined on
crate::crypto::Signature.
impl AuthenticatorTrait for Signature
This ports the wrapper trait to the verify_secure defined on
crate::crypto::Signature.
fn verify_claims<T>(
&self,
value: &IntentMessage<T>,
author: Address,
_aux_verify_data: &VerifyParams,
) -> IotaResultwhere
T: Serialize,
§impl Clone for SimpleSignature
impl Clone for SimpleSignature
§fn clone(&self) -> SimpleSignature
fn clone(&self) -> SimpleSignature
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for SimpleSignature
impl Debug for SimpleSignature
§impl<'de> Deserialize<'de> for SimpleSignature
impl<'de> Deserialize<'de> for SimpleSignature
§fn deserialize<D>(
deserializer: D,
) -> Result<SimpleSignature, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<SimpleSignature, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
§impl From<SimpleSignature> for MultisigMemberSignature
impl From<SimpleSignature> for MultisigMemberSignature
§fn from(signature: SimpleSignature) -> MultisigMemberSignature
fn from(signature: SimpleSignature) -> MultisigMemberSignature
§impl Hash for SimpleSignature
impl Hash for SimpleSignature
Source§impl IotaSignature for Signature
impl IotaSignature for Signature
fn verify_secure<T>(
&self,
value: &IntentMessage<T>,
author: Address,
) -> Result<(), IotaError>where
T: Serialize,
Source§fn new_hashed(hashed_msg: &[u8], secret: impl Into<IotaKeyPair>) -> Signature
fn new_hashed(hashed_msg: &[u8], secret: impl Into<IotaKeyPair>) -> Signature
Source§fn new_secure<T>(
value: &IntentMessage<T>,
secret: impl Into<IotaKeyPair>,
) -> Signaturewhere
T: Serialize,
fn new_secure<T>(
value: &IntentMessage<T>,
secret: impl Into<IotaKeyPair>,
) -> Signaturewhere
T: Serialize,
§impl PartialEq for SimpleSignature
impl PartialEq for SimpleSignature
§impl Serialize for SimpleSignature
impl Serialize for SimpleSignature
§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
Source§impl Signer<SimpleSignature> for IotaKeyPair
impl Signer<SimpleSignature> for IotaKeyPair
impl Eq for SimpleSignature
impl StructuralPartialEq for SimpleSignature
Auto Trait Implementations§
impl Freeze for SimpleSignature
impl RefUnwindSafe for SimpleSignature
impl Send for SimpleSignature
impl Sync for SimpleSignature
impl Unpin for SimpleSignature
impl UnsafeUnpin for SimpleSignature
impl UnwindSafe for SimpleSignature
Blanket Implementations§
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read more§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
§impl<T> CallHasher for T
impl<T> CallHasher for T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a Request§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.