syntax = "proto3";
option java_multiple_files = true;
option java_package = "org.chromium.components.sync.protocol";
option optimize_for = LITE_RUNTIME;
package sync_pb;
message SharedMemberKey {
int32 epoch = 1;
bytes wrapped_key = 2;
bytes member_proof = 3;
}
message RotationProof {
int32 new_epoch = 1;
bytes rotation_proof = 2;
}
message SecurityDomainDetails {
message SyncDetails { bool degraded_recoverability = 1; }
SyncDetails sync_details = 1;
}
message SecurityDomain {
string name = 1;
int32 current_epoch = 2;
SecurityDomainDetails security_domain_details = 3;
}
message SecurityDomainMember {
string name = 1;
bytes public_key = 2;
message SecurityDomainMembership {
string security_domain = 1;
repeated SharedMemberKey keys = 3;
repeated RotationProof rotation_proofs = 4;
}
repeated SecurityDomainMembership memberships = 3;
enum MemberType {
MEMBER_TYPE_UNSPECIFIED = 0;
MEMBER_TYPE_PHYSICAL_DEVICE = 1;
}
MemberType member_type = 4;
}
message JoinSecurityDomainsRequest {
SecurityDomain security_domain = 1;
SecurityDomainMember security_domain_member = 2;
repeated SharedMemberKey shared_member_key = 3;
int32 member_type_hint = 4;
}
message JoinSecurityDomainsResponse {
SecurityDomain security_domain = 1;
}
message JoinSecurityDomainsErrorDetail {
JoinSecurityDomainsResponse already_exists_response = 1;
}
message Proto3Any {
string type_url = 1;
bytes value = 2;
}
message RPCStatus {
repeated Proto3Any details = 3;
}