tink_module(jwt::internal)

tink_cc_library(
  NAME raw_jwt_hmac_key_manager
  SRCS
    raw_jwt_hmac_key_manager.cc
    raw_jwt_hmac_key_manager.h
  DEPS
    absl::memory
    absl::status
    absl::statusor
    absl::strings
    tink::core::key_type_manager
    tink::core::template_util
    tink::core::mac
    tink::internal::fips_utils
    tink::subtle::hmac_boringssl
    tink::subtle::random
    tink::util::constants
    tink::util::enums
    tink::util::secret_data
    tink::util::validation
    tink::proto::common_cc_proto
    tink::proto::jwt_hmac_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME json_util
  SRCS
    json_util.cc
    json_util.h
  DEPS
    protobuf::libprotobuf
    absl::status
    absl::statusor
    absl::strings
)

tink_cc_test(
  NAME json_util_test
  SRCS
    json_util_test.cc
  DEPS
    tink::jwt::internal::json_util
    protobuf::libprotobuf
    gmock
    absl::statusor
    tink::util::test_matchers
)

tink_cc_library(
  NAME jwt_format
  SRCS
    jwt_format.cc
    jwt_format.h
  DEPS
    tink::jwt::internal::json_util
    protobuf::libprotobuf
    absl::status
    absl::statusor
    absl::strings
    absl::optional
    tink::internal::endian
    tink::jwt::raw_jwt
    tink::proto::tink_cc_proto
)

tink_cc_test(
  NAME jwt_format_test
  SRCS
    jwt_format_test.cc
  DEPS
    tink::jwt::internal::json_util
    tink::jwt::internal::jwt_format
    protobuf::libprotobuf
    gmock
    absl::statusor
    absl::time
    absl::optional
    tink::jwt::raw_jwt
    tink::util::test_matchers
    tink::proto::tink_cc_proto
)

tink_cc_test(
  NAME raw_jwt_hmac_key_manager_test
  SRCS
    raw_jwt_hmac_key_manager_test.cc
  DEPS
    tink::jwt::internal::raw_jwt_hmac_key_manager
    gmock
    absl::memory
    absl::status
    absl::statusor
    tink::core::keyset_handle
    tink::core::mac
    tink::core::registry
    tink::config::global_registry
    tink::mac::mac_config
    tink::util::istream_input_stream
    tink::util::test_matchers
    tink::proto::jwt_hmac_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME jwt_mac_impl
  SRCS
    jwt_mac_impl.cc
    jwt_mac_impl.h
  DEPS
    tink::jwt::internal::json_util
    tink::jwt::internal::jwt_format
    tink::jwt::internal::jwt_mac_internal
    protobuf::libprotobuf
    absl::memory
    absl::status
    absl::statusor
    absl::strings
    absl::str_format
    absl::optional
    tink::core::mac
    tink::jwt::jwt_validator
    tink::jwt::raw_jwt
    tink::jwt::verified_jwt
)

tink_cc_test(
  NAME jwt_mac_impl_test
  SRCS
    jwt_mac_impl_test.cc
  DEPS
    tink::jwt::internal::json_util
    tink::jwt::internal::jwt_format
    tink::jwt::internal::jwt_mac_impl
    tink::jwt::internal::jwt_mac_internal
    protobuf::libprotobuf
    gmock
    absl::status
    absl::statusor
    absl::strings
    absl::time
    absl::optional
    tink::core::mac
    tink::jwt::jwt_validator
    tink::jwt::raw_jwt
    tink::jwt::verified_jwt
    tink::subtle::common_enums
    tink::subtle::hmac_boringssl
    tink::subtle::random
    tink::util::enums
    tink::util::secret_data
    tink::util::test_matchers
    tink::proto::common_cc_proto
)

tink_cc_library(
  NAME jwt_hmac_key_manager
  SRCS
    jwt_hmac_key_manager.cc
    jwt_hmac_key_manager.h
  DEPS
    tink::jwt::internal::jwt_mac_impl
    tink::jwt::internal::jwt_mac_internal
    tink::jwt::internal::raw_jwt_hmac_key_manager
    absl::memory
    absl::status
    absl::statusor
    absl::strings
    absl::optional
    tink::core::key_type_manager
    tink::core::template_util
    tink::core::input_stream
    tink::core::mac
    tink::internal::fips_utils
    tink::subtle::hmac_boringssl
    tink::util::enums
    tink::util::secret_data
    tink::proto::common_cc_proto
    tink::proto::jwt_hmac_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_test(
  NAME jwt_hmac_key_manager_test
  SRCS
    jwt_hmac_key_manager_test.cc
  DEPS
    tink::jwt::internal::json_util
    tink::jwt::internal::jwt_format
    tink::jwt::internal::jwt_hmac_key_manager
    tink::jwt::internal::jwt_mac_internal
    protobuf::libprotobuf
    gmock
    absl::memory
    absl::status
    absl::statusor
    absl::strings
    absl::time
    absl::optional
    tink::jwt::jwt_validator
    tink::jwt::raw_jwt
    tink::jwt::verified_jwt
    tink::util::istream_input_stream
    tink::util::test_matchers
    tink::proto::jwt_hmac_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME jwt_mac_wrapper
  SRCS
    jwt_mac_wrapper.cc
    jwt_mac_wrapper.h
  DEPS
    tink::jwt::internal::jwt_format
    tink::jwt::internal::jwt_mac_internal
    absl::memory
    absl::status
    absl::statusor
    absl::string_view
    absl::optional
    tink::core::primitive_set
    tink::core::primitive_wrapper
    tink::internal::monitoring
    tink::internal::monitoring_util
    tink::internal::registry_impl
    tink::jwt::jwt_mac
    tink::jwt::jwt_validator
    tink::jwt::raw_jwt
    tink::jwt::verified_jwt
    tink::proto::tink_cc_proto
)

tink_cc_test(
  NAME jwt_mac_wrapper_test
  SRCS
    jwt_mac_wrapper_test.cc
  DEPS
    tink::jwt::internal::json_util
    tink::jwt::internal::jwt_format
    tink::jwt::internal::jwt_hmac_key_manager
    tink::jwt::internal::jwt_mac_impl
    tink::jwt::internal::jwt_mac_internal
    tink::jwt::internal::jwt_mac_wrapper
    protobuf::libprotobuf
    gmock
    absl::flat_hash_map
    absl::memory
    absl::status
    absl::statusor
    absl::strings
    tink::core::cleartext_keyset_handle
    tink::core::keyset_manager
    tink::core::primitive_set
    tink::core::registry
    tink::config::global_registry
    tink::internal::monitoring
    tink::internal::monitoring_client_mocks
    tink::internal::registry_impl
    tink::jwt::jwt_mac
    tink::jwt::jwt_validator
    tink::jwt::raw_jwt
    tink::jwt::verified_jwt
    tink::mac::failing_mac
    tink::util::test_matchers
    tink::util::test_util
    tink::proto::jwt_hmac_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME raw_jwt_ecdsa_sign_key_manager
  SRCS
    raw_jwt_ecdsa_sign_key_manager.cc
    raw_jwt_ecdsa_sign_key_manager.h
  DEPS
    tink::jwt::internal::raw_jwt_ecdsa_verify_key_manager
    absl::memory
    absl::status
    absl::statusor
    absl::strings
    tink::core::private_key_type_manager
    tink::core::template_util
    tink::core::public_key_sign
    tink::internal::ec_util
    tink::internal::fips_utils
    tink::subtle::common_enums
    tink::subtle::ecdsa_sign_boringssl
    tink::util::constants
    tink::util::enums
    tink::util::secret_data
    tink::util::validation
    tink::proto::common_cc_proto
    tink::proto::jwt_ecdsa_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_test(
  NAME raw_jwt_ecdsa_sign_key_manager_test
  SRCS
    raw_jwt_ecdsa_sign_key_manager_test.cc
  DEPS
    tink::jwt::internal::raw_jwt_ecdsa_sign_key_manager
    gmock
    absl::status
    absl::statusor
    tink::core::public_key_sign
    tink::internal::ec_util
    tink::subtle::common_enums
    tink::subtle::ecdsa_verify_boringssl
    tink::util::enums
    tink::util::test_matchers
    tink::proto::ecdsa_cc_proto
    tink::proto::jwt_ecdsa_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME raw_jwt_ecdsa_verify_key_manager
  SRCS
    raw_jwt_ecdsa_verify_key_manager.cc
    raw_jwt_ecdsa_verify_key_manager.h
  DEPS
    absl::memory
    absl::status
    absl::statusor
    absl::strings
    tink::core::key_type_manager
    tink::core::template_util
    tink::core::public_key_verify
    tink::internal::ec_util
    tink::internal::fips_utils
    tink::subtle::common_enums
    tink::subtle::ecdsa_verify_boringssl
    tink::util::constants
    tink::util::enums
    tink::util::status
    tink::util::statusor
    tink::util::validation
    tink::proto::common_cc_proto
    tink::proto::jwt_ecdsa_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_test(
  NAME raw_jwt_ecdsa_verify_key_manager_test
  SRCS
    raw_jwt_ecdsa_verify_key_manager_test.cc
  DEPS
    tink::jwt::internal::raw_jwt_ecdsa_sign_key_manager
    tink::jwt::internal::raw_jwt_ecdsa_verify_key_manager
    gmock
    absl::status
    absl::statusor
    tink::core::public_key_verify
    tink::internal::ec_util
    tink::subtle::common_enums
    tink::subtle::ecdsa_sign_boringssl
    tink::util::enums
    tink::util::secret_data
    tink::util::test_matchers
    tink::proto::ecdsa_cc_proto
    tink::proto::jwt_ecdsa_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME raw_jwt_rsa_ssa_pkcs1_sign_key_manager
  SRCS
    raw_jwt_rsa_ssa_pkcs1_sign_key_manager.cc
    raw_jwt_rsa_ssa_pkcs1_sign_key_manager.h
  DEPS
    tink::jwt::internal::raw_jwt_rsa_ssa_pkcs1_verify_key_manager
    absl::memory
    absl::status
    absl::statusor
    absl::strings
    crypto
    tink::core::private_key_type_manager
    tink::core::template_util
    tink::core::public_key_sign
    tink::core::public_key_verify
    tink::internal::bn_util
    tink::internal::fips_utils
    tink::internal::rsa_util
    tink::internal::ssl_unique_ptr
    tink::signature::sig_util
    tink::subtle::rsa_ssa_pkcs1_sign_boringssl
    tink::util::constants
    tink::util::enums
    tink::util::secret_data
    tink::util::validation
    tink::proto::common_cc_proto
    tink::proto::jwt_rsa_ssa_pkcs1_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_test(
  NAME raw_jwt_rsa_ssa_pkcs1_sign_key_manager_test
  SRCS
    raw_jwt_rsa_ssa_pkcs1_sign_key_manager_test.cc
  DEPS
    tink::jwt::internal::raw_jwt_rsa_ssa_pkcs1_sign_key_manager
    gmock
    absl::flat_hash_set
    absl::statusor
    crypto
    tink::core::public_key_sign
    tink::internal::bn_util
    tink::internal::ssl_unique_ptr
    tink::subtle::common_enums
    tink::subtle::rsa_ssa_pkcs1_verify_boringssl
    tink::util::test_matchers
    tink::proto::jwt_rsa_ssa_pkcs1_cc_proto
    tink::proto::rsa_ssa_pkcs1_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME raw_jwt_rsa_ssa_pkcs1_verify_key_manager
  SRCS
    raw_jwt_rsa_ssa_pkcs1_verify_key_manager.cc
    raw_jwt_rsa_ssa_pkcs1_verify_key_manager.h
  DEPS
    absl::memory
    absl::status
    absl::statusor
    absl::strings
    crypto
    tink::core::key_type_manager
    tink::core::template_util
    tink::core::public_key_verify
    tink::internal::bn_util
    tink::internal::fips_utils
    tink::internal::rsa_util
    tink::internal::ssl_unique_ptr
    tink::subtle::rsa_ssa_pkcs1_verify_boringssl
    tink::util::constants
    tink::util::enums
    tink::util::validation
    tink::proto::common_cc_proto
    tink::proto::jwt_rsa_ssa_pkcs1_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_test(
  NAME raw_jwt_rsa_ssa_pkcs1_verify_key_manager_test
  SRCS
    raw_jwt_rsa_ssa_pkcs1_verify_key_manager_test.cc
  DEPS
    tink::jwt::internal::raw_jwt_rsa_ssa_pkcs1_sign_key_manager
    tink::jwt::internal::raw_jwt_rsa_ssa_pkcs1_verify_key_manager
    gmock
    absl::status
    absl::statusor
    crypto
    tink::core::public_key_sign
    tink::core::public_key_verify
    tink::internal::bn_util
    tink::internal::rsa_util
    tink::internal::ssl_unique_ptr
    tink::subtle::common_enums
    tink::subtle::rsa_ssa_pkcs1_sign_boringssl
    tink::util::secret_data
    tink::util::test_matchers
    tink::util::test_util
    tink::proto::jwt_rsa_ssa_pkcs1_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME raw_jwt_rsa_ssa_pss_sign_key_manager
  SRCS
    raw_jwt_rsa_ssa_pss_sign_key_manager.cc
    raw_jwt_rsa_ssa_pss_sign_key_manager.h
  DEPS
    tink::jwt::internal::raw_jwt_rsa_ssa_pss_verify_key_manager
    absl::memory
    absl::status
    absl::statusor
    absl::strings
    crypto
    tink::core::private_key_type_manager
    tink::core::template_util
    tink::core::public_key_sign
    tink::core::public_key_verify
    tink::internal::bn_util
    tink::internal::fips_utils
    tink::internal::rsa_util
    tink::internal::ssl_unique_ptr
    tink::signature::sig_util
    tink::subtle::rsa_ssa_pss_sign_boringssl
    tink::util::constants
    tink::util::enums
    tink::util::secret_data
    tink::util::validation
    tink::proto::common_cc_proto
    tink::proto::jwt_rsa_ssa_pss_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_test(
  NAME raw_jwt_rsa_ssa_pss_sign_key_manager_test
  SRCS
    raw_jwt_rsa_ssa_pss_sign_key_manager_test.cc
  DEPS
    tink::jwt::internal::raw_jwt_rsa_ssa_pss_sign_key_manager
    gmock
    absl::flat_hash_set
    absl::statusor
    crypto
    tink::core::public_key_sign
    tink::internal::bn_util
    tink::internal::rsa_util
    tink::internal::ssl_unique_ptr
    tink::subtle::common_enums
    tink::subtle::rsa_ssa_pss_verify_boringssl
    tink::util::test_matchers
    tink::proto::jwt_rsa_ssa_pss_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME raw_jwt_rsa_ssa_pss_verify_key_manager
  SRCS
    raw_jwt_rsa_ssa_pss_verify_key_manager.cc
    raw_jwt_rsa_ssa_pss_verify_key_manager.h
  DEPS
    absl::memory
    absl::status
    absl::statusor
    absl::strings
    crypto
    tink::core::key_type_manager
    tink::core::template_util
    tink::core::public_key_verify
    tink::internal::bn_util
    tink::internal::fips_utils
    tink::internal::rsa_util
    tink::internal::ssl_unique_ptr
    tink::subtle::rsa_ssa_pss_verify_boringssl
    tink::util::constants
    tink::util::enums
    tink::util::validation
    tink::proto::common_cc_proto
    tink::proto::jwt_rsa_ssa_pss_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_test(
  NAME raw_jwt_rsa_ssa_pss_verify_key_manager_test
  SRCS
    raw_jwt_rsa_ssa_pss_verify_key_manager_test.cc
  DEPS
    tink::jwt::internal::raw_jwt_rsa_ssa_pss_sign_key_manager
    tink::jwt::internal::raw_jwt_rsa_ssa_pss_verify_key_manager
    gmock
    absl::status
    absl::statusor
    crypto
    tink::core::public_key_sign
    tink::core::public_key_verify
    tink::internal::bn_util
    tink::internal::rsa_util
    tink::internal::ssl_unique_ptr
    tink::subtle::common_enums
    tink::subtle::rsa_ssa_pss_sign_boringssl
    tink::util::secret_data
    tink::util::test_matchers
    tink::util::test_util
    tink::proto::jwt_rsa_ssa_pss_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME jwt_public_key_sign_impl
  SRCS
    jwt_public_key_sign_impl.cc
    jwt_public_key_sign_impl.h
  DEPS
    tink::jwt::internal::jwt_format
    tink::jwt::internal::jwt_public_key_sign_internal
    absl::memory
    absl::status
    absl::statusor
    absl::strings
    absl::str_format
    absl::optional
    tink::core::public_key_sign
    tink::jwt::raw_jwt
)

tink_cc_library(
  NAME jwt_public_key_verify_impl
  SRCS
    jwt_public_key_verify_impl.cc
    jwt_public_key_verify_impl.h
  DEPS
    tink::jwt::internal::json_util
    tink::jwt::internal::jwt_format
    tink::jwt::internal::jwt_public_key_verify_internal
    protobuf::libprotobuf
    absl::memory
    absl::status
    absl::statusor
    absl::strings
    absl::str_format
    absl::optional
    tink::core::public_key_verify
    tink::jwt::jwt_validator
    tink::jwt::raw_jwt
    tink::jwt::verified_jwt
)

tink_cc_test(
  NAME jwt_public_key_sign_verify_impl_test
  SRCS
    jwt_public_key_sign_verify_impl_test.cc
  DEPS
    tink::jwt::internal::json_util
    tink::jwt::internal::jwt_format
    tink::jwt::internal::jwt_public_key_sign_impl
    tink::jwt::internal::jwt_public_key_verify_impl
    protobuf::libprotobuf
    gmock
    absl::statusor
    absl::strings
    absl::time
    absl::optional
    tink::internal::ec_util
    tink::jwt::jwt_validator
    tink::jwt::raw_jwt
    tink::jwt::verified_jwt
    tink::subtle::common_enums
    tink::subtle::ecdsa_sign_boringssl
    tink::subtle::ecdsa_verify_boringssl
    tink::util::test_matchers
)

tink_cc_library(
  NAME jwt_ecdsa_sign_key_manager
  SRCS
    jwt_ecdsa_sign_key_manager.cc
    jwt_ecdsa_sign_key_manager.h
  DEPS
    tink::jwt::internal::jwt_ecdsa_verify_key_manager
    tink::jwt::internal::jwt_public_key_sign_impl
    tink::jwt::internal::jwt_public_key_sign_internal
    tink::jwt::internal::raw_jwt_ecdsa_sign_key_manager
    absl::memory
    absl::status
    absl::statusor
    absl::string_view
    absl::optional
    tink::core::private_key_type_manager
    tink::core::template_util
    tink::core::public_key_sign
    tink::internal::fips_utils
    tink::proto::jwt_ecdsa_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME jwt_ecdsa_verify_key_manager
  SRCS
    jwt_ecdsa_verify_key_manager.cc
    jwt_ecdsa_verify_key_manager.h
  DEPS
    tink::jwt::internal::jwt_public_key_verify_impl
    tink::jwt::internal::jwt_public_key_verify_internal
    tink::jwt::internal::raw_jwt_ecdsa_verify_key_manager
    absl::memory
    absl::status
    absl::statusor
    absl::string_view
    absl::optional
    tink::core::key_type_manager
    tink::core::template_util
    tink::core::public_key_verify
    tink::internal::fips_utils
    tink::proto::jwt_ecdsa_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_test(
  NAME jwt_ecdsa_sign_verify_key_manager_test
  SRCS
    jwt_ecdsa_sign_verify_key_manager_test.cc
  DEPS
    tink::jwt::internal::json_util
    tink::jwt::internal::jwt_ecdsa_sign_key_manager
    tink::jwt::internal::jwt_ecdsa_verify_key_manager
    tink::jwt::internal::jwt_format
    tink::jwt::internal::jwt_public_key_sign_internal
    tink::jwt::internal::jwt_public_key_verify_internal
    protobuf::libprotobuf
    gmock
    absl::statusor
    absl::strings
    absl::optional
    tink::jwt::jwt_validator
    tink::jwt::raw_jwt
    tink::jwt::verified_jwt
    tink::util::test_matchers
    tink::proto::jwt_ecdsa_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME jwt_public_key_sign_wrapper
  SRCS
    jwt_public_key_sign_wrapper.cc
    jwt_public_key_sign_wrapper.h
  DEPS
    tink::jwt::internal::jwt_format
    tink::jwt::internal::jwt_public_key_sign_internal
    absl::memory
    absl::status
    absl::statusor
    absl::string_view
    tink::core::primitive_set
    tink::core::primitive_wrapper
    tink::internal::monitoring
    tink::internal::monitoring_util
    tink::internal::registry_impl
    tink::jwt::jwt_public_key_sign
    tink::jwt::raw_jwt
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME jwt_public_key_verify_wrapper
  SRCS
    jwt_public_key_verify_wrapper.cc
    jwt_public_key_verify_wrapper.h
  DEPS
    tink::jwt::internal::jwt_format
    tink::jwt::internal::jwt_public_key_verify_internal
    absl::memory
    absl::status
    absl::statusor
    absl::string_view
    absl::optional
    tink::core::primitive_set
    tink::core::primitive_wrapper
    tink::internal::monitoring
    tink::internal::monitoring_util
    tink::internal::registry_impl
    tink::jwt::jwt_public_key_verify
    tink::jwt::jwt_validator
    tink::jwt::verified_jwt
    tink::proto::tink_cc_proto
)

tink_cc_test(
  NAME jwt_public_key_wrappers_test
  SRCS
    jwt_public_key_wrappers_test.cc
  DEPS
    tink::jwt::internal::json_util
    tink::jwt::internal::jwt_ecdsa_sign_key_manager
    tink::jwt::internal::jwt_ecdsa_verify_key_manager
    tink::jwt::internal::jwt_format
    tink::jwt::internal::jwt_public_key_sign_impl
    tink::jwt::internal::jwt_public_key_sign_internal
    tink::jwt::internal::jwt_public_key_sign_wrapper
    tink::jwt::internal::jwt_public_key_verify_impl
    tink::jwt::internal::jwt_public_key_verify_internal
    tink::jwt::internal::jwt_public_key_verify_wrapper
    protobuf::libprotobuf
    gmock
    absl::flat_hash_map
    absl::memory
    absl::statusor
    absl::strings
    tink::core::cleartext_keyset_handle
    tink::core::keyset_manager
    tink::core::primitive_set
    tink::core::registry
    tink::config::global_registry
    tink::internal::monitoring
    tink::internal::monitoring_client_mocks
    tink::internal::registry_impl
    tink::jwt::jwt_public_key_sign
    tink::jwt::jwt_public_key_verify
    tink::jwt::jwt_validator
    tink::jwt::raw_jwt
    tink::jwt::verified_jwt
    tink::signature::failing_signature
    tink::util::test_matchers
    tink::util::test_util
    tink::proto::jwt_ecdsa_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME jwt_rsa_ssa_pkcs1_sign_key_manager
  SRCS
    jwt_rsa_ssa_pkcs1_sign_key_manager.cc
    jwt_rsa_ssa_pkcs1_sign_key_manager.h
  DEPS
    tink::jwt::internal::jwt_public_key_sign_impl
    tink::jwt::internal::jwt_public_key_sign_internal
    tink::jwt::internal::jwt_rsa_ssa_pkcs1_verify_key_manager
    tink::jwt::internal::raw_jwt_rsa_ssa_pkcs1_sign_key_manager
    absl::memory
    absl::status
    absl::statusor
    absl::string_view
    absl::optional
    tink::core::private_key_type_manager
    tink::core::template_util
    tink::core::public_key_sign
    tink::internal::fips_utils
    tink::proto::jwt_rsa_ssa_pkcs1_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME jwt_rsa_ssa_pkcs1_verify_key_manager
  SRCS
    jwt_rsa_ssa_pkcs1_verify_key_manager.cc
    jwt_rsa_ssa_pkcs1_verify_key_manager.h
  DEPS
    tink::jwt::internal::jwt_public_key_verify_impl
    tink::jwt::internal::jwt_public_key_verify_internal
    tink::jwt::internal::raw_jwt_rsa_ssa_pkcs1_verify_key_manager
    absl::memory
    absl::status
    absl::statusor
    absl::string_view
    absl::optional
    tink::core::key_type_manager
    tink::core::template_util
    tink::core::public_key_verify
    tink::internal::fips_utils
    tink::proto::jwt_rsa_ssa_pkcs1_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_test(
  NAME jwt_rsa_ssa_pkcs1_sign_verify_key_manager_test
  SRCS
    jwt_rsa_ssa_pkcs1_sign_verify_key_manager_test.cc
  DEPS
    tink::jwt::internal::json_util
    tink::jwt::internal::jwt_format
    tink::jwt::internal::jwt_public_key_sign_internal
    tink::jwt::internal::jwt_public_key_verify_internal
    tink::jwt::internal::jwt_rsa_ssa_pkcs1_sign_key_manager
    tink::jwt::internal::jwt_rsa_ssa_pkcs1_verify_key_manager
    protobuf::libprotobuf
    gmock
    absl::statusor
    absl::strings
    absl::optional
    crypto
    tink::internal::bn_util
    tink::internal::ssl_unique_ptr
    tink::jwt::jwt_validator
    tink::jwt::raw_jwt
    tink::jwt::verified_jwt
    tink::util::test_matchers
    tink::proto::jwt_rsa_ssa_pkcs1_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME jwt_rsa_ssa_pss_sign_key_manager
  SRCS
    jwt_rsa_ssa_pss_sign_key_manager.cc
    jwt_rsa_ssa_pss_sign_key_manager.h
  DEPS
    tink::jwt::internal::jwt_public_key_sign_impl
    tink::jwt::internal::jwt_public_key_sign_internal
    tink::jwt::internal::jwt_rsa_ssa_pss_verify_key_manager
    tink::jwt::internal::raw_jwt_rsa_ssa_pss_sign_key_manager
    absl::memory
    absl::status
    absl::statusor
    absl::string_view
    absl::optional
    tink::core::private_key_type_manager
    tink::core::template_util
    tink::core::public_key_sign
    tink::internal::fips_utils
    tink::proto::jwt_rsa_ssa_pss_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME jwt_rsa_ssa_pss_verify_key_manager
  SRCS
    jwt_rsa_ssa_pss_verify_key_manager.cc
    jwt_rsa_ssa_pss_verify_key_manager.h
  DEPS
    tink::jwt::internal::jwt_public_key_verify_impl
    tink::jwt::internal::jwt_public_key_verify_internal
    tink::jwt::internal::raw_jwt_rsa_ssa_pss_verify_key_manager
    absl::memory
    absl::status
    absl::statusor
    absl::string_view
    absl::optional
    tink::core::key_type_manager
    tink::core::template_util
    tink::core::public_key_verify
    tink::internal::fips_utils
    tink::proto::jwt_rsa_ssa_pss_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_test(
  NAME jwt_rsa_ssa_pss_sign_verify_key_manager_test
  SRCS
    jwt_rsa_ssa_pss_sign_verify_key_manager_test.cc
  DEPS
    tink::jwt::internal::json_util
    tink::jwt::internal::jwt_format
    tink::jwt::internal::jwt_public_key_sign_internal
    tink::jwt::internal::jwt_public_key_verify_internal
    tink::jwt::internal::jwt_rsa_ssa_pss_sign_key_manager
    tink::jwt::internal::jwt_rsa_ssa_pss_verify_key_manager
    protobuf::libprotobuf
    gmock
    absl::statusor
    absl::strings
    absl::optional
    crypto
    tink::internal::bn_util
    tink::internal::ssl_unique_ptr
    tink::jwt::jwt_validator
    tink::jwt::raw_jwt
    tink::jwt::verified_jwt
    tink::util::test_matchers
    tink::proto::jwt_rsa_ssa_pss_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME jwt_public_key_sign_internal
  SRCS
    jwt_public_key_sign_internal.h
  DEPS
    absl::statusor
    absl::strings
    absl::optional
    tink::jwt::raw_jwt
)

tink_cc_library(
  NAME jwt_mac_internal
  SRCS
    jwt_mac_internal.h
  DEPS
    absl::statusor
    absl::strings
    absl::optional
    tink::jwt::jwt_validator
    tink::jwt::raw_jwt
    tink::jwt::verified_jwt
)

tink_cc_library(
  NAME jwt_public_key_verify_internal
  SRCS
    jwt_public_key_verify_internal.h
  DEPS
    absl::statusor
    absl::strings
    absl::optional
    tink::jwt::jwt_validator
    tink::jwt::verified_jwt
)

tink_cc_library(
  NAME jwt_mac_config_v0
  SRCS
    jwt_mac_config_v0.cc
    jwt_mac_config_v0.h
  DEPS
    tink::jwt::internal::jwt_hmac_key_manager
    tink::jwt::internal::jwt_mac_impl
    tink::jwt::internal::jwt_mac_internal
    tink::jwt::internal::jwt_mac_wrapper
    absl::memory
    absl::status
    absl::statusor
    tink::core::configuration
    tink::core::mac
    tink::core::partial_key_access
    tink::internal::configuration_impl
    tink::internal::internal_insecure_secret_key_access
    tink::jwt::jwt_hmac_key
    tink::jwt::jwt_hmac_parameters
    tink::jwt::jwt_hmac_proto_serialization
    tink::subtle::common_enums
    tink::subtle::hmac_boringssl
)

tink_cc_library(
  NAME jwt_mac_key_gen_config_v0
  SRCS
    jwt_mac_key_gen_config_v0.cc
    jwt_mac_key_gen_config_v0.h
  DEPS
    tink::jwt::internal::jwt_hmac_key_manager
    absl::memory
    absl::status
    tink::core::key_gen_configuration
    tink::internal::key_gen_configuration_impl
)

tink_cc_test(
  NAME jwt_mac_config_v0_test
  SRCS
    jwt_mac_config_v0_test.cc
  DEPS
    tink::jwt::internal::jwt_hmac_key_manager
    tink::jwt::internal::jwt_mac_config_v0
    tink::jwt::internal::jwt_mac_key_gen_config_v0
    gmock
    absl::absl_check
    absl::strings
    absl::string_view
    absl::time
    tink::core::configuration
    tink::core::insecure_secret_key_access
    tink::core::key
    tink::core::key_gen_configuration
    tink::core::key_status
    tink::core::keyset_handle
    tink::core::partial_key_access
    tink::core::restricted_data
    tink::internal::configuration_impl
    tink::internal::key_gen_configuration_impl
    tink::internal::key_type_info_store
    tink::internal::keyset_wrapper_store
    tink::jwt::jwt_hmac_key
    tink::jwt::jwt_hmac_parameters
    tink::jwt::jwt_key_templates
    tink::jwt::jwt_mac
    tink::jwt::jwt_validator
    tink::jwt::raw_jwt
    tink::util::test_matchers
)

tink_cc_library(
  NAME jwt_signature_config_v0
  SRCS
    jwt_signature_config_v0.cc
    jwt_signature_config_v0.h
  DEPS
    tink::jwt::internal::jwt_ecdsa_sign_key_manager
    tink::jwt::internal::jwt_ecdsa_verify_key_manager
    tink::jwt::internal::jwt_public_key_sign_impl
    tink::jwt::internal::jwt_public_key_sign_internal
    tink::jwt::internal::jwt_public_key_sign_wrapper
    tink::jwt::internal::jwt_public_key_verify_impl
    tink::jwt::internal::jwt_public_key_verify_internal
    tink::jwt::internal::jwt_public_key_verify_wrapper
    tink::jwt::internal::jwt_rsa_ssa_pkcs1_sign_key_manager
    tink::jwt::internal::jwt_rsa_ssa_pkcs1_verify_key_manager
    tink::jwt::internal::jwt_rsa_ssa_pss_sign_key_manager
    tink::jwt::internal::jwt_rsa_ssa_pss_verify_key_manager
    absl::memory
    absl::status
    absl::statusor
    absl::strings
    absl::optional
    tink::core::configuration
    tink::core::ec_point
    tink::core::partial_key_access
    tink::core::partial_key_access_token
    tink::core::public_key_sign
    tink::core::public_key_verify
    tink::core::restricted_big_integer
    tink::internal::configuration_impl
    tink::jwt::jwt_ecdsa_parameters
    tink::jwt::jwt_ecdsa_private_key
    tink::jwt::jwt_ecdsa_proto_serialization
    tink::jwt::jwt_ecdsa_public_key
    tink::jwt::jwt_rsa_ssa_pkcs1_parameters
    tink::jwt::jwt_rsa_ssa_pkcs1_private_key
    tink::jwt::jwt_rsa_ssa_pkcs1_proto_serialization
    tink::jwt::jwt_rsa_ssa_pkcs1_public_key
    tink::jwt::jwt_rsa_ssa_pss_parameters
    tink::jwt::jwt_rsa_ssa_pss_private_key
    tink::jwt::jwt_rsa_ssa_pss_proto_serialization
    tink::jwt::jwt_rsa_ssa_pss_public_key
    tink::signature::ecdsa_parameters
    tink::signature::ecdsa_private_key
    tink::signature::ecdsa_public_key
    tink::signature::rsa_ssa_pkcs1_parameters
    tink::signature::rsa_ssa_pkcs1_private_key
    tink::signature::rsa_ssa_pkcs1_public_key
    tink::signature::rsa_ssa_pss_parameters
    tink::signature::rsa_ssa_pss_private_key
    tink::signature::rsa_ssa_pss_public_key
    tink::subtle::ecdsa_sign_boringssl
    tink::subtle::ecdsa_verify_boringssl
    tink::subtle::rsa_ssa_pkcs1_sign_boringssl
    tink::subtle::rsa_ssa_pkcs1_verify_boringssl
    tink::subtle::rsa_ssa_pss_sign_boringssl
    tink::subtle::rsa_ssa_pss_verify_boringssl
)

tink_cc_test(
  NAME jwt_signature_config_v0_test
  SRCS
    jwt_signature_config_v0_test.cc
  DEPS
    tink::jwt::internal::jwt_ecdsa_sign_key_manager
    tink::jwt::internal::jwt_ecdsa_verify_key_manager
    tink::jwt::internal::jwt_rsa_ssa_pkcs1_sign_key_manager
    tink::jwt::internal::jwt_rsa_ssa_pkcs1_verify_key_manager
    tink::jwt::internal::jwt_rsa_ssa_pss_sign_key_manager
    tink::jwt::internal::jwt_rsa_ssa_pss_verify_key_manager
    tink::jwt::internal::jwt_signature_config_v0
    tink::jwt::internal::jwt_signature_key_gen_config_v0
    gmock
    absl::absl_check
    absl::statusor
    absl::strings
    absl::string_view
    absl::time
    crypto
    tink::core::big_integer
    tink::core::configuration
    tink::core::ec_point
    tink::core::insecure_secret_key_access
    tink::core::key
    tink::core::key_gen_configuration
    tink::core::key_status
    tink::core::keyset_handle
    tink::core::partial_key_access
    tink::core::restricted_big_integer
    tink::internal::bn_util
    tink::internal::configuration_impl
    tink::internal::key_gen_configuration_impl
    tink::internal::key_type_info_store
    tink::internal::keyset_wrapper_store
    tink::internal::ssl_unique_ptr
    tink::jwt::jwt_ecdsa_parameters
    tink::jwt::jwt_ecdsa_private_key
    tink::jwt::jwt_ecdsa_proto_serialization
    tink::jwt::jwt_ecdsa_public_key
    tink::jwt::jwt_key_templates
    tink::jwt::jwt_public_key_sign
    tink::jwt::jwt_public_key_verify
    tink::jwt::jwt_rsa_ssa_pkcs1_parameters
    tink::jwt::jwt_rsa_ssa_pkcs1_private_key
    tink::jwt::jwt_rsa_ssa_pkcs1_public_key
    tink::jwt::jwt_rsa_ssa_pss_parameters
    tink::jwt::jwt_rsa_ssa_pss_private_key
    tink::jwt::jwt_rsa_ssa_pss_public_key
    tink::jwt::jwt_validator
    tink::jwt::raw_jwt
    tink::util::test_matchers
)

tink_cc_library(
  NAME jwt_signature_key_gen_config_v0
  SRCS
    jwt_signature_key_gen_config_v0.cc
    jwt_signature_key_gen_config_v0.h
  DEPS
    tink::jwt::internal::jwt_ecdsa_sign_key_manager
    tink::jwt::internal::jwt_ecdsa_verify_key_manager
    tink::jwt::internal::jwt_rsa_ssa_pkcs1_sign_key_manager
    tink::jwt::internal::jwt_rsa_ssa_pkcs1_verify_key_manager
    tink::jwt::internal::jwt_rsa_ssa_pss_sign_key_manager
    tink::jwt::internal::jwt_rsa_ssa_pss_verify_key_manager
    absl::memory
    absl::status
    tink::core::key_gen_configuration
    tink::internal::key_gen_configuration_impl
)

tink_cc_library(
  NAME jwt_rsa_ssa_pkcs1_proto_serialization_impl
  SRCS
    jwt_rsa_ssa_pkcs1_proto_serialization_impl.cc
    jwt_rsa_ssa_pkcs1_proto_serialization_impl.h
  DEPS
    absl::status
    absl::statusor
    absl::string_view
    absl::optional
    tink::core::big_integer
    tink::core::insecure_secret_key_access
    tink::core::partial_key_access
    tink::core::restricted_big_integer
    tink::core::restricted_data
    tink::core::secret_data
    tink::core::secret_key_access_token
    tink::internal::key_parser
    tink::internal::key_serializer
    tink::internal::mutable_serialization_registry
    tink::internal::parameters_parser
    tink::internal::parameters_serializer
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::internal::proto_parser_enum_field
    tink::internal::proto_parser_fields
    tink::internal::proto_parser_message
    tink::internal::proto_parser_secret_data_field
    tink::internal::serialization_registry
    tink::internal::tink_proto_structs
    tink::jwt::jwt_rsa_ssa_pkcs1_parameters
    tink::jwt::jwt_rsa_ssa_pkcs1_private_key
    tink::jwt::jwt_rsa_ssa_pkcs1_public_key
)

tink_cc_test(
  NAME jwt_rsa_ssa_pkcs1_proto_serialization_impl_test
  SRCS
    jwt_rsa_ssa_pkcs1_proto_serialization_impl_test.cc
  DEPS
    tink::jwt::internal::jwt_rsa_ssa_pkcs1_proto_serialization_impl
    gmock
    absl::absl_check
    absl::status
    absl::statusor
    absl::string_view
    absl::optional
    crypto
    tink::core::big_integer
    tink::core::insecure_secret_key_access_testonly
    tink::core::key
    tink::core::parameters
    tink::core::partial_key_access
    tink::core::restricted_big_integer
    tink::core::restricted_data
    tink::internal::bn_util
    tink::internal::mutable_serialization_registry
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::internal::serialization
    tink::internal::serialization_registry
    tink::internal::ssl_unique_ptr
    tink::internal::tink_proto_structs
    tink::jwt::jwt_rsa_ssa_pkcs1_parameters
    tink::jwt::jwt_rsa_ssa_pkcs1_private_key
    tink::jwt::jwt_rsa_ssa_pkcs1_public_key
    tink::util::test_matchers
    tink::proto::common_cc_proto
    tink::proto::jwt_rsa_ssa_pkcs1_cc_proto
)

tink_cc_library(
  NAME jwt_rsa_ssa_pss_proto_serialization_impl
  SRCS
    jwt_rsa_ssa_pss_proto_serialization_impl.cc
    jwt_rsa_ssa_pss_proto_serialization_impl.h
  DEPS
    absl::status
    absl::statusor
    absl::string_view
    absl::optional
    tink::core::big_integer
    tink::core::insecure_secret_key_access
    tink::core::partial_key_access
    tink::core::restricted_big_integer
    tink::core::restricted_data
    tink::core::secret_data
    tink::core::secret_key_access_token
    tink::internal::key_parser
    tink::internal::key_serializer
    tink::internal::mutable_serialization_registry
    tink::internal::parameters_parser
    tink::internal::parameters_serializer
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::internal::proto_parser_enum_field
    tink::internal::proto_parser_fields
    tink::internal::proto_parser_message
    tink::internal::proto_parser_secret_data_field
    tink::internal::serialization_registry
    tink::internal::tink_proto_structs
    tink::jwt::jwt_rsa_ssa_pss_parameters
    tink::jwt::jwt_rsa_ssa_pss_private_key
    tink::jwt::jwt_rsa_ssa_pss_public_key
)

tink_cc_test(
  NAME jwt_rsa_ssa_pss_proto_serialization_impl_test
  SRCS
    jwt_rsa_ssa_pss_proto_serialization_impl_test.cc
  DEPS
    tink::jwt::internal::jwt_rsa_ssa_pss_proto_serialization_impl
    gmock
    absl::absl_check
    absl::status
    absl::statusor
    absl::string_view
    absl::optional
    crypto
    tink::core::big_integer
    tink::core::insecure_secret_key_access_testonly
    tink::core::key
    tink::core::parameters
    tink::core::partial_key_access
    tink::core::restricted_big_integer
    tink::core::restricted_data
    tink::internal::bn_util
    tink::internal::mutable_serialization_registry
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::internal::serialization
    tink::internal::serialization_registry
    tink::internal::ssl_unique_ptr
    tink::internal::tink_proto_structs
    tink::jwt::jwt_rsa_ssa_pss_parameters
    tink::jwt::jwt_rsa_ssa_pss_private_key
    tink::jwt::jwt_rsa_ssa_pss_public_key
    tink::util::test_matchers
    tink::proto::common_cc_proto
    tink::proto::jwt_rsa_ssa_pss_cc_proto
)

tink_cc_library(
  NAME jwt_ecdsa_proto_serialization_impl
  SRCS
    jwt_ecdsa_proto_serialization_impl.cc
    jwt_ecdsa_proto_serialization_impl.h
  DEPS
    absl::status
    absl::statusor
    absl::string_view
    absl::optional
    tink::core::big_integer
    tink::core::ec_point
    tink::core::insecure_secret_key_access
    tink::core::partial_key_access
    tink::core::restricted_big_integer
    tink::core::restricted_data
    tink::core::secret_data
    tink::core::secret_key_access_token
    tink::internal::bn_encoding_util
    tink::internal::key_parser
    tink::internal::key_serializer
    tink::internal::mutable_serialization_registry
    tink::internal::parameters_parser
    tink::internal::parameters_serializer
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::internal::proto_parser_enum_field
    tink::internal::proto_parser_fields
    tink::internal::proto_parser_message
    tink::internal::proto_parser_secret_data_field
    tink::internal::serialization_registry
    tink::internal::tink_proto_structs
    tink::jwt::jwt_ecdsa_parameters
    tink::jwt::jwt_ecdsa_private_key
    tink::jwt::jwt_ecdsa_public_key
)

tink_cc_test(
  NAME jwt_ecdsa_proto_serialization_impl_test
  SRCS
    jwt_ecdsa_proto_serialization_impl_test.cc
  DEPS
    tink::jwt::internal::jwt_ecdsa_proto_serialization_impl
    gmock
    absl::status
    absl::statusor
    absl::strings
    absl::string_view
    absl::optional
    tink::core::big_integer
    tink::core::ec_point
    tink::core::insecure_secret_key_access
    tink::core::key
    tink::core::parameters
    tink::core::partial_key_access
    tink::core::restricted_big_integer
    tink::core::restricted_data
    tink::internal::ec_util
    tink::internal::mutable_serialization_registry
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::internal::serialization
    tink::internal::serialization_registry
    tink::internal::tink_proto_structs
    tink::jwt::jwt_ecdsa_parameters
    tink::jwt::jwt_ecdsa_private_key
    tink::jwt::jwt_ecdsa_public_key
    tink::subtle::common_enums
    tink::util::secret_data
    tink::util::test_matchers
    tink::proto::common_cc_proto
    tink::proto::jwt_ecdsa_cc_proto
)

tink_cc_library(
  NAME jwt_hmac_proto_serialization_impl
  SRCS
    jwt_hmac_proto_serialization_impl.cc
    jwt_hmac_proto_serialization_impl.h
  DEPS
    absl::status
    absl::statusor
    absl::string_view
    absl::optional
    tink::core::partial_key_access
    tink::core::restricted_data
    tink::core::secret_data
    tink::core::secret_key_access_token
    tink::internal::key_parser
    tink::internal::key_serializer
    tink::internal::mutable_serialization_registry
    tink::internal::parameters_parser
    tink::internal::parameters_serializer
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::internal::proto_parser_enum_field
    tink::internal::proto_parser_fields
    tink::internal::proto_parser_message
    tink::internal::proto_parser_secret_data_field
    tink::internal::serialization_registry
    tink::internal::tink_proto_structs
    tink::jwt::jwt_hmac_key
    tink::jwt::jwt_hmac_parameters
)

tink_cc_test(
  NAME jwt_hmac_proto_serialization_impl_test
  SRCS
    jwt_hmac_proto_serialization_impl_test.cc
  DEPS
    tink::jwt::internal::jwt_hmac_proto_serialization_impl
    gmock
    absl::status
    absl::statusor
    absl::string_view
    absl::optional
    tink::core::insecure_secret_key_access_testonly
    tink::core::key
    tink::core::parameters
    tink::core::partial_key_access
    tink::core::restricted_data
    tink::internal::mutable_serialization_registry
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::internal::serialization
    tink::internal::serialization_registry
    tink::internal::tink_proto_structs
    tink::jwt::jwt_hmac_key
    tink::jwt::jwt_hmac_parameters
    tink::subtle::random
    tink::util::test_matchers
    tink::proto::common_cc_proto
    tink::proto::jwt_hmac_cc_proto
)
