Enum massa_signature::signature_impl::Signature
source · pub enum Signature {
SignatureV0(SignatureV0),
}
Expand description
Signature generated from a message and a KeyPair
.
Variants§
SignatureV0(SignatureV0)
Implementations§
source§impl Signature
impl Signature
sourcepub fn to_bs58_check(&self) -> String
pub fn to_bs58_check(&self) -> String
Serialize a Signature
using bs58
encoding with checksum.
§Example
let keypair = KeyPair::generate(0).unwrap();
let data = Hash::compute_from("Hello World!".as_bytes());
let signature = keypair.sign(&data).unwrap();
let serialized: String = signature.to_bs58_check();
sourcepub fn from_bs58_check(data: &str) -> Result<Signature, MassaSignatureError>
pub fn from_bs58_check(data: &str) -> Result<Signature, MassaSignatureError>
Deserialize a Signature
using bs58
encoding with checksum.
§Example
let keypair = KeyPair::generate(0).unwrap();
let data = Hash::compute_from("Hello World!".as_bytes());
let signature = keypair.sign(&data).unwrap();
let serialized: String = signature.to_bs58_check();
let deserialized: Signature = Signature::from_bs58_check(&serialized).unwrap();
sourcepub fn get_ser_len(&self) -> usize
pub fn get_ser_len(&self) -> usize
Return the total length after serialization
sourcepub fn to_bytes(&self) -> Vec<u8>
pub fn to_bytes(&self) -> Vec<u8>
Serialize a Signature into bytes.
§Example
let keypair = KeyPair::generate(0).unwrap();
let data = Hash::compute_from("Hello World!".as_bytes());
let signature = keypair.sign(&data).unwrap();
let serialized = signature.to_bytes();
sourcepub fn from_bytes(data: &[u8]) -> Result<Self, MassaSignatureError>
pub fn from_bytes(data: &[u8]) -> Result<Self, MassaSignatureError>
Deserialize a Signature from bytes.
§Example
let keypair = KeyPair::generate(0).unwrap();
let data = Hash::compute_from("Hello World!".as_bytes());
let signature = keypair.sign(&data).unwrap();
let serialized = signature.to_bytes();
let deserialized: Signature = Signature::from_bytes(&serialized).unwrap();
Trait Implementations§
source§impl<'de> Deserialize<'de> for Signature
impl<'de> Deserialize<'de> for Signature
source§fn deserialize<D: Deserializer<'de>>(d: D) -> Result<Signature, D::Error>
fn deserialize<D: Deserializer<'de>>(d: D) -> Result<Signature, D::Error>
::serde::Deserialize
trait for Signature
if the deserializer is human readable,
deserialization is done using from_bs58_check
else, it uses from_bytes
§Example
Human readable deserialization :
let keypair = KeyPair::generate(0).unwrap();
let data = Hash::compute_from("Hello World!".as_bytes());
let signature = keypair.sign(&data).unwrap();
let serialized = serde_json::to_string(&signature).unwrap();
let deserialized: Signature = serde_json::from_str(&serialized).unwrap();
source§impl Deserializer<Signature> for SignatureDeserializer
impl Deserializer<Signature> for SignatureDeserializer
source§fn deserialize<'a, E: ParseError<&'a [u8]> + ContextError<&'a [u8]>>(
&self,
buffer: &'a [u8],
) -> IResult<&'a [u8], Signature, E>
fn deserialize<'a, E: ParseError<&'a [u8]> + ContextError<&'a [u8]>>( &self, buffer: &'a [u8], ) -> IResult<&'a [u8], Signature, E>
use massa_signature::{Signature, SignatureDeserializer, KeyPair};
use massa_serialization::{DeserializeError, Deserializer};
use massa_hash::Hash;
let keypair = KeyPair::generate(0).unwrap();
let data = Hash::compute_from("Hello World!".as_bytes());
let signature = keypair.sign(&data).unwrap();
let serialized = signature.to_bytes();
let (rest, deser_signature) = SignatureDeserializer::new().deserialize::<DeserializeError>(&serialized).unwrap();
assert!(rest.is_empty());
assert_eq!(signature, deser_signature);
source§impl FromStr for Signature
impl FromStr for Signature
source§fn from_str(s: &str) -> Result<Self, Self::Err>
fn from_str(s: &str) -> Result<Self, Self::Err>
§Example
let hash = Hash::compute_from("Hello World!".as_bytes());
let signature = KeyPair::generate(0).unwrap().sign(&hash).unwrap();
let string = signature.to_string();
let signature_2 = Signature::from_str(&string).unwrap();
assert_eq!(signature, signature_2);
§type Err = MassaSignatureError
type Err = MassaSignatureError
The associated error which can be returned from parsing.
source§impl PartialEq for Signature
impl PartialEq for Signature
source§impl Serialize for Signature
impl Serialize for Signature
source§fn serialize<S: Serializer>(&self, s: S) -> Result<S::Ok, S::Error>
fn serialize<S: Serializer>(&self, s: S) -> Result<S::Ok, S::Error>
::serde::Serialize
trait for Signature
if the serializer is human readable,
serialization is done using to_bs58_check
else, it uses to_bytes
§Example
Human readable serialization :
let keypair = KeyPair::generate(0).unwrap();
let data = Hash::compute_from("Hello World!".as_bytes());
let signature = keypair.sign(&data).unwrap();
let serialized: String = serde_json::to_string(&signature).unwrap();
impl Copy for Signature
impl Eq for Signature
impl StructuralPartialEq for Signature
Auto Trait Implementations§
impl Freeze for Signature
impl RefUnwindSafe for Signature
impl Send for Signature
impl Sync for Signature
impl Unpin for Signature
impl UnwindSafe for Signature
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
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Copy,
impl<T> CloneToUninit for Twhere
T: Copy,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)