pub mod acl;
#[cfg(feature = "tee")]
pub mod attestation;
pub mod audit;
pub use vta_backup::ops as backup;
pub mod cache;
pub mod config;
pub mod contexts;
pub mod credential_exchange;
pub mod credentials;
pub mod device;
pub mod did_peer;
pub mod did_templates;
#[cfg(feature = "webvh")]
pub mod did_webvh;
pub mod export;
pub mod holder_keys;
pub mod internal_authority;
pub mod keys;
pub mod memory;
pub mod passkey_login;
#[cfg(feature = "webvh")]
pub mod passkey_vms;
#[cfg(feature = "webvh")]
pub mod protocol;
#[cfg(feature = "webvh")]
pub mod provision_integration;
pub mod seeds;
pub mod step_up;
pub mod step_up_approval;
pub mod step_up_policy;
pub mod vault;
pub use vta_keyspaces::Keyspaces;
pub fn keyspaces_from_app_state(s: &crate::server::AppState) -> Keyspaces<'_> {
Keyspaces {
keys: &s.keys_ks,
acl: &s.acl_ks,
contexts: &s.contexts_ks,
did_templates: &s.did_templates_ks,
audit: &s.audit_ks,
imported: &s.imported_ks,
#[cfg(feature = "webvh")]
webvh: &s.webvh_ks,
}
}
#[cfg(feature = "didcomm")]
pub fn keyspaces_from_vta_state(s: &crate::messaging::router::VtaState) -> Keyspaces<'_> {
Keyspaces {
keys: &s.keys_ks,
acl: &s.acl_ks,
contexts: &s.contexts_ks,
did_templates: &s.did_templates_ks,
audit: &s.audit_ks,
imported: &s.imported_ks,
#[cfg(feature = "webvh")]
webvh: &s.webvh_ks,
}
}
pub fn descriptor_deps_from_app_state(
s: &crate::server::AppState,
) -> backup::descriptors::DescriptorDeps<'_> {
backup::descriptors::DescriptorDeps {
bundles_ks: &s.backup_bundles_ks,
blob_dir: &s.backup_blob_dir,
keyspaces: keyspaces_from_app_state(s),
seed_store: &s.seed_store,
config: &s.config,
store: None, #[cfg(feature = "tee")]
re_encryptor: Some(&VtaBootstrapReEncryptor),
}
}
#[cfg(feature = "tee")]
struct VtaBootstrapReEncryptor;
#[cfg(feature = "tee")]
#[async_trait::async_trait]
impl vta_backup::BootstrapReEncryptor for VtaBootstrapReEncryptor {
async fn re_encrypt(
&self,
kms: &crate::config::TeeKmsConfig,
store: &crate::store::Store,
seed: &[u8],
jwt: &[u8; 32],
) -> Result<(), crate::error::AppError> {
crate::tee::kms_bootstrap::re_encrypt_bootstrap_secrets(kms, store, seed, jwt).await
}
}