Crate atproto_record

Crate atproto_record 

Source
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.