Skip to content

Commit 5ee0afb

Browse files
committed
Added an example for generating keys using OsRng
1 parent f5c8a00 commit 5ee0afb

File tree

3 files changed

+24
-0
lines changed

3 files changed

+24
-0
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ script:
3636
- cargo test --verbose
3737
- cargo build --verbose --release
3838
- cargo test --verbose --release
39+
- cargo run --example generate_keys --features=rand
3940
- if [ ${TRAVIS_RUST_VERSION} == "stable" ]; then cargo doc --verbose --features="rand,serde,recovery,endomorphism"; fi
4041
- if [ ${TRAVIS_RUST_VERSION} == "nightly" ]; then cargo test --verbose --benches --features=unstable; fi
4142
- if [ ${TRAVIS_RUST_VERSION} == "stable" -a "$TRAVIS_OS_NAME" = "linux" ]; then

Cargo.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ keywords = [ "crypto", "ECDSA", "secp256k1", "libsecp256k1", "bitcoin" ]
1313
readme = "README.md"
1414
build = "build.rs"
1515
links = "secp256k1"
16+
autoexamples = false # Remove when edition 2018 https://github.com/rust-lang/cargo/issues/5330
1617

1718
# Should make docs.rs show all functions, even those behind non-default features
1819
[package.metadata.docs.rs]
@@ -38,6 +39,7 @@ lowmemory = []
3839
rand = "0.6"
3940
rand_core = "0.4"
4041
serde_test = "1.0"
42+
bitcoin_hashes = "0.7"
4143

4244
[dependencies.rand]
4345
version = "0.6"
@@ -48,3 +50,7 @@ default-features = false
4850
version = "1.0"
4951
optional = true
5052
default-features = false
53+
54+
[[example]]
55+
name = "generate_keys"
56+
required-features = ["rand"]

examples/generate_keys.rs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
extern crate secp256k1;
2+
3+
use secp256k1::rand::rngs::OsRng;
4+
use secp256k1::{PublicKey, Secp256k1, SecretKey};
5+
6+
fn main() {
7+
let secp = Secp256k1::new();
8+
let mut rng = OsRng::new().unwrap();
9+
// First option:
10+
let (seckey, pubkey) = secp.generate_keypair(&mut rng);
11+
12+
assert_eq!(pubkey, PublicKey::from_secret_key(&secp, &seckey));
13+
14+
// Second option:
15+
let seckey = SecretKey::new(&mut rng);
16+
let _pubkey = PublicKey::from_secret_key(&secp, &seckey);
17+
}

0 commit comments

Comments
 (0)