syntax = "proto3"; option cc_enable_arenas = true; package cmix_proto; message Initialization { bytes public_share = 1; } message SecretKey { bytes secret_key = 1; } message ImANode { } message ImAClient { bytes id = 1; } message Bye { } message KeyExchange { bytes public_key = 1; bytes value = 2; } message NodeReady { } message UserMessage { bytes M = 1; } message PrePre { repeated bytes r_ER = 1; repeated bytes m_ER = 2; } message PreMix { repeated bytes r_EPiRS = 1; repeated bytes m_EPiRS = 2; } message PrePost { repeated bytes r_EPiRS = 1; repeated bytes m_EPiRS = 2; repeated bytes decryption_commitments = 3; bytes ciphertext_commitment = 4; } message Commitments { repeated bytes m_EPiRS = 1; repeated bytes decryption_commitments = 2; bytes ciphertext_commitment = 3; } message RealPre { repeated bytes h = 1; repeated bytes m = 2; } message RealMix { repeated bytes m = 2; } message RealPost { bytes PiMRS_commitment = 1; repeated bytes m_epirs = 2; } message Payload { bytes payload = 1; } message Performance { string wall_time = 1; string user_time = 2; string system_time = 3; string column = 4; string node = 5; } message CMixMessage { oneof contents { Initialization initialization = 1; SecretKey secretkey = 2; ImANode imanode = 3; ImAClient imaclient = 4; Bye bye = 5; KeyExchange keyexchange = 6; NodeReady nodeready = 7; UserMessage usermessage = 8; PrePre prepre = 9; PreMix premix = 10; PrePost prepost = 11; Commitments commitments = 12; RealPre realpre = 13; RealMix realmix = 14; RealPost realpost = 15; Payload payload = 16; Performance performance = 17; } }