package signalservice; option java_package = "org.whispersystems.libsignal.protocol"; option java_outer_classname = "WhisperProtos"; message ServerCertificate { message Certificate { optional uint32 id = 1; optional bytes key = 2; } optional bytes certificate = 1; optional bytes signature = 2; } message SenderCertificate { message Certificate { optional string senderE164 = 1; optional string senderUuid = 6; optional uint32 senderDevice = 2; optional fixed64 expires = 3; optional bytes identityKey = 4; optional ServerCertificate signer = 5; } optional bytes certificate = 1; optional bytes signature = 2; } message UnidentifiedSenderMessage { message Message { enum Type { PREKEY_MESSAGE = 1; MESSAGE = 2; // Further cases should line up with Envelope.Type, even though old cases don't. // Our parser does not handle reserved in enums: DESKTOP-1569 // reserved 3 to 6; SENDERKEY_MESSAGE = 7; PLAINTEXT_CONTENT = 8; } enum ContentHint { // Our parser does not handle reserved in enums: DESKTOP-1569 // reserved 0; // A content hint of "default" should never be encoded. // Do not insert an error. SUPPLEMENTARY = 1; // Put an invisible placeholder in the chat (using the groupId from the sealed sender envelope if available) and delay showing an error until later. RESENDABLE = 2; } optional Type type = 1; optional SenderCertificate senderCertificate = 2; optional bytes content = 3; optional ContentHint contentHint = 4; optional bytes groupId = 5; } optional bytes ephemeralPublic = 1; optional bytes encryptedStatic = 2; optional bytes encryptedMessage = 3; }