Expand description
Cryptographic signature operations and utilities for AT Protocol records.
This library provides comprehensive functionality for working with AT Protocol records, including cryptographic signature creation and verification, AT-URI parsing, and datetime serialization utilities. Built on IPLD DAG-CBOR for deterministic encoding with support for P-256, P-384, and K-256 elliptic curve cryptography.
§Main Features
- Signature Operations: Create and verify cryptographic signatures following the community.lexicon.attestation.signature specification
- AT-URI Support: Parse and validate AT Protocol URIs for record identification
- DateTime Utilities: RFC 3339 datetime serialization with millisecond precision
- Type-Safe Errors: Structured error types following project conventions
§Example Usage
ⓘ
use atproto_record::signature;
use atproto_identity::key::identify_key;
use serde_json::json;
// Sign a record
let key_data = identify_key("did:key:...")?;
let record = json!({"$type": "app.bsky.feed.post", "text": "Hello!"});
let sig_obj = json!({"issuer": "did:plc:..."});
let signed = signature::create(&key_data, &record, "did:plc:repo",
"app.bsky.feed.post", sig_obj).await?;
// Verify a signature
signature::verify("did:plc:issuer", &key_data, signed,
"did:plc:repo", "app.bsky.feed.post").await?;
Modules§
- aturi
- AT-URI parsing and validation.
- bytes
- Byte array serialization utilities.
- datetime
- DateTime serialization utilities.
- errors
- Structured error types for record operations.
- lexicon
- AT Protocol lexicon type definitions.
- signature
- Core signature creation and verification.
- typed
- Generic wrapper for handling lexicon types with
$type
fields.