diff options
author | ioannanedelcu <ioannanedelcu@google.com> | 2024-04-08 13:39:29 -0700 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2024-04-08 13:40:55 -0700 |
commit | 410c23345788d5985a93008dd972b12c78809123 (patch) | |
tree | 690af4e02f1aa880e9972471cb07c9026bc91113 | |
parent | 5b5162b09ca7dc39be7a61da70b16b4257b6f786 (diff) | |
download | tink-410c23345788d5985a93008dd972b12c78809123.tar.gz |
Add a proto structure for the Stateless Hash-Based Digital Signature Algorithm (SLH-DSA)
PiperOrigin-RevId: 622938993
-rw-r--r-- | cc/proto/experimental/pqcrypto/slh_dsa.proto | 67 | ||||
-rw-r--r-- | proto/experimental/pqcrypto/slh_dsa.proto | 67 |
2 files changed, 134 insertions, 0 deletions
diff --git a/cc/proto/experimental/pqcrypto/slh_dsa.proto b/cc/proto/experimental/pqcrypto/slh_dsa.proto new file mode 100644 index 000000000..b3768c64c --- /dev/null +++ b/cc/proto/experimental/pqcrypto/slh_dsa.proto @@ -0,0 +1,67 @@ +// Copyright 2024 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; + +enum SlhDsaHashType { + SLH_DSA_HASH_TYPE_UNSPECIFIED = 0; + SHA2 = 1; + SHAKE = 2; +} + +enum SlhDsaSignatureType { + SLH_DSA_SIGNATURE_TYPE_UNSPECIFIED = 0; + FAST_SIGNING = 1; + SMALL_SIGNATURE = 2; +} + +// Protos for the Stateless Hash-Based Digital Signature Algorithm +// https://csrc.nist.gov/pubs/fips/205/ipd +message SlhDsaParams { + // Required + int32 key_size = 1; + // Required. + SlhDsaHashType hash_type = 2; + // Required. + SlhDsaSignatureType sig_type = 3; +} + +message SlhDsaKeyFormat { + uint32 version = 1; + // Required. + SlhDsaParams params = 2; +} + +// key_type: type.googleapis.com/google.crypto.tink.SlhDsaPublicKey +message SlhDsaPublicKey { + // Required. + uint32 version = 1; + // Required. + bytes key_value = 2; + // Required + SlhDsaParams params = 3; +} + +// key_type: type.googleapis.com/google.crypto.tink.SlhDsaPrivateKey +message SlhDsaPrivateKey { + // Required. + uint32 version = 1; + // Required. + bytes key_value = 2; + // Required. The corresponding public key. + SlhDsaPublicKey public_key = 3; +} diff --git a/proto/experimental/pqcrypto/slh_dsa.proto b/proto/experimental/pqcrypto/slh_dsa.proto new file mode 100644 index 000000000..b3768c64c --- /dev/null +++ b/proto/experimental/pqcrypto/slh_dsa.proto @@ -0,0 +1,67 @@ +// Copyright 2024 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; + +enum SlhDsaHashType { + SLH_DSA_HASH_TYPE_UNSPECIFIED = 0; + SHA2 = 1; + SHAKE = 2; +} + +enum SlhDsaSignatureType { + SLH_DSA_SIGNATURE_TYPE_UNSPECIFIED = 0; + FAST_SIGNING = 1; + SMALL_SIGNATURE = 2; +} + +// Protos for the Stateless Hash-Based Digital Signature Algorithm +// https://csrc.nist.gov/pubs/fips/205/ipd +message SlhDsaParams { + // Required + int32 key_size = 1; + // Required. + SlhDsaHashType hash_type = 2; + // Required. + SlhDsaSignatureType sig_type = 3; +} + +message SlhDsaKeyFormat { + uint32 version = 1; + // Required. + SlhDsaParams params = 2; +} + +// key_type: type.googleapis.com/google.crypto.tink.SlhDsaPublicKey +message SlhDsaPublicKey { + // Required. + uint32 version = 1; + // Required. + bytes key_value = 2; + // Required + SlhDsaParams params = 3; +} + +// key_type: type.googleapis.com/google.crypto.tink.SlhDsaPrivateKey +message SlhDsaPrivateKey { + // Required. + uint32 version = 1; + // Required. + bytes key_value = 2; + // Required. The corresponding public key. + SlhDsaPublicKey public_key = 3; +} |