我能够生成一个 AES 密钥,并与我导入的 OpenSSL 生成的公钥一起,用如下代码包装它:
window.crypto.subtle.wrapKey(
'raw',
sharedKey,
publicKey,
{
name: 'RSA-OAEP',
hash: {name: "SHA-1"}//I can change this to SHA-256 or any valid hash function
}
).then(function(encryptedSharedKey) {
resolve(encryptedSharedKey);
}).catch(function(err) {
reject(err);
});
我的问题是,关于 OpenSSL RSA OAEP 密钥,它似乎总是使用 SHA-1 进行填充。似乎无论我在 webCrypto wrapKey 函数中指定什么哈希,我仍然可以使用我的 OpenSSL 私钥使用类似的命令解密 encryptedSharedKey
openssl pkeyutl -decrypt -pkeyopt rsa_padding_mode:oaep -inkey myprivatekey -in sessionKey.enc
当我包装密钥时,是否存在 webcrypto 实际上没有更改哈希类型的错误,或者我误解了哈希是如何发挥作用的?