Expand description
A library for working with application configuration files for Nitrokey NetHSM devices
Provides configuration file management for custom applications designed around working with Nitrokey NetHSM devices or containers. Configuration settings allow for individualizing the configuration use and its use-cases (interactive or non-interactive).
A module for interactive prompts provides extra convenience around creating applications that may request further data from their users interactively.
ยงExamples
use nethsm::{ConnectionSecurity, UserRole};
use nethsm_config::{Config, ConfigCredentials, ConfigInteractivity, ConfigSettings};
// a configuration for a non-interactive application called "my_app"
let config_settings = ConfigSettings::new(
"my_app".to_string(),
ConfigInteractivity::NonInteractive,
None,
);
// let's assume a custom configuration file path
let tmpfile = testdir::testdir!().join("my_app.conf");
let config = Config::new(config_settings, Some(&tmpfile))?;
// add a first device to commnicate with
config.add_device(
"nethsm1".to_string(),
"https://example.org/api/v1".parse()?,
ConnectionSecurity::Unsafe,
)?;
// add credentials to communicate with the the device
config.add_credentials(
"nethsm1".to_string(),
ConfigCredentials::new(
UserRole::Administrator,
"admin1".parse()?,
Some("my-passphrase".to_string()),
),
)?;
// write configuration to file
config.store(Some(&tmpfile))?;
Modulesยง
- config ๐
- credentials ๐
- mapping ๐
- prompt ๐
Structsยง
- Authorized
KeyEntry - An entry of an authorized_keys file
- Authorized
KeyEntry List - A list of
AuthorizedKeyEntry
s - Config
- A configuration for NetHSM devices
- Config
Credentials - A set of credentials for a [
NetHsm
][nethsm::NetHsm
] - Config
Name - The name of a configuration
- Config
Settings - The settings for a
Config
- Device
Config - The configuration for a [
NetHsm
] - Extended
User Mapping - A
UserMapping
centric view of aHermeticParallelConfig
. - Hermetic
Parallel Config - A configuration for parallel use of connections with a set of system and NetHSM users.
- NetHsm
Metrics Users - A set of users with unique [
UserId
]s, used for metrics retrieval - System
User Id - The name of a user on a Unix system
- System
Wide User Id - A guaranteed to be system-wide [
NetHsm
][nethsm::NetHsm
] user - User
Prompt - Username prompt
Enumsยง
- Administrative
Secret Handling - The handling of administrative secrets.
- Config
Interactivity - The interactivity of a configuration
- Error
- Errors related to configuration
- NonAdministrative
Secret Handling - The handling of non-administrative secrets.
- Passphrase
Prompt - Passphrase prompt
- User
Mapping - User mapping between system users and [
NetHsm
][nethsm::NetHsm
] users