Struct libp2p_identity::Keypair
source · pub struct Keypair { /* private fields */ }
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 # optional
Loading the keys:
let mut bytes = std::fs::read("private.pk8").unwrap();
let keypair = Keypair::rsa_from_pkcs8(&mut bytes);
Implementations§
source§impl Keypair
impl Keypair
sourcepub fn generate_ed25519() -> Keypair
pub fn generate_ed25519() -> Keypair
Generate a new Ed25519 keypair.
pub fn try_into_ed25519(self) -> Result<Keypair, OtherVariantError>
pub fn ed25519_from_bytes( bytes: impl AsMut<[u8]> ) -> Result<Keypair, DecodingError>
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
.
sourcepub fn derive_secret(&self, domain: &[u8]) -> Option<[u8; 32]>
pub fn derive_secret(&self, domain: &[u8]) -> Option<[u8; 32]>
Deterministically derive a new secret from this Keypair
, taking into account the provided domain.
This works for all key types except RSA where it returns None
.
Example
let key = identity::Keypair::generate_ed25519();
let new_key = key.derive_secret(b"my encryption key").expect("can derive secret for ed25519");
Trait Implementations§
Auto Trait Implementations§
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