pub struct YubiHsm2AdminCredentials {
iteration: u32,
backup_passphrase: Passphrase,
administrators: Vec<Credentials>,
}Expand description
Administrative credentials for YubiHSM2 backends.
Tracks the following items:
- the minimum iteration for which the credentials should apply,
- the backup passphrase of the backend,
- the administrator credentials of the backend,
§Note
There must be at least one set of [Credentials] in the list of administrators.
The passphrases of administrator accounts must be at least
Self::MINIMUM_PASSPHRASE_LENGTH_USER characters long.
The backup passphrase must be at least Self::MINIMUM_PASSPHRASE_LENGTH_BACKUP characters
long.
It is implied, that the administrator users of a YubiHSM2 backend have the necessary capabilities for the creation of other users and keys.
Fields§
§iteration: u32§backup_passphrase: Passphrase§administrators: Vec<Credentials>Implementations§
Source§impl YubiHsm2AdminCredentials
impl YubiHsm2AdminCredentials
Sourcepub const DEFAULT_ID: u16 = 1
pub const DEFAULT_ID: u16 = 1
The default ID on an unprovisioned YubiHSM2 device.
Sourcepub const DEFAULT_PASSPHRASE: &str = "password"
pub const DEFAULT_PASSPHRASE: &str = "password"
The default passphrase on an unprovisioned YubiHSM2 device.
Sourcepub const MINIMUM_PASSPHRASE_LENGTH_USER: usize = 8
pub const MINIMUM_PASSPHRASE_LENGTH_USER: usize = 8
The default passphrase on an unprovisioned YubiHSM2 device.
Sourcepub const MINIMUM_PASSPHRASE_LENGTH_BACKUP: usize = 10
pub const MINIMUM_PASSPHRASE_LENGTH_BACKUP: usize = 10
The minimum length of a backup passphrase.
Sourcepub fn new(
iteration: u32,
backup_passphrase: Passphrase,
administrators: Vec<Credentials>,
) -> Result<Self, Error>
pub fn new( iteration: u32, backup_passphrase: Passphrase, administrators: Vec<Credentials>, ) -> Result<Self, Error>
Creates a new YubiHsm2AdminCredentials.
§Errors
Returns an error if
- there is no administrator user,
- a user passphrase is too short,
- or the backup passphrase is too short.
Trait Implementations§
Source§impl AdminCredentials for YubiHsm2AdminCredentials
impl AdminCredentials for YubiHsm2AdminCredentials
Source§fn validate(&self) -> Result<(), Error>
fn validate(&self) -> Result<(), Error>
Validates the YubiHsm2AdminCredentials.
§Errors
Returns an error if
- there is no administrator user,
- a user passphrase is too short,
- or the backup passphrase is too short.
Source§fn load(secrets_handling: AdministrativeSecretHandling) -> Result<Self, Error>
fn load(secrets_handling: AdministrativeSecretHandling) -> Result<Self, Error>
AdminCredentials from the default file location. Read moreSource§fn load_from_file(
path: impl AsRef<Path>,
secrets_handling: AdministrativeSecretHandling,
) -> Result<Self, Error>
fn load_from_file( path: impl AsRef<Path>, secrets_handling: AdministrativeSecretHandling, ) -> Result<Self, Error>
AdminCredentials from file. Read moreSource§fn store(
&self,
secrets_handling: AdministrativeSecretHandling,
) -> Result<(), Error>
fn store( &self, secrets_handling: AdministrativeSecretHandling, ) -> Result<(), Error>
AdminCredentials as a file in the default location. Read moreSource§impl Clone for YubiHsm2AdminCredentials
impl Clone for YubiHsm2AdminCredentials
Source§fn clone(&self) -> YubiHsm2AdminCredentials
fn clone(&self) -> YubiHsm2AdminCredentials
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for YubiHsm2AdminCredentials
impl Debug for YubiHsm2AdminCredentials
Source§impl Default for YubiHsm2AdminCredentials
impl Default for YubiHsm2AdminCredentials
Source§fn default() -> YubiHsm2AdminCredentials
fn default() -> YubiHsm2AdminCredentials
Source§impl<'de> Deserialize<'de> for YubiHsm2AdminCredentials
impl<'de> Deserialize<'de> for YubiHsm2AdminCredentials
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for YubiHsm2AdminCredentials
impl RefUnwindSafe for YubiHsm2AdminCredentials
impl Send for YubiHsm2AdminCredentials
impl Sync for YubiHsm2AdminCredentials
impl Unpin for YubiHsm2AdminCredentials
impl UnsafeUnpin for YubiHsm2AdminCredentials
impl UnwindSafe for YubiHsm2AdminCredentials
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.