mORMot2 DailyЕжедневный обзор коммитов апстрима

Исправление Win64 ABI в криптографическом смешивании блоков

Сегодня вышло одно, но важное исправление для приложений Windows x64, использующих криптографию mORMot2. Низкоуровневая процедура на ассемблере нарушала соглашение о вызовах, не сохраняя определенные регистры XMM, что могло вызвать непредсказуемое поведение в вызывающем коде.

Коротко

  • SBlockMix assembly now correctly preserves XMM8-XMM11 registers on Win64.

Рекомендации по обновлению

Командам, использующим бэкенды Win64, которые применяют криптографию mORMot (например, scrypt или специфические блочные алгоритмы), следует установить это обновление для предотвращения возможной порчи регистров.

Сборка2.4.16628 → 2.4.16629
Коммиты1
Строки+12 -2
Чтение1 мин

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. Это могло привести к непредсказуемым ошибкам или нарушениям доступа в состоянии вызывающей стороны.

Модули

Arnaud Bouchez · 15:12 UTC · открыть коммит на GitHub →

Активность апстрима коммитов в день · последние 60 дней
Коммиты977
Активных дней44/60
Пик активности2026-09-30
Максимум60
2026-08-15: 0 commits2026-08-16: 0 commits2026-08-17: 0 commits2026-08-18: 0 commits2026-08-19: 0 commits2026-08-20: 0 commits2026-08-21: 0 commits2026-08-22: 0 commits2026-08-23: 0 commits2026-08-24: 0 commits2026-08-25: 0 commits2026-08-26: 0 commits2026-08-27: 26 commits2026-08-28: 11 commits2026-08-29: 10 commits2026-08-30: 1 commit2026-08-31: 23 commits2026-09-01: 0 commits2026-09-02: 20 commits2026-09-03: 29 commits2026-09-04: 35 commits2026-09-05: 13 commits2026-09-06: 0 commits2026-09-07: 0 commits2026-09-08: 23 commits2026-09-09: 10 commits2026-09-10: 17 commits2026-09-11: 23 commits2026-09-12: 14 commits2026-09-13: 9 commits2026-09-14: 7 commits2026-09-15: 4 commits2026-09-16: 24 commits2026-09-17: 26 commits2026-09-18: 21 commits2026-09-19: 59 commits2026-09-20: 13 commits2026-09-21: 5 commits2026-09-22: 34 commits2026-09-23: 17 commits2026-09-24: 57 commits2026-09-25: 22 commits2026-09-26: 26 commits2026-09-27: 0 commits2026-09-28: 2 commits2026-09-29: 19 commits2026-09-30: 60 commits2026-10-01: 26 commits2026-10-02: 30 commits2026-10-03: 32 commits2026-10-04: 15 commits2026-10-05: 1 commit2026-10-06: 26 commits2026-10-07: 37 commits2026-10-08: 27 commits2026-10-09: 35 commits2026-10-10: 33 commits2026-10-11: 9 commits2026-10-12: 11 commits2026-10-13: 35 commits
2026-08-152026-10-13