Appendix A. Test Vectors (测试向量)
Appendix A. Test Vectors (测试向量)
本节提供 HPKE 的测试向量, 涵盖第 9.1、9.2 和 9.3 节中列出的模式、KEM、KDF 和 AEAD 的所有组合。下面的每个子节包含单个组合的测试向量。对于每个组合, 测试向量包含以下值:
- mode: HPKE 模式
- kem_id: KEM 标识符
- kdf_id: KDF 标识符
- aead_id: AEAD 标识符
- info: 应用程序提供的信息
- ikmE: 临时密钥对的输入密钥材料
- pkEm: 封装的临时公钥
- skEm: 临时私钥
- ikmR: 接收方密钥对的输入密钥材料
- pkRm: 接收方公钥
- skRm: 接收方私钥
- ikmS: 发送方密钥对的输入密钥材料 (仅限 Auth 和 AuthPSK 模式)
- pkSm: 发送方公钥 (仅限 Auth 和 AuthPSK 模式)
- skSm: 发送方私钥 (仅限 Auth 和 AuthPSK 模式)
- psk: 预共享密钥 (仅限 PSK 和 AuthPSK 模式)
- psk_id: 预共享密钥标识符 (仅限 PSK 和 AuthPSK 模式)
- enc: 封装密钥
- shared_secret: KEM 操作期间计算的共享密钥
- key_schedule_context: 密钥调度中使用的上下文
- secret: 密钥调度期间派生的密钥
- key: 加密密钥
- base_nonce: 基础 nonce 值
- exporter_secret: 导出器接口的密钥
对于加密测试向量, 每个包含:
- sequence number: 加密的序列号
- pt: 明文 (十六进制编码)
- aad: 附加认证数据 (十六进制编码)
- nonce: 用于加密的 nonce
- ct: 密文 (十六进制编码)
对于导出值, 每个包含:
- exporter_context: 导出操作的上下文 (十六进制编码)
- L: 导出值的长度 (字节)
- exported_value: 导出的值 (十六进制编码)
除非另有说明, 所有值均以十六进制格式编码。
子节组织如下:
- A.1. DHKEM(X25519, HKDF-SHA256), HKDF-SHA256, AES-128-GCM
- A.2. DHKEM(X25519, HKDF-SHA256), HKDF-SHA256, ChaCha20Poly1305
- A.3. DHKEM(P-256, HKDF-SHA256), HKDF-SHA256, AES-128-GCM
- A.4. DHKEM(P-256, HKDF-SHA256), HKDF-SHA512, AES-128-GCM
- A.5. DHKEM(P-256, HKDF-SHA256), HKDF-SHA256, ChaCha20Poly1305
- A.6. DHKEM(P-521, HKDF-SHA512), HKDF-SHA512, AES-256-GCM
- A.7. DHKEM(X25519, HKDF-SHA256), HKDF-SHA256, Export-Only AEAD