pub struct RingCryptoProvider;Expand description
Native Ed25519 provider powered by the ring crate.
Offloads CPU-bound operations to Tokio’s blocking pool via
spawn_blocking to prevent async reactor starvation under load.
Usage:
ⓘ
use auths_crypto::{CryptoProvider, RingCryptoProvider};
let provider = RingCryptoProvider;
provider.verify_ed25519(&pubkey, &msg, &sig).await.unwrap();Trait Implementations§
Source§impl CryptoProvider for RingCryptoProvider
impl CryptoProvider for RingCryptoProvider
Source§fn verify_ed25519<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
pubkey: &'life1 [u8],
message: &'life2 [u8],
signature: &'life3 [u8],
) -> Pin<Box<dyn Future<Output = Result<(), CryptoError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn verify_ed25519<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
pubkey: &'life1 [u8],
message: &'life2 [u8],
signature: &'life3 [u8],
) -> Pin<Box<dyn Future<Output = Result<(), CryptoError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Verify an Ed25519 signature against a public key and message.
Source§fn sign_ed25519<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
seed: &'life1 SecureSeed,
message: &'life2 [u8],
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, CryptoError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn sign_ed25519<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
seed: &'life1 SecureSeed,
message: &'life2 [u8],
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, CryptoError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Sign a message using a raw 32-byte Ed25519 seed. Read more
Source§fn generate_ed25519_keypair<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(SecureSeed, [u8; 32]), CryptoError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn generate_ed25519_keypair<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(SecureSeed, [u8; 32]), CryptoError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Generate a fresh Ed25519 keypair. Read more
Source§fn ed25519_public_key_from_seed<'life0, 'life1, 'async_trait>(
&'life0 self,
seed: &'life1 SecureSeed,
) -> Pin<Box<dyn Future<Output = Result<[u8; 32], CryptoError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn ed25519_public_key_from_seed<'life0, 'life1, 'async_trait>(
&'life0 self,
seed: &'life1 SecureSeed,
) -> Pin<Box<dyn Future<Output = Result<[u8; 32], CryptoError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Derive the 32-byte public key from a raw seed. Read more
Auto Trait Implementations§
impl Freeze for RingCryptoProvider
impl RefUnwindSafe for RingCryptoProvider
impl Send for RingCryptoProvider
impl Sync for RingCryptoProvider
impl Unpin for RingCryptoProvider
impl UnsafeUnpin for RingCryptoProvider
impl UnwindSafe for RingCryptoProvider
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