Update doc examples for new APIs.
This commit is contained in:
parent
14ede0c145
commit
8c102d11bb
83
src/lib.rs
83
src/lib.rs
@ -30,10 +30,87 @@
|
|||||||
//! ruma_signatures::sign_json("example.com", &key_pair, &mut value).unwrap()
|
//! ruma_signatures::sign_json("example.com", &key_pair, &mut value).unwrap()
|
||||||
//! ```
|
//! ```
|
||||||
//!
|
//!
|
||||||
//! # Signing Matrix events
|
//! This will modify the JSON from an empty object to a structure like this:
|
||||||
//!
|
//!
|
||||||
//! Signing an event uses a more involved process than signing arbitrary JSON.
|
//! ```json
|
||||||
//! Event signing is not yet implemented by ruma-signatures.
|
//! {
|
||||||
|
//! "signatures": {
|
||||||
|
//! "example.com": {
|
||||||
|
//! "ed25519:1": "K8280/U9SSy9IVtjBuVeLr+HpOB4BQFWbg+UZaADMtTdGYI7Geitb76LTrr5QV/7Xg4ahLwYGYZzuHGZKM5ZAQ"
|
||||||
|
//! }
|
||||||
|
//! }
|
||||||
|
//! }
|
||||||
|
//! ```
|
||||||
|
//!
|
||||||
|
//! # Hashing and signing Matrix events
|
||||||
|
//!
|
||||||
|
//! Signing an event uses a more involved process than signing arbitrary JSON because events can be
|
||||||
|
//! redacted and signatures need to remain valid even if data is removed from an event later.
|
||||||
|
//! Homeservers are required to generate hashes of event contents and sign events before exchanging
|
||||||
|
//! them with other homeservers. Although the algorithm for hashing and signing an event is more
|
||||||
|
//! complicated than for signing arbitrary JSON, the interface to a user of ruma-signatures is the
|
||||||
|
//! same:
|
||||||
|
//!
|
||||||
|
//! ```rust,no_run
|
||||||
|
//! # use ruma_signatures::{self, KeyPair};
|
||||||
|
//! # use serde_json;
|
||||||
|
//! # let public_key = [0; 32];
|
||||||
|
//! # let private_key = [0; 32];
|
||||||
|
//! // Create an Ed25519 key pair.
|
||||||
|
//! let key_pair = ruma_signatures::Ed25519KeyPair::new(
|
||||||
|
//! &public_key, // &[u8]
|
||||||
|
//! &private_key, // &[u8]
|
||||||
|
//! "1".to_string(), // The "version" of the key.
|
||||||
|
//! ).unwrap();
|
||||||
|
//! let mut value = serde_json::from_str(
|
||||||
|
//! r#"{
|
||||||
|
//! "room_id": "!x:domain",
|
||||||
|
//! "sender": "@a:domain",
|
||||||
|
//! "origin": "domain",
|
||||||
|
//! "origin_server_ts": 1000000,
|
||||||
|
//! "signatures": {},
|
||||||
|
//! "hashes": {},
|
||||||
|
//! "type": "X",
|
||||||
|
//! "content": {},
|
||||||
|
//! "prev_events": [],
|
||||||
|
//! "auth_events": [],
|
||||||
|
//! "depth": 3,
|
||||||
|
//! "unsigned": {
|
||||||
|
//! "age_ts": 1000000
|
||||||
|
//! }
|
||||||
|
//! }"#
|
||||||
|
//! ).unwrap();
|
||||||
|
//! ruma_signatures::hash_and_sign_event("example.com", &key_pair, &mut value).unwrap()
|
||||||
|
//! ```
|
||||||
|
//!
|
||||||
|
//! This will modify the JSON from the structure shown to a structure like this:
|
||||||
|
//!
|
||||||
|
//! ```json
|
||||||
|
//! {
|
||||||
|
//! "auth_events": [],
|
||||||
|
//! "content": {},
|
||||||
|
//! "depth": 3,
|
||||||
|
//! "hashes": {
|
||||||
|
//! "sha256": "5jM4wQpv6lnBo7CLIghJuHdW+s2CMBJPUOGOC89ncos"
|
||||||
|
//! },
|
||||||
|
//! "origin": "domain",
|
||||||
|
//! "origin_server_ts": 1000000,
|
||||||
|
//! "prev_events": [],
|
||||||
|
//! "room_id": "!x:domain",
|
||||||
|
//! "sender": "@a:domain",
|
||||||
|
//! "signatures": {
|
||||||
|
//! "domain": {
|
||||||
|
//! "ed25519:1": "KxwGjPSDEtvnFgU00fwFz+l6d2pJM6XBIaMEn81SXPTRl16AqLAYqfIReFGZlHi5KLjAWbOoMszkwsQma+lYAg"
|
||||||
|
//! }
|
||||||
|
//! },
|
||||||
|
//! "type": "X",
|
||||||
|
//! "unsigned": {
|
||||||
|
//! "age_ts": 1000000
|
||||||
|
//! }
|
||||||
|
//! }
|
||||||
|
//! ```
|
||||||
|
//!
|
||||||
|
//! Notice the addition of `hashes` and `signatures`.
|
||||||
//!
|
//!
|
||||||
//! # Verifying signatures
|
//! # Verifying signatures
|
||||||
//!
|
//!
|
||||||
|
Loading…
x
Reference in New Issue
Block a user