in key/aziot-keyd-config/src/lib.rs [71:130]
fn parse_config() {
let actual = r#"
max_requests = 50
[aziot_keys]
homedir_path = "/var/lib/aziot/keyd"
pkcs11_lib_path = "/usr/lib64/pkcs11/libsofthsm2.so"
pkcs11_base_slot = "pkcs11:token=Key pairs?pin-value=1234"
[preloaded_keys]
bootstrap = "file:///var/secrets/bootstrap.key"
device-id = "pkcs11:token=Key pairs;object=device-id?pin-value=1234"
[[principal]]
uid = 1000
keys = ["test"]
"#;
let actual: super::Config = toml::from_str(actual).unwrap();
assert_eq!(
actual,
super::Config {
max_requests: 50,
aziot_keys: [
("homedir_path", "/var/lib/aziot/keyd"),
("pkcs11_lib_path", "/usr/lib64/pkcs11/libsofthsm2.so"),
("pkcs11_base_slot", "pkcs11:token=Key pairs?pin-value=1234"),
]
.iter()
.map(|&(name, value)| (name.to_owned(), value.to_owned()))
.collect(),
preloaded_keys: [
("bootstrap", "file:///var/secrets/bootstrap.key"),
(
"device-id",
"pkcs11:token=Key pairs;object=device-id?pin-value=1234"
),
]
.iter()
.map(|&(name, value)| (name.to_owned(), value.to_owned()))
.collect(),
endpoints: super::Endpoints {
aziot_keyd: http_common::Connector::Unix {
socket_path: std::path::Path::new(concat!(
env!("SOCKET_DIR"),
"/keyd.sock"
))
.into()
},
},
principal: vec![super::Principal {
uid: 1000,
keys: vec!["test".to_owned()]
}],
}
);
}