Неправильно работает crypto.subtle.deriveKey в Firefox, баг или мой косяк?
Генерирую пару ключей X25519, из них хочу получить общий секрет длиной в 128 бит для AES-128. Но столкнулся со странным поведением браузеров.
В Google Chrome всё нормально, полученный ключ имеет длину 128 бит, как и полагается. В Mozilla Firefox почему-то параметр length игнорируется, даже если туда передать что-то отличное от числа, всегда генерируется ключ в 256 бит не зависимо от этого параметра. Это баг Firefox, или я неправильно использую функции?
Притом если использовать deriveBits вместо deriveKey, или алгоритм ECDH вместо X25519, то всё нормально, ключ 128 бит, как и полагается.
Вот код на Codepen:
Вроде как фф в derivedKey поддерживает только 256 бит. Но, если очень надо, вроде можно через deriveBits создать нужную длину, а потом importKey использовать.
WbICHA, это да, через deriveBits всё нормально работает
Вроде как фф в derivedKey поддерживает только 256 бит.
А где это задокументировано? Потому что если использовать ECDH-ключи, то с ними всё в порядке, длина учитывается, такое чувство, что наспех впилили поддержку X25519 в deriveKey и не протестировали особо.
SagePtr, да вроде не задокументировано.) Такая проблема только с АЕС ключами, так что это вообще может быть тупо баг (есть вариант на более старых версиях ффа проверить).