xref: /aosp_15_r20/external/anonymous-counting-tokens/act/act.proto (revision a26f13018b999b025c962678da434c0a5aec4dae)
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