mod crypto_oracle;
mod error;
mod hsm;
mod stores;
pub use crypto_oracle::{
CryptoAlgorithm, CryptoOracle, EncryptedContent, KeyMetadata, SigningAlgorithm,
};
pub use error::{InterfaceError, InterfaceResult};
pub use hsm::{
HSM, HsmKeyAlgorithm, HsmKeypairAlgorithm, HsmObject, HsmObjectFilter, HsmStore, KeyMaterial,
RsaPrivateKeyMaterial, RsaPublicKeyMaterial,
};
pub use stores::{AtomicOperation, ObjectWithMetadata, ObjectsStore, PermissionsStore};
pub const SECS_PER_DAY: i64 = 24 * 3600;
#[derive(Debug, Clone, Eq, PartialEq)]
pub enum KeyType {
AesKey,
RsaPrivateKey,
RsaPublicKey,
}
#[macro_export]
macro_rules! as_hsm_uid {
($slot:expr, $uuid:expr) => {
format!("hsm::{}::{}", $slot, $uuid)
};
($model:expr, $slot:expr, $uuid:expr) => {
format!("hsm::{}::{}::{}", $model, $slot, $uuid)
};
}