1*a26f1301SXin Li/* 2*a26f1301SXin Li * Copyright 2023 Google LLC. 3*a26f1301SXin Li * Licensed under the Apache License, Version 2.0 (the "License"); 4*a26f1301SXin Li * you may not use this file except in compliance with the License. 5*a26f1301SXin Li * You may obtain a copy of the License at 6*a26f1301SXin Li * 7*a26f1301SXin Li * https://www.apache.org/licenses/LICENSE-2.0 8*a26f1301SXin Li * 9*a26f1301SXin Li * Unless required by applicable law or agreed to in writing, software 10*a26f1301SXin Li * distributed under the License is distributed on an "AS IS" BASIS, 11*a26f1301SXin Li * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*a26f1301SXin Li * See the License for the specific language governing permissions and 13*a26f1301SXin Li * limitations under the License. 14*a26f1301SXin Li */ 15*a26f1301SXin Li 16*a26f1301SXin Lisyntax = "proto3"; 17*a26f1301SXin Li 18*a26f1301SXin Lipackage private_join_and_compute.anonymous_counting_tokens; 19*a26f1301SXin Li 20*a26f1301SXin Liimport "act/act_v0/act_v0.proto"; 21*a26f1301SXin Li 22*a26f1301SXin Lioption java_multiple_files = true; 23*a26f1301SXin Li 24*a26f1301SXin Li// The parameters defining the ACT scheme. 25*a26f1301SXin Limessage SchemeParameters { 26*a26f1301SXin Li oneof scheme_parameters_oneof { 27*a26f1301SXin Li SchemeParametersV0 scheme_parameters_v0 = 1; 28*a26f1301SXin Li } 29*a26f1301SXin Li} 30*a26f1301SXin Li 31*a26f1301SXin Limessage ServerParameters { 32*a26f1301SXin Li ServerPublicParameters public_parameters = 1; 33*a26f1301SXin Li ServerPrivateParameters private_parameters = 2; 34*a26f1301SXin Li} 35*a26f1301SXin Li 36*a26f1301SXin Li// The Server's public parameters for the ACT scheme. 37*a26f1301SXin Limessage ServerPublicParameters { 38*a26f1301SXin Li oneof server_public_parameters_oneof { 39*a26f1301SXin Li ServerPublicParametersV0 server_public_parameters_v0 = 1; 40*a26f1301SXin Li } 41*a26f1301SXin Li} 42*a26f1301SXin Li 43*a26f1301SXin Li// The Server's private parameters for the ACT scheme. 44*a26f1301SXin Limessage ServerPrivateParameters { 45*a26f1301SXin Li oneof server_private_parameters_oneof { 46*a26f1301SXin Li ServerPrivateParametersV0 server_private_parameters_v0 = 1; 47*a26f1301SXin Li } 48*a26f1301SXin Li} 49*a26f1301SXin Li 50*a26f1301SXin Limessage ClientParameters { 51*a26f1301SXin Li ClientPublicParameters public_parameters = 1; 52*a26f1301SXin Li ClientPrivateParameters private_parameters = 2; 53*a26f1301SXin Li} 54*a26f1301SXin Li 55*a26f1301SXin Li// The Client's public parameters for the ACT scheme. 56*a26f1301SXin Limessage ClientPublicParameters { 57*a26f1301SXin Li oneof client_public_parameters_oneof { 58*a26f1301SXin Li ClientPublicParametersV0 client_public_parameters_v0 = 1; 59*a26f1301SXin Li } 60*a26f1301SXin Li} 61*a26f1301SXin Li 62*a26f1301SXin Li// The Client's private parameters for the ACT scheme. 63*a26f1301SXin Limessage ClientPrivateParameters { 64*a26f1301SXin Li oneof client_private_parameters_oneof { 65*a26f1301SXin Li ClientPrivateParametersV0 client_private_parameters_v0 = 1; 66*a26f1301SXin Li } 67*a26f1301SXin Li} 68*a26f1301SXin Li 69*a26f1301SXin Li// The Client's token request. Can correspond to a batch of tokens. 70*a26f1301SXin Limessage TokensRequest { 71*a26f1301SXin Li oneof tokens_request_oneof { 72*a26f1301SXin Li TokensRequestV0 tokens_request_v0 = 1; 73*a26f1301SXin Li } 74*a26f1301SXin Li} 75*a26f1301SXin Li 76*a26f1301SXin Li// Private state corresponding to the Client's token request, needed to recover 77*a26f1301SXin Li// the tokens from the server's response. 78*a26f1301SXin Limessage TokensRequestPrivateState { 79*a26f1301SXin Li oneof tokens_request_private_state_oneof { 80*a26f1301SXin Li TokensRequestPrivateStateV0 tokens_request_private_state_v0 = 1; 81*a26f1301SXin Li } 82*a26f1301SXin Li} 83*a26f1301SXin Li 84*a26f1301SXin Li// The Server's response to a TokensRequest. Can correspond to a batch of 85*a26f1301SXin Li// tokens. 86*a26f1301SXin Limessage TokensResponse { 87*a26f1301SXin Li oneof tokens_response_oneof { 88*a26f1301SXin Li TokensResponseV0 tokens_response_v0 = 1; 89*a26f1301SXin Li } 90*a26f1301SXin Li} 91*a26f1301SXin Li 92*a26f1301SXin Li// An actual token recovered from the TokenResponse. 93*a26f1301SXin Limessage Token { 94*a26f1301SXin Li reserved 1; 95*a26f1301SXin Li 96*a26f1301SXin Li oneof token_oneof { 97*a26f1301SXin Li TokenV0 token_v0 = 2; 98*a26f1301SXin Li } 99*a26f1301SXin Li 100*a26f1301SXin Li // Serialized BigNum corresponding to the nonce for this token. 101*a26f1301SXin Li bytes nonce_bytes = 3; 102*a26f1301SXin Li} 103