1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//! [Varsig] implementation.
//!
//! This includes both signature metadata and helpers for signing, verifying,
//! and encoding payloads per a given [Varsig] configuration.
//!
//! [Varsig]: https://github.com/ChainAgnostic/varsig
//!
//! # Example
//!
//! ```rust
//! use varsig::{Varsig, signature::eddsa::Ed25519};
//! use serde_ipld_dagcbor::codec::DagCborCodec;
//! use serde::{Serialize, Deserialize};
//!
//! // Your data type
//! #[derive(Debug, Serialize, Deserialize)]
//! struct Character {
//! name: String,
//! hp: u16,
//! mp: u16,
//! }
//!
//! let payload = Character {
//! name: "Terra Branford".to_string(),
//! hp: 100,
//! mp: 20,
//! };
//!
//! // ✨ Varsig configuration for Ed25519 and DAG-CBOR ✨
//! let varsig: Varsig<Ed25519, DagCborCodec, Character> = Varsig::default();
//!
//! // Signing the payload with enforced Ed25519 and DAG-CBOR
//! let sk = ed25519_dalek::SigningKey::generate(&mut rand::thread_rng());
//! let (sig, _) = varsig.try_sign(&sk, &payload).unwrap();
//! varsig.try_verify(&sk.verifying_key(), &payload, &sig).unwrap();
//! ```
// syn
pub use Varsig;