Skip to main content

solid_pod_rs_didkey/
lib.rs

1//! # solid-pod-rs-didkey
2//!
3//! `did:key` resolver and self-signed JWT verifier for
4//! [`solid-pod-rs`](https://crates.io/crates/solid-pod-rs).
5//! Supports Ed25519, P-256, and secp256k1 key types.
6//!
7//! ## Modules
8//!
9//! - [`did`]      — `did:key:z...` multibase identifier encoding and decoding.
10//! - [`pubkey`]   — Codec-aware public-key representation ([`DidKeyPubkey`]).
11//! - [`jwt`]      — Self-signed compact JWT (JWS) verifier bound to a `did:key`.
12//! - [`verifier`] — [`DidKeyVerifier`] implementing `solid_pod_rs::SelfSignedVerifier`.
13//! - [`error`]    — [`DidKeyError`] covering parse, crypto, and JWT failures.
14//!
15//! ## Quick start
16//!
17//! ```no_run
18//! use solid_pod_rs_didkey::{decode_did_key, encode_did_key, verify_self_signed_jwt};
19//!
20//! // Resolve a did:key identifier to its public key.
21//! let did = "did:key:z6MkiTBz1ymuepAQ4HEHYSF1H8quG5GLVVQR3djdX3mDooWp";
22//! let pubkey = decode_did_key(did).unwrap();
23//!
24//! // Round-trip back to the canonical did:key string.
25//! assert_eq!(encode_did_key(&pubkey), did);
26//! ```
27//!
28//! ## Spec references
29//!
30//! - W3C DID Method `key`: <https://w3c-ccg.github.io/did-method-key/>
31//! - Multicodec table: <https://github.com/multiformats/multicodec/blob/master/table.csv>
32//! - RFC 7519 (JWT), RFC 7515 (JWS), RFC 8037 (EdDSA JOSE).
33
34#![doc = include_str!("../README.md")]
35
36#![deny(unsafe_code)]
37#![warn(rust_2018_idioms)]
38
39pub mod did;
40pub mod error;
41pub mod jwt;
42pub mod pubkey;
43pub mod verifier;
44
45pub use did::{decode as decode_did_key, encode as encode_did_key};
46pub use error::DidKeyError;
47pub use jwt::{verify_self_signed_jwt, VerifiedJwt};
48pub use pubkey::DidKeyPubkey;
49pub use verifier::DidKeyVerifier;