#![cfg_attr(not(feature = "std"), no_std)]
extern crate alloc;
pub mod domain;
pub mod application;
pub mod infrastructure;
pub use domain::entities::{
constants::{
KEY_DOMAIN, MAC_SIZE, MAX_ENCRYPTED_MEMO_SIZE, MEMO_DATA_SIZE, MIN_ENCRYPTED_MEMO_SIZE,
NONCE_SIZE,
},
error::MemoError,
types::{EdDSAKey, MemoData, NullifierKey, ViewingKey},
};
pub use domain::aggregates::keyset::KeySet;
pub use domain::services::encryption::{decrypt_memo, encrypt_memo, try_decrypt_memo};
#[cfg(feature = "encrypt")]
pub use domain::services::encryption::encrypt_memo_random;
pub use domain::services::key_derivation::{
derive_eddsa_key, derive_nullifier_key, derive_viewing_key,
};
pub use domain::services::validation::is_valid_encrypted_memo;
#[cfg(feature = "disclosure")]
pub use domain::aggregates::disclosure::{
DisclosureMask, DisclosureProof, DisclosurePublicSignals, PartialMemoData,
};
#[cfg(feature = "disclosure")]
pub use application::disclosure::generate_disclosure_proof;
#[cfg(all(feature = "disclosure", feature = "std"))]
pub mod key_loader {
pub use crate::infrastructure::repositories::key_loader::{
calculate_key_checksum, detect_key_format, print_key_info, validate_proving_key,
verify_key_checksum,
};
}