#![forbid(unsafe_code)]
#![warn(missing_docs)]
#![cfg_attr(
test,
allow(
clippy::unwrap_used,
clippy::indexing_slicing,
clippy::cast_possible_truncation,
clippy::arithmetic_side_effects
)
)]
pub mod container;
pub mod crypto;
pub mod error;
pub mod file;
pub mod fsatomic;
pub mod header;
pub mod keyslot;
pub mod pack;
pub mod payload;
pub mod recovery;
pub mod reencrypt;
pub mod restore;
pub mod scan;
pub mod session;
pub mod shard;
pub mod slot;
pub mod slotdir;
pub mod source;
pub mod unpack;
pub mod dirname;
pub mod devicekey;
pub mod dirsidecar;
pub mod tlv;
pub mod tree;
pub mod util;
pub mod wordlist;
pub use container::{ContainerBuilder, ContainerEntry, ContainerIndex, EntryKind, EntryMeta};
pub use crypto::{Argon2Params, CipherId, Fek, Kek, SecretKey};
pub use error::{Error, ExitCode, Result};
pub use file::{
EncryptOptions, EncryptedFile, OpenedFile, RandomMaterial, encrypt, is_omy_file, open,
open_with_password, peek_header,
};
pub use fsatomic::{AtomicWriter, TempPlaintext, write_atomic};
pub use header::{FixedHeader, MAGIC_FILE, MAGIC_SHARD, flags};
pub use recovery::{RecoveryCode, ParseError as RecoveryParseError};
pub use scan::{ScanHit, ScanOptions, ScanResult, UnlockOutcome, probe_file, scan_dir};
pub use session::{CredentialKind, SessionKeys};
pub use shard::{ShardHeader, merge, split};
pub use source::{BlockSource, ContainerEntryView, LocalFileSource, MemorySource, read_source_range};
pub use tlv::{TlvEntry, TlvSet};
pub const FORMAT_VERSION: (u16, u16) = (header::VERSION_MAJOR, header::VERSION_MINOR);
pub const FILE_EXTENSION: &str = "omy";