2026-01-06 14:38:56 +08:00
|
|
|
syntax = "proto3";
|
|
|
|
|
|
2026-01-09 10:12:15 +08:00
|
|
|
package logoschat.encryption;
|
2026-01-06 14:38:56 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
message EncryptedPayload {
|
|
|
|
|
|
|
|
|
|
oneof encryption {
|
|
|
|
|
encryption.Plaintext plaintext = 1;
|
|
|
|
|
encryption.Doubleratchet doubleratchet = 2;
|
2026-01-15 23:46:18 +07:00
|
|
|
encryption.XK0 xk0 = 3;
|
2026-01-06 14:38:56 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
message Plaintext {
|
|
|
|
|
bytes payload=1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
message Doubleratchet {
|
|
|
|
|
bytes dh = 1; // 32 byte array
|
|
|
|
|
uint32 msgNum = 2;
|
|
|
|
|
uint32 prevChainLen = 3;
|
|
|
|
|
bytes ciphertext = 4;
|
|
|
|
|
string aux = 5;
|
|
|
|
|
}
|
2026-01-15 23:46:18 +07:00
|
|
|
|
2026-01-20 14:29:12 -08:00
|
|
|
message InboxHandshakeV1 {
|
|
|
|
|
|
|
|
|
|
message InboxHeaderV1 {
|
|
|
|
|
bytes initiator_static = 1;
|
|
|
|
|
bytes initiator_ephemeral = 2;
|
|
|
|
|
bytes responder_static = 3;
|
|
|
|
|
bytes responder_ephemeral = 4; // Replace with RKI to save bytes
|
|
|
|
|
}
|
|
|
|
|
InboxHeaderV1 header = 1;
|
|
|
|
|
bytes payload = 2;
|
|
|
|
|
}
|