#node.js #encryption #cryptography #block-cipher
Вопрос:
Что я сделал не так? Это Node.js 16.1.0.
> crypto.createCipheriv("AES-128-CTR", Buffer.allocUnsafe(16), Buffer.allocUnsafe(16));
Cipheriv {…}
> crypto.createCipheriv("AES-128-OCB", Buffer.allocUnsafe(16), Buffer.allocUnsafe(16));
Uncaught TypeError: Invalid initialization vector
at Cipheriv.createCipherBase (node:internal/crypto/cipher:119:19)
at Cipheriv.createCipherWithIV (node:internal/crypto/cipher:138:3)
at new Cipheriv (node:internal/crypto/cipher:246:3)
at Object.createCipheriv (node:crypto:131:10) {
code: 'ERR_CRYPTO_INVALID_IV'
}
Комментарии:
1. Вы, кажется, знакомы с режимом OCB, двойное понижение. Неужели это было так очевидно для тебя ?
2. О единственной возможной ошибке с капельницей заключается в том, что она неправильного размера, слишком большая или слишком маленькая. Проверьте размер капельницы, которую вы проходите.
Ответ №1:
Начальный вектор для режима OCB должен составлять 12 октетов; то есть 96 бит.