pub struct LocalAgentKey {
pub secret: Secret,
/* private fields */
}Expand description
A local implementation of the AgentKey that stores the key material directly
Fields§
§secret: SecretThe secret containing the key material
Implementations§
Source§impl LocalAgentKey
impl LocalAgentKey
Sourcepub async fn decrypt_jwe(&self, jwe: &Jwe) -> Result<Vec<u8>>
pub async fn decrypt_jwe(&self, jwe: &Jwe) -> Result<Vec<u8>>
Unwrap a JWE to retrieve the plaintext
Sourcepub async fn verify(&self, payload: &[u8], signature: &[u8]) -> Result<()>
pub async fn verify(&self, payload: &[u8], signature: &[u8]) -> Result<()>
Verify a signature against this key
Sourcepub async fn encrypt_to_jwk(
&self,
plaintext: &[u8],
_recipient_jwk: &Value,
protected_header: Option<JweProtected>,
) -> Result<Jwe>
pub async fn encrypt_to_jwk( &self, plaintext: &[u8], _recipient_jwk: &Value, protected_header: Option<JweProtected>, ) -> Result<Jwe>
Encrypt data to a JWK recipient
Sourcepub fn new(secret: Secret, key_type: KeyType) -> Self
pub fn new(secret: Secret, key_type: KeyType) -> Self
Create a new LocalAgentKey from a Secret and key type
Sourcepub fn generate_ed25519(kid: &str) -> Result<Self>
pub fn generate_ed25519(kid: &str) -> Result<Self>
Generate a new Ed25519 key with the given key ID
Sourcepub fn generate_p256(kid: &str) -> Result<Self>
pub fn generate_p256(kid: &str) -> Result<Self>
Generate a new P-256 key with the given key ID
Sourcepub fn generate_secp256k1(kid: &str) -> Result<Self>
pub fn generate_secp256k1(kid: &str) -> Result<Self>
Generate a new secp256k1 key with the given key ID
Trait Implementations§
Source§impl AgentKey for LocalAgentKey
impl AgentKey for LocalAgentKey
Source§fn public_key_jwk(&self) -> Result<Value>
fn public_key_jwk(&self) -> Result<Value>
Exports the public key material as a JWK
Source§impl Clone for LocalAgentKey
impl Clone for LocalAgentKey
Source§fn clone(&self) -> LocalAgentKey
fn clone(&self) -> LocalAgentKey
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for LocalAgentKey
impl Debug for LocalAgentKey
Source§impl DecryptionKey for LocalAgentKey
impl DecryptionKey for LocalAgentKey
Source§fn decrypt<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'life6, 'async_trait>(
&'life0 self,
ciphertext: &'life1 [u8],
encrypted_key: &'life2 [u8],
iv: &'life3 [u8],
tag: &'life4 [u8],
aad: Option<&'life5 [u8]>,
_sender_key: Option<&'life6 dyn VerificationKey>,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
'life6: 'async_trait,
fn decrypt<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'life6, 'async_trait>(
&'life0 self,
ciphertext: &'life1 [u8],
encrypted_key: &'life2 [u8],
iv: &'life3 [u8],
tag: &'life4 [u8],
aad: Option<&'life5 [u8]>,
_sender_key: Option<&'life6 dyn VerificationKey>,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
'life6: 'async_trait,
Decrypts the provided ciphertext
Source§impl EncryptionKey for LocalAgentKey
impl EncryptionKey for LocalAgentKey
Source§fn encrypt<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
plaintext: &'life1 [u8],
aad: Option<&'life2 [u8]>,
_recipient_public_key: &'life3 dyn VerificationKey,
) -> Pin<Box<dyn Future<Output = Result<(Vec<u8>, Vec<u8>, Vec<u8>)>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn encrypt<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
plaintext: &'life1 [u8],
aad: Option<&'life2 [u8]>,
_recipient_public_key: &'life3 dyn VerificationKey,
) -> Pin<Box<dyn Future<Output = Result<(Vec<u8>, Vec<u8>, Vec<u8>)>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Encrypts plaintext data for a specific recipient
Source§fn recommended_jwe_alg_enc(&self) -> (JweAlgorithm, JweEncryption)
fn recommended_jwe_alg_enc(&self) -> (JweAlgorithm, JweEncryption)
Returns the recommended JWE algorithm and encryption for this key
Source§fn create_jwe<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
plaintext: &'life1 [u8],
recipients: &'life2 [Arc<dyn VerificationKey>],
protected_header: Option<JweProtected>,
) -> Pin<Box<dyn Future<Output = Result<Jwe>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn create_jwe<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
plaintext: &'life1 [u8],
recipients: &'life2 [Arc<dyn VerificationKey>],
protected_header: Option<JweProtected>,
) -> Pin<Box<dyn Future<Output = Result<Jwe>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Creates a JWE for multiple recipients
Source§impl SigningKey for LocalAgentKey
impl SigningKey for LocalAgentKey
Source§fn sign<'life0, 'life1, 'async_trait>(
&'life0 self,
data: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn sign<'life0, 'life1, 'async_trait>(
&'life0 self,
data: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Signs the provided data using this key
Source§fn recommended_jws_alg(&self) -> JwsAlgorithm
fn recommended_jws_alg(&self) -> JwsAlgorithm
Returns the recommended JWS algorithm for this key
Source§fn create_jws<'life0, 'life1, 'async_trait>(
&'life0 self,
payload: &'life1 [u8],
protected_header: Option<JwsProtected>,
) -> Pin<Box<dyn Future<Output = Result<Jws>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn create_jws<'life0, 'life1, 'async_trait>(
&'life0 self,
payload: &'life1 [u8],
protected_header: Option<JwsProtected>,
) -> Pin<Box<dyn Future<Output = Result<Jws>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Signs and creates a JWS with the provided payload
Source§impl VerificationKey for LocalAgentKey
impl VerificationKey for LocalAgentKey
Source§fn public_key_jwk(&self) -> Result<Value>
fn public_key_jwk(&self) -> Result<Value>
Exports the public key material as a JWK
Source§fn verify_signature<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
payload: &'life1 [u8],
signature: &'life2 [u8],
protected_header: &'life3 JwsProtected,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn verify_signature<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
payload: &'life1 [u8],
signature: &'life2 [u8],
protected_header: &'life3 JwsProtected,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Verifies the provided signature against the payload and protected header
Auto Trait Implementations§
impl Freeze for LocalAgentKey
impl RefUnwindSafe for LocalAgentKey
impl Send for LocalAgentKey
impl Sync for LocalAgentKey
impl Unpin for LocalAgentKey
impl UnwindSafe for LocalAgentKey
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