syntax = "proto2"; package signal; option java_package = "org.signal.libsignal.metadata"; option java_outer_classname = "SignalProtos"; 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; } optional Type type = 1; optional SenderCertificate senderCertificate = 2; optional bytes content = 3; } optional bytes ephemeralPublic = 1; optional bytes encryptedStatic = 2; optional bytes encryptedMessage = 3; }