Устранение неполадок в сообщении 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'])
Надеюсь, это избавит вас от проблем;-)