affinidi-did-common

Common types, builders, and methods for working with
Decentralised Identifiers (DIDs) and DID
Documents. This crate is the foundation for the Affinidi DID Resolver.
Installation
[dependencies]
affinidi-did-common = "0.3"
Feature Flags
| Feature |
Default |
Description |
ed25519 |
Yes |
Ed25519 key support |
p256 |
Yes |
P-256 (secp256r1) key support |
p384 |
Yes |
P-384 key support |
k256 |
Yes |
secp256k1 key support |
Usage
Building a DID Document
use affinidi_did_common::{DocumentBuilder, ServiceBuilder, VerificationMethodBuilder};
use serde_json::json;
let vm = VerificationMethodBuilder::new("did:example:123#key-1", "Multikey", "did:example:123")
.unwrap()
.public_key_multibase("z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK")
.build();
let service = ServiceBuilder::new_with_url("LinkedDomains", "https://example.com")
.unwrap()
.id("did:example:123#linked-domain")
.unwrap()
.build();
let doc = DocumentBuilder::new("did:example:123")
.unwrap()
.context_did_v1()
.context_multikey_v1()
.verification_method(vm)
.authentication_reference("did:example:123#key-1")
.unwrap()
.service(service)
.build();
Service Endpoint Variants
| Endpoint Form |
Constructor |
| Single URL string |
ServiceBuilder::new_with_url("type", "https://...") |
| Map or ordered set |
ServiceBuilder::new_with_map("type", json!({...})) |
Pre-built Endpoint |
ServiceBuilder::new("type", endpoint) |
Related Crates
License
Apache-2.0