pub struct PrivateKey(/* private fields */);
Expand description
This is a private key which is to be kept secret and is used to prove identity
Implementations§
Source§impl PrivateKey
impl PrivateKey
Sourcepub fn generate() -> PrivateKey
pub fn generate() -> PrivateKey
Generate a new PrivateKey
(which can be used to get the PublicKey
)
Sourcepub fn public_key(&self) -> PublicKey
pub fn public_key(&self) -> PublicKey
Get the PublicKey matching this PrivateKey
Sourcepub fn key_security(&self) -> KeySecurity
pub fn key_security(&self) -> KeySecurity
Get the security level of the private key
Sourcepub fn as_hex_string(&mut self) -> String
pub fn as_hex_string(&mut self) -> String
Render into a hexadecimal string
WARNING: This weakens the security of your key. Your key will be marked
with KeySecurity::Weak
if you execute this.
Sourcepub fn try_from_hex_string(v: &str) -> Result<PrivateKey, Error>
pub fn try_from_hex_string(v: &str) -> Result<PrivateKey, Error>
Create from a hexadecimal string
This creates a key with KeySecurity::Weak
. Use generate()
or
import_encrypted()
for KeySecurity::Medium
Sourcepub fn try_as_bech32_string(&mut self) -> Result<String, Error>
pub fn try_as_bech32_string(&mut self) -> Result<String, Error>
Export as a bech32 encoded string
WARNING: This weakens the security of your key. Your key will be marked
with KeySecurity::Weak
if you execute this.
Sourcepub fn try_from_bech32_string(s: &str) -> Result<PrivateKey, Error>
pub fn try_from_bech32_string(s: &str) -> Result<PrivateKey, Error>
Import from a bech32 encoded string
This creates a key with KeySecurity::Weak
. Use generate()
or
import_encrypted()
for KeySecurity::Medium
Sourcepub fn sign(&self, message: &[u8]) -> Result<Signature, Error>
pub fn sign(&self, message: &[u8]) -> Result<Signature, Error>
Sign a message (this hashes with SHA-256 first internally)
Sourcepub fn nip04_encrypt(
&self,
other: &PublicKey,
plaintext: &[u8],
) -> Result<([u8; 16], Vec<u8>), Error>
pub fn nip04_encrypt( &self, other: &PublicKey, plaintext: &[u8], ) -> Result<([u8; 16], Vec<u8>), Error>
Encrypt content via a shared secret according to NIP-04. Returns (IV, Ciphertext) pair.
Sourcepub fn nip04_decrypt(
&self,
other: &PublicKey,
ciphertext: &[u8],
iv: [u8; 16],
) -> Result<Vec<u8>, Error>
pub fn nip04_decrypt( &self, other: &PublicKey, ciphertext: &[u8], iv: [u8; 16], ) -> Result<Vec<u8>, Error>
Decrypt content via a shared secret according to NIP-04
Sourcepub fn export_encrypted(
&self,
password: &str,
log2_rounds: u8,
) -> Result<EncryptedPrivateKey, Error>
pub fn export_encrypted( &self, password: &str, log2_rounds: u8, ) -> Result<EncryptedPrivateKey, Error>
Export in a (non-portable) encrypted form. This does not downgrade
the security of the key, but you are responsible to keep it encrypted.
You should not attempt to decrypt it, only use import_encrypted()
on
it, or something similar in another library/client which also respects key
security.
This currently exports into EncryptedPrivateKey version 2.
We recommend you zeroize() the password you pass in after you are done with it.
Sourcepub fn import_encrypted(
encrypted: &EncryptedPrivateKey,
password: &str,
) -> Result<PrivateKey, Error>
pub fn import_encrypted( encrypted: &EncryptedPrivateKey, password: &str, ) -> Result<PrivateKey, Error>
Import an encrypted private key which was exported with export_encrypted()
.
We recommend you zeroize() the password you pass in after you are done with it.
This is backwards-compatible with keys that were exported with older code.