pub struct Header {
pub magic: [u8; 6],
pub chunk_size: u32,
pub file_id: [u8; 8],
pub blake3_of_plain: [u8; 32],
pub suite: SuiteId,
pub kdf_salt: Option<[u8; 32]>,
pub recipients: Vec<RecipientEntry>,
pub eph_x25519_pk: [u8; 32],
pub mldsa_sig: Vec<u8>,
pub ed25519_sig: Vec<u8>,
pub signature_metadata: Option<SignatureMetadata>,
pub fin: u8,
}
Fields§
§magic: [u8; 6]
Magic bytes for format identification
chunk_size: u32
Chunk size for streaming
file_id: [u8; 8]
File identifier for nonce derivation
blake3_of_plain: [u8; 32]
Reserved (previously plaintext hash). Kept for compatibility; zeroed.
suite: SuiteId
AEAD suite identifier
kdf_salt: Option<[u8; 32]>
Optional per-file public KDF salt (v2.1). None for v2.0 files.
recipients: Vec<RecipientEntry>
Recipients with KEM ciphertexts and wrapped CEKs
eph_x25519_pk: [u8; 32]
Ephemeral X25519 public key (hybrid)
mldsa_sig: Vec<u8>
ML-DSA-87 signature (FIPS 204)
ed25519_sig: Vec<u8>
Ed25519 signature (legacy/hybrid)
signature_metadata: Option<SignatureMetadata>
Signature metadata
fin: u8
FIN marker
Implementations§
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Header
impl<'de> Deserialize<'de> for Header
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for Header
impl RefUnwindSafe for Header
impl Send for Header
impl Sync for Header
impl Unpin for Header
impl UnwindSafe for Header
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more