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