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§
- Fixed
Header - 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_
ARGO N2ID - 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 - 校验分块大小落在新建文件的推荐范围内。