mirror of
https://github.com/oxen-io/session-android.git
synced 2024-11-27 20:15:21 +00:00
641ac9aed9
1) ephemeralKey -> ratchetKey 2) Have the caller specify Alice/Bob orientation. 3) Reorganize verification tag. 4) Remove verification tag from key exchange messages, replace with signatures in both directions.
86 lines
2.4 KiB
Protocol Buffer
86 lines
2.4 KiB
Protocol Buffer
package textsecure;
|
|
|
|
option java_package = "org.whispersystems.libaxolotl.state";
|
|
option java_outer_classname = "StorageProtos";
|
|
|
|
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;
|
|
}
|
|
|
|
repeated MessageKey messageKeys = 4;
|
|
}
|
|
|
|
message PendingKeyExchange {
|
|
optional uint32 sequence = 1;
|
|
optional bytes localBaseKey = 2;
|
|
optional bytes localBaseKeyPrivate = 3;
|
|
optional bytes localRatchetKey = 4;
|
|
optional bytes localRatchetKeyPrivate = 5;
|
|
optional bytes localIdentityKey = 7;
|
|
optional bytes localIdentityKeyPrivate = 8;
|
|
}
|
|
|
|
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;
|
|
repeated Chain receiverChains = 7;
|
|
|
|
optional PendingKeyExchange pendingKeyExchange = 8;
|
|
optional PendingPreKey pendingPreKey = 9;
|
|
|
|
optional uint32 remoteRegistrationId = 10;
|
|
optional uint32 localRegistrationId = 11;
|
|
|
|
optional bool needsRefresh = 12;
|
|
optional bytes aliceBaseKey = 13;
|
|
optional bytes verification = 14;
|
|
}
|
|
|
|
message RecordStructure {
|
|
optional SessionStructure currentSession = 1;
|
|
repeated SessionStructure previousSessions = 2;
|
|
}
|
|
|
|
message PreKeyRecordStructure {
|
|
optional uint32 id = 1;
|
|
optional bytes publicKey = 2;
|
|
optional bytes privateKey = 3;
|
|
}
|
|
|
|
message SignedPreKeyRecordStructure {
|
|
optional uint32 id = 1;
|
|
optional bytes publicKey = 2;
|
|
optional bytes privateKey = 3;
|
|
optional bytes signature = 4;
|
|
optional fixed64 timestamp = 5;
|
|
}
|
|
|
|
message IdentityKeyPairStructure {
|
|
optional bytes publicKey = 1;
|
|
optional bytes privateKey = 2;
|
|
} |