Trait nostr_types::Signer

source ·
pub trait Signer: Debug {
Show 28 methods // Required methods fn is_locked(&self) -> bool; fn unlock(&mut self, password: &str) -> Result<(), Error>; fn lock(&mut self); fn change_passphrase( &mut self, old: &str, new: &str, log_n: u8, ) -> Result<(), Error>; fn upgrade(&mut self, pass: &str, log_n: u8) -> Result<(), Error>; fn public_key(&self) -> PublicKey; fn encrypted_private_key(&self) -> Option<&EncryptedPrivateKey>; fn sign_id(&self, id: Id) -> Result<Signature, Error>; fn sign(&self, message: &[u8]) -> Result<Signature, Error>; fn encrypt( &self, other: &PublicKey, plaintext: &str, algo: ContentEncryptionAlgorithm, ) -> Result<String, Error>; fn decrypt( &self, other: &PublicKey, ciphertext: &str, ) -> Result<String, Error>; fn nip44_conversation_key( &self, other: &PublicKey, ) -> Result<[u8; 32], Error>; fn export_private_key_in_hex( &mut self, pass: &str, log_n: u8, ) -> Result<(String, bool), Error>; fn export_private_key_in_bech32( &mut self, pass: &str, log_n: u8, ) -> Result<(String, bool), Error>; fn key_security(&self) -> Result<KeySecurity, Error>; // Provided methods fn generate_delegation_signature( &self, delegated_pubkey: PublicKey, delegation_conditions: &DelegationConditions, ) -> Result<Signature, Error> { ... } fn verify_delegation_signature( &self, delegated_pubkey: PublicKey, delegation_conditions: &DelegationConditions, signature: &Signature, ) -> Result<(), Error> { ... } fn sign_event(&self, input: PreEvent) -> Result<Event, Error> { ... } fn sign_event2(&self, input: PreEventV2) -> Result<EventV2, Error> { ... } fn sign_event_with_pow( &self, input: PreEvent, zero_bits: u8, work_sender: Option<Sender<u8>>, ) -> Result<Event, Error> { ... } fn giftwrap( &self, input: PreEvent, pubkey: PublicKey, ) -> Result<Event, Error> { ... } fn giftwrap2( &self, input: PreEventV2, pubkey: PublicKey, ) -> Result<EventV2, Error> { ... } fn create_metadata_event( &self, input: PreEvent, metadata: Metadata, ) -> Result<Event, Error> { ... } fn create_zap_request_event( &self, recipient_pubkey: PublicKey, zapped_event: Option<Id>, millisatoshis: u64, relays: Vec<String>, content: String, ) -> Result<Event, Error> { ... } fn decrypt_event_contents(&self, event: &Event) -> Result<String, Error> { ... } fn unwrap_giftwrap(&self, event: &Event) -> Result<Rumor, Error> { ... } fn unwrap_giftwrap2(&self, event: &EventV2) -> Result<RumorV2, Error> { ... } fn unwrap_giftwrap1(&self, event: &EventV1) -> Result<RumorV1, Error> { ... }
}
Expand description

Signer operations

Required Methods§

source

fn is_locked(&self) -> bool

Is the signer locked?

source

fn unlock(&mut self, password: &str) -> Result<(), Error>

Try to unlock access to the private key

source

fn lock(&mut self)

Lock access to the private key

source

fn change_passphrase( &mut self, old: &str, new: &str, log_n: u8, ) -> Result<(), Error>

Change the passphrase used for locking access to the private key

source

fn upgrade(&mut self, pass: &str, log_n: u8) -> Result<(), Error>

Upgrade the encrypted private key to the latest format

source

fn public_key(&self) -> PublicKey

What is the signer’s public key?

source

fn encrypted_private_key(&self) -> Option<&EncryptedPrivateKey>

What is the signer’s encrypted private key?

source

fn sign_id(&self, id: Id) -> Result<Signature, Error>

Sign a 32-bit hash

source

fn sign(&self, message: &[u8]) -> Result<Signature, Error>

Sign a message (this hashes with SHA-256 first internally)

source

fn encrypt( &self, other: &PublicKey, plaintext: &str, algo: ContentEncryptionAlgorithm, ) -> Result<String, Error>

Encrypt

source

fn decrypt(&self, other: &PublicKey, ciphertext: &str) -> Result<String, Error>

Decrypt NIP-04 or NIP-44

source

fn nip44_conversation_key(&self, other: &PublicKey) -> Result<[u8; 32], Error>

Get NIP-44 conversation key

source

fn export_private_key_in_hex( &mut self, pass: &str, log_n: u8, ) -> Result<(String, bool), Error>

Export the private key in hex.

This returns a boolean indicating if the key security was downgraded. If it was, the caller should save the new self.encrypted_private_key()

We need the password and log_n parameters to possibly rebuild the EncryptedPrivateKey when downgrading key security

source

fn export_private_key_in_bech32( &mut self, pass: &str, log_n: u8, ) -> Result<(String, bool), Error>

Export the private key in bech32.

This returns a boolean indicating if the key security was downgraded. If it was, the caller should save the new self.encrypted_private_key()

We need the password and log_n parameters to possibly rebuild the EncryptedPrivateKey when downgrading key security

source

fn key_security(&self) -> Result<KeySecurity, Error>

Get the security level of the private key

Provided Methods§

source

fn generate_delegation_signature( &self, delegated_pubkey: PublicKey, delegation_conditions: &DelegationConditions, ) -> Result<Signature, Error>

Generate delegation signature

source

fn verify_delegation_signature( &self, delegated_pubkey: PublicKey, delegation_conditions: &DelegationConditions, signature: &Signature, ) -> Result<(), Error>

Verify delegation signature

source

fn sign_event(&self, input: PreEvent) -> Result<Event, Error>

Sign an event

source

fn sign_event2(&self, input: PreEventV2) -> Result<EventV2, Error>

Sign an event

source

fn sign_event_with_pow( &self, input: PreEvent, zero_bits: u8, work_sender: Option<Sender<u8>>, ) -> Result<Event, Error>

Sign an event with Proof-of-Work

source

fn giftwrap(&self, input: PreEvent, pubkey: PublicKey) -> Result<Event, Error>

Giftwrap an event

source

fn giftwrap2( &self, input: PreEventV2, pubkey: PublicKey, ) -> Result<EventV2, Error>

Giftwrap an event

source

fn create_metadata_event( &self, input: PreEvent, metadata: Metadata, ) -> Result<Event, Error>

Create an event that sets Metadata

source

fn create_zap_request_event( &self, recipient_pubkey: PublicKey, zapped_event: Option<Id>, millisatoshis: u64, relays: Vec<String>, content: String, ) -> Result<Event, Error>

Create a ZapRequest event These events are not published to nostr, they are sent to a lnurl.

source

fn decrypt_event_contents(&self, event: &Event) -> Result<String, Error>

Decrypt the contents of an event

source

fn unwrap_giftwrap(&self, event: &Event) -> Result<Rumor, Error>

If a gift wrap event, unwrap and return the inner Rumor

source

fn unwrap_giftwrap2(&self, event: &EventV2) -> Result<RumorV2, Error>

If a gift wrap event, unwrap and return the inner Rumor @deprecated for migrations only

source

fn unwrap_giftwrap1(&self, event: &EventV1) -> Result<RumorV1, Error>

If a gift wrap event, unwrap and return the inner Rumor @deprecated for migrations only

Implementors§