load("@pip_deps//:requirements.bzl", "requirement")

package(
    default_testonly = 1,
    default_visibility = ["//:__subpackages__"],
)

licenses(["notice"])

py_test(
    name = "key_generation_consistency_test",
    srcs = ["key_generation_consistency_test.py"],
    deps = [
        "//util:supported_key_types",
        "//util:testing_servers",
        requirement("absl-py"),
        "@tink_py//tink:tink_python",
        "@tink_py//tink/aead",
        "@tink_py//tink/daead",
        "@tink_py//tink/hybrid",
        "@tink_py//tink/mac",
        "@tink_py//tink/proto:common_py_pb2",
        "@tink_py//tink/proto:ecdsa_py_pb2",
        "@tink_py//tink/signature",
    ],
)

py_test(
    name = "json_test",
    srcs = ["json_test.py"],
    deps = [
        "//util:supported_key_types",
        "//util:testing_servers",
        requirement("absl-py"),
        "@tink_py//tink:tink_python",
    ],
)

py_test(
    name = "aead_test",
    srcs = ["aead_test.py"],
    deps = [
        "//util:keyset_builder",
        "//util:supported_key_types",
        "//util:testing_servers",
        requirement("absl-py"),
        "@tink_py//tink:tink_python",
        "@tink_py//tink/aead",
        "@tink_py//tink/proto:tink_py_pb2",
    ],
)

py_test(
    name = "aead_consistency_test",
    srcs = ["aead_consistency_test.py"],
    deps = [
        "//util:supported_key_types",
        "//util:testing_servers",
        requirement("absl-py"),
        "@tink_py//tink:tink_python",
        "@tink_py//tink/aead",
        "@tink_py//tink/proto:aes_ctr_hmac_aead_py_pb2",
        "@tink_py//tink/proto:aes_eax_py_pb2",
        "@tink_py//tink/proto:aes_gcm_py_pb2",
        "@tink_py//tink/proto:common_py_pb2",
        "@tink_py//tink/proto:tink_py_pb2",
    ],
)

py_test(
    name = "deterministic_aead_test",
    srcs = ["deterministic_aead_test.py"],
    deps = [
        "//util:supported_key_types",
        "//util:testing_servers",
        requirement("absl-py"),
        "@tink_py//tink:tink_python",
        "@tink_py//tink/daead",
    ],
)

py_test(
    name = "streaming_aead_test",
    srcs = ["streaming_aead_test.py"],
    deps = [
        "//util:supported_key_types",
        "//util:testing_servers",
        requirement("absl-py"),
        "@tink_py//tink:tink_python",
        "@tink_py//tink/streaming_aead",
    ],
)

py_test(
    name = "mac_test",
    srcs = ["mac_test.py"],
    deps = [
        "//util:supported_key_types",
        "//util:testing_servers",
        requirement("absl-py"),
        "@tink_py//tink:tink_python",
        "@tink_py//tink/mac",
    ],
)

py_test(
    name = "signature_test",
    srcs = ["signature_test.py"],
    deps = [
        "//util:supported_key_types",
        "//util:testing_servers",
        requirement("absl-py"),
        "@tink_py//tink:tink_python",
        "@tink_py//tink/signature",
    ],
)

py_test(
    name = "hybrid_encryption_test",
    srcs = ["hybrid_encryption_test.py"],
    deps = [
        "//util:supported_key_types",
        "//util:testing_servers",
        requirement("absl-py"),
        "@tink_py//tink:tink_python",
        "@tink_py//tink/hybrid",
    ],
)
