Expand description
RSA-OAEP 非对称加密(RFC 8017 §7.1 RSAES-OAEP),摘要与 MGF1 均固定 SHA-256。
- 密钥与密文均为十六进制字符串;密钥格式由本库自定(PHP 版未提供 RSA, 无对齐约束):私钥 = PKCS#8 DER 的十六进制,公钥 = SPKI DER 的十六进制;
- 密文定长:等于模数字节长 k(2048 位密钥即 256 字节)。OAEP 每次加密都注入 新随机种子,同一明文两次加密的密文必然不同,调用方不应比对密文;
- 明文上限 k − 2×32 − 2 字节(RFC 8017 §7.1.1 式 (1),2048 位密钥即 190 字节),
超长加密报
Error::EncryptionFailed; - 解密走
decrypt_blinded:模幂前用随机数盲化,防 Bleichenbacher 式计时 侧信道;一切失败(密钥不对 / 密文被改 / 填充非法)都是Error::DecryptionFailed,不区分原因; RsaOaepSha256Service::generate_key_pair_hex拒绝低于 2048 位的请求: 2048 位是本库接受的 RSA 安全下限;解析路径不设位宽下限(兼容存量 密钥——历史数据可能由弱密钥加密,拒绝加载会让旧数据无法解开,风险自担; 新密钥请一律走generate)。- 已知边界(RUSTSEC-2023-0071):上游
rsacrate 的「Marvin」时序侧信道 公告至今无补丁(0.9.10 与 0.10.0-rc 均受影响)。本库解密固定走decrypt_blinded(公告承认的缓解方向),但网络暴露场景建议优先 ECDH / X25519 / Ed25519 / ML-KEM;RSA-OAEP 定位为与存量系统互通或本地使用。
对应 PHP 版:无(PHP 包未提供 RSA 实现)。
Structs§
- RsaOaep
Sha256 Cipher - RSA-OAEP-SHA256 非对称加密器(实现
AsymmetricCipher;行为与RsaOaepSha256Service一致)。 - RsaOaep
Sha256 Service - RSA-OAEP-SHA256 静态门面(密钥材料每次调用显式传入)。