pub struct KeyPair {
pub owner: String,
pub pub_key: EdCurvePoint,
pub priv_key: Vec<u8>,
pub date_created: String,
pub curve: EdCurves,
}Expand description
An object containing the fields necessary to represent an asymmetric keypair.
Fields§
§owner: StringString indicating the owner of the key, can be arbitrary
pub_key: EdCurvePointPublic encryption key
priv_key: Vec<u8>value representing secret scalar, None if KeyType is PUBLIC
date_created: StringDate key was generated
curve: EdCurvesSelected curve type
Implementations§
source§impl KeyPair
impl KeyPair
sourcepub fn new(pw: &Vec<u8>, owner: String, curve: EdCurves, d: u64) -> KeyPair
pub fn new(pw: &Vec<u8>, owner: String, curve: EdCurves, d: u64) -> KeyPair
Asymmetric KeyPair Generation
Generates a (Schnorr/ECDHIES) key pair from passphrase pw.
Algorithm:
- s ← kmac_xof(pw, “”, 512, “K”); s ← 4s
- 𝑉 ← s*𝑮
- key pair: (s, 𝑉)
Arguments:
- pw: &Vec
: password as bytes, can be blank but shouldnt be - owner: String : A label to indicate the owner of the key
- curve:
EdCurves: The selected Edwards curve
Returns:
- return ->
KeyPair: Key object containing owner, private key, public key x and y coordinates, and timestamp. verification key 𝑉 is hashed together with the message 𝑚 and the nonce 𝑈: hash (𝑚, 𝑈, 𝑉) .
Usage:
use capycrypt::{
curves::EdCurves::E448, KeyPair,
sha3::{aux_functions::{byte_utils::{get_random_bytes}}}
};
// Get a random password
let pw = get_random_bytes(64);
let key_pair = KeyPair::new(&pw, "test key".to_string(), E448, 512);Trait Implementations§
Auto Trait Implementations§
impl RefUnwindSafe for KeyPair
impl Send for KeyPair
impl Sync for KeyPair
impl Unpin for KeyPair
impl UnwindSafe for KeyPair
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more