[][src]Module monero::util::key

Monero public and private keys

Support for (de)serializable and manipulation of Monero public and private keys.

Parsing

use std::str::FromStr;
use monero::util::key::{Error, PrivateKey, PublicKey};

// parse private key from hex
let privkey = PrivateKey::from_str("77916d0cd56ed1920aef6ca56d8a41bac915b68e4c46a589e0956e27a7b77404")?;
// parse public key from hex
let pubkey_parsed = PublicKey::from_str("eac2cc96e0ae684388e3185d5277e51313bff98b9ad4a12dcd9205f20d37f1a3")?;

// or get the public key from private key
let pubkey = PublicKey::from_private_key(&privkey);

assert_eq!(pubkey_parsed, pubkey);

Arithmetic

Support for private key addition and public key addition.

use std::str::FromStr;
use monero::util::key::{Error, PrivateKey, PublicKey};

let priv1 = PrivateKey::from_str("77916d0cd56ed1920aef6ca56d8a41bac915b68e4c46a589e0956e27a7b77404")?;
let priv2 = PrivateKey::from_str("8163466f1883598e6dd14027b8da727057165da91485834314f5500a65846f09")?;
let priv_res = priv1 + priv2;
assert_eq!("f8f4b37bedf12a2178c0adcc2565b42a212c133861cb28cdf48abf310c3ce40d", priv_res.to_string());

let pub1 = PublicKey::from_private_key(&priv1);
let pub2 = PublicKey::from_private_key(&priv2);
let pub_res = pub1 + pub2;
assert_eq!("d35ad191b220a627977bb2912ea21fd59b24937f46c1d3814dbcb7943ff1f9f2", pub_res.to_string());

let pubkey = PublicKey::from_private_key(&priv_res);
assert_eq!(pubkey, pub_res);

Structs

KeyPair

Two Monero private keys, view and spend key

PrivateKey

Monero private key

PublicKey

Monero public key

ViewPair

View pair can scan transaction outputs and retreive amounts, but can't spend outputs

Enums

Error

Errors that might occur during key decoding