tink_module(subtle)

add_subdirectory(prf)
add_subdirectory(mac)

set(TINK_SUBTLE_PUBLIC_APIS
  common_enums.h
  aes_gcm_boringssl.h
  encrypt_then_authenticate.h
  hmac_boringssl.h
  hkdf.h
  ind_cpa_cipher.h
  random.h
)

tink_cc_library(
  NAME subtle
  SRCS ${TINK_SUBTLE_PUBLIC_APIS}
  DEPS
    tink::subtle::aes_gcm_boringssl
    tink::subtle::common_enums
    tink::subtle::encrypt_then_authenticate
    tink::subtle::hkdf
    tink::subtle::hmac_boringssl
    tink::subtle::random
    tink::core::aead
    tink::core::hybrid_decrypt
    tink::core::hybrid_encrypt
    tink::core::mac
    tink::core::public_key_sign
    tink::core::public_key_verify
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    crypto
    absl::base
    absl::core_headers
    absl::strings
  PUBLIC
)

add_library(tink::subtle ALIAS tink_subtle_subtle)

tink_cc_library(
  NAME ind_cpa_cipher
  SRCS ind_cpa_cipher.h
  DEPS
    tink::util::statusor
    absl::strings
)

tink_cc_library(
  NAME ecies_hkdf_recipient_kem_boringssl
  SRCS
    ecies_hkdf_recipient_kem_boringssl.cc
    ecies_hkdf_recipient_kem_boringssl.h
  DEPS
    tink::subtle::common_enums
    tink::subtle::hkdf
    tink::subtle::subtle_util_boringssl
    tink::util::errors
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    crypto
    absl::memory
    absl::strings
)

tink_cc_library(
  NAME ecies_hkdf_sender_kem_boringssl
  SRCS
    ecies_hkdf_sender_kem_boringssl.cc
    ecies_hkdf_sender_kem_boringssl.h
  DEPS
    tink::subtle::common_enums
    tink::subtle::hkdf
    tink::subtle::subtle_util_boringssl
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    crypto
    absl::memory
    absl::strings
)

tink_cc_library(
  NAME ec_util
  SRCS
    ec_util.cc
    ec_util.h
  DEPS
    tink::subtle::common_enums
    tink::subtle::subtle_util_boringssl
    tink::util::errors
    tink::util::status
    tink::util::statusor
    crypto
    absl::strings
)

tink_cc_library(
  NAME ed25519_sign_boringssl
  SRCS
    ed25519_sign_boringssl.cc
    ed25519_sign_boringssl.h
  DEPS
    tink::subtle::subtle_util_boringssl
    tink::core::public_key_sign
    tink::util::errors
    tink::util::secret_data
    tink::util::statusor
    crypto
    absl::memory
    absl::strings
    absl::str_format
)

tink_cc_library(
  NAME ed25519_verify_boringssl
  SRCS
    ed25519_verify_boringssl.cc
    ed25519_verify_boringssl.h
  DEPS
    tink::subtle::subtle_util_boringssl
    tink::core::public_key_verify
    tink::util::errors
    tink::util::statusor
    crypto
    absl::strings
    absl::str_format
)

tink_cc_library(
  NAME hkdf
  SRCS
    hkdf.cc
    hkdf.h
  DEPS
    tink::subtle::common_enums
    tink::subtle::subtle_util_boringssl
    tink::util::errors
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    crypto
    absl::algorithm_container
    absl::strings
)

tink_cc_library(
  NAME aes_cmac_boringssl
  SRCS
    aes_cmac_boringssl.cc
    aes_cmac_boringssl.h
  DEPS
    tink::subtle::subtle_util
    tink::subtle::subtle_util_boringssl
    tink::core::mac
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    crypto
    absl::memory
)

tink_cc_library(
  NAME hmac_boringssl
  SRCS
    hmac_boringssl.cc
    hmac_boringssl.h
  DEPS
    tink::subtle::common_enums
    tink::subtle::subtle_util_boringssl
    tink::core::mac
    tink::util::errors
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    crypto
    absl::memory
    absl::strings
)

tink_cc_library(
  NAME ecdsa_sign_boringssl
  SRCS
    ecdsa_sign_boringssl.cc
    ecdsa_sign_boringssl.h
  DEPS
    tink::subtle::common_enums
    tink::subtle::subtle_util_boringssl
    tink::core::public_key_sign
    tink::util::errors
    tink::util::status
    tink::util::statusor
    crypto
    absl::strings
)

tink_cc_library(
  NAME ecdsa_verify_boringssl
  SRCS
    ecdsa_verify_boringssl.cc
    ecdsa_verify_boringssl.h
  DEPS
    tink::subtle::common_enums
    tink::subtle::subtle_util_boringssl
    tink::core::public_key_verify
    tink::util::errors
    tink::util::status
    tink::util::statusor
    crypto
    absl::strings
)

tink_cc_library(
  NAME rsa_ssa_pss_verify_boringssl
  SRCS
    rsa_ssa_pss_verify_boringssl.cc
    rsa_ssa_pss_verify_boringssl.h
  DEPS
    tink::subtle::common_enums
    tink::subtle::subtle_util_boringssl
    tink::core::public_key_verify
    tink::util::errors
    tink::util::status
    tink::util::statusor
    crypto
    absl::strings
)

tink_cc_library(
  NAME rsa_ssa_pss_sign_boringssl
  SRCS
    rsa_ssa_pss_sign_boringssl.cc
    rsa_ssa_pss_sign_boringssl.h
  DEPS
    tink::subtle::common_enums
    tink::subtle::subtle_util_boringssl
    tink::core::public_key_sign
    tink::util::errors
    tink::util::status
    tink::util::statusor
    crypto
    absl::memory
    absl::strings
)

tink_cc_library(
  NAME rsa_ssa_pkcs1_verify_boringssl
  SRCS
    rsa_ssa_pkcs1_verify_boringssl.cc
    rsa_ssa_pkcs1_verify_boringssl.h
  DEPS
    tink::subtle::common_enums
    tink::subtle::subtle_util_boringssl
    tink::core::public_key_verify
    tink::util::errors
    tink::util::status
    tink::util::statusor
    crypto
    absl::strings
)

tink_cc_library(
  NAME rsa_ssa_pkcs1_sign_boringssl
  SRCS
    rsa_ssa_pkcs1_sign_boringssl.cc
    rsa_ssa_pkcs1_sign_boringssl.h
  DEPS
    tink::subtle::common_enums
    tink::subtle::subtle_util_boringssl
    tink::core::public_key_sign
    tink::util::errors
    tink::util::status
    tink::util::statusor
    crypto
    absl::memory
    absl::strings
)

tink_cc_library(
  NAME aes_gcm_boringssl
  SRCS
    aes_gcm_boringssl.cc
    aes_gcm_boringssl.h
  DEPS
    tink::config::tink_fips
    tink::subtle::random
    tink::subtle::subtle_util
    tink::subtle::subtle_util_boringssl
    tink::core::aead
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    crypto
    absl::core_headers
    absl::memory
)

tink_cc_library(
  NAME aes_gcm_hkdf_stream_segment_decrypter
  SRCS
    aes_gcm_hkdf_stream_segment_decrypter.cc
    aes_gcm_hkdf_stream_segment_decrypter.h
  DEPS
    tink::subtle::aes_gcm_hkdf_stream_segment_encrypter
    tink::subtle::common_enums
    tink::subtle::hkdf
    tink::subtle::random
    tink::subtle::stream_segment_decrypter
    tink::subtle::subtle_util_boringssl
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    crypto
    absl::algorithm_container
    absl::config
    absl::memory
    absl::span
    absl::strings
)

tink_cc_library(
  NAME aes_gcm_hkdf_stream_segment_encrypter
  SRCS
    aes_gcm_hkdf_stream_segment_encrypter.cc
    aes_gcm_hkdf_stream_segment_encrypter.h
  DEPS
    tink::subtle::random
    tink::subtle::stream_segment_encrypter
    tink::subtle::subtle_util_boringssl
    tink::util::errors
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    crypto
    absl::algorithm_container
    absl::config
    absl::memory
    absl::strings
)

tink_cc_library(
  NAME aes_gcm_hkdf_streaming
  SRCS
    aes_gcm_hkdf_streaming.cc
    aes_gcm_hkdf_streaming.h
  DEPS
    tink::subtle::aes_gcm_hkdf_stream_segment_decrypter
    tink::subtle::aes_gcm_hkdf_stream_segment_encrypter
    tink::subtle::common_enums
    tink::subtle::hkdf
    tink::subtle::nonce_based_streaming_aead
    tink::subtle::random
    tink::subtle::stream_segment_decrypter
    tink::subtle::stream_segment_encrypter
    tink::subtle::subtle_util_boringssl
    tink::core::input_stream
    tink::core::output_stream
    tink::util::errors
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    crypto
    absl::memory
    absl::strings
)

tink_cc_library(
  NAME aes_ctr_hmac_streaming
  SRCS
    aes_ctr_hmac_streaming.cc
    aes_ctr_hmac_streaming.h
  DEPS
    tink::subtle::common_enums
    tink::subtle::hkdf
    tink::subtle::hmac_boringssl
    tink::subtle::nonce_based_streaming_aead
    tink::subtle::random
    tink::subtle::stream_segment_decrypter
    tink::subtle::stream_segment_encrypter
    tink::subtle::subtle_util
    tink::subtle::subtle_util_boringssl
    tink::core::mac
    tink::util::errors
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    crypto
    absl::memory
    absl::strings
)

tink_cc_library(
  NAME aes_eax_boringssl
  SRCS
    aes_eax_boringssl.cc
    aes_eax_boringssl.h
  DEPS
    tink::config::tink_fips
    tink::subtle::random
    tink::subtle::subtle_util
    tink::subtle::subtle_util_boringssl
    tink::core::aead
    tink::util::errors
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    crypto
    absl::algorithm_container
    absl::base
    absl::config
    absl::memory
    absl::span
    absl::strings
)

tink_cc_library(
  NAME encrypt_then_authenticate
  SRCS
    encrypt_then_authenticate.cc
    encrypt_then_authenticate.h
  DEPS
    tink::subtle::aes_ctr_boringssl
    tink::subtle::ind_cpa_cipher
    tink::subtle::subtle_util_boringssl
    tink::core::aead
    tink::core::mac
    tink::util::errors
    tink::util::status
    tink::util::statusor
    absl::strings
)

tink_cc_library(
  NAME aes_ctr_boringssl
  SRCS
    aes_ctr_boringssl.cc
    aes_ctr_boringssl.h
  DEPS
    tink::config::tink_fips
    tink::subtle::ind_cpa_cipher
    tink::subtle::random
    tink::subtle::subtle_util
    tink::subtle::subtle_util_boringssl
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    crypto
    absl::memory
)

tink_cc_library(
  NAME random
  SRCS
    random.cc
    random.h
  DEPS
    tink::util::secret_data
    crypto
)

tink_cc_library(
  NAME xchacha20_poly1305_boringssl
  SRCS
    xchacha20_poly1305_boringssl.cc
    xchacha20_poly1305_boringssl.h
  DEPS
    tink::config::tink_fips
    tink::subtle::common_enums
    tink::subtle::random
    tink::subtle::subtle_util
    tink::subtle::subtle_util_boringssl
    tink::core::aead
    tink::util::errors
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    crypto
    absl::strings
)

tink_cc_library(
  NAME aes_siv_boringssl
  SRCS
    aes_siv_boringssl.cc
    aes_siv_boringssl.h
  DEPS
    tink::subtle::random
    tink::subtle::subtle_util_boringssl
    tink::core::deterministic_aead
    tink::util::errors
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    crypto
    absl::memory
    absl::span
    absl::strings
)

tink_cc_library(
  NAME aes_gcm_siv_boringssl
  SRCS
    aes_gcm_siv_boringssl.cc
    aes_gcm_siv_boringssl.h
  DEPS
    tink::config::tink_fips
    tink::subtle::random
    tink::subtle::subtle_util
    tink::core::aead
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    crypto
    absl::memory
    absl::strings
)

tink_cc_library(
  NAME common_enums
  SRCS
    common_enums.cc
    common_enums.h
  DEPS
    absl::strings
)

tink_cc_library(
  NAME subtle_util
  SRCS
    subtle_util.cc
    subtle_util.h
)

tink_cc_library(
  NAME subtle_util_boringssl
  SRCS
    subtle_util_boringssl.cc
    subtle_util_boringssl.h
  DEPS
    tink::config::tink_fips
    tink::subtle::common_enums
    tink::util::errors
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    crypto
    absl::strings
    absl::memory
)

tink_cc_library(
  NAME wycheproof_util
  SRCS
    wycheproof_util.cc
    wycheproof_util.h
  DEPS
    tink::subtle::common_enums
    tink::util::status
    tink::util::statusor
    absl::strings
    rapidjson
)

tink_cc_library(
  NAME stream_segment_decrypter
  SRCS stream_segment_decrypter.h
  DEPS tink::util::status
)

tink_cc_library(
  NAME stream_segment_encrypter
  SRCS stream_segment_encrypter.h
  DEPS tink::util::status
)

tink_cc_library(
  NAME streaming_aead_decrypting_stream
  SRCS
    streaming_aead_decrypting_stream.cc
    streaming_aead_decrypting_stream.h
  DEPS
    tink::subtle::stream_segment_decrypter
    tink::core::input_stream
    tink::util::status
    tink::util::statusor
    absl::memory
)

tink_cc_library(
  NAME streaming_aead_encrypting_stream
  SRCS
    streaming_aead_encrypting_stream.cc
    streaming_aead_encrypting_stream.h
  DEPS
    tink::subtle::stream_segment_encrypter
    tink::core::output_stream
    tink::util::statusor
    absl::memory
)

tink_cc_library(
  NAME nonce_based_streaming_aead
  SRCS
    nonce_based_streaming_aead.cc
    nonce_based_streaming_aead.h
  DEPS
    tink::subtle::decrypting_random_access_stream
    tink::subtle::stream_segment_decrypter
    tink::subtle::stream_segment_encrypter
    tink::subtle::streaming_aead_decrypting_stream
    tink::subtle::streaming_aead_encrypting_stream
    tink::core::input_stream
    tink::core::output_stream
    tink::core::random_access_stream
    tink::core::streaming_aead
    tink::util::statusor
    absl::strings
)

tink_cc_library(
  NAME test_util
  SRCS
    test_util.cc
    test_util.h
  DEPS
    tink::subtle::nonce_based_streaming_aead
    tink::subtle::stream_segment_decrypter
    tink::subtle::stream_segment_encrypter
    tink::core::input_stream
    tink::core::output_stream
    tink::util::status
    tink::util::statusor
    absl::memory
    absl::strings
)

tink_cc_library(
  NAME aead_test_util
  SRCS
    aead_test_util.cc
    aead_test_util.h
  DEPS
    absl::strings
    tink::core::aead
    tink::aead::cord_aead
    tink::util::status
)

tink_cc_library(
  NAME streaming_aead_test_util
  SRCS
    streaming_aead_test_util.cc
    streaming_aead_test_util.h
  DEPS
    absl::strings
    tink::core::random_access_stream
    tink::core::streaming_aead
    tink::util::ostream_output_stream
    tink::util::istream_input_stream
    tink::util::buffer
    tink::util::file_random_access_stream
    tink::util::status
    tink::util::test_util
    tink::subtle::test_util
)

tink_cc_library(
  NAME hybrid_test_util
  SRCS
    hybrid_test_util.cc
    hybrid_test_util.h
  DEPS
    absl::strings
    tink::core::hybrid_decrypt
    tink::core::hybrid_encrypt
    tink::util::status
)

tink_cc_library(
  NAME decrypting_random_access_stream
  SRCS
    decrypting_random_access_stream.cc
    decrypting_random_access_stream.h
  DEPS
    absl::core_headers
    absl::memory
    absl::synchronization
    tink::subtle::stream_segment_decrypter
    tink::core::random_access_stream
    tink::util::buffer
    tink::util::errors
    tink::util::status
    tink::util::statusor
)

tink_cc_library(
  NAME streaming_mac_impl
  SRCS
    streaming_mac_impl.cc
    streaming_mac_impl.h
  DEPS
    absl::memory
    tink::core::mac
    tink::core::streaming_mac
    tink::subtle::mac::stateful_mac
    tink::util::status
    tink::util::statusor
)

tink_cc_library(
    NAME stateful_hmac_boringssl
    SRCS
      stateful_hmac_boringssl.cc
      stateful_hmac_boringssl.h
    DEPS
      absl::memory
      crypto
      tink::subtle::common_enums
      tink::subtle::mac::stateful_mac
      tink::subtle::subtle_util_boringssl
      tink::util::secret_data
      tink::util::status
      tink::util::statusor
)

tink_cc_library(
    NAME stateful_cmac_boringssl
    SRCS
      stateful_cmac_boringssl.cc
      stateful_cmac_boringssl.h
    DEPS
      absl::memory
      crypto
      tink::subtle::common_enums
      tink::subtle::mac::stateful_mac
      tink::subtle::subtle_util_boringssl
      tink::util::secret_data
      tink::util::status
      tink::util::statusor
)

tink_cc_library(
  NAME pem_parser_boringssl
  SRCS
    pem_parser_boringssl.cc
    pem_parser_boringssl.h
  DEPS
    absl::memory
    absl::strings
    crypto
    tink::subtle::subtle_util_boringssl
    tink::util::status
    tink::util::statusor
)

# tests

tink_cc_test(
  NAME ecies_hkdf_recipient_kem_boringssl_test
  SRCS ecies_hkdf_recipient_kem_boringssl_test.cc
  DEPS
    tink::subtle::common_enums
    tink::subtle::ecies_hkdf_recipient_kem_boringssl
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::test_util
)

tink_cc_test(
  NAME ecies_hkdf_sender_kem_boringssl_test
  SRCS ecies_hkdf_sender_kem_boringssl_test.cc
  DEPS
    tink::subtle::common_enums
    tink::subtle::ecies_hkdf_recipient_kem_boringssl
    tink::subtle::ecies_hkdf_sender_kem_boringssl
    tink::subtle::subtle_util_boringssl
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::test_util
)

tink_cc_test(
  NAME ec_util_test
  SRCS ec_util_test.cc
  DEPS
    tink::subtle::ec_util
    tink::util::status
    tink::util::statusor
    tink::util::test_util
)

tink_cc_test(
  NAME hkdf_test
  SRCS hkdf_test.cc
  DEPS
    tink::subtle::common_enums
    tink::subtle::hkdf
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::test_util
)

tink_cc_test(
  NAME aes_cmac_boringssl_test
  SRCS aes_cmac_boringssl_test.cc
  DEPS
    tink::subtle::common_enums
    tink::subtle::aes_cmac_boringssl
    tink::core::mac
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::test_util
)

tink_cc_test(
  NAME hmac_boringssl_test
  SRCS hmac_boringssl_test.cc
  DEPS
    tink::subtle::common_enums
    tink::subtle::hmac_boringssl
    tink::core::mac
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::test_util
)

tink_cc_test(
  NAME aes_gcm_boringssl_test
  SRCS aes_gcm_boringssl_test.cc
  DATA wycheproof::testvectors
  DEPS
    tink::subtle::aes_gcm_boringssl
    tink::subtle::wycheproof_util
    tink::config::tink_fips
    tink::core::aead
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::test_matchers
    tink::util::test_util
    absl::strings
    gmock
    rapidjson
)

tink_cc_test(
  NAME aes_gcm_hkdf_stream_segment_decrypter_test
  SRCS aes_gcm_hkdf_stream_segment_decrypter_test.cc
  DEPS
    tink::subtle::aes_gcm_hkdf_stream_segment_decrypter
    tink::subtle::aes_gcm_hkdf_stream_segment_encrypter
    tink::subtle::common_enums
    tink::subtle::hkdf
    tink::subtle::random
    tink::subtle::stream_segment_decrypter
    tink::subtle::stream_segment_encrypter
    tink::util::status
    tink::util::statusor
    tink::util::test_util
    absl::memory
    absl::strings
)

tink_cc_test(
  NAME aes_gcm_hkdf_stream_segment_encrypter_test
  SRCS aes_gcm_hkdf_stream_segment_encrypter_test.cc
  DEPS
    gmock
    tink::subtle::aes_gcm_hkdf_stream_segment_encrypter
    tink::subtle::random
    tink::subtle::stream_segment_encrypter
    tink::util::status
    tink::util::statusor
    tink::util::test_util
    absl::memory
    absl::strings
)

tink_cc_test(
  NAME aes_gcm_hkdf_streaming_test
  SRCS aes_gcm_hkdf_streaming_test.cc
  DEPS
    tink::subtle::aes_gcm_hkdf_streaming
    tink::subtle::common_enums
    tink::subtle::random
    tink::subtle::streaming_aead_test_util
    tink::subtle::test_util
    tink::core::output_stream
    tink::util::ostream_output_stream
    tink::util::istream_input_stream
    tink::util::status
    tink::util::statusor
    tink::util::test_matchers
    tink::util::test_util
    absl::strings
)

tink_cc_test(
  NAME aes_ctr_hmac_streaming_test
  SRCS aes_ctr_hmac_streaming_test.cc
  DEPS
    tink::subtle::aes_ctr_hmac_streaming
    tink::subtle::common_enums
    tink::subtle::random
    tink::subtle::stream_segment_decrypter
    tink::subtle::stream_segment_encrypter
    tink::subtle::streaming_aead_test_util
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::test_util
    tink::util::test_matchers
    absl::memory
    absl::strings
)

tink_cc_test(
  NAME aes_eax_boringssl_test
  SRCS aes_eax_boringssl_test.cc
  DATA wycheproof::testvectors
  DEPS
    tink::subtle::aes_eax_boringssl
    tink::subtle::common_enums
    tink::subtle::wycheproof_util
    tink::core::aead
    tink::util::secret_data
    tink::util::status
    tink::util::test_matchers
    tink::util::statusor
    tink::util::test_util
    absl::strings
    rapidjson
)

tink_cc_test(
  NAME encrypt_then_authenticate_test
  SRCS encrypt_then_authenticate_test.cc
  DEPS
    tink::subtle::aes_ctr_boringssl
    tink::subtle::common_enums
    tink::subtle::encrypt_then_authenticate
    tink::subtle::hmac_boringssl
    tink::subtle::random
    tink::core::aead
    tink::core::mac
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::test_util
    absl::strings
)

tink_cc_test(
  NAME aes_ctr_boringssl_test
  SRCS aes_ctr_boringssl_test.cc
  DEPS
    tink::subtle::aes_ctr_boringssl
    tink::subtle::random
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::test_matchers
    tink::util::test_util
)

tink_cc_test(
  NAME aes_siv_boringssl_test
  SRCS aes_siv_boringssl_test.cc
  DATA wycheproof::testvectors
  DEPS
    tink::subtle::aes_siv_boringssl
    tink::subtle::common_enums
    tink::subtle::wycheproof_util
    tink::core::deterministic_aead
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::test_matchers
    tink::util::test_util
    absl::strings
    rapidjson
)

tink_cc_test(
  NAME ecdsa_sign_boringssl_test
  SRCS ecdsa_sign_boringssl_test.cc
  DEPS
    tink::subtle::common_enums
    tink::subtle::ec_util
    tink::subtle::ecdsa_sign_boringssl
    tink::subtle::ecdsa_verify_boringssl
    tink::core::public_key_sign
    tink::core::public_key_verify
    tink::util::status
    tink::util::statusor
    tink::util::test_util
)

tink_cc_test(
  NAME ecdsa_verify_boringssl_test
  SRCS ecdsa_verify_boringssl_test.cc
  DATA wycheproof::testvectors
  DEPS
    tink::subtle::common_enums
    tink::subtle::ecdsa_sign_boringssl
    tink::subtle::ecdsa_verify_boringssl
    tink::subtle::wycheproof_util
    tink::core::public_key_sign
    tink::core::public_key_verify
    tink::util::status
    tink::util::statusor
    tink::util::test_util
    absl::strings
    rapidjson
)

tink_cc_test(
  NAME ed25519_sign_boringssl_test
  SRCS ed25519_sign_boringssl_test.cc
  DEPS
    tink::subtle::ed25519_sign_boringssl
    tink::subtle::ed25519_verify_boringssl
    tink::subtle::random
    tink::subtle::subtle_util_boringssl
    tink::core::public_key_sign
    tink::core::public_key_verify
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::test_util
    crypto
    absl::strings
)

tink_cc_test(
  NAME ed25519_verify_boringssl_test
  SRCS ed25519_verify_boringssl_test.cc
  DATA wycheproof::testvectors
  DEPS
    tink::subtle::ed25519_sign_boringssl
    tink::subtle::ed25519_verify_boringssl
    tink::subtle::subtle_util_boringssl
    tink::subtle::wycheproof_util
    tink::core::public_key_sign
    tink::core::public_key_verify
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::test_util
    crypto
    absl::strings
)

tink_cc_test(
  NAME rsa_ssa_pss_verify_boringssl_test
  SRCS rsa_ssa_pss_verify_boringssl_test.cc
  DATA wycheproof::testvectors
  DEPS
    tink::subtle::common_enums
    tink::subtle::rsa_ssa_pss_verify_boringssl
    tink::subtle::wycheproof_util
    tink::core::public_key_sign
    tink::core::public_key_verify
    tink::util::status
    tink::util::statusor
    tink::util::test_util
    absl::strings
    rapidjson
)

tink_cc_test(
  NAME rsa_ssa_pss_sign_boringssl_test
  SRCS rsa_ssa_pss_sign_boringssl_test.cc
  DEPS
    tink::subtle::rsa_ssa_pss_sign_boringssl
    tink::subtle::rsa_ssa_pss_verify_boringssl
    tink::subtle::subtle_util_boringssl
    tink::util::test_matchers
    absl::strings
)

tink_cc_test(
  NAME rsa_ssa_pkcs1_verify_boringssl_test
  SRCS rsa_ssa_pkcs1_verify_boringssl_test.cc
  DATA wycheproof::testvectors
  DEPS
    tink::subtle::common_enums
    tink::subtle::rsa_ssa_pkcs1_verify_boringssl
    tink::subtle::wycheproof_util
    tink::core::public_key_sign
    tink::core::public_key_verify
    tink::util::status
    tink::util::statusor
    tink::util::test_util
    absl::strings
    rapidjson
)

tink_cc_test(
  NAME rsa_ssa_pkcs1_sign_boringssl_test
  SRCS rsa_ssa_pkcs1_sign_boringssl_test.cc
  DEPS
    tink::subtle::rsa_ssa_pkcs1_sign_boringssl
    tink::subtle::rsa_ssa_pkcs1_verify_boringssl
    tink::subtle::subtle_util_boringssl
    tink::util::test_matchers
    absl::strings
)

tink_cc_test(
  NAME aes_gcm_siv_boringssl_test
  SRCS aes_gcm_siv_boringssl_test.cc
  DATA wycheproof::testvectors
  DEPS
    tink::subtle::aes_gcm_siv_boringssl
    tink::subtle::common_enums
    tink::subtle::wycheproof_util
    tink::core::aead
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::test_util
    crypto
    absl::strings
    rapidjson
    gmock
)

tink_cc_test(
  NAME random_test
  SRCS random_test.cc
  DEPS
    tink::subtle::random
    tink::util::secret_data
    absl::flat_hash_set
    gmock
)

tink_cc_test(
  NAME common_enums_test
  SRCS common_enums_test.cc
  DEPS tink::subtle::common_enums
)

tink_cc_test(
  NAME subtle_util_test
  SRCS subtle_util_test
  DEPS
    tink::subtle::subtle_util
    gmock
)

tink_cc_test(
  NAME subtle_util_boringssl_test
  SRCS subtle_util_boringssl_test.cc
  DATA wycheproof::testvectors
  DEPS
    tink::subtle::ec_util
    tink::subtle::subtle_util_boringssl
    tink::subtle::wycheproof_util
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::test_matchers
    tink::util::test_util
    crypto
    absl::strings
    rapidjson
)

tink_cc_test(
  NAME xchacha20_poly1305_boringssl_test
  SRCS xchacha20_poly1305_boringssl_test.cc
  DEPS
    tink::subtle::xchacha20_poly1305_boringssl
    tink::core::aead
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::test_matchers
    tink::util::test_util
    crypto
    absl::strings
)

tink_cc_test(
  NAME streaming_aead_decrypting_stream_test
  SRCS streaming_aead_decrypting_stream_test.cc
  DEPS
    tink::subtle::random
    tink::subtle::stream_segment_decrypter
    tink::subtle::streaming_aead_decrypting_stream
    tink::subtle::test_util
    tink::core::input_stream
    tink::util::istream_input_stream
    tink::util::status
    tink::util::statusor
    absl::memory
    absl::strings
)

tink_cc_test(
  NAME streaming_aead_encrypting_stream_test
  SRCS streaming_aead_encrypting_stream_test.cc
  DEPS
    tink::subtle::random
    tink::subtle::stream_segment_encrypter
    tink::subtle::streaming_aead_encrypting_stream
    tink::subtle::test_util
    tink::core::output_stream
    tink::util::ostream_output_stream
    tink::util::status
    tink::util::statusor
    absl::memory
    absl::strings
)

tink_cc_test(
  NAME aead_test_util_test
  SRCS aead_test_util_test.cc
  DEPS
    tink::subtle::aead_test_util
    tink::util::test_matchers
    tink::util::test_util
    absl::strings
    gmock
)


tink_cc_test(
  NAME streaming_aead_test_util_test
  SRCS streaming_aead_test_util_test.cc
  DEPS
    tink::subtle::streaming_aead_test_util
    tink::subtle::test_util
    tink::core::output_stream
    tink::util::ostream_output_stream
    tink::util::status
    tink::util::statusor
    tink::util::test_util
    absl::memory
    absl::strings
    gmock
)

tink_cc_test(
  NAME hybrid_test_util_test
  SRCS hybrid_test_util_test.cc
  DEPS
    tink::subtle::hybrid_test_util
    tink::util::test_matchers
    tink::util::test_util
    absl::strings
    gmock
)

tink_cc_test(
  NAME decrypting_random_access_stream_test
  SRCS decrypting_random_access_stream_test.cc
  DEPS
    absl::memory
    absl::strings
    tink::core::output_stream
    tink::core::random_access_stream
    tink::core::streaming_aead
    tink::subtle::decrypting_random_access_stream
    tink::subtle::random
    tink::subtle::test_util
    tink::util::file_random_access_stream
    tink::util::ostream_output_stream
    tink::util::status
    tink::util::test_matchers
    tink::util::test_util
)

tink_cc_test(
  NAME streaming_mac_impl_test
  SRCS streaming_mac_impl_test.cc
  DEPS
    tink::subtle::streaming_mac_impl
    tink::subtle::random
    tink::subtle::test_util
    tink::util::status
    tink::util::statusor
    tink::util::test_util
    tink::util::test_matchers
)

tink_cc_test(
  NAME stateful_hmac_boringssl_test
  SRCS stateful_hmac_boringssl_test.cc
  DEPS
    absl::memory
    tink::subtle::common_enums
    tink::subtle::stateful_hmac_boringssl
    tink::subtle::wycheproof_util
    tink::subtle::test_util
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::test_util
    tink::util::test_matchers
)

tink_cc_test(
  NAME stateful_cmac_boringssl_test
  SRCS stateful_cmac_boringssl_test.cc
  DEPS
    absl::memory
    tink::subtle::common_enums
    tink::subtle::stateful_cmac_boringssl
    tink::subtle::wycheproof_util
    tink::subtle::test_util
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::test_util
    tink::util::test_matchers
)

tink_cc_test(
  NAME pem_parser_boringssl_test
  SRCS pem_parser_boringssl_test.cc
  DEPS
    tink::subtle::pem_parser_boringssl
    tink::subtle::subtle_util_boringssl
    tink::util::secret_data
    tink::util::status
    tink::util::statusor
    tink::util::test_util
    tink::util::test_matchers
    absl::strings
    crypto
)
