| package(default_visibility = ["//tools/build_defs:internal_pkg"]) |
| |
| licenses(["notice"]) |
| |
| full_proto_deps = [ |
| "//proto:aes_cmac_java_proto", |
| "//proto:aes_ctr_hmac_aead_java_proto", |
| "//proto:aes_ctr_hmac_streaming_java_proto", |
| "//proto:aes_ctr_java_proto", |
| "//proto:aes_eax_java_proto", |
| "//proto:aes_gcm_hkdf_streaming_java_proto", |
| "//proto:aes_gcm_java_proto", |
| "//proto:aes_siv_java_proto", |
| "//proto:chacha20_poly1305_java_proto", |
| "//proto:common_java_proto", |
| "//proto:config_java_proto", |
| "//proto:empty_java_proto", |
| "//proto:ecdsa_java_proto", |
| "//proto:rsa_ssa_pkcs1_java_proto", |
| "//proto:rsa_ssa_pss_java_proto", |
| "//proto:ecies_aead_hkdf_java_proto", |
| "//proto:ed25519_java_proto", |
| "//proto:hmac_java_proto", |
| "//proto:kms_aead_java_proto", |
| "//proto:kms_envelope_java_proto", |
| "//proto:tink_java_proto", |
| "//proto:xchacha20_poly1305_java_proto", |
| ] |
| |
| lite_proto_deps = [ |
| "//proto:aes_cmac_java_proto_lite", |
| "//proto:aes_ctr_hmac_aead_java_proto_lite", |
| "//proto:aes_ctr_hmac_streaming_java_proto_lite", |
| "//proto:aes_ctr_java_proto_lite", |
| "//proto:aes_eax_java_proto_lite", |
| "//proto:aes_gcm_hkdf_streaming_java_proto_lite", |
| "//proto:aes_gcm_java_proto_lite", |
| "//proto:aes_siv_java_proto_lite", |
| "//proto:chacha20_poly1305_java_proto_lite", |
| "//proto:common_java_proto_lite", |
| "//proto:config_java_proto_lite", |
| "//proto:empty_java_proto_lite", |
| "//proto:ecdsa_java_proto_lite", |
| "//proto:rsa_ssa_pkcs1_java_proto_lite", |
| "//proto:rsa_ssa_pss_java_proto_lite", |
| "//proto:ecies_aead_hkdf_java_proto_lite", |
| "//proto:ed25519_java_proto_lite", |
| "//proto:hmac_java_proto_lite", |
| "//proto:kms_aead_java_proto_lite", |
| "//proto:kms_envelope_java_proto_lite", |
| "//proto:tink_java_proto_lite", |
| "//proto:xchacha20_poly1305_java_proto_lite", |
| ] |
| |
| subtle_deps = [ |
| "//java/src/main/java/com/google/crypto/tink:primitives", |
| "//java/src/main/java/com/google/crypto/tink/subtle", |
| "//java/src/main/java/com/google/crypto/tink/subtle:aead", |
| "//java/src/main/java/com/google/crypto/tink/subtle:daead", |
| "//java/src/main/java/com/google/crypto/tink/subtle:hybrid", |
| "//java/src/main/java/com/google/crypto/tink/subtle:keywrap", |
| "//java/src/main/java/com/google/crypto/tink/subtle:mac", |
| "//java/src/main/java/com/google/crypto/tink/subtle:signature", |
| "//java/src/main/java/com/google/crypto/tink/subtle:streaming", |
| "//java/src/main/java/com/google/crypto/tink/subtle:x25519", |
| ] |
| |
| java_deps = [ |
| "//java/src/main/java/com/google/crypto/tink", |
| "//java/src/main/java/com/google/crypto/tink/aead", |
| "//java/src/main/java/com/google/crypto/tink/config", |
| "//java/src/main/java/com/google/crypto/tink/daead", |
| "//java/src/main/java/com/google/crypto/tink/hybrid", |
| "//java/src/main/java/com/google/crypto/tink/mac", |
| "//java/src/main/java/com/google/crypto/tink/signature", |
| "//java/src/main/java/com/google/crypto/tink/streamingaead", |
| "//java/src/main/java/com/google/crypto/tink/util", |
| ] |
| |
| android_deps = [ |
| "//java/src/main/java/com/google/crypto/tink:android", |
| "//java/src/main/java/com/google/crypto/tink/aead:android", |
| "//java/src/main/java/com/google/crypto/tink/config:android", |
| "//java/src/main/java/com/google/crypto/tink/daead:android", |
| "//java/src/main/java/com/google/crypto/tink/hybrid:android", |
| "//java/src/main/java/com/google/crypto/tink/integration/android", |
| "//java/src/main/java/com/google/crypto/tink/mac:android", |
| "//java/src/main/java/com/google/crypto/tink/signature:android", |
| "//java/src/main/java/com/google/crypto/tink/streamingaead:android", |
| ] |
| |
| cleartext_deps = [ |
| "//java/src/main/java/com/google/crypto/tink:cleartext_keyset_handle", |
| ] |
| |
| cleartext_android_deps = [ |
| "//java/src/main/java/com/google/crypto/tink:cleartext_keyset_handle_android", |
| ] |
| |
| # PUBLIC |
| |
| java_library( |
| name = "java", |
| visibility = ["//visibility:public"], |
| exports = java_deps, |
| ) |
| |
| java_library( |
| name = "awskms", |
| visibility = ["//visibility:public"], |
| exports = [ |
| "//java/src/main/java/com/google/crypto/tink/integration/awskms", |
| ], |
| ) |
| |
| java_library( |
| name = "gcpkms", |
| visibility = ["//visibility:public"], |
| exports = [ |
| "//java/src/main/java/com/google/crypto/tink/integration/gcpkms", |
| ], |
| ) |
| |
| # like :java, but for Android |
| android_library( |
| name = "android", |
| visibility = ["//visibility:public"], |
| exports = android_deps, |
| ) |
| |
| # RESTRICTED |
| |
| java_library( |
| name = "protos", |
| exports = full_proto_deps, |
| ) |
| |
| java_library( |
| name = "protos_android", |
| exports = lite_proto_deps, |
| ) |
| |
| java_library( |
| name = "cleartext_keyset_handle", |
| exports = cleartext_deps, |
| ) |
| |
| java_library( |
| name = "cleartext_keyset_handle_android", |
| exports = cleartext_android_deps, |
| ) |
| |
| java_library( |
| name = "subtle", |
| exports = subtle_deps, |
| ) |
| |
| # Maven jars |
| |
| load("//tools:gen_maven_jar_rules.bzl", "gen_maven_jar_rules") |
| |
| gen_maven_jar_rules( |
| name = "tink", |
| doctitle = "Tink Cryptography API", |
| deps = full_proto_deps + java_deps + cleartext_deps + subtle_deps, |
| ) |
| |
| gen_maven_jar_rules( |
| name = "tink-awskms", |
| doctitle = "Tink Cryptography API with AWS KMS", |
| deps = [ |
| "//java/src/main/java/com/google/crypto/tink/integration/awskms", |
| ], |
| ) |
| |
| gen_maven_jar_rules( |
| name = "tink-gcpkms", |
| doctitle = "Tink Cryptography API with Google Cloud KMS", |
| deps = [ |
| "//java/src/main/java/com/google/crypto/tink/integration/gcpkms", |
| ], |
| ) |
| |
| gen_maven_jar_rules( |
| name = "tink-android", |
| doctitle = "Tink Cryptography API for Android", |
| deps = lite_proto_deps + android_deps + cleartext_android_deps + subtle_deps, |
| ) |
| |
| # TEST |
| |
| java_library( |
| name = "testonly", |
| testonly = 1, |
| visibility = [ |
| "//visibility:public", |
| ], |
| exports = [ |
| ":cleartext_keyset_handle", |
| ":java", |
| ":protos", |
| ":subtle", |
| ], |
| ) |
| |
| android_library( |
| name = "testonly_android", |
| testonly = 1, |
| visibility = ["//visibility:public"], |
| exports = [ |
| ":android", |
| ":cleartext_keyset_handle_android", |
| ":protos_android", |
| ":subtle", |
| ], |
| ) |
| |
| java_library( |
| name = "testutil", |
| testonly = 1, |
| srcs = glob([ |
| "src/test/**/TestUtil.java", |
| ]), |
| visibility = [ |
| "//visibility:public", |
| ], |
| deps = [ |
| ":testonly", |
| "@com_google_protobuf_javalite//:protobuf_java_lite", |
| "@maven//:com_google_truth_truth", |
| "@maven//:junit_junit", |
| "@maven//:org_json_json", |
| ], |
| ) |
| |
| # tests |
| |
| load("//tools:gen_java_test_rules.bzl", "gen_java_test_rules") |
| |
| java_library( |
| name = "generator_test", |
| testonly = 1, |
| srcs = glob([ |
| "src/test/**/*.java", |
| ]), |
| deps = [ |
| ":awskms", |
| ":gcpkms", |
| ":testonly", |
| "@com_google_protobuf_javalite//:protobuf_java_lite", |
| "@maven//:com_amazonaws_aws_java_sdk_core", |
| "@maven//:com_amazonaws_aws_java_sdk_kms", |
| "@maven//:com_google_api_client_google_api_client", |
| "@maven//:com_google_http_client_google_http_client", |
| "@maven//:com_google_truth_truth", |
| "@maven//:junit_junit", |
| "@maven//:org_json_json", |
| "@maven//:org_mockito_mockito_core", |
| ], |
| ) |
| |
| # Anything in test_files will be a small sized test unless specified in an explicit category. |
| # Don't hesitate to increase the length when writing legitimately longer tests. |
| gen_java_test_rules( |
| data = [ |
| "//testdata:credentials", |
| "//testdata:ecies_keysets", |
| "@wycheproof//testvectors:all", |
| ], |
| default_test_size = "small", |
| # these tests are excluded when testing with bazel test ... or on Kokoro |
| manual_tests = [ |
| "src/test/java/com/google/crypto/tink/subtle/AesGcmJceTest", |
| "src/test/java/com/google/crypto/tink/subtle/AesGcmHkdfStreamingTest", |
| # b/112019120 |
| "src/test/java/com/google/crypto/tink/subtle/RsaSsaPkcs1VerifyJceTest", |
| ], |
| medium_tests = [ |
| "src/test/java/com/google/crypto/tink/subtle/AesCtrHmacStreamingTest", |
| "src/test/java/com/google/crypto/tink/subtle/AesGcmJceTest", |
| "src/test/java/com/google/crypto/tink/hybrid/EciesAeadHkdfHybridDecryptTest", |
| ], |
| no_rbe_tests = [ |
| "src/test/java/com/google/crypto/tink/aead/KmsAeadKeyManagerTest", |
| "src/test/java/com/google/crypto/tink/aead/KmsEnvelopeAeadKeyManagerTest", |
| ], |
| test_files = glob( |
| [ |
| "src/test/**/*Test.java", |
| ], |
| ), |
| deps = [ |
| ":generator_test", |
| ], |
| ) |