Document attachment key persistence failure during chat audit
This commit is contained in:
1 parent
1899b7f8cf
commit
e33d51a34a
2 files changed
+13
-2
No files matched your search
@@ -14,7 +14,15 @@ Android показывает зашифрованное вложение отд
|
||||
Список чатов сохраняет общее название зашифрованного вложения вместо manifest.
|
||||
|
||||
Автор генерирует независимые случайные crypto_UUID и ключ AES-256 на каждую
|
||||
подготовку. Ключ записывается в локальную SQLite до шифрования. Готовый контейнер
|
||||
подготовку. Штатно ключ записывается в локальную SQLite до шифрования. При аудите
|
||||
26.10.2026 подтверждено исключение: отказ `sqlite3_bind_blob` ключа не проверяется,
|
||||
и подготовка запускается со строкой `key=NULL`, несмотря на сообщение «key saved».
|
||||
Контейнер создаётся, переданный исходник удаляется; последующая проверка
|
||||
`chat_attachment_bind` запрещает публикацию, и отправка завершается событием ошибки.
|
||||
Это открытый дефект сохранения ключа; аудит модуля остаётся частичным.
|
||||
Стенд, точная граница проверки и план исправления — в
|
||||
[chat_audit_findings.txt](chat_audit_findings.txt), продолжение chat_attachment.
|
||||
Готовый контейнер
|
||||
передаётся через обычные media_index/media_delivery. UUID транспортного медиа
|
||||
и crypto_UUID имеют разные назначения: первый идентифицирует сетевые блоки,
|
||||
второй — контейнер и ключ. Повтор доставки передаёт прежний контейнер.
|
||||
|
||||
@@ -27,7 +27,10 @@ void chat_attachment_destroy(struct UTUN_INSTANCE* inst);
|
||||
|
||||
/* Асинхронно отправить подготовленный файл; channel — десятичный ID, reply — 32 байта ID ответа либо нули.
|
||||
* Аргументы копируются. 0 — задача принята, source передан задаче и будет удалён даже при ошибке подготовки.
|
||||
* -1 — отказ запуска, source остаётся у вызывающего. Ненулевой request возвращается в CHAT_EVT_MSG_SUBMITTED. */
|
||||
* -1 — отказ запуска, source остаётся у вызывающего. Ненулевой request возвращается в CHAT_EVT_MSG_SUBMITTED.
|
||||
* Ошибка media_async_submit может дать событие синхронно, до возврата 0 из send.
|
||||
* Известный дефект: отказ SQL bind ключа не проверяется; 0 пока не гарантирует сохранение ключа перед worker.
|
||||
* Подробности и локальная проверка: doc/chat_audit_findings.txt, продолжение chat_attachment. */
|
||||
/* type проверяется encrypted_file_validate_type до выделения задачи, генерации UUID/ключа и записи в БД. */
|
||||
int chat_attachment_send(struct UTUN_INSTANCE* inst, const char* channel, const char* source,
|
||||
const struct attachment_info* info, const char* type, const uint8_t reply[32], uint64_t request);
|
||||
|
||||
Reference in new issue
Block a user