Устранение неполадок в сообщении OperationError при использовании SubtleCrypto

Я пытаюсь развернуть ключ с помощью 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 is ''), к концу я начал получать:

 0, 'OperationError', '192-bit AES keys are not supported'

хотя, насколько я вижу, в поле зрения нет 192-битного ключа.

Есть ли у кого-нибудь какие-либо советы о том, как отлаживать / устранять неполадки как в случае с сообщением OperationError (на самом деле это не так уж и много), так и в последнем. Что такое промежуточное место (кроме переполнения стека) для вопросов по сходной тематике?

1 ответ

IE11 (судя по вашим ошибкам) ​​сломан в этом плане. Это должно быть сделано в два этапа, сначала расшифровав:

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

и затем импортируем результат 'k':

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

Надеюсь, это избавит вас от проблем;-)

Другие вопросы по тегам