1// Copyright 2021 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/////////////////////////////////////////////////////////////////////////////// 16syntax = "proto3"; 17 18package google.crypto.tink; 19 20enum DilithiumSeedExpansion { 21 SEED_EXPANSION_UNKNOWN = 0; 22 SEED_EXPANSION_SHAKE = 1; 23 SEED_EXPANSION_AES = 2; 24} 25 26// Protos for Dilithium Digital Signature Algorithm. 27// See https://pq-crystals.org/dilithium/data/dilithium-specification-round3.pdf 28message DilithiumParams { 29 // Required 30 int32 key_size = 1; 31 // Required. 32 DilithiumSeedExpansion seed_expansion = 2; 33} 34 35message DilithiumKeyFormat { 36 uint32 version = 1; 37 // Required. 38 DilithiumParams params = 2; 39} 40 41// key_type: type.googleapis.com/google.crypto.tink.DilithiumPublicKey 42message DilithiumPublicKey { 43 // Required. 44 uint32 version = 1; 45 // Required. 46 bytes key_value = 2; 47 // Required 48 DilithiumParams params = 3; 49} 50 51// key_type: type.googleapis.com/google.crypto.tink.DilithiumPrivateKey 52message DilithiumPrivateKey { 53 // Required. 54 uint32 version = 1; 55 // Required. 56 bytes key_value = 2; 57 // The corresponding public key. 58 DilithiumPublicKey public_key = 3; 59} 60