syntax = "proto3"; package wap.encryption; // TODO: This also encompasses plaintexts, is there a better name? // Alternatives: ??? message EncryptedPayload { oneof encryption { encryption.Plaintext plaintext = 1; encryption.Doubleratchet doubleratchet = 2; } } message Plaintext { bytes payload=1; } message Doubleratchet { bytes dh = 1; // 32 byte array uint32 msgNum = 2; uint32 prevChainLen = 3; bytes ciphertext = 4; string aux = 5; }