pub enum KeyPair {
KeyPairV0(KeyPairV0),
}Expand description
versioned KeyPair used for signature and decryption
Variants§
Implementations§
Source§impl KeyPair
impl KeyPair
Sourcepub fn get_version(&self) -> u64
pub fn get_version(&self) -> u64
Get the version of the given KeyPair
Sourcepub fn generate(version: u64) -> Result<Self, MassaSignatureError>
pub fn generate(version: u64) -> Result<Self, MassaSignatureError>
Generates a new KeyPair of the version given as parameter. Errors if the version number does not exist
§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 sign(&self, hash: &Hash) -> Result<Signature, MassaSignatureError>
pub fn sign(&self, hash: &Hash) -> Result<Signature, MassaSignatureError>
Returns the Signature produced by signing
data bytes with a KeyPair.
§Example
let keypair = KeyPair::generate(0).unwrap();
let data = Hash::compute_from("Hello World!".as_bytes());
let signature = keypair.sign(&data).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> ⓘ
Return the bytes (as a Vec) representing the keypair
§Example
let keypair = KeyPair::generate(0).unwrap();
let bytes = keypair.to_bytes();Sourcepub fn get_public_key(&self) -> PublicKey
pub fn get_public_key(&self) -> PublicKey
Get the public key of the keypair
§Example
let keypair = KeyPair::generate(0).unwrap();
let public_key = keypair.get_public_key();Sourcepub fn from_bytes(data: &[u8]) -> Result<Self, MassaSignatureError>
pub fn from_bytes(data: &[u8]) -> Result<Self, MassaSignatureError>
Convert a byte slice to a KeyPair
§Example
let keypair = KeyPair::generate(0).unwrap();
let bytes = keypair.to_bytes();
let keypair2 = KeyPair::from_bytes(&bytes).unwrap();
assert_eq!(keypair.to_string(), keypair2.to_string());Trait Implementations§
Source§impl<'de> Deserialize<'de> for KeyPair
impl<'de> Deserialize<'de> for KeyPair
Source§fn deserialize<D: Deserializer<'de>>(d: D) -> Result<KeyPair, D::Error>
fn deserialize<D: Deserializer<'de>>(d: D) -> Result<KeyPair, D::Error>
::serde::Deserialize trait for KeyPair
if the deserializer is human readable,
deserialization is done using deserialize_bs58_check
else, it uses deserialize_binary
§Example
Human readable deserialization :
let keypair = KeyPair::generate(0).unwrap();
let serialized = serde_json::to_string(&keypair).unwrap();
let deserialized: KeyPair = serde_json::from_str(&serialized).unwrap();Source§impl FromStr for KeyPair
impl FromStr for KeyPair
Source§fn from_str(s: &str) -> Result<Self, Self::Err>
fn from_str(s: &str) -> Result<Self, Self::Err>
§Example
let keypair = KeyPair::generate(0).unwrap();
let string = keypair.to_string();
let keypair2 = KeyPair::from_str(&string).unwrap();
assert_eq!(keypair.to_string(), keypair2.to_string());Source§type Err = MassaSignatureError
type Err = MassaSignatureError
Source§impl Serialize for KeyPair
impl Serialize for KeyPair
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 KeyPair
if the serializer is human readable,
serialization is done using serialize_bs58_check
else, it uses serialize_binary
§Example
Human readable serialization :
let keypair = KeyPair::generate(0).unwrap();
let serialized: String = serde_json::to_string(&keypair).unwrap();