1

我正在尝试使用 SubtleCrypto.unwrapkey 解包密钥...我的解包算法是:

{name: 'RSA-OAEP', hash: Object{name: 'SHA-1'}, modulusLength: 2048, publicExponent: Uint8Array{0: 1, 1: 0, 2: 1}

而我的 unwrappedKeyAlgo 是:

{ 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 案例(实际上并没有太多事情要做)和/或后者的提示。类似主题的问题的首选位置(堆栈溢出除外)是什么?

4

1 回答 1

0

IE11(根据您的错误判断)在这方面被破坏了。这必须作为一个两步过程完成,首先解密:

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

然后导入结果“k”:

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

希望能为您节省一些麻烦;-)

于 2015-11-21T16:17:33.787 回答