我尝试使用SubtleCrypto.unwrapkey解开密钥...我的解包算法是:
{name: 'RSA-OAEP', hash: Object{name: 'SHA-1'}, modulusLength: 2048, publicExponent: Uint8Array{0: 1, 1: 0, 2: 1}
而我解开的钥匙是:
{ name: 'AES-CBC', altName: 'aes256-CBC',length: 256, usages: pri: ['decrypt', 'unwrapKey'], pub: ['encrypt', 'wrapKey'] }}
我的电话如下:
return webcrypto.subtle.unwrapKey(
'raw',
// wrappedKey
encSymmKey,
// unwrappingKey
keyPair.private,
// unwrapAlgo
keyAlg,
// unwrappedKeyAlgo
symmAlg,
// extractable
true,
['encrypt', 'decrypt']
)
我一直在尝试一些不同的事情无济于事,而且在一天中的大部分时间里,我收到一个没有任何消息的OperationError(即error.message是''),朝向最后我开始得到:
0, 'OperationError', '192-bit AES keys are not supported'
尽管我看不到有192位密钥。
有没有人提供有关如何调试/解决无消息的OperationError案例(它真的不是很多)和/或后者的任何提示。关于类似主题的问题的最佳位置(堆栈溢出除外)是什么?
答案 0 :(得分:0)
IE11(根据您的错误判断)在这方面被打破。这必须以两步程序完成,首先解密:
msCrypto.subtle.decrypt(keyAlg, keyPair.private, encSymmKey)
然后导入结果' k':
msCrypto.subtle.importKey('raw', k, symmAlg, true, ['encrypt', 'decrypt'])
希望能为您省点麻烦; - )