#![allow(clippy::module_name_repetitions)]
mod error;
mod ids;
pub mod keys;
mod message;
pub mod pow;
mod signing;
pub use error::CoreError;
pub use ids::{AgentPubkey, BlobId, ChannelId, MessageId, NetworkId, Nonce, Seq};
pub use keys::{
derive_auth_mldsa, derive_identity_ed25519, AuthKeyPair, MLDSA65SigningKey, SEED_BYTES,
};
pub use message::{Channel, ChannelKind, Message, MessageType};
pub use signing::{
body_sha256_b64url, build_header_value, canonical_query_string, canonical_string, ml_dsa_sign,
ml_dsa_verify, parse_header_value, verify_signature, MlDsaError, ParsedSignature,
SignatureParseError, SignatureVerifyError, EMPTY_BODY_SHA256, ML_DSA_PUBKEY_BYTES,
ML_DSA_SIG_BYTES, SIGNATURE_HEADER, SIGNATURE_VERSION,
};
pub const TIMESTAMP_WINDOW_SECS: i64 = 60;
pub const NONCE_RETENTION_SECS: i64 = 120;
pub const MAX_TEXT_CONTENT_BYTES: usize = 4096;
pub const MAX_MLS_CONTENT_BYTES: usize = 1024 * 1024;
pub const MAX_IDEMPOTENCY_KEY_BYTES: usize = 128;
pub const IDEMPOTENCY_RETENTION_SECS: i64 = 24 * 60 * 60;