Struct seckey::SecKey [] [src]

pub struct SecKey<T> { /* fields omitted */ }

Secure Key

The use memsec/malloc protection secret bytes.

More docs see Secure memory · libsodium.

Methods

impl<T> SecKey<T>
[src]

[src]

use seckey::{ zero, SecKey };

let k = SecKey::new([1, 2, 3])
    .unwrap_or_else(|mut val| {
        // NOTE should zero it
        zero(&mut val);
        panic!()
    });
assert_eq!([1, 2, 3], *k.read());

[src]

use seckey::SecKey;

let mut v = [1, 2, 3];
let k = unsafe { SecKey::from_ptr(&v).unwrap() };
assert_eq!([1, 2, 3], v);
assert_eq!([1, 2, 3], *k.read());

[src]

use seckey::SecKey;

let k: SecKey<u32> = unsafe { SecKey::with(|ptr| *ptr = 1).unwrap() };
assert_eq!(1, *k.read());

impl<T: Copy> SecKey<T>
[src]

[src]

impl<T: Default> SecKey<T>
[src]

[src]

use seckey::SecKey;

let k: SecKey<u32> = SecKey::with_default(|ptr| *ptr += 1).unwrap();
assert_eq!(1, *k.read());

impl<T> SecKey<T>
[src]

[src]

Borrow Read

use seckey::SecKey;

let secpass = SecKey::new([8u8; 8]).unwrap();
assert_eq!([8u8; 8], *secpass.read());

[src]

Borrow Write

let mut wpass = secpass.write();
wpass[0] = 0;
assert_eq!([0, 8, 8, 8, 8, 8, 8, 8], *wpass);

Trait Implementations

impl<T> Debug for SecKey<T>
[src]

[src]

Formats the value using the given formatter. Read more

impl<T> Pointer for SecKey<T>
[src]

[src]

Formats the value using the given formatter.

impl<T> Drop for SecKey<T>
[src]

[src]

Executes the destructor for this type. Read more

Auto Trait Implementations

impl<T> !Send for SecKey<T>

impl<T> !Sync for SecKey<T>