• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2024 Google LLC
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14//
15///////////////////////////////////////////////////////////////////////////////
16
17// Protos for Module-Lattice Digital Signature Algorithm (ML-DSA).
18// See https://csrc.nist.gov/pubs/fips/204/final.
19syntax = "proto3";
20
21package google.crypto.tink;
22
23enum MlDsaInstance {
24  ML_DSA_UNKNOWN_INSTANCE = 0;
25  ML_DSA_65 = 1;
26}
27
28message MlDsaParams {
29  // Required.
30  MlDsaInstance ml_dsa_instance = 1;
31}
32
33message MlDsaKeyFormat {
34  // Required.
35  uint32 version = 1;
36  // Required.
37  MlDsaParams params = 2;
38}
39
40// key_type: type.googleapis.com/google.crypto.tink.MlDsaPublicKey
41message MlDsaPublicKey {
42  // Required.
43  uint32 version = 1;
44  // Required.
45  bytes key_value = 2;
46  // Required.
47  MlDsaParams params = 3;
48}
49
50// key_type: type.googleapis.com/google.crypto.tink.MlDsaPrivateKey
51message MlDsaPrivateKey {
52  // Required.
53  uint32 version = 1;
54  // Required. Note that this contains the seed used to generate the private
55  // key, not the private key itself.
56  bytes key_value = 2;
57  // The corresponding public key.
58  MlDsaPublicKey public_key = 3;
59}
60