aboutsummaryrefslogtreecommitdiff
path: root/proto
diff options
context:
space:
mode:
authorTink Team <tink-dev@google.com>2021-08-06 03:36:43 -0700
committerCopybara-Service <copybara-worker@google.com>2021-08-06 03:37:21 -0700
commit934d9758f6b319c3506817361b859cf8a5c9a2b9 (patch)
tree39a2e6b0644293706c98d943aea93c4d88541f14 /proto
parent53a2d4c565ada24fbb4050dfbb7df7e11c06f5f0 (diff)
downloadtink-934d9758f6b319c3506817361b859cf8a5c9a2b9.tar.gz
Add a new sign key manager for the PQ signature scheme.
PiperOrigin-RevId: 389138723
Diffstat (limited to 'proto')
-rw-r--r--proto/experimental/pqcrypto/dilithium.proto42
1 files changed, 42 insertions, 0 deletions
diff --git a/proto/experimental/pqcrypto/dilithium.proto b/proto/experimental/pqcrypto/dilithium.proto
new file mode 100644
index 000000000..c9be2973a
--- /dev/null
+++ b/proto/experimental/pqcrypto/dilithium.proto
@@ -0,0 +1,42 @@
+// Copyright 2021 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+///////////////////////////////////////////////////////////////////////////////
+syntax = "proto3";
+
+package google.crypto.tink;
+
+// Definitions for Dilithium Digital Signature Algorithm.
+// See https://pq-crystals.org/dilithium/data/dilithium-specification-round3.pdf
+message DilithiumKeyFormat {
+ uint32 version = 1;
+}
+
+// key_type: type.googleapis.com/google.crypto.tink.DilithiumPublicKey
+message DilithiumPublicKey {
+ // Required.
+ uint32 version = 1;
+ // Required.
+ bytes key_value = 2;
+}
+
+// key_type: type.googleapis.com/google.crypto.tink.DilithiumPrivateKey
+message DilithiumPrivateKey {
+ // Required.
+ uint32 version = 1;
+ // Required.
+ bytes key_value = 2;
+ // The corresponding public key.
+ DilithiumPublicKey public_key = 3;
+}