blob: aaa475d4395754e077ff331ff772bd6fbd118657 [file] [log] [blame]
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,
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"],
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",
],
deps = lite_protos + [
":android",
"@com_google_protobuf//:protobuf_javalite",
],
)