| load("//tools/build_defs:javac.bzl", "JAVACOPTS_OSS") |
| load("@build_bazel_rules_android//android:rules.bzl", "android_library") |
| load("@tink_base//:tink_version.bzl", "TINK_VERSION_LABEL") |
| load("@tink_base//tools:common.bzl", "template_rule") |
| |
| licenses(["notice"]) |
| |
| package(default_visibility = ["//visibility:public"]) |
| |
| # Primitives |
| |
| java_library( |
| name = "aead", |
| srcs = ["Aead.java"], |
| ) |
| |
| java_library( |
| name = "streaming_aead", |
| srcs = ["StreamingAead.java"], |
| ) |
| |
| java_library( |
| name = "deterministic_aead", |
| srcs = ["DeterministicAead.java"], |
| ) |
| |
| java_library( |
| name = "hybrid_decrypt", |
| srcs = ["HybridDecrypt.java"], |
| ) |
| |
| java_library( |
| name = "hybrid_encrypt", |
| srcs = ["HybridEncrypt.java"], |
| ) |
| |
| java_library( |
| name = "mac", |
| srcs = ["Mac.java"], |
| ) |
| |
| java_library( |
| name = "key_wrap", |
| srcs = ["KeyWrap.java"], |
| ) |
| |
| java_library( |
| name = "public_key_sign", |
| srcs = ["PublicKeySign.java"], |
| ) |
| |
| java_library( |
| name = "public_key_verify", |
| srcs = ["PublicKeyVerify.java"], |
| ) |
| |
| # Other public interfaces |
| |
| java_library( |
| name = "crypto_format", |
| srcs = ["CryptoFormat.java"], |
| deps = ["//proto:tink_java_proto"], |
| ) |
| |
| android_library( |
| name = "crypto_format-android", |
| srcs = ["CryptoFormat.java"], |
| deps = ["//proto:tink_java_proto_lite"], |
| ) |
| |
| java_library( |
| name = "primitive_wrapper", |
| srcs = ["PrimitiveWrapper.java"], |
| deps = [":primitive_set"], |
| ) |
| |
| android_library( |
| name = "primitive_wrapper-android", |
| srcs = ["PrimitiveWrapper.java"], |
| deps = [":primitive_set-android"], |
| ) |
| |
| java_library( |
| name = "kms_client", |
| srcs = ["KmsClient.java"], |
| deps = [":aead"], |
| ) |
| |
| java_library( |
| name = "kms_clients", |
| srcs = ["KmsClients.java"], |
| deps = [":kms_client"], |
| ) |
| |
| java_library( |
| name = "keyset_writer", |
| srcs = ["KeysetWriter.java"], |
| deps = ["//proto:tink_java_proto"], |
| ) |
| |
| android_library( |
| name = "keyset_writer-android", |
| srcs = ["KeysetWriter.java"], |
| deps = ["//proto:tink_java_proto_lite"], |
| ) |
| |
| java_library( |
| name = "binary_keyset_writer", |
| srcs = ["BinaryKeysetWriter.java"], |
| deps = [ |
| ":keyset_writer", |
| "//proto:tink_java_proto", |
| ], |
| ) |
| |
| android_library( |
| name = "binary_keyset_writer-android", |
| srcs = ["BinaryKeysetWriter.java"], |
| deps = [ |
| ":keyset_writer-android", |
| "//proto:tink_java_proto_lite", |
| ], |
| ) |
| |
| java_library( |
| name = "json_keyset_writer", |
| srcs = ["JsonKeysetWriter.java"], |
| deps = [ |
| ":keyset_writer", |
| "//proto:tink_java_proto", |
| "//src/main/java/com/google/crypto/tink/subtle:base64", |
| "@maven//:org_json_json", |
| ], |
| ) |
| |
| android_library( |
| name = "json_keyset_writer-android", |
| srcs = ["JsonKeysetWriter.java"], |
| deps = [ |
| ":keyset_writer", |
| ":keyset_writer-android", |
| "//proto:tink_java_proto_lite", |
| "//src/main/java/com/google/crypto/tink/subtle:base64", |
| "@maven//:org_json_json", |
| ], |
| ) |
| |
| java_library( |
| name = "keyset_reader", |
| srcs = ["KeysetReader.java"], |
| deps = ["//proto:tink_java_proto"], |
| ) |
| |
| android_library( |
| name = "keyset_reader-android", |
| srcs = ["KeysetReader.java"], |
| deps = ["//proto:tink_java_proto_lite"], |
| ) |
| |
| java_library( |
| name = "binary_keyset_reader", |
| srcs = ["BinaryKeysetReader.java"], |
| deps = [ |
| ":keyset_reader", |
| "//proto:tink_java_proto", |
| "@com_google_protobuf//:protobuf_javalite", |
| ], |
| ) |
| |
| android_library( |
| name = "binary_keyset_reader-android", |
| srcs = ["BinaryKeysetReader.java"], |
| deps = [ |
| ":keyset_reader-android", |
| "//proto:tink_java_proto_lite", |
| "@com_google_protobuf//:protobuf_javalite", |
| ], |
| ) |
| |
| java_library( |
| name = "json_keyset_reader", |
| srcs = ["JsonKeysetReader.java"], |
| deps = [ |
| ":keyset_reader", |
| ":util", |
| "//proto:tink_java_proto", |
| "//src/main/java/com/google/crypto/tink/subtle:base64", |
| "@com_google_protobuf//:protobuf_javalite", |
| "@maven//:org_json_json", |
| ], |
| ) |
| |
| android_library( |
| name = "json_keyset_reader-android", |
| srcs = ["JsonKeysetReader.java"], |
| deps = [ |
| ":keyset_reader-android", |
| ":util-android", |
| "//proto:tink_java_proto_lite", |
| "//src/main/java/com/google/crypto/tink/subtle:base64", |
| "@com_google_protobuf//:protobuf_javalite", |
| "@maven//:org_json_json", |
| ], |
| ) |
| |
| java_library( |
| name = "private_key_manager", |
| srcs = ["PrivateKeyManager.java"], |
| deps = [ |
| ":key_manager", |
| "//proto:tink_java_proto", |
| "@com_google_protobuf//:protobuf_javalite", |
| ], |
| ) |
| |
| android_library( |
| name = "private_key_manager-android", |
| srcs = ["PrivateKeyManager.java"], |
| deps = [ |
| ":key_manager-android", |
| "//proto:tink_java_proto_lite", |
| "@com_google_protobuf//:protobuf_javalite", |
| ], |
| ) |
| |
| java_library( |
| name = "privileged_registry", |
| srcs = ["PrivilegedRegistry.java"], |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":registry_cluster", |
| "//proto:tink_java_proto", |
| "@com_google_protobuf//:protobuf_javalite", |
| ], |
| ) |
| |
| android_library( |
| name = "privileged_registry-android", |
| srcs = ["PrivilegedRegistry.java"], |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":registry_cluster-android", |
| "//proto:tink_java_proto_lite", |
| "@com_google_protobuf//:protobuf_javalite", |
| ], |
| ) |
| |
| java_library( |
| name = "key_type_manager", |
| srcs = ["KeyTypeManager.java"], |
| deps = [ |
| "//proto:tink_java_proto", |
| "//src/main/java/com/google/crypto/tink/annotations:alpha", |
| "@com_google_protobuf//:protobuf_javalite", |
| ], |
| ) |
| |
| android_library( |
| name = "key_type_manager-android", |
| srcs = ["KeyTypeManager.java"], |
| deps = [ |
| "//proto:tink_java_proto_lite", |
| "//src/main/java/com/google/crypto/tink/annotations:alpha", |
| "@com_google_protobuf//:protobuf_javalite", |
| ], |
| ) |
| |
| java_library( |
| name = "key_template", |
| srcs = ["KeyTemplate.java"], |
| deps = [ |
| "//proto:tink_java_proto", |
| "@com_google_protobuf//:protobuf_javalite", |
| "@maven//:com_google_errorprone_error_prone_annotations", |
| ], |
| ) |
| |
| android_library( |
| name = "key_template-android", |
| srcs = ["KeyTemplate.java"], |
| deps = [ |
| "//proto:tink_java_proto_lite", |
| "@com_google_protobuf//:protobuf_javalite", |
| "@maven//:com_google_errorprone_error_prone_annotations", |
| ], |
| ) |
| |
| java_library( |
| name = "config", |
| srcs = ["Config.java"], |
| deps = [ |
| ":catalogue", |
| ":key_manager", |
| ":registry_cluster", |
| "//proto:config_java_proto", |
| ], |
| ) |
| |
| android_library( |
| name = "config-android", |
| srcs = ["Config.java"], |
| deps = [ |
| ":catalogue-android", |
| ":key_manager-android", |
| ":registry_cluster-android", |
| "//proto:config_java_proto_lite", |
| ], |
| ) |
| |
| java_library( |
| name = "private_key_manager_impl", |
| srcs = ["PrivateKeyManagerImpl.java"], |
| deps = [ |
| ":key_manager_impl", |
| ":key_type_manager", |
| ":private_key_manager", |
| ":private_key_type_manager", |
| "//proto:tink_java_proto", |
| "//src/main/java/com/google/crypto/tink/annotations:alpha", |
| "@com_google_protobuf//:protobuf_javalite", |
| ], |
| ) |
| |
| android_library( |
| name = "private_key_manager_impl-android", |
| srcs = ["PrivateKeyManagerImpl.java"], |
| deps = [ |
| ":key_manager_impl-android", |
| ":key_type_manager-android", |
| ":private_key_manager-android", |
| ":private_key_type_manager-android", |
| "//proto:tink_java_proto_lite", |
| "//src/main/java/com/google/crypto/tink/annotations:alpha", |
| "@com_google_protobuf//:protobuf_javalite", |
| ], |
| ) |
| |
| java_library( |
| name = "no_secret_keyset_handle", |
| srcs = ["NoSecretKeysetHandle.java"], |
| deps = [ |
| ":keyset_reader", |
| ":registry_cluster", |
| "//proto:tink_java_proto", |
| "@com_google_protobuf//:protobuf_javalite", |
| ], |
| ) |
| |
| android_library( |
| name = "no_secret_keyset_handle-android", |
| srcs = ["NoSecretKeysetHandle.java"], |
| deps = [ |
| ":keyset_reader-android", |
| ":registry_cluster-android", |
| "//proto:tink_java_proto_lite", |
| "@com_google_protobuf//:protobuf_javalite", |
| ], |
| ) |
| |
| java_library( |
| name = "cleartext_keyset_handle", |
| srcs = ["CleartextKeysetHandle.java"], |
| deps = [ |
| ":keyset_reader", |
| ":keyset_writer", |
| ":registry_cluster", |
| "//proto:tink_java_proto", |
| "@com_google_protobuf//:protobuf_javalite", |
| ], |
| ) |
| |
| android_library( |
| name = "cleartext_keyset_handle-android", |
| srcs = ["CleartextKeysetHandle.java"], |
| deps = [ |
| ":keyset_reader-android", |
| ":keyset_writer-android", |
| ":registry_cluster-android", |
| "//proto:tink_java_proto_lite", |
| "@com_google_protobuf//:protobuf_javalite", |
| ], |
| ) |
| |
| java_library( |
| name = "private_key_type_manager", |
| srcs = ["PrivateKeyTypeManager.java"], |
| deps = [ |
| ":key_type_manager", |
| "//src/main/java/com/google/crypto/tink/annotations:alpha", |
| "@com_google_protobuf//:protobuf_javalite", |
| ], |
| ) |
| |
| android_library( |
| name = "private_key_type_manager-android", |
| srcs = ["PrivateKeyTypeManager.java"], |
| deps = [ |
| ":key_type_manager-android", |
| "//src/main/java/com/google/crypto/tink/annotations:alpha", |
| "@com_google_protobuf//:protobuf_javalite", |
| ], |
| ) |
| |
| java_library( |
| name = "util", |
| srcs = ["Util.java"], |
| deps = ["//proto:tink_java_proto"], |
| ) |
| |
| android_library( |
| name = "util-android", |
| srcs = ["Util.java"], |
| deps = ["//proto:tink_java_proto_lite"], |
| ) |
| |
| java_library( |
| name = "catalogue", |
| srcs = ["Catalogue.java"], |
| deps = [ |
| ":key_manager", |
| ":primitive_wrapper", |
| ], |
| ) |
| |
| android_library( |
| name = "catalogue-android", |
| srcs = ["Catalogue.java"], |
| deps = [ |
| ":key_manager-android", |
| ":primitive_wrapper-android", |
| ], |
| ) |
| |
| java_library( |
| name = "key_manager", |
| srcs = ["KeyManager.java"], |
| deps = [ |
| "//proto:tink_java_proto", |
| "@com_google_protobuf//:protobuf_javalite", |
| ], |
| ) |
| |
| android_library( |
| name = "key_manager-android", |
| srcs = ["KeyManager.java"], |
| deps = [ |
| "//proto:tink_java_proto_lite", |
| "@com_google_protobuf//:protobuf_javalite", |
| ], |
| ) |
| |
| java_library( |
| name = "key_manager_impl", |
| srcs = ["KeyManagerImpl.java"], |
| deps = [ |
| ":key_manager", |
| ":key_type_manager", |
| "//proto:tink_java_proto", |
| "//src/main/java/com/google/crypto/tink/annotations:alpha", |
| "@com_google_protobuf//:protobuf_javalite", |
| ], |
| ) |
| |
| android_library( |
| name = "key_manager_impl-android", |
| srcs = ["KeyManagerImpl.java"], |
| deps = [ |
| ":key_manager-android", |
| ":key_type_manager-android", |
| "//proto:tink_java_proto_lite", |
| "//src/main/java/com/google/crypto/tink/annotations:alpha", |
| "@com_google_protobuf//:protobuf_javalite", |
| ], |
| ) |
| |
| java_library( |
| name = "primitive_set", |
| srcs = ["PrimitiveSet.java"], |
| deps = [ |
| ":crypto_format", |
| "//proto:tink_java_proto", |
| ], |
| ) |
| |
| android_library( |
| name = "primitive_set-android", |
| srcs = ["PrimitiveSet.java"], |
| deps = [ |
| ":crypto_format-android", |
| "//proto:tink_java_proto_lite", |
| ], |
| ) |
| |
| java_library( |
| name = "registry_cluster", |
| srcs = [ |
| "KeysetHandle.java", |
| "KeysetManager.java", |
| "Registry.java", |
| ], |
| deps = [ |
| ":aead", |
| ":catalogue", |
| ":key_manager", |
| ":key_manager_impl", |
| ":key_template", |
| ":key_type_manager", |
| ":keyset_reader", |
| ":keyset_writer", |
| ":primitive_set", |
| ":primitive_wrapper", |
| ":private_key_manager", |
| ":private_key_manager_impl", |
| ":private_key_type_manager", |
| ":util", |
| "//proto:tink_java_proto", |
| "@com_google_protobuf//:protobuf_javalite", |
| "@maven//:com_google_code_findbugs_jsr305", |
| ], |
| ) |
| |
| android_library( |
| name = "registry_cluster-android", |
| srcs = [ |
| "KeysetHandle.java", |
| "KeysetManager.java", |
| "Registry.java", |
| ], |
| deps = [ |
| ":aead", |
| ":catalogue-android", |
| ":key_manager-android", |
| ":key_manager_impl-android", |
| ":key_template-android", |
| ":key_type_manager-android", |
| ":keyset_reader-android", |
| ":keyset_writer-android", |
| ":primitive_set-android", |
| ":primitive_wrapper-android", |
| ":private_key_manager-android", |
| ":private_key_manager_impl-android", |
| ":private_key_type_manager-android", |
| ":util-android", |
| "//proto:tink_java_proto_lite", |
| "@com_google_protobuf//:protobuf_javalite", |
| "@maven//:com_google_code_findbugs_jsr305", |
| ], |
| ) |
| |
| template_rule( |
| name = "version_java", |
| src = "Version.java.templ", |
| out = "Version.java", |
| substitutions = { |
| "TINK_VERSION_LABEL": "%s" % TINK_VERSION_LABEL, |
| }, |
| ) |
| |
| # Deprecated rules, will be removed soon. |
| |
| full_protos = [ |
| "//proto:common_java_proto", |
| "//proto:config_java_proto", |
| "//proto:tink_java_proto", |
| ] |
| |
| lite_protos = [ |
| "//proto:common_java_proto_lite", |
| "//proto:config_java_proto_lite", |
| "//proto:tink_java_proto_lite", |
| ] |
| |
| # public interfaces |
| |
| PRIMITIVES_SRCS = [ |
| "Aead.java", |
| "DeterministicAead.java", |
| "HybridDecrypt.java", |
| "HybridEncrypt.java", |
| "KeyWrap.java", |
| "Mac.java", |
| "PublicKeySign.java", |
| "PublicKeyVerify.java", |
| "StreamingAead.java", |
| ] |
| |
| java_library( |
| name = "primitives", |
| srcs = PRIMITIVES_SRCS, |
| javacopts = JAVACOPTS_OSS, |
| visibility = ["//visibility:public"], |
| ) |
| |
| # restricted APIs |
| |
| CLEARTEXT_KEYSET_HANDLE_SRCS = [ |
| # Storing keyset in cleartext usually leads to security incidents. |
| # To discourage users from doing that, the visibility of |
| # CleartextKeysetHandle, which allows loading cleartext keyset, |
| # is restricted. |
| "CleartextKeysetHandle.java", |
| ] |
| |
| PRIVILEGED_REGISTRY = ["PrivilegedRegistry.java"] |
| |
| filegroup( |
| name = "cleartext_keyset_handle_srcs", |
| srcs = CLEARTEXT_KEYSET_HANDLE_SRCS, |
| ) |
| |
| # core, without restricted APIs |
| |
| java_library( |
| name = "core", |
| srcs = glob( |
| ["*.java"], |
| exclude = CLEARTEXT_KEYSET_HANDLE_SRCS + PRIMITIVES_SRCS + PRIVILEGED_REGISTRY, |
| ) + [":version_java"], |
| visibility = ["//visibility:public"], |
| deps = full_protos + [ |
| ":primitives", |
| "//src/main/java/com/google/crypto/tink/annotations", |
| "//src/main/java/com/google/crypto/tink/subtle:base64", |
| "@com_google_protobuf//:protobuf_java", |
| "@maven//:com_google_code_findbugs_jsr305", |
| "@maven//:com_google_errorprone_error_prone_annotations", |
| "@maven//:org_json_json", |
| ], |
| ) |
| |
| java_library( |
| name = "tink", |
| deprecation = "Use :core and :primitives instead", |
| visibility = ["//visibility:public"], |
| exports = [ |
| ":core", |
| ":primitives", |
| ], |
| ) |
| |
| java_library( |
| name = "core-android", |
| srcs = glob( |
| ["*.java"], |
| exclude = CLEARTEXT_KEYSET_HANDLE_SRCS + PRIMITIVES_SRCS + PRIVILEGED_REGISTRY + [ |
| # TextFormat doesn't work with lite protos |
| "TextFormatKeysetReaders.java", |
| "TextFormatKeysetWriters.java", |
| ], |
| ) + [":version_java"], |
| javacopts = JAVACOPTS_OSS, |
| visibility = ["//visibility:public"], |
| deps = lite_protos + [ |
| ":primitives", |
| "//src/main/java/com/google/crypto/tink/annotations", |
| "//src/main/java/com/google/crypto/tink/subtle:base64", |
| "@com_google_protobuf//:protobuf_javalite", |
| "@maven//:com_google_code_findbugs_jsr305", |
| "@maven//:com_google_errorprone_error_prone_annotations", |
| "@maven//:org_json_json", |
| ], |
| ) |
| |
| java_library( |
| name = "android", |
| deprecation = "Use :core-android and :primitives instead", |
| visibility = ["//visibility:public"], |
| exports = [ |
| ":core-android", |
| ":primitives", |
| ], |
| ) |
| |
| java_library( |
| name = "cleartext_keyset_handle_android", |
| srcs = [ |
| ":cleartext_keyset_handle_srcs", |
| ], |
| javacopts = JAVACOPTS_OSS, |
| deps = lite_protos + [ |
| ":android", |
| "@com_google_protobuf//:protobuf_javalite", |
| ], |
| ) |