AES-KW 不需要初始化向量 (iv)
但是,当我尝试使用密钥加密密钥 (KEK) 加密我的内容加密密钥 (CEK) 时,如下所示 Node.js CryptocreateCipheriv(algorithm, key, iv[, options])
会引发错误ERR_CRYPTO_INVALID_IV
。有谁知道 AES-KW 是否需要iv
?高级加密标准 (AES) 密钥包装算法RFC 根本没有提及“初始化向量”。
let cipherCEK = createCipheriv('aes256-wrap', keyEncryptionKey, null);
let encryptedCEK = cipher.update(contentEncryptionKey);
encryptedCEK += cipher.final(); //buffer
我不知道你为什么说 RFC 3394 没有提到 IV。它在第 2.2.3 节中介绍,用于数据完整性(即确保密钥被正确解密)。建议的默认值为 A6A6A6A6A6A6A6A6。我还没有测试过
createCipheriv
,但我建议传递这个值。我希望 MDN 说它不需要“需要”IV,因为 Microsoft 自动使用一个默认 IV,因此您不需要传递它。我认为 Node.js 对开发人员不太友好。