[][src]Struct exonum::crypto::Signature

pub struct Signature(_);

Ed25519 digital signature. This structure creates a signature over data using a secret key. Later it is possible to verify, using the corresponding public key, that the data have indeed been signed with that secret key.

Ed25519 is a signature system that ensures fast signing and key generation, as well as security and collision resilience.

Examples

The example below generates a pair of random public and secret keys, adds certain data, signs the data using the secret key and verifies that the data have been signed with that secret key.

use exonum::crypto;

let (public_key, secret_key) = crypto::gen_keypair();
let data = [1, 2, 3];
let signature = crypto::sign(&data, &secret_key);
assert!(crypto::verify(&signature, &data, &public_key));

Methods

impl Signature
[src]

pub fn zero() -> Self
[src]

Creates a new instance filled with zeros.

impl Signature
[src]

pub fn new(bytes_array: [u8; 64]) -> Self
[src]

Creates a new instance from bytes array.

pub fn from_slice(bytes_slice: &[u8]) -> Option<Self>
[src]

Creates a new instance from bytes slice.

pub fn to_hex(&self) -> String
[src]

Returns a hex representation of binary data. Lower case letters are used (e.g. f9b4ca).

Trait Implementations

impl<'a> ExonumJson for &'a Signature
[src]

impl ExonumJsonDeserialize for Signature
[src]

impl<'a> Field<'a> for &'a Signature
[src]

fn check(
    buffer: &'a [u8],
    from: CheckedOffset,
    to: CheckedOffset,
    latest_segment: CheckedOffset
) -> Result
[src]

Checks if data in the buffer could be deserialized. Returns an index of latest data seen. Default implementation simply checks that the length of segment equals field size. Read more

impl StorageKey for Signature
[src]

impl Eq for Signature
[src]

impl PartialOrd<Signature> for Signature
[src]

impl Copy for Signature
[src]

impl PartialEq<Signature> for Signature
[src]

impl AsRef<[u8]> for Signature
[src]

impl Clone for Signature
[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl Ord for Signature
[src]

fn max(self, other: Self) -> Self
1.21.0
[src]

Compares and returns the maximum of two values. Read more

fn min(self, other: Self) -> Self
1.21.0
[src]

Compares and returns the minimum of two values. Read more

impl Debug for Signature
[src]

impl Display for Signature
[src]

impl Hash for Signature
[src]

fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher
1.3.0
[src]

Feeds a slice of this type into the given [Hasher]. Read more

impl Index<Range<usize>> for Signature
[src]

type Output = [u8]

The returned type after indexing.

impl Index<RangeTo<usize>> for Signature
[src]

type Output = [u8]

The returned type after indexing.

impl Index<RangeFrom<usize>> for Signature
[src]

type Output = [u8]

The returned type after indexing.

impl Index<RangeFull> for Signature
[src]

type Output = [u8]

The returned type after indexing.

impl<'de> Deserialize<'de> for Signature
[src]

impl Serialize for Signature
[src]

impl FromHex for Signature
[src]

type Error = FromHexError

Auto Trait Implementations

impl Send for Signature

impl Sync for Signature

Blanket Implementations

impl<T> SerializeContent for T where
    T: Serialize
[src]

impl<T> From for T
[src]

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

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

type Owned = T

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

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

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

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

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

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

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

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

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

impl<T> Erased for T

impl<T> Erased for T

impl<T> DeserializeOwned for T where
    T: Deserialize<'de>, 
[src]

impl<Q, K> Equivalent for Q where
    K: Borrow<Q> + ?Sized,
    Q: Eq + ?Sized
[src]

impl<T> ToHex for T where
    T: AsRef<[u8]>, 
[src]

impl<T> Same for T

type Output = T

Should always be Self