Skip to main content

Module header

Module header 

Source
Expand description

格式常量与 Fixed Header 编解码。

全部定义来自 docs/research/02-file-format-spec.md §2。 所有多字节整数为小端序,唯一例外是载荷 nonce/AAD 中的块序号(大端序,见 crate::crypto::chunk_nonce)。

Modules§

flags
flags 位定义(规范 §2.1)。
parse_limits
解析不可信输入时的健壮性上界(见 docs/research/07-platform-and-sidechannels.md §8.3)。

Structs§

FixedHeader
Fixed Header(96 字节)。

Constants§

COMPRESS_NONE
压缩标识:不压缩。
COMPRESS_ZSTD
压缩标识:zstd。
DEFAULT_CHUNK_SIZE
默认分块大小(256 KiB),兼顾 seek 粒度与吞吐。
FILENAME_BUCKET
文件名 padding 的桶大小。
FIXED_HEADER_LEN
Fixed Header 长度。
HEADER_LEN_FIELD_OFFSET
固定头中 header_len 字段的字节偏移。
HEADER_MAC_LEN
Header MAC 长度。
KDF_ARGON2ID
KDF 标识:Argon2id。
MAGIC_FILE
主文件 magic:"OMYFILE" + 世代号 0x01。
MAGIC_SHARD
分片文件 magic:"OMYSHRD" + 世代号 0x01。
MAX_CHUNK_SIZE
允许的最大分块大小(16 MiB)。
MIN_CHUNK_SIZE
允许的最小分块大小(64 KiB)。
MOBILE_MAX_CHUNK_SIZE
移动端建议的分块大小上限(1 MiB)。
SHARD_HEADER_LEN
分片头长度。
SLOT_AREA_LEN
Key Slot Area 总长度。
SLOT_AREA_OFFSET
Key Slot Area 起始偏移。
SLOT_COUNT
key slot 数量,固定为 8(可否认性依赖固定槽数)。
SLOT_COUNT_U8
SLOT_COUNT 的 u8 形式,用于写入 header 的 slot_count 字段。
SLOT_LEN
单个 key slot 长度(32 字节密文 + 16 字节 tag)。
TLV_AREA_OFFSET
TLV 区起始偏移。
VERSION_MAJOR
本实现支持的格式主版本上限。文件声明更高主版本时必须拒绝打开。
VERSION_MINOR
本实现写出的次版本号。

Functions§

validate_chunk_size
校验分块大小落在新建文件的推荐范围内。