| # 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 |
| """Pre-generated JWT KeyTemplate.""" |
| |
| from tink.proto import jwt_ecdsa_pb2 |
| from tink.proto import jwt_hmac_pb2 |
| from tink.proto import jwt_rsa_ssa_pkcs1_pb2 |
| from tink.proto import jwt_rsa_ssa_pss_pb2 |
| from tink.proto import tink_pb2 |
| from tink.internal import big_integer_util |
| |
| |
| _F4 = 65537 |
| |
| |
| def _create_jwt_hmac_template( |
| algorithm: jwt_hmac_pb2.JwtHmacAlgorithm, key_size: int, |
| output_prefix_type: tink_pb2.OutputPrefixType) -> tink_pb2.KeyTemplate: |
| key_format = jwt_hmac_pb2.JwtHmacKeyFormat( |
| algorithm=algorithm, key_size=key_size) |
| return tink_pb2.KeyTemplate( |
| type_url='type.googleapis.com/google.crypto.tink.JwtHmacKey', |
| value=key_format.SerializeToString(), |
| output_prefix_type=output_prefix_type) |
| |
| |
| def _create_jwt_ecdsa_template( |
| algorithm: jwt_ecdsa_pb2.JwtEcdsaAlgorithm, |
| output_prefix_type: tink_pb2.OutputPrefixType) -> tink_pb2.KeyTemplate: |
| key_format = jwt_ecdsa_pb2.JwtEcdsaKeyFormat( |
| algorithm=algorithm) |
| return tink_pb2.KeyTemplate( |
| type_url='type.googleapis.com/google.crypto.tink.JwtEcdsaPrivateKey', |
| value=key_format.SerializeToString(), |
| output_prefix_type=output_prefix_type) |
| |
| |
| def _create_jwt_rsa_ssa_pkcs1_template( |
| algorithm: jwt_rsa_ssa_pkcs1_pb2.JwtRsaSsaPkcs1Algorithm, modulus_size: int, |
| output_prefix_type: tink_pb2.OutputPrefixType) -> tink_pb2.KeyTemplate: |
| key_format = jwt_rsa_ssa_pkcs1_pb2.JwtRsaSsaPkcs1KeyFormat( |
| algorithm=algorithm, |
| modulus_size_in_bits=modulus_size, |
| public_exponent=big_integer_util.num_to_bytes(_F4)) |
| return tink_pb2.KeyTemplate( |
| type_url='type.googleapis.com/google.crypto.tink.JwtRsaSsaPkcs1PrivateKey', |
| value=key_format.SerializeToString(), |
| output_prefix_type=output_prefix_type) |
| |
| |
| def _create_jwt_rsa_ssa_pss_template( |
| algorithm: jwt_rsa_ssa_pss_pb2.JwtRsaSsaPssAlgorithm, modulus_size: int, |
| output_prefix_type: tink_pb2.OutputPrefixType) -> tink_pb2.KeyTemplate: |
| key_format = jwt_rsa_ssa_pss_pb2.JwtRsaSsaPssKeyFormat( |
| algorithm=algorithm, |
| modulus_size_in_bits=modulus_size, |
| public_exponent=big_integer_util.num_to_bytes(_F4)) |
| return tink_pb2.KeyTemplate( |
| type_url='type.googleapis.com/google.crypto.tink.JwtRsaSsaPssPrivateKey', |
| value=key_format.SerializeToString(), |
| output_prefix_type=output_prefix_type) |
| |
| |
| # Hmac Templates |
| def jwt_hs256_template() -> tink_pb2.KeyTemplate: |
| return _create_jwt_hmac_template(jwt_hmac_pb2.HS256, 32, tink_pb2.TINK) |
| |
| |
| def raw_jwt_hs256_template() -> tink_pb2.KeyTemplate: |
| return _create_jwt_hmac_template(jwt_hmac_pb2.HS256, 32, tink_pb2.RAW) |
| |
| |
| def jwt_hs384_template() -> tink_pb2.KeyTemplate: |
| return _create_jwt_hmac_template(jwt_hmac_pb2.HS384, 48, tink_pb2.TINK) |
| |
| |
| def raw_jwt_hs384_template() -> tink_pb2.KeyTemplate: |
| return _create_jwt_hmac_template(jwt_hmac_pb2.HS384, 48, tink_pb2.RAW) |
| |
| |
| def jwt_hs512_template() -> tink_pb2.KeyTemplate: |
| return _create_jwt_hmac_template(jwt_hmac_pb2.HS512, 64, tink_pb2.TINK) |
| |
| |
| def raw_jwt_hs512_template() -> tink_pb2.KeyTemplate: |
| return _create_jwt_hmac_template(jwt_hmac_pb2.HS512, 64, tink_pb2.RAW) |
| |
| |
| # ECDSA Templates |
| def jwt_es256_template() -> tink_pb2.KeyTemplate: |
| return _create_jwt_ecdsa_template(jwt_ecdsa_pb2.ES256, tink_pb2.TINK) |
| |
| |
| def raw_jwt_es256_template() -> tink_pb2.KeyTemplate: |
| return _create_jwt_ecdsa_template(jwt_ecdsa_pb2.ES256, tink_pb2.RAW) |
| |
| |
| def jwt_es384_template() -> tink_pb2.KeyTemplate: |
| return _create_jwt_ecdsa_template(jwt_ecdsa_pb2.ES384, tink_pb2.TINK) |
| |
| |
| def raw_jwt_es384_template() -> tink_pb2.KeyTemplate: |
| return _create_jwt_ecdsa_template(jwt_ecdsa_pb2.ES384, tink_pb2.RAW) |
| |
| |
| def jwt_es512_template() -> tink_pb2.KeyTemplate: |
| return _create_jwt_ecdsa_template(jwt_ecdsa_pb2.ES512, tink_pb2.TINK) |
| |
| |
| def raw_jwt_es512_template() -> tink_pb2.KeyTemplate: |
| return _create_jwt_ecdsa_template(jwt_ecdsa_pb2.ES512, tink_pb2.RAW) |
| |
| |
| # RSA SSA PKCS1 Templates |
| def jwt_rs256_2048_f4_template() -> tink_pb2.KeyTemplate: |
| return _create_jwt_rsa_ssa_pkcs1_template(jwt_rsa_ssa_pkcs1_pb2.RS256, 2048, |
| tink_pb2.TINK) |
| |
| |
| def raw_jwt_rs256_2048_f4_template() -> tink_pb2.KeyTemplate: |
| return _create_jwt_rsa_ssa_pkcs1_template(jwt_rsa_ssa_pkcs1_pb2.RS256, 2048, |
| tink_pb2.RAW) |
| |
| |
| def jwt_rs256_3072_f4_template() -> tink_pb2.KeyTemplate: |
| return _create_jwt_rsa_ssa_pkcs1_template(jwt_rsa_ssa_pkcs1_pb2.RS256, 3072, |
| tink_pb2.TINK) |
| |
| |
| def raw_jwt_rs256_3072_f4_template() -> tink_pb2.KeyTemplate: |
| return _create_jwt_rsa_ssa_pkcs1_template(jwt_rsa_ssa_pkcs1_pb2.RS256, 3072, |
| tink_pb2.RAW) |
| |
| |
| def jwt_rs384_3072_f4_template() -> tink_pb2.KeyTemplate: |
| return _create_jwt_rsa_ssa_pkcs1_template(jwt_rsa_ssa_pkcs1_pb2.RS384, 3072, |
| tink_pb2.TINK) |
| |
| |
| def raw_jwt_rs384_3072_f4_template() -> tink_pb2.KeyTemplate: |
| return _create_jwt_rsa_ssa_pkcs1_template(jwt_rsa_ssa_pkcs1_pb2.RS384, 3072, |
| tink_pb2.RAW) |
| |
| |
| def jwt_rs512_4096_f4_template() -> tink_pb2.KeyTemplate: |
| return _create_jwt_rsa_ssa_pkcs1_template(jwt_rsa_ssa_pkcs1_pb2.RS512, 4096, |
| tink_pb2.TINK) |
| |
| |
| def raw_jwt_rs512_4096_f4_template() -> tink_pb2.KeyTemplate: |
| return _create_jwt_rsa_ssa_pkcs1_template(jwt_rsa_ssa_pkcs1_pb2.RS512, 4096, |
| tink_pb2.RAW) |
| |
| |
| # RSA SSA PSS Templates |
| def jwt_ps256_2048_f4_template() -> tink_pb2.KeyTemplate: |
| return _create_jwt_rsa_ssa_pss_template(jwt_rsa_ssa_pss_pb2.PS256, 2048, |
| tink_pb2.TINK) |
| |
| |
| def raw_jwt_ps256_2048_f4_template() -> tink_pb2.KeyTemplate: |
| return _create_jwt_rsa_ssa_pss_template(jwt_rsa_ssa_pss_pb2.PS256, 2048, |
| tink_pb2.RAW) |
| |
| |
| def jwt_ps256_3072_f4_template() -> tink_pb2.KeyTemplate: |
| return _create_jwt_rsa_ssa_pss_template(jwt_rsa_ssa_pss_pb2.PS256, 3072, |
| tink_pb2.TINK) |
| |
| |
| def raw_jwt_ps256_3072_f4_template() -> tink_pb2.KeyTemplate: |
| return _create_jwt_rsa_ssa_pss_template(jwt_rsa_ssa_pss_pb2.PS256, 3072, |
| tink_pb2.RAW) |
| |
| |
| def jwt_ps384_3072_f4_template() -> tink_pb2.KeyTemplate: |
| return _create_jwt_rsa_ssa_pss_template(jwt_rsa_ssa_pss_pb2.PS384, 3072, |
| tink_pb2.TINK) |
| |
| |
| def raw_jwt_ps384_3072_f4_template() -> tink_pb2.KeyTemplate: |
| return _create_jwt_rsa_ssa_pss_template(jwt_rsa_ssa_pss_pb2.PS384, 3072, |
| tink_pb2.RAW) |
| |
| |
| def jwt_ps512_4096_f4_template() -> tink_pb2.KeyTemplate: |
| return _create_jwt_rsa_ssa_pss_template(jwt_rsa_ssa_pss_pb2.PS512, 4096, |
| tink_pb2.TINK) |
| |
| |
| def raw_jwt_ps512_4096_f4_template() -> tink_pb2.KeyTemplate: |
| return _create_jwt_rsa_ssa_pss_template(jwt_rsa_ssa_pss_pb2.PS512, 4096, |
| tink_pb2.RAW) |