Мне был предоставлен объект со следующей структурой:
const encrypted_key = {
'iv': 'LmckiIdRw==',
'v': 1,
'iter': 10000,
'ks': 256,
'ts': 64,
'mode': 'ccm',
'adata': '',
'cipher': 'aes',
'salt': 'UG5/bQ=',
'ct': 'F8zKwLKMKoQ='
}
Я просмотрел каждую библиотеку на npm, но ни один из них не отображает все свойства, показанные здесь.
Я был бы признателен за любые рекомендации по JS-функции или библиотеке о том, как расшифровать этот объект AES-CCM.
Спасибо!
Это результат демонстрационной страницы SJCL, см. Здесь. Это комбинация свойств для вывода пароля PBKDF2 (который принимает iter
, ks
и salt
.
Остальное - для дешифрования режима CCM, за исключением v
который просто указывает версию 1. Для дешифрования режима CCM, конечно, также требуется ключ, который получен из пароля, предоставленного пользователем PBKDF2, с использованием параметров, упомянутых ранее.
Бинарные данные кодируются базой 64.