1 unstable release
| 0.1.0 | Nov 10, 2025 |
|---|
#1030 in Command line utilities
26KB
475 lines
Duke Crypto
A Rust workspace containing cryptographic utilities for generating BIP39 mnemonics and ED25519 key pairs.
Projects
duke-crypto-core
A library crate providing:
- BIP39 mnemonic phrase generation
- ED25519 key pair generation
- Key pair generation from mnemonic phrases
- Base58 encoding/decoding for keys
- Message signing and verification
duke-crypto-cli
A command-line tool for generating mnemonics and key pairs.
Installation
From crates.io (after publishing)
cargo install duke-crypto-cli
From source
git clone https://github.com/yourusername/duke-crypto
cd duke-crypto
cargo build --release
Usage
CLI Tool
Generate a new mnemonic:
duke-crypto mnemonic
Generate a new key pair:
duke-crypto keypair
Generate a key pair from a mnemonic:
duke-crypto from-mnemonic "your twelve word mnemonic phrase here"
Sign a message:
duke-crypto sign <private_key> "message to sign"
Verify a signature:
duke-crypto verify <public_key> "message" <signature>
Library Usage
Add to your Cargo.toml:
[dependencies]
duke-crypto-core = "0.1.0"
Example:
use duke_crypto_core::*;
// Generate a mnemonic
let mnemonic = generate_mnemonic();
println!("Mnemonic: {}", mnemonic);
// Generate a key pair from mnemonic
let mnemonic_obj = mnemonic_from_phrase(&mnemonic)?;
let (signing_key, verifying_key) = generate_keypair_from_mnemonic(&mnemonic_obj);
// Encode keys
let private_key = encode_private_key(&signing_key);
let public_key = encode_public_key(&verifying_key);
// Sign and verify
let message = b"Hello, world!";
let signature = sign_message(&signing_key, message);
assert!(verify_signature(&verifying_key, message, &signature));
Requirements
- Rust 1.70 or later
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Dependencies
~4.5–6.5MB
~145K SLoC