tink_module(signature)

add_subdirectory(internal)

tink_cc_library(
  NAME public_key_verify_wrapper
  SRCS
    public_key_verify_wrapper.cc
    public_key_verify_wrapper.h
  DEPS
    absl::status
    absl::strings
    tink::core::crypto_format
    tink::core::primitive_set
    tink::core::primitive_wrapper
    tink::core::public_key_verify
    tink::internal::monitoring_util
    tink::internal::registry_impl
    tink::internal::util
    tink::monitoring::monitoring
    tink::util::status
    tink::util::statusor
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME public_key_verify_factory
  SRCS
    public_key_verify_factory.cc
    public_key_verify_factory.h
  DEPS
    tink::signature::public_key_verify_wrapper
    absl::core_headers
    tink::core::key_manager
    tink::core::keyset_handle
    tink::core::public_key_verify
    tink::core::registry
    tink::util::status
    tink::util::statusor
)

tink_cc_library(
  NAME public_key_sign_wrapper
  SRCS
    public_key_sign_wrapper.cc
    public_key_sign_wrapper.h
  DEPS
    absl::status
    absl::strings
    tink::core::crypto_format
    tink::core::primitive_set
    tink::core::primitive_wrapper
    tink::core::public_key_sign
    tink::internal::monitoring_util
    tink::internal::registry_impl
    tink::internal::util
    tink::monitoring::monitoring
    tink::util::statusor
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME public_key_sign_factory
  SRCS
    public_key_sign_factory.cc
    public_key_sign_factory.h
  DEPS
    tink::signature::public_key_sign_wrapper
    absl::core_headers
    tink::core::key_manager
    tink::core::keyset_handle
    tink::core::public_key_sign
    tink::core::registry
    tink::util::status
    tink::util::statusor
)

tink_cc_library(
  NAME signature_key_templates
  SRCS
    signature_key_templates.cc
    signature_key_templates.h
  DEPS
    absl::core_headers
    absl::memory
    absl::strings
    crypto
    tink::internal::bn_util
    tink::internal::ssl_unique_ptr
    tink::util::constants
    tink::proto::common_cc_proto
    tink::proto::ecdsa_cc_proto
    tink::proto::ed25519_cc_proto
    tink::proto::rsa_ssa_pkcs1_cc_proto
    tink::proto::rsa_ssa_pss_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME ecdsa_sign_key_manager
  SRCS
    ecdsa_sign_key_manager.cc
    ecdsa_sign_key_manager.h
  DEPS
    tink::signature::ecdsa_verify_key_manager
    absl::memory
    absl::status
    absl::strings
    tink::core::private_key_type_manager
    tink::core::public_key_sign
    tink::config::tink_fips
    tink::internal::ec_util
    tink::subtle::ecdsa_sign_boringssl
    tink::util::constants
    tink::util::enums
    tink::util::errors
    tink::util::input_stream_util
    tink::util::protobuf_helper
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::validation
    tink::proto::ecdsa_cc_proto
)

tink_cc_library(
  NAME ecdsa_verify_key_manager
  SRCS
    ecdsa_verify_key_manager.cc
    ecdsa_verify_key_manager.h
  DEPS
    absl::memory
    absl::status
    absl::strings
    tink::core::key_type_manager
    tink::core::public_key_verify
    tink::internal::ec_util
    tink::subtle::ecdsa_verify_boringssl
    tink::util::constants
    tink::util::enums
    tink::util::errors
    tink::util::protobuf_helper
    tink::util::status
    tink::util::statusor
    tink::util::validation
    tink::proto::ecdsa_cc_proto
)

tink_cc_library(
  NAME ed25519_sign_key_manager
  SRCS
    ed25519_sign_key_manager.cc
    ed25519_sign_key_manager.h
  DEPS
    tink::signature::ed25519_verify_key_manager
    absl::memory
    absl::status
    absl::strings
    tink::core::private_key_type_manager
    tink::core::public_key_sign
    tink::internal::ec_util
    tink::subtle::ed25519_sign_boringssl
    tink::util::constants
    tink::util::enums
    tink::util::errors
    tink::util::input_stream_util
    tink::util::protobuf_helper
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::validation
    tink::proto::ed25519_cc_proto
)

tink_cc_library(
  NAME ed25519_verify_key_manager
  SRCS
    ed25519_verify_key_manager.cc
    ed25519_verify_key_manager.h
  DEPS
    absl::memory
    absl::status
    absl::strings
    tink::core::key_type_manager
    tink::core::public_key_verify
    tink::subtle::ed25519_verify_boringssl
    tink::util::constants
    tink::util::errors
    tink::util::protobuf_helper
    tink::util::status
    tink::util::statusor
    tink::util::validation
    tink::proto::ed25519_cc_proto
)

tink_cc_library(
  NAME sig_util
  SRCS
    sig_util.cc
    sig_util.h
  DEPS
    tink::core::public_key_sign
    tink::core::public_key_verify
    tink::util::status
)

tink_cc_library(
  NAME rsa_ssa_pkcs1_sign_key_manager
  SRCS
    rsa_ssa_pkcs1_sign_key_manager.cc
    rsa_ssa_pkcs1_sign_key_manager.h
  DEPS
    tink::signature::rsa_ssa_pkcs1_verify_key_manager
    tink::signature::sig_util
    absl::memory
    absl::status
    absl::strings
    tink::core::private_key_type_manager
    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::rsa_ssa_pkcs1_sign_boringssl
    tink::util::constants
    tink::util::enums
    tink::util::errors
    tink::util::protobuf_helper
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::validation
    tink::proto::rsa_ssa_pkcs1_cc_proto
)

tink_cc_library(
  NAME rsa_ssa_pkcs1_verify_key_manager
  SRCS
    rsa_ssa_pkcs1_verify_key_manager.cc
    rsa_ssa_pkcs1_verify_key_manager.h
  DEPS
    absl::memory
    absl::strings
    crypto
    tink::core::key_type_manager
    tink::core::public_key_verify
    tink::internal::bn_util
    tink::internal::md_util
    tink::internal::ssl_unique_ptr
    tink::subtle::rsa_ssa_pkcs1_verify_boringssl
    tink::util::constants
    tink::util::enums
    tink::util::errors
    tink::util::protobuf_helper
    tink::util::status
    tink::util::statusor
    tink::util::validation
    tink::proto::rsa_ssa_pkcs1_cc_proto
)

tink_cc_library(
  NAME rsa_ssa_pss_sign_key_manager
  SRCS
    rsa_ssa_pss_sign_key_manager.cc
    rsa_ssa_pss_sign_key_manager.h
  DEPS
    tink::signature::rsa_ssa_pss_verify_key_manager
    tink::signature::sig_util
    absl::memory
    absl::status
    absl::strings
    tink::core::key_type_manager
    tink::core::private_key_type_manager
    tink::core::public_key_sign
    tink::internal::bn_util
    tink::internal::rsa_util
    tink::internal::ssl_unique_ptr
    tink::subtle::rsa_ssa_pss_sign_boringssl
    tink::util::constants
    tink::util::enums
    tink::util::errors
    tink::util::protobuf_helper
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::validation
    tink::proto::rsa_ssa_pss_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME rsa_ssa_pss_verify_key_manager
  SRCS
    rsa_ssa_pss_verify_key_manager.cc
    rsa_ssa_pss_verify_key_manager.h
  DEPS
    absl::memory
    absl::status
    absl::strings
    tink::core::private_key_type_manager
    tink::core::public_key_sign
    tink::core::public_key_verify
    tink::internal::bn_util
    tink::internal::md_util
    tink::internal::rsa_util
    tink::internal::ssl_unique_ptr
    tink::subtle::rsa_ssa_pss_verify_boringssl
    tink::util::constants
    tink::util::enums
    tink::util::errors
    tink::util::protobuf_helper
    tink::util::status
    tink::util::statusor
    tink::util::validation
    tink::proto::rsa_ssa_pss_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME signature_config
  SRCS
    signature_config.cc
    signature_config.h
  DEPS
    tink::signature::ecdsa_verify_key_manager
    tink::signature::ed25519_sign_key_manager
    tink::signature::ed25519_verify_key_manager
    tink::signature::public_key_sign_wrapper
    tink::signature::public_key_verify_wrapper
    tink::signature::rsa_ssa_pkcs1_sign_key_manager
    tink::signature::rsa_ssa_pkcs1_verify_key_manager
    tink::signature::rsa_ssa_pss_sign_key_manager
    tink::signature::rsa_ssa_pss_verify_key_manager
    absl::core_headers
    absl::memory
    tink::core::registry
    tink::config::config_util
    tink::config::tink_fips
    tink::util::status
    tink::signature::ecdsa_sign_key_manager
    tink::proto::config_cc_proto
)

tink_cc_library(
  NAME signature_pem_keyset_reader
  SRCS
    signature_pem_keyset_reader.cc
    signature_pem_keyset_reader.h
  DEPS
    tink::signature::ecdsa_verify_key_manager
    tink::signature::rsa_ssa_pkcs1_sign_key_manager
    tink::signature::rsa_ssa_pkcs1_verify_key_manager
    tink::signature::rsa_ssa_pss_sign_key_manager
    tink::signature::rsa_ssa_pss_verify_key_manager
    absl::memory
    absl::status
    absl::strings
    tink::core::keyset_reader
    tink::internal::ec_util
    tink::internal::rsa_util
    tink::subtle::pem_parser_boringssl
    tink::util::enums
    tink::util::keyset_util
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::proto::common_cc_proto
    tink::proto::ecdsa_cc_proto
    tink::proto::rsa_ssa_pkcs1_cc_proto
    tink::proto::rsa_ssa_pss_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_library(
  NAME failing_signature
  SRCS
    failing_signature.cc
    failing_signature.h
  DEPS
    absl::strings
    tink::core::public_key_sign
    tink::core::public_key_verify
)

tink_cc_library(
  NAME signature_parameters
  SRCS
    signature_parameters.h
  DEPS
    tink::core::parameters
)

tink_cc_library(
  NAME signature_public_key
  SRCS
    signature_public_key.h
  DEPS
    tink::signature::signature_parameters
    absl::strings
    tink::core::key
)

tink_cc_library(
  NAME signature_private_key
  SRCS
    signature_private_key.h
  DEPS
    tink::signature::signature_parameters
    tink::signature::signature_public_key
    absl::strings
    tink::core::key
    tink::core::private_key
)

tink_cc_library(
  NAME ed25519_parameters
  SRCS
    ed25519_parameters.cc
    ed25519_parameters.h
  DEPS
    tink::signature::signature_parameters
    tink::util::statusor
)

tink_cc_library(
  NAME ed25519_public_key
  SRCS
    ed25519_public_key.cc
    ed25519_public_key.h
  DEPS
    tink::signature::ed25519_parameters
    tink::signature::signature_public_key
    absl::core_headers
    absl::strings
    absl::optional
    tink::core::partial_key_access_token
    tink::subtle::subtle_util
    tink::util::status
    tink::util::statusor
)

tink_cc_library(
  NAME ed25519_private_key
  SRCS
    ed25519_private_key.cc
    ed25519_private_key.h
  DEPS
    tink::signature::ed25519_public_key
    tink::signature::signature_private_key
    crypto
    tink::core::insecure_secret_key_access
    tink::core::partial_key_access_token
    tink::core::restricted_data
    tink::internal::ec_util
    tink::util::secret_data
    tink::util::statusor
)

tink_cc_library(
  NAME ed25519_proto_serialization
  SRCS
    ed25519_proto_serialization.cc
    ed25519_proto_serialization.h
  DEPS
    tink::signature::ed25519_parameters
    absl::status
    absl::strings
    tink::internal::mutable_serialization_registry
    tink::internal::parameters_parser
    tink::internal::parameters_serializer
    tink::internal::proto_parameters_serialization
    tink::util::status
    tink::util::statusor
    tink::proto::ed25519_cc_proto
    tink::proto::tink_cc_proto
)

# tests

tink_cc_test(
  NAME public_key_verify_wrapper_test
  SRCS
    public_key_verify_wrapper_test.cc
  DEPS
    tink::signature::failing_signature
    tink::signature::public_key_verify_wrapper
    gmock
    tink::core::primitive_set
    tink::core::public_key_verify
    tink::internal::registry_impl
    tink::monitoring::monitoring
    tink::monitoring::monitoring_client_mocks
    tink::util::status
    tink::util::test_matchers
    tink::util::test_util
)

tink_cc_test(
  NAME public_key_verify_factory_test
  SRCS
    public_key_verify_factory_test.cc
  DEPS
    tink::signature::ecdsa_verify_key_manager
    tink::signature::public_key_verify_factory
    tink::signature::signature_config
    gmock
    tink::core::crypto_format
    tink::core::keyset_handle
    tink::core::public_key_verify
    tink::core::registry
    tink::util::status
    tink::util::test_keyset_handle
    tink::util::test_util
    tink::proto::ecdsa_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_test(
  NAME public_key_sign_wrapper_test
  SRCS
    public_key_sign_wrapper_test.cc
  DEPS
    tink::signature::failing_signature
    tink::signature::public_key_sign_wrapper
    gmock
    absl::memory
    absl::status
    tink::core::crypto_format
    tink::core::primitive_set
    tink::core::public_key_sign
    tink::internal::registry_impl
    tink::monitoring::monitoring
    tink::monitoring::monitoring_client_mocks
    tink::util::status
    tink::util::test_matchers
    tink::util::test_util
)

tink_cc_test(
  NAME public_key_sign_factory_test
  SRCS
    public_key_sign_factory_test.cc
  DEPS
    tink::signature::ecdsa_sign_key_manager
    tink::signature::public_key_sign_factory
    tink::signature::signature_config
    gmock
    tink::core::crypto_format
    tink::core::keyset_handle
    tink::core::public_key_sign
    tink::core::registry
    tink::util::status
    tink::util::test_keyset_handle
    tink::util::test_util
    tink::proto::ecdsa_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_test(
  NAME ecdsa_verify_key_manager_test
  SRCS
    ecdsa_verify_key_manager_test.cc
  DEPS
    tink::signature::ecdsa_sign_key_manager
    tink::signature::ecdsa_verify_key_manager
    gmock
    absl::status
    tink::core::public_key_sign
    tink::core::public_key_verify
    tink::internal::ec_util
    tink::subtle::ecdsa_sign_boringssl
    tink::util::enums
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::test_matchers
    tink::util::test_util
    tink::proto::ecdsa_cc_proto
)

tink_cc_test(
  NAME ed25519_verify_key_manager_test
  SRCS
    ed25519_verify_key_manager_test.cc
  DEPS
    tink::signature::ed25519_sign_key_manager
    tink::signature::ed25519_verify_key_manager
    gmock
    tink::core::public_key_sign
    tink::core::public_key_verify
    tink::core::registry
    tink::subtle::ed25519_sign_boringssl
    tink::util::enums
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::test_matchers
    tink::util::test_util
    tink::proto::ed25519_cc_proto
)

tink_cc_test(
  NAME rsa_ssa_pkcs1_verify_key_manager_test
  SRCS
    rsa_ssa_pkcs1_verify_key_manager_test.cc
  DEPS
    tink::signature::rsa_ssa_pkcs1_sign_key_manager
    tink::signature::rsa_ssa_pkcs1_verify_key_manager
    gmock
    absl::status
    absl::strings
    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::rsa_ssa_pkcs1_sign_boringssl
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::test_matchers
    tink::util::test_util
    tink::proto::rsa_ssa_pkcs1_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_test(
  NAME rsa_ssa_pss_verify_key_manager_test
  SRCS
    rsa_ssa_pss_verify_key_manager_test.cc
  DEPS
    tink::signature::rsa_ssa_pss_sign_key_manager
    tink::signature::rsa_ssa_pss_verify_key_manager
    gmock
    absl::status
    absl::strings
    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::rsa_ssa_pss_sign_boringssl
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::test_matchers
    tink::util::test_util
    tink::proto::rsa_ssa_pss_cc_proto
)

tink_cc_test(
  NAME ecdsa_sign_key_manager_test
  SRCS
    ecdsa_sign_key_manager_test.cc
  DEPS
    tink::signature::ecdsa_sign_key_manager
    tink::signature::ecdsa_verify_key_manager
    gmock
    absl::status
    absl::strings
    tink::core::public_key_sign
    tink::core::public_key_verify
    tink::internal::ec_util
    tink::internal::ssl_util
    tink::subtle::ecdsa_verify_boringssl
    tink::util::enums
    tink::util::istream_input_stream
    tink::util::status
    tink::util::statusor
    tink::util::test_matchers
    tink::util::test_util
    tink::proto::ecdsa_cc_proto
)

tink_cc_test(
  NAME ed25519_sign_key_manager_test
  SRCS
    ed25519_sign_key_manager_test.cc
  DEPS
    tink::signature::ed25519_sign_key_manager
    tink::signature::ed25519_verify_key_manager
    gmock
    absl::flat_hash_set
    absl::status
    tink::core::public_key_sign
    tink::core::registry
    tink::subtle::ed25519_verify_boringssl
    tink::util::enums
    tink::util::istream_input_stream
    tink::util::protobuf_helper
    tink::util::status
    tink::util::statusor
    tink::util::test_matchers
    tink::util::test_util
    tink::proto::ed25519_cc_proto
)

tink_cc_test(
  NAME rsa_ssa_pkcs1_sign_key_manager_test
  SRCS
    rsa_ssa_pkcs1_sign_key_manager_test.cc
  DEPS
    tink::signature::rsa_ssa_pkcs1_sign_key_manager
    tink::signature::rsa_ssa_pkcs1_verify_key_manager
    gmock
    absl::flat_hash_set
    crypto
    tink::core::public_key_sign
    tink::internal::bn_util
    tink::internal::ssl_unique_ptr
    tink::subtle::rsa_ssa_pkcs1_verify_boringssl
    tink::util::status
    tink::util::statusor
    tink::util::test_matchers
    tink::util::test_util
    tink::proto::rsa_ssa_pkcs1_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_test(
  NAME rsa_ssa_pss_sign_key_manager_test
  SRCS
    rsa_ssa_pss_sign_key_manager_test.cc
  DEPS
    tink::signature::rsa_ssa_pss_sign_key_manager
    tink::signature::rsa_ssa_pss_verify_key_manager
    tink::signature::signature_key_templates
    gmock
    absl::flat_hash_set
    crypto
    tink::core::public_key_sign
    tink::internal::bn_util
    tink::internal::rsa_util
    tink::internal::ssl_unique_ptr
    tink::subtle::rsa_ssa_pss_verify_boringssl
    tink::util::status
    tink::util::statusor
    tink::util::test_matchers
    tink::util::test_util
    tink::proto::rsa_ssa_pss_cc_proto
)

tink_cc_test(
  NAME signature_config_test
  SRCS
    signature_config_test.cc
  DEPS
    tink::signature::rsa_ssa_pss_sign_key_manager
    tink::signature::rsa_ssa_pss_verify_key_manager
    tink::signature::signature_config
    tink::signature::signature_key_templates
    gmock
    absl::memory
    absl::status
    crypto
    tink::core::keyset_handle
    tink::core::public_key_sign
    tink::core::public_key_verify
    tink::core::registry
    tink::internal::fips_utils
    tink::util::status
    tink::util::test_matchers
    tink::util::test_util
)

tink_cc_test(
  NAME signature_key_templates_test
  SRCS
    signature_key_templates_test.cc
  DEPS
    tink::signature::ecdsa_sign_key_manager
    tink::signature::ecdsa_verify_key_manager
    tink::signature::ed25519_sign_key_manager
    tink::signature::ed25519_verify_key_manager
    tink::signature::rsa_ssa_pkcs1_sign_key_manager
    tink::signature::rsa_ssa_pss_sign_key_manager
    tink::signature::signature_key_templates
    gmock
    crypto
    tink::core::key_manager_impl
    tink::core::private_key_manager_impl
    tink::internal::bn_util
    tink::internal::ssl_unique_ptr
    tink::util::statusor
    tink::util::test_matchers
    tink::proto::common_cc_proto
    tink::proto::ecdsa_cc_proto
    tink::proto::rsa_ssa_pkcs1_cc_proto
    tink::proto::rsa_ssa_pss_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_test(
  NAME signature_pem_keyset_reader_test
  SRCS
    signature_pem_keyset_reader_test.cc
  DEPS
    tink::signature::ecdsa_verify_key_manager
    tink::signature::rsa_ssa_pss_sign_key_manager
    tink::signature::rsa_ssa_pss_verify_key_manager
    tink::signature::signature_config
    tink::signature::signature_pem_keyset_reader
    gmock
    absl::status
    absl::strings
    tink::core::cc
    tink::internal::rsa_util
    tink::internal::ssl_util
    tink::subtle::pem_parser_boringssl
    tink::util::enums
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::test_matchers
    tink::proto::common_cc_proto
    tink::proto::ecdsa_cc_proto
    tink::proto::rsa_ssa_pss_cc_proto
    tink::proto::tink_cc_proto
)

tink_cc_test(
  NAME failing_signature_test
  SRCS
    failing_signature_test.cc
  DEPS
    tink::signature::failing_signature
    gmock
    absl::status
    tink::util::test_matchers
)

tink_cc_test(
  NAME ed25519_parameters_test
  SRCS
    ed25519_parameters_test.cc
  DEPS
    tink::signature::ed25519_parameters
    gmock
    tink::util::statusor
    tink::util::test_matchers
)

tink_cc_test(
  NAME ed25519_public_key_test
  SRCS
    ed25519_public_key_test.cc
  DEPS
    tink::signature::ed25519_public_key
    gmock
    tink::core::partial_key_access
    tink::subtle::random
    tink::util::statusor
    tink::util::test_matchers
)

tink_cc_test(
  NAME ed25519_private_key_test
  SRCS
    ed25519_private_key_test.cc
  DEPS
    tink::signature::ed25519_private_key
    tink::signature::ed25519_public_key
    gmock
    tink::core::insecure_secret_key_access
    tink::core::partial_key_access
    tink::internal::ec_util
    tink::subtle::random
    tink::util::statusor
    tink::util::test_matchers
)

tink_cc_test(
  NAME ed25519_proto_serialization_test
  SRCS
    ed25519_proto_serialization_test.cc
  DEPS
    tink::signature::ed25519_parameters
    tink::signature::ed25519_proto_serialization
    gmock
    absl::status
    absl::optional
    tink::core::parameters
    tink::internal::mutable_serialization_registry
    tink::internal::proto_parameters_serialization
    tink::internal::serialization
    tink::util::statusor
    tink::util::test_matchers
    tink::proto::ed25519_cc_proto
    tink::proto::tink_cc_proto
)
