63 lines
1.5 KiB
Protocol Buffer
63 lines
1.5 KiB
Protocol Buffer
//
|
|
// Copyright 2020 Signal Messenger, LLC
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
//
|
|
|
|
syntax = "proto2";
|
|
|
|
// iOS - package name determines class prefix
|
|
package SessionRecordProtos;
|
|
|
|
message SessionStructure {
|
|
message Chain {
|
|
optional bytes senderRatchetKey = 1;
|
|
optional bytes senderRatchetKeyPrivate = 2;
|
|
|
|
message ChainKey {
|
|
optional uint32 index = 1;
|
|
optional bytes key = 2;
|
|
}
|
|
|
|
optional ChainKey chainKey = 3;
|
|
|
|
message MessageKey {
|
|
optional uint32 index = 1;
|
|
optional bytes cipherKey = 2;
|
|
optional bytes macKey = 3;
|
|
optional bytes iv = 4;
|
|
}
|
|
|
|
repeated MessageKey messageKeys = 4;
|
|
}
|
|
|
|
message PendingPreKey {
|
|
optional uint32 preKeyId = 1;
|
|
optional int32 signedPreKeyId = 3;
|
|
optional bytes baseKey = 2;
|
|
}
|
|
|
|
optional uint32 sessionVersion = 1;
|
|
optional bytes localIdentityPublic = 2;
|
|
optional bytes remoteIdentityPublic = 3;
|
|
|
|
optional bytes rootKey = 4;
|
|
optional uint32 previousCounter = 5;
|
|
|
|
optional Chain senderChain = 6;
|
|
// The order is significant; keys at the end are "older" and will get trimmed.
|
|
repeated Chain receiverChains = 7;
|
|
|
|
optional PendingPreKey pendingPreKey = 9;
|
|
|
|
optional uint32 remoteRegistrationId = 10;
|
|
optional uint32 localRegistrationId = 11;
|
|
|
|
optional bool needsRefresh = 12;
|
|
optional bytes aliceBaseKey = 13;
|
|
}
|
|
|
|
message RecordStructure {
|
|
optional SessionStructure currentSession = 1;
|
|
// The order is significant; sessions at the end are "older" and will get trimmed.
|
|
repeated SessionStructure previousSessions = 2;
|
|
}
|