pub enum SeaError {
Crypto(String),
InvalidKey,
VerificationFailed,
Encryption(String),
Decryption(String),
}Expand description
SEA module error types
All errors that can occur in SEA (Security, Encryption, Authorization) operations.
§Variants
Crypto(String): General cryptographic error with messageInvalidKey: Key format is invalid or cannot be parsedVerificationFailed: Signature verification failed (data may be tampered or wrong key)Encryption(String): Error during encryption operationDecryption(String): Error during decryption operation
§Example
use gun::sea::{pair, sign, verify, SeaError};
use serde_json::json;
let keypair = pair().await?;
let data = json!({"message": "hello"});
let signed = sign(&data, &keypair).await?;
// Verification should succeed
let verified = verify(&signed, &keypair.pub_key).await?;
assert_eq!(verified, data);
// Wrong key should fail
let wrong_keypair = pair().await?;
let result = verify(&signed, &wrong_keypair.pub_key).await;
assert!(matches!(result, Err(SeaError::VerificationFailed)));Variants§
Trait Implementations§
Source§impl Error for SeaError
impl Error for SeaError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()
Auto Trait Implementations§
impl Freeze for SeaError
impl RefUnwindSafe for SeaError
impl Send for SeaError
impl Sync for SeaError
impl Unpin for SeaError
impl UnwindSafe for SeaError
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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