package textsecure;

option java_package = "org.whispersystems.libsignal.protocol";
option java_outer_classname = "WhisperProtos";

message WhisperMessage {
  optional bytes  ephemeralKey    = 1;
  optional uint32 counter         = 2;
  optional uint32 previousCounter = 3;
  optional bytes  ciphertext      = 4; // PushMessageContent
}

message PreKeyWhisperMessage {
  optional uint32 registrationId = 5;
  optional uint32 preKeyId       = 1;
  optional uint32 signedPreKeyId = 6;
  optional bytes  baseKey        = 2;
  optional bytes  identityKey    = 3;
  optional bytes  message        = 4; // WhisperMessage
}

message KeyExchangeMessage {
  optional uint32 id               = 1;
  optional bytes  baseKey          = 2;
  optional bytes  ephemeralKey     = 3;
  optional bytes  identityKey      = 4;
  optional bytes  baseKeySignature = 5;
}
