pub enum YubiHsm2UserMapping {
Admin {
authentication_key_id: Id,
},
AuditLog {
authentication_key_id: Id,
ssh_authorized_key: AuthorizedKeyEntry,
system_user: SystemUserId,
},
Backup {
authentication_key_id: Id,
wrapping_key_id: Id,
ssh_authorized_key: AuthorizedKeyEntry,
system_user: SystemUserId,
},
HermeticAuditLog {
authentication_key_id: Id,
system_user: SystemUserId,
},
Signing {
authentication_key_id: Id,
key_setup: SigningKeySetup,
domain: Domain,
signing_key_id: Id,
ssh_authorized_key: AuthorizedKeyEntry,
system_user: SystemUserId,
},
}Expand description
User and data mapping between system users and YubiHSM2 users.
Variants§
Admin
A YubiHSM2 user in the administrator role, without a system user mapped to it.
Tracks an authentication key object with a specific authentication_key_id.
§Note
This variant implies, that the created authentication key object has all relevant capabilities necessary for the creation of users and keys and to restore from backup, i.e.:
delete-asymmetric-keygenerate-asymmetric-keyput-asymmetric-keydelete-authentication-keyput-authentication-keychange-authentication-keyget-optionset-optiondelete-hmac-keygenerate-hmac-keyput-mac-keysign-hmacverify-hmacdelete-opaquegenerate-opaqueget-opaqueput-opaquereset-devicedelete-templateget-templateput-templatedelete-wrap-keyexportable-under-wrapgenerate-wrap-keyimport-wrappedput-wrap-keyunwrap-datawrap-dataput-public-wrap-keydelete-public-wrap-keygenerate-symmetric-keyput-symmetric-keydelete-symmetric-key
Further, it is assumed that the authentication key object is added to all domains.
Fields
authentication_key_id: IdThe identifier of the authentication key used to create a session with the YubiHSM2.
AuditLog
A system user, with SSH access, mapped to a YubiHSM2 authentication key.
This variant tracks
- an authentication key object with a specific
authentication_key_id - an SSH authorized key with a specific
ssh_authorized_key - a system user ID using
system_user
Its data is used to create relevant system and backend users for the retrieval of audit logs over the network, made available by the YubiHSM2.
§Note
This variant implies, that the created authentication key object has all relevant
capabilities for audit log retrieval (i.e. get-log-entries).
Fields
authentication_key_id: IdThe identifier of the authentication key used to create a session with the YubiHSM2.
The SSH public key used for connecting to the system_user.
system_user: SystemUserIdThe name of the system user.
Backup
A mapping used for the creation of YubiHSM2 backups.
This variant tracks
- an [authentication key object] with a specific
authentication_key_id - a wrap key object with a specific
wrapping_key_id - an SSH authorized key with a specific
ssh_authorized_key - a system user ID using
system_user
Its data is used to create relevant system and backend users for the creation of backups of all keys (including [authentication key object]s) and non-key material (e.g. OpenPGP certificates) of a YubiHSM2.
§Note
This variant implies, that the created [authentication key object] has all relevant
capabilities for backup related actions (i.e. export-wrapped, wrap-data).
Further, it is assumed that both the [authentication key object] and wrap key object are added to all domains.
Fields
authentication_key_id: IdThe identifier of the authentication key used to create a session with the YubiHSM2.
This represents an authentication key object.
wrapping_key_id: IdThe SSH public key used for connecting to the system_user.
system_user: SystemUserIdThe name of the system user.
HermeticAuditLog
A system user, without SSH access, mapped to a YubiHSM2 authentication key for collecting audit logs.
This variant tracks
- an authentication key object with a specific
authentication_key_id - a system user ID using
system_user
Its data is used to create relevant system and backend users for the retrieval of audit logs made available by the YubiHSM2.
§Note
This variant implies, that the created authentication key object has all relevant
capabilities for audit log retrieval (i.e. get-log-entries).
Fields
authentication_key_id: IdThe identifier of the authentication key used to create a session with the YubiHSM2.
system_user: SystemUserIdThe name of the system user.
Signing
A system user, with SSH access, mapped to a YubiHSM2 user in the Operator role with access to a single signing key.
This variant tracks
- an authentication key object identified by an
authentication_key_id - a domain (
domain) assigned to both objects identified byauthentication_key_idandsigning_key_id - a
SigningKeySetupusingkey_setup - an asymmetric key object identified by a
signing_key_id - an SSH authorized key (
ssh_authorized_key) for asystem_user - a system user ID (
system_user)
Its data is used to create relevant system and backend users for the creation of backups of all keys (including authentication key objects) and non-key material (e.g. OpenPGP certificates) of a YubiHSM2.
§Note
This variant implies, that the created authentication key object has all relevant
capabilities for signing with the asymmetric key object (i.e. sign-ecdsa,
sign-eddsa, sign-pkcs and sign-pss).
Further, it is assumed that both the authentication key object and asymmetric key object
are added to the single domain domain.
Fields
authentication_key_id: IdThe identifier of the authentication key used to create a session with the YubiHSM2.
key_setup: SigningKeySetupThe setup of a YubiHSM2 key.
signing_key_id: IdThe identifier of the signing key in the YubiHSM2 backend.
The SSH public key used for connecting to the system_user.
system_user: SystemUserIdThe name of the system user.
Implementations§
Source§impl YubiHsm2UserMapping
impl YubiHsm2UserMapping
Sourcepub fn domain(&self) -> Option<&Domain>
pub fn domain(&self) -> Option<&Domain>
Returns the optional Domain of the YubiHsm2UserMapping.
Sourcepub fn backend_user_id(&self) -> Id
pub fn backend_user_id(&self) -> Id
Returns the authentication key ID of the YubiHsm2UserMapping.
Trait Implementations§
Source§impl Clone for YubiHsm2UserMapping
impl Clone for YubiHsm2UserMapping
Source§fn clone(&self) -> YubiHsm2UserMapping
fn clone(&self) -> YubiHsm2UserMapping
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for YubiHsm2UserMapping
impl Debug for YubiHsm2UserMapping
Source§impl<'de> Deserialize<'de> for YubiHsm2UserMapping
impl<'de> Deserialize<'de> for YubiHsm2UserMapping
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>,
Source§impl Hash for YubiHsm2UserMapping
impl Hash for YubiHsm2UserMapping
Source§impl MappingAuthorizedKeyEntry for YubiHsm2UserMapping
impl MappingAuthorizedKeyEntry for YubiHsm2UserMapping
authorized_keys entry. Read moreSource§impl MappingBackendDomain<YubiHsm2DomainFilter> for YubiHsm2UserMapping
impl MappingBackendDomain<YubiHsm2DomainFilter> for YubiHsm2UserMapping
Source§fn backend_domain(
&self,
_filter: Option<&YubiHsm2DomainFilter>,
) -> Option<String>
fn backend_domain( &self, _filter: Option<&YubiHsm2DomainFilter>, ) -> Option<String>
String representing a backend domain according to an optional filter.Source§impl MappingBackendKeyId<YubiHsm2BackendKeyIdFilter> for YubiHsm2UserMapping
impl MappingBackendKeyId<YubiHsm2BackendKeyIdFilter> for YubiHsm2UserMapping
Source§fn backend_key_id(&self, filter: &YubiHsm2BackendKeyIdFilter) -> Option<String>
fn backend_key_id(&self, filter: &YubiHsm2BackendKeyIdFilter) -> Option<String>
String representing a backend key ID according to a filter.Source§impl MappingBackendUserIds for YubiHsm2UserMapping
impl MappingBackendUserIds for YubiHsm2UserMapping
Source§fn backend_user_ids(&self, filter: BackendUserIdFilter) -> Vec<String>
fn backend_user_ids(&self, filter: BackendUserIdFilter) -> Vec<String>
Strings representing backend User IDs according to a filter.Source§fn backend_user_with_passphrase(
&self,
name: &str,
passphrase: Passphrase,
) -> Result<Box<dyn UserWithPassphrase>, Error>
fn backend_user_with_passphrase( &self, name: &str, passphrase: Passphrase, ) -> Result<Box<dyn UserWithPassphrase>, Error>
UserWithPassphrase implementation for a backend user. Read moreSource§fn backend_users_with_new_passphrase(
&self,
filter: BackendUserIdFilter,
) -> Vec<Box<dyn UserWithPassphrase>>
fn backend_users_with_new_passphrase( &self, filter: BackendUserIdFilter, ) -> Vec<Box<dyn UserWithPassphrase>>
Source§impl MappingBackendUserSecrets for YubiHsm2UserMapping
impl MappingBackendUserSecrets for YubiHsm2UserMapping
Source§fn create_non_admin_backend_user_secrets(
&self,
secret_handling: NonAdministrativeSecretHandling,
) -> Result<Option<Vec<Box<dyn UserWithPassphrase>>>, Error>
fn create_non_admin_backend_user_secrets( &self, secret_handling: NonAdministrativeSecretHandling, ) -> Result<Option<Vec<Box<dyn UserWithPassphrase>>>, Error>
Source§fn load_non_admin_backend_user_secrets(
&self,
secret_handling: NonAdministrativeSecretHandling,
filter: NonAdminBackendUserIdFilter,
) -> Result<Option<Vec<Box<dyn UserWithPassphrase>>>, Error>
fn load_non_admin_backend_user_secrets( &self, secret_handling: NonAdministrativeSecretHandling, filter: NonAdminBackendUserIdFilter, ) -> Result<Option<Vec<Box<dyn UserWithPassphrase>>>, Error>
filter. Read moreSource§impl MappingSystemUserId for YubiHsm2UserMapping
impl MappingSystemUserId for YubiHsm2UserMapping
Source§fn system_user_id(&self) -> Option<&SystemUserId>
fn system_user_id(&self) -> Option<&SystemUserId>
SystemUserId. Read moreSource§impl Ord for YubiHsm2UserMapping
impl Ord for YubiHsm2UserMapping
Source§fn cmp(&self, other: &YubiHsm2UserMapping) -> Ordering
fn cmp(&self, other: &YubiHsm2UserMapping) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for YubiHsm2UserMapping
impl PartialEq for YubiHsm2UserMapping
Source§impl PartialOrd for YubiHsm2UserMapping
impl PartialOrd for YubiHsm2UserMapping
Source§impl Serialize for YubiHsm2UserMapping
impl Serialize for YubiHsm2UserMapping
impl Eq for YubiHsm2UserMapping
impl StructuralPartialEq for YubiHsm2UserMapping
Auto Trait Implementations§
impl Freeze for YubiHsm2UserMapping
impl RefUnwindSafe for YubiHsm2UserMapping
impl Send for YubiHsm2UserMapping
impl Sync for YubiHsm2UserMapping
impl Unpin for YubiHsm2UserMapping
impl UnwindSafe for YubiHsm2UserMapping
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.