Skip to content

Commit 73fd178

Browse files
committed
fixup! add a Rust library
realistic doc examples
1 parent 1f59b6e commit 73fd178

File tree

2 files changed

+29
-8
lines changed

2 files changed

+29
-8
lines changed

rust/src/dalek.rs

+12-6
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,20 @@
33
//! Usage example:
44
//!
55
//! ```
6+
//! use hex_literal::hex;
67
//! use x25519_dalek::{PublicKey, StaticSecret};
78
//! use glome::{tag,verify};
8-
//! let raw_private_key = [15u8; 32]; // <- our private key loaded from somewhere
9-
//! let private_key: StaticSecret = raw_private_key.into();
10-
//! let raw_public_key = [16u8; 32]; // <- their public key loaded from somewhere
11-
//! let public_key: PublicKey = raw_public_key.into();
12-
//! tag(&private_key, &public_key, 0u8, b"Hello, world!");
13-
//! verify(&private_key, &public_key, 42u8, b"Goodbye.", b"\x00\x01\x02\x03");
9+
//!
10+
//! let alice_private_key: StaticSecret = hex!("fee1deadfee1deadfee1deadfee1deadfee1deadfee1deadfee1deadfee1dead").into();
11+
//! let alice_public_key: PublicKey = (&alice_private_key).into();
12+
//!
13+
//! let bob_private_key: StaticSecret = hex!("b105f00db105f00db105f00db105f00db105f00db105f00db105f00db105f00d").into();
14+
//! let bob_public_key: PublicKey = (&bob_private_key).into();
15+
//!
16+
//! let msg = b"Hello, world!";
17+
//! let t = tag(&alice_private_key, &bob_public_key, 0u8, msg);
18+
//! assert!(verify(&bob_private_key, &alice_public_key, 0u8, msg, &t));
19+
//! assert!(!verify(&bob_private_key, &alice_public_key, 0u8, b"kthxbai", &t));
1420
//! ```
1521
1622
use x25519_dalek::{PublicKey as DalekPublicKey, StaticSecret};

rust/src/openssl.rs

+17-2
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,29 @@
77
//! Usage example:
88
//!
99
//! ```
10+
//! use hex_literal::hex;
1011
//! use openssl::pkey;
1112
//! use glome::{tag,verify};
13+
//!
1214
//! let raw_private_key = [15u8; 32]; // <- our private key loaded from somewhere
1315
//! let private_key = pkey::PKey::private_key_from_raw_bytes(&raw_private_key, pkey::Id::X25519).unwrap();
1416
//! let raw_public_key = [16u8; 32]; // <- their public key loaded from somewhere
1517
//! let public_key = pkey::PKey::public_key_from_raw_bytes(&raw_public_key, pkey::Id::X25519).unwrap();
16-
//! tag(&private_key, &public_key, 0u8, b"Hello, world!");
17-
//! verify(&private_key, &public_key, 42u8, b"Goodbye.", b"\x00\x01\x02\x03");
18+
//!
19+
//! let alice_raw_private_key = hex!("fee1deadfee1deadfee1deadfee1deadfee1deadfee1deadfee1deadfee1dead");
20+
//! let alice_private_key = pkey::PKey::private_key_from_raw_bytes(&alice_raw_private_key, pkey::Id::X25519).unwrap();
21+
//! let alice_raw_public_key = hex!("872f435bb8b89d0e3ad62aa2e511074ee195e1c39ef6a88001418be656e3c376");
22+
//! let alice_public_key = pkey::PKey::public_key_from_raw_bytes(&alice_raw_public_key, pkey::Id::X25519).unwrap();
23+
//!
24+
//! let bob_raw_private_key = hex!("b105f00db105f00db105f00db105f00db105f00db105f00db105f00db105f00d");
25+
//! let bob_private_key = pkey::PKey::private_key_from_raw_bytes(&bob_raw_private_key, pkey::Id::X25519).unwrap();
26+
//! let bob_raw_public_key = hex!("d1b6941bba120bcd131f335da15778d9c68dadd398ae61cf8e7d94484ee65647");
27+
//! let bob_public_key = pkey::PKey::public_key_from_raw_bytes(&bob_raw_public_key, pkey::Id::X25519).unwrap();
28+
//!
29+
//! let msg = b"Hello, world!";
30+
//! let t = tag(&alice_private_key, &bob_public_key, 0u8, msg);
31+
//! assert!(verify(&bob_private_key, &alice_public_key, 0u8, msg, &t));
32+
//! assert!(!verify(&bob_private_key, &alice_public_key, 0u8, b"kthxbai", &t));
1833
//! ```
1934
2035
use openssl::{derive, pkey};

0 commit comments

Comments
 (0)