Struct diem_sdk::crypto::ed25519::ed25519_dalek::SecretKey
pub struct SecretKey(_);
Expand description
An EdDSA secret key.
Instances of this secret are automatically overwritten with zeroes when they fall out of scope.
Implementations§
§impl SecretKey
impl SecretKey
pub fn from_bytes(bytes: &[u8]) -> Result<SecretKey, Error>
pub fn from_bytes(bytes: &[u8]) -> Result<SecretKey, Error>
Construct a SecretKey
from a slice of bytes.
Example
use ed25519_dalek_fiat::SecretKey;
use ed25519_dalek_fiat::SECRET_KEY_LENGTH;
use ed25519_dalek_fiat::SignatureError;
let secret_key_bytes: [u8; SECRET_KEY_LENGTH] = [
157, 097, 177, 157, 239, 253, 090, 096,
186, 132, 074, 244, 146, 236, 044, 196,
068, 073, 197, 105, 123, 050, 105, 025,
112, 059, 172, 003, 028, 174, 127, 096, ];
let secret_key: SecretKey = SecretKey::from_bytes(&secret_key_bytes)?;
Returns
A Result
whose okay value is an EdDSA SecretKey
or whose error value
is an SignatureError
wrapping the internal error that occurred.
pub fn generate<T>(csprng: &mut T) -> SecretKeywhere
T: CryptoRng + RngCore,
pub fn generate<T>(csprng: &mut T) -> SecretKeywhere T: CryptoRng + RngCore,
Generate a SecretKey
from a csprng
.
Example
extern crate rand;
extern crate ed25519_dalek_fiat;
use rand::rngs::OsRng;
use ed25519_dalek_fiat::PublicKey;
use ed25519_dalek_fiat::SecretKey;
use ed25519_dalek_fiat::Signature;
let mut csprng = OsRng{};
let secret_key: SecretKey = SecretKey::generate(&mut csprng);
Afterwards, you can generate the corresponding public:
let public_key: PublicKey = (&secret_key).into();
Input
A CSPRNG with a fill_bytes()
method, e.g. rand::OsRng
Trait Implementations§
§impl<'d> Deserialize<'d> for SecretKey
impl<'d> Deserialize<'d> for SecretKey
§fn deserialize<D>(
deserializer: D
) -> Result<SecretKey, <D as Deserializer<'d>>::Error>where
D: Deserializer<'d>,
fn deserialize<D>( deserializer: D ) -> Result<SecretKey, <D as Deserializer<'d>>::Error>where D: Deserializer<'d>,
Deserialize this value from the given Serde deserializer. Read more
§impl<'a> From<&'a SecretKey> for ExpandedSecretKey
impl<'a> From<&'a SecretKey> for ExpandedSecretKey
§fn from(secret_key: &'a SecretKey) -> ExpandedSecretKey
fn from(secret_key: &'a SecretKey) -> ExpandedSecretKey
Construct an ExpandedSecretKey
from a SecretKey
.
Examples
use rand::rngs::OsRng;
use ed25519_dalek_fiat::{SecretKey, ExpandedSecretKey};
let mut csprng = OsRng{};
let secret_key: SecretKey = SecretKey::generate(&mut csprng);
let expanded_secret_key: ExpandedSecretKey = ExpandedSecretKey::from(&secret_key);
§impl Serialize for SecretKey
impl Serialize for SecretKey
§fn serialize<S>(
&self,
serializer: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>( &self, serializer: S ) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where S: Serializer,
Serialize this value into the given Serde serializer. Read more
Auto Trait Implementations§
impl RefUnwindSafe for SecretKey
impl Send for SecretKey
impl Sync for SecretKey
impl Unpin for SecretKey
impl UnwindSafe for SecretKey
Blanket Implementations§
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> TestOnlyHash for Twhere
T: Serialize + ?Sized,
impl<T> TestOnlyHash for Twhere T: Serialize + ?Sized,
§fn test_only_hash(&self) -> HashValue
fn test_only_hash(&self) -> HashValue
Generates a hash used only for tests.
source§impl<T> ToHex for Twhere
T: AsRef<[u8]>,
impl<T> ToHex for Twhere T: AsRef<[u8]>,
source§fn encode_hex<U>(&self) -> Uwhere
U: FromIterator<char>,
fn encode_hex<U>(&self) -> Uwhere U: FromIterator<char>,
Encode the hex strict representing
self
into the result. Lower case
letters are used (e.g. f9b4ca
)source§fn encode_hex_upper<U>(&self) -> Uwhere
U: FromIterator<char>,
fn encode_hex_upper<U>(&self) -> Uwhere U: FromIterator<char>,
Encode the hex strict representing
self
into the result. Upper case
letters are used (e.g. F9B4CA
)