pub struct DefaultVerifier;Expand description
A JwsVerifier over RustCrypto: ed25519-dalek for EdDSA, p256 for ES256, k256 for
ES256K (feature secp256k1) and rsa for RS256 and PS256 (feature rsa).
ES384 is in the JwsAlgorithm vocabulary but not implemented here; verifying it returns
VerificationError::UnsupportedAlgorithm.
Before the signature is checked, the key’s own restrictions are: a key whose alg names
another algorithm, whose use is not sig or whose key_ops lacks verify is rejected.
§Examples
use identity_kit::jose::{DefaultVerifier, Jwk, JwsAlgorithm, JwsVerifier};
// RFC 8037 Appendix A.4 and A.5.
let key: Jwk = serde_json::from_str(
r#"{"kty":"OKP","crv":"Ed25519","x":"11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo"}"#,
)?;
let token = "eyJhbGciOiJFZERTQSJ9.RXhhbXBsZSBvZiBFZDI1NTE5IHNpZ25pbmc.\
hgyY0il_MGCjP0JzlnLWG1PPOt7-09PGcvMg3AIbQR6dWbhijcNR4ki4iylGjg5BhVsPt9g7sVvpAr_MuM0KAg";
let jws = identity_kit::jose::CompactJws::decode(token)?;
DefaultVerifier.verify(JwsAlgorithm::EdDSA, jws.signing_input(), jws.signature(), &key)?;Trait Implementations§
Source§impl Clone for DefaultVerifier
impl Clone for DefaultVerifier
impl Copy for DefaultVerifier
Source§impl Debug for DefaultVerifier
impl Debug for DefaultVerifier
Source§impl Default for DefaultVerifier
impl Default for DefaultVerifier
impl Eq for DefaultVerifier
Source§impl JwsVerifier for DefaultVerifier
impl JwsVerifier for DefaultVerifier
Source§impl PartialEq for DefaultVerifier
impl PartialEq for DefaultVerifier
impl StructuralPartialEq for DefaultVerifier
Auto Trait Implementations§
impl Freeze for DefaultVerifier
impl RefUnwindSafe for DefaultVerifier
impl Send for DefaultVerifier
impl Sync for DefaultVerifier
impl Unpin for DefaultVerifier
impl UnsafeUnpin for DefaultVerifier
impl UnwindSafe for DefaultVerifier
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.