1#![doc(html_root_url = "https://docs.rs/key-vault")]
39#![cfg_attr(docsrs, feature(doc_cfg))]
40#![cfg_attr(not(feature = "std"), no_std)]
41#![deny(missing_docs)]
42#![deny(unsafe_op_in_unsafe_fn)]
43#![deny(unused_must_use)]
44#![deny(unused_results)]
45#![deny(clippy::unwrap_used)]
46#![deny(clippy::expect_used)]
47#![deny(clippy::todo)]
48#![deny(clippy::unimplemented)]
49#![deny(clippy::print_stdout)]
50#![deny(clippy::print_stderr)]
51#![deny(clippy::dbg_macro)]
52#![deny(clippy::undocumented_unsafe_blocks)]
53#![deny(clippy::missing_safety_doc)]
54#![warn(clippy::pedantic)]
55#![allow(clippy::module_name_repetitions)]
56
57extern crate alloc;
58
59pub mod codex;
60pub mod decoy;
61mod error;
62pub mod fetcher;
63pub mod fragment;
64mod handle;
65mod memory;
66mod metadata;
67pub mod monitor;
68mod normalize;
69pub mod tee;
70mod vault;
71
72pub use crate::codex::{Codex, DynamicCodex, IdentityCodex, StaticCodex};
73pub use crate::decoy::{DecoyStrategy, KeyDerivedDecoy, RandomDecoy, SelfReferenceDecoy};
74pub use crate::error::{Error, Result};
75#[cfg(feature = "fetcher-env")]
76pub use crate::fetcher::EnvFetch;
77#[cfg(feature = "fetcher-file")]
78pub use crate::fetcher::FileFetch;
79#[cfg(feature = "fetcher-keychain")]
80pub use crate::fetcher::KeychainFetch;
81#[cfg(feature = "fetcher-tpm")]
82pub use crate::fetcher::TpmFetch;
83pub use crate::fetcher::{FetchContext, KeyFetch, RawKey};
84pub use crate::fragment::{
85 FragmentStrategy, Fragments, InterleavedFragmenter, LayeredFragmenter, RandomFragmenter,
86 StandardFragmenter,
87};
88pub use crate::handle::{KeyHandle, KeyId};
89pub use crate::metadata::{AlgorithmHint, KeyMetadata};
90#[cfg(feature = "monitor-tracing")]
91pub use crate::monitor::LogMonitor;
92pub use crate::monitor::{
93 AccessContext, CompositeMonitor, FailureContext, NoMonitor, SecurityMonitor, ThresholdContext,
94};
95pub use crate::vault::{KeyVault, KeyVaultBuilder, VaultConfig};
96
97pub const VERSION: &str = env!("CARGO_PKG_VERSION");