[][src]Struct ripple_keypairs::Seed

pub struct Seed { /* fields omitted */ }

A seed that can be used to generate keypairs

Examples

Generate a new seed

use ripple_keypairs::{Seed, Entropy, Algorithm};

let seed = Seed::new(Entropy::Random, &Algorithm::Secp256k1);

assert!(seed.to_string().starts_with("s"));

Implementations

impl Seed[src]

pub fn new(entropy: Entropy, kind: &'static Algorithm) -> Self[src]

Generate a new seed

Examples

use ripple_keypairs::{Seed, Entropy, Algorithm};

let seed_secp256k1 = Seed::new(Entropy::Random, &Algorithm::Secp256k1);

assert!(seed_secp256k1.to_string().starts_with("s"));
assert_eq!(seed_secp256k1.as_kind(), &Algorithm::Secp256k1);

let seed_ed25519 = Seed::new(Entropy::Random, &Algorithm::Ed25519);

assert!(seed_ed25519.to_string().starts_with("s"));
assert_eq!(seed_ed25519.as_kind(), &Algorithm::Ed25519);

Panics

Panics only if something goes wrong with the random generator when using the Entropy::Random parameter.

pub fn random() -> Self[src]

Generate a random seed

The algorithm defaults to Secp256k1.

Examples

use ripple_keypairs::{Seed, Algorithm};

let seed = Seed::random();

assert_eq!(seed.as_kind(), &Algorithm::Secp256k1);
assert_ne!(Seed::random(), Seed::random());

pub fn derive_keypair(&self) -> Result<(PrivateKey, PublicKey)>[src]

Derive a public and private key from a seed

Examples

use ripple_keypairs::Seed;

let seed = Seed::random();
let (private_key, public_key) = seed.derive_keypair()?;
let msg = "Test message";

assert_eq!(public_key.verify(&msg, &private_key.sign(&msg)), Ok(()));

Errors

May return error::DeriveKeyPairError if the derived keypair did not generate a verifiable signature

pub fn as_entropy(&self) -> &EntropyArray[src]

Seed as EntropyArray

Examples

use ripple_keypairs::{Seed, Entropy, Algorithm, EntropyArray};

let seed = Seed::new(Entropy::Array([0; 16]), &Algorithm::Secp256k1);

assert_eq!(seed.as_entropy(), &[0; 16]);
assert_eq!(seed.as_entropy(), <Seed as AsRef<EntropyArray>>::as_ref(&seed));

Traits

This method is used in AsRef trait.

pub fn as_kind(&self) -> &Algorithm[src]

Seed as Algorithm

Examples

use ripple_keypairs::{Seed, Entropy, Algorithm};

let seed = Seed::new(Entropy::Random, &Algorithm::Ed25519);

assert_eq!(seed.as_kind(), &Algorithm::Ed25519);
assert_eq!(seed.as_kind(), <Seed as AsRef<Algorithm>>::as_ref(&seed));

Traits

This method is used in AsRef trait.

Trait Implementations

impl AsRef<[u8; 16]> for Seed[src]

impl AsRef<Algorithm> for Seed[src]

impl Clone for Seed[src]

impl Copy for Seed[src]

impl Debug for Seed[src]

impl Display for Seed[src]

impl Eq for Seed[src]

impl FromStr for Seed[src]

type Err = Error

The associated error which can be returned from parsing.

impl Hash for Seed[src]

impl PartialEq<Seed> for Seed[src]

impl StructuralEq for Seed[src]

impl StructuralPartialEq for Seed[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,