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_proto_serialization
    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
    tink::signature::ed25519_private_key
    tink::signature::ed25519_public_key
    absl::status
    absl::strings
    absl::optional
    tink::core::insecure_secret_key_access
    tink::core::partial_key_access
    tink::core::restricted_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::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::ed25519_parameters
    tink::signature::ed25519_private_key
    tink::signature::ed25519_public_key
    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::insecure_secret_key_access
    tink::core::key
    tink::core::keyset_handle
    tink::core::parameters
    tink::core::partial_key_access
    tink::core::public_key_sign
    tink::core::public_key_verify
    tink::core::registry
    tink::core::restricted_data
    tink::internal::ec_util
    tink::internal::fips_utils
    tink::internal::mutable_serialization_registry
    tink::internal::proto_key_serialization
    tink::internal::proto_parameters_serialization
    tink::internal::serialization
    tink::subtle::random
    tink::util::status
    tink::util::statusor
    tink::util::test_matchers
    tink::util::test_util
    tink::proto::ed25519_cc_proto
    tink::proto::tink_cc_proto
)

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_private_key
    tink::signature::ed25519_proto_serialization
    tink::signature::ed25519_public_key
    gmock
    absl::status
    absl::optional
    tink::core::insecure_secret_key_access
    tink::core::key
    tink::core::parameters
    tink::core::partial_key_access
    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::subtle::random
    tink::util::statusor
    tink::util::test_matchers
    tink::proto::ed25519_cc_proto
    tink::proto::tink_cc_proto
)
