Preserve empty device content types with an explicit context flag
This commit is contained in:
1 parent
4dc5e1b11c
commit
a1dd1fda75
3 files changed
+14
-14
No files matched your search
@@ -1,6 +1,6 @@
|
||||
/* dm_protocol — единый разбор тела DEVICE/GROUPS и сертификатов адресатов.
|
||||
* DEVICE сохраняет существующий формат. GROUPS занимает зарезервированный
|
||||
* ct_len=0 и помещает типизированные стороны/адресатов перед настоящим ct.
|
||||
* DEVICE сохраняет существующий формат, включая пустой content type. GROUPS
|
||||
* ставит старший бит data_len и помещает контекст перед ciphertext.
|
||||
* Тело подписывается целиком, включая снимок; parser не проверяет подпись автора.
|
||||
* Указатели view заимствуют входной буфер. SQL-функция encode вызывается в uasync. */
|
||||
#ifndef UTUN_DM_PROTOCOL_H
|
||||
@@ -13,8 +13,9 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
#define DM_TARGET_PROOF_SIZE 137 /* node:LE64,side:u8,x:32,ed:32,member_sig:64. */
|
||||
#define DM_CONTEXT_FLAG 0x8000u /* Старший бит uint16 data_len; фактическая длина не более1040. */
|
||||
#define DM_CONTEXT_MAX (1 + 2 * DM_PARTY_WIRE_SIZE + 2 + DM_TARGET_MAX * DM_TARGET_PROOF_SIZE)
|
||||
#define DM_BODY_MAX (33 + DM_CONTEXT_MAX + 1 + 255 + 2 + 1024 + 16 + 56 + 64)
|
||||
#define DM_BODY_MAX (33 + 255 + 2 + DM_CONTEXT_MAX + 1024 + 16 + 56 + 64)
|
||||
|
||||
struct dm_message_view {
|
||||
uint64_t conv, seq, timestamp, author; /* Общий префикс, native-endian. */
|
||||
@@ -46,7 +47,7 @@ int dm_message_target(const struct dm_message_view* view, uint64_t node, uint8_t
|
||||
/* 0/-1: прочитать node/side по индексу GROUPS-snapshot, без проверки подписи. */
|
||||
int dm_message_target_at(const struct dm_message_view* view, unsigned index, struct dm_target* out);
|
||||
|
||||
/* 0/-1: сформировать контекст GROUPS (без префикса сообщения/нулевого ct_len).
|
||||
/* 0/-1: сформировать контекст GROUPS (между data_len с флагом и ciphertext).
|
||||
* VERSION=1:u8, parties:2*73,count:LE16,sorted certificates:count*137.
|
||||
* Сторона 0 должна включать текущего отправителя. out меняется только при успехе;
|
||||
* DM_CONTEXT_MAX достаточно. Источник включается, неизвестные устройства не ищутся. */
|
||||
|
||||
Reference in new issue
Block a user