| /* |
| * Copyright 2019 Google Inc. |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * https://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| syntax = "proto2"; |
| |
| package private_join_and_compute; |
| |
| import "match.proto"; |
| |
| // Client Messages |
| |
| message PrivateIntersectionSumClientMessage { |
| oneof message_content { |
| StartProtocolRequest start_protocol_request = 1; |
| ClientRoundOne client_round_one = 2; |
| } |
| |
| // For initiating the protocol. |
| message StartProtocolRequest {} |
| |
| // Message containing the client's set encrypted under the client's keys, and |
| // the server's set re-encrypted with the client's key, and shuffled. |
| message ClientRoundOne { |
| optional bytes public_key = 1; |
| optional EncryptedSet encrypted_set = 2; |
| optional EncryptedSet reencrypted_set = 3; |
| } |
| } |
| |
| // Server Messages. |
| |
| message PrivateIntersectionSumServerMessage { |
| oneof message_content { |
| ServerRoundOne server_round_one = 1; |
| ServerRoundTwo server_round_two = 2; |
| } |
| |
| message ServerRoundOne { |
| optional EncryptedSet encrypted_set = 1; |
| } |
| |
| message ServerRoundTwo { |
| optional int64 intersection_size = 1; |
| optional bytes encrypted_sum = 2; |
| } |
| } |