使用SubtleCrypto时无消息操作错误的故障排除

时间:2015-08-24 11:23:14

标签: javascript cryptography webcryptoapi

我尝试使用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案例(它真的不是很多)和/或后者的任何提示。关于类似主题的问题的最佳位置(堆栈溢出除外)是什么?

1 个答案:

答案 0 :(得分:0)

IE11(根据您的错误判断)在这方面被打破。这必须以两步程序完成,首先解密:

msCrypto.subtle.decrypt(keyAlg, keyPair.private, encSymmKey)

然后导入结果' k':

msCrypto.subtle.importKey('raw', k, symmAlg, true, ['encrypt', 'decrypt'])

希望能为您省点麻烦; - )