Стоит взглянутьисправление или функция, которая может пригодиться
Исправление Win64 ABI в криптографическом смешивании блоков
Сегодня вышло одно, но важное исправление для приложений Windows x64, использующих криптографию mORMot2. Низкоуровневая процедура на ассемблере нарушала соглашение о вызовах, не сохраняя определенные регистры XMM, что могло вызвать непредсказуемое поведение в вызывающем коде.
Коротко
- SBlockMix assembly now correctly preserves XMM8-XMM11 registers on Win64.
Рекомендации по обновлению
Командам, использующим бэкенды Win64, которые применяют криптографию mORMot (например, scrypt или специфические блочные алгоритмы), следует установить это обновление для предотвращения возможной порчи регистров.
1 из 1 записей · 1 коммитов в апстриме
1
Средний
Процедура на ассемблере портила регистры XMM на Win64
Встроенный ассемблер для SBlockMix в mormot.crypt.other был изменен для цели ABIWINX64. Теперь он вычитает 72 байта из указателя стека и использует movaps для сохранения регистров xmm8, xmm9, xmm10 и xmm11 перед выполнением, восстанавливая их после.
Исправления
mormot.crypt.other
2c1daf90+12-2
crypt: fixed SBlockMix Win64 asm
Влияние
Ранее вызов SBlockMix на Win64 перезаписывал энергонезависимые регистры XMM без их восстановления, нарушая соглашение о вызовах Windows x64. Это могло привести к непредсказуемым ошибкам или нарушениям доступа в состоянии вызывающей стороны.
Рекомендуется обновиться
Перекомпилируйте и разверните бинарные файлы Win64, если ваше приложение использует криптографические функции, применяющие SBlockMix.