// Copyright 2018 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only 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 { // Show an error immediately; it was important but we can't retry. DEFAULT = 0; // Sender will try to resend; delay any error UI if possible RESENDABLE = 1; // Don't show any error UI at all; this is something sent implicitly like a typing message or a receipt IMPLICIT = 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; }