pub enum Keypair {
Ed25519(Keypair),
Rsa(Keypair),
}Expand description
Identity keypair of a node.
§Example: Generating RSA keys with OpenSSL
openssl genrsa -out private.pem 2048
openssl pkcs8 -in private.pem -inform PEM -topk8 -out private.pk8 -outform DER -nocrypt
rm private.pem # optionalLoading the keys:
let mut bytes = std::fs::read("private.pk8").unwrap();
let keypair = Keypair::rsa_from_pkcs8(&mut bytes);Variants§
Implementations§
Source§impl Keypair
impl Keypair
Sourcepub fn generate_ed25519() -> Keypair
pub fn generate_ed25519() -> Keypair
Generate a new Ed25519 keypair.
Sourcepub fn rsa_from_pkcs8(pkcs8_der: &mut [u8]) -> Result<Keypair, DecodingError>
pub fn rsa_from_pkcs8(pkcs8_der: &mut [u8]) -> Result<Keypair, DecodingError>
Decode an keypair from a DER-encoded secret key in PKCS#8 PrivateKeyInfo format (i.e. unencrypted) as defined in RFC5208.
Sourcepub fn sign(&self, msg: &[u8]) -> Result<Vec<u8>, SigningError>
pub fn sign(&self, msg: &[u8]) -> Result<Vec<u8>, SigningError>
Sign a message using the private key of this keypair, producing a signature that can be verified using the corresponding public key.
Sourcepub fn to_protobuf_encoding(&self) -> Result<Vec<u8>, DecodingError>
pub fn to_protobuf_encoding(&self) -> Result<Vec<u8>, DecodingError>
Encode a private key as protobuf structure.
Sourcepub fn from_protobuf_encoding(bytes: &[u8]) -> Result<Keypair, DecodingError>
pub fn from_protobuf_encoding(bytes: &[u8]) -> Result<Keypair, DecodingError>
Decode a private key from a protobuf structure and parse it as a Keypair.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Keypair
impl RefUnwindSafe for Keypair
impl Send for Keypair
impl Sync for Keypair
impl Unpin for Keypair
impl UnwindSafe for Keypair
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: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
Converts
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>
Converts
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