Skip to content

Commit ed45ddf

Browse files
committed
docs: more examples
1 parent 194991f commit ed45ddf

File tree

3 files changed

+37
-2
lines changed

3 files changed

+37
-2
lines changed

CHANGELOG

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
## v1.0.5 - More Examples
2+
Adds a higlevel example
3+
14
## v1.0.4 - Docs Improved II
25
Further improved documentation
36

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "webcryptobox"
33
description = "Convenient wrappers around OpenSSL to use WebCrypto compatible cryptography."
4-
version = "1.0.4"
4+
version = "1.0.5"
55
edition = "2021"
66
documentation = "https://docs.rs/webcryptobox/latest/webcryptobox/"
77
homepage = "https://github.com/jo/webcryptobox-rs"

src/lib.rs

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,38 @@
1212
//!
1313
//! Webcryptobox helps with elliptic curve key generation, derivation, fingerprinting, import and
1414
//! export as well as AES encryption and decryption.
15+
//!
16+
//! # Example:
17+
//!
18+
//! ```rust
19+
//! let wcb = webcryptobox::Webcryptobox::default();
20+
//!
21+
//! // Alice creates a key and sends her public key pem to Bob
22+
//! let alice = wcb.generate_key_pair().unwrap();
23+
//! let alice_public_key = wcb.derive_public_key(&alice).unwrap();
24+
//! let alice_public_key_pem = wcb.export_public_key_pem(&alice_public_key).unwrap();
25+
//!
26+
//! // Bob also creates a key and sends his public key pem to Alice
27+
//! let bob = wcb.generate_key_pair().unwrap();
28+
//! let bobs_public_key = wcb.derive_public_key(&bob).unwrap();
29+
//! let bob_public_key_pem = wcb.export_public_key_pem(&bobs_public_key).unwrap();
30+
//!
31+
//! // Alice uses Bobs public key to derive a shared key
32+
//! let bobs_key = wcb.import_public_key_pem(&bob_public_key_pem).unwrap();
33+
//! let alice_shared_key = wcb.derive_key(alice, bobs_key).unwrap();
34+
//!
35+
//! // She now encrypts a message and sends the encrypted message and the iv to Bob
36+
//! let iv = wcb.generate_iv().unwrap();
37+
//! let data = (b"a secret message").to_vec();
38+
//! let encrypted_message = wcb.encrypt(&alice_shared_key, &iv, &data).unwrap();
39+
//!
40+
//! // Now Bob derives the same shared secret
41+
//! let alice_key = wcb.import_public_key_pem(&alice_public_key_pem).unwrap();
42+
//! let bobs_shared_key = wcb.derive_key(bob, alice_key).unwrap();
43+
//!
44+
//! // and decrypts the message
45+
//! let message = wcb.decrypt(&bobs_shared_key, &iv, &encrypted_message);
46+
//! ```
1547
1648
use openssl::derive::Deriver;
1749
use openssl::ec::{EcGroup, EcKey};
@@ -494,8 +526,8 @@ impl Webcryptobox {
494526
///
495527
/// let alice = wcb.generate_key_pair().unwrap();
496528
/// let bob = wcb.generate_key_pair().unwrap();
497-
/// let bobs_public_key = wcb.derive_public_key(&bob).unwrap();
498529
/// let alice_public_key = wcb.derive_public_key(&alice).unwrap();
530+
/// let bobs_public_key = wcb.derive_public_key(&bob).unwrap();
499531
///
500532
/// let iv = wcb.generate_iv().unwrap();
501533
/// let data = (b"a secret message").to_vec();

0 commit comments

Comments
 (0)