blob: d61d3db6766b678103bea0118e9dfef188e2c0f2 [file] [log] [blame]
//
// Copyright (C) 2010 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
package {
default_visibility: ["//visibility:private"],
}
java_defaults {
name: "bouncycastle-errorprone-defaults",
errorprone: {
javacflags: [
"-Xep:MissingOverride:OFF", // Ignore missing @Override.
],
},
}
// These cannot build in the PDK, because the PDK requires all libraries
// compile against SDK versions.
java_defaults {
name: "bouncycastle-defaults",
defaults: [
"bouncycastle-errorprone-defaults",
],
hostdex: true,
target: {
android: {
product_variables: {
pdk: {
enabled: false,
},
},
},
},
}
// The src files for bouncycastle, used to generate core platform / intra-core
// API stubs.
filegroup {
name: "bouncycastle_java_files",
visibility: [
"//libcore",
],
srcs: ["repackaged/bcprov/src/main/java/**/*.java"],
}
// A bouncycastle library repackaged in com.android.org.bouncycastle for use
// in the Android platform where it is important not to conflict with the
// original org.bouncycastle package.
java_library {
name: "bouncycastle",
// Restrict visibility to only those targets that need to access it.
visibility: [
"//art/build/apex",
"//art/build/sdk",
"//external/wycheproof",
"//libcore",
],
apex_available: [
"com.android.art.release",
"com.android.art.debug",
],
defaults: ["bouncycastle-defaults"],
installable: true,
srcs: [":bouncycastle_java_files"],
libs: ["unsupportedappusage"],
sdk_version: "none",
system_modules: "art-module-intra-core-api-stubs-system-modules",
}
unbundled_visibility = [
"//art/build/sdk",
"//build/make/tools/signapk",
"//build/make/tools/signtos",
"//cts/hostsidetests/devicepolicy/app/DeviceOwner",
"//cts/tests/libcore/okhttp",
"//cts/tests/security",
"//cts/tests/tests/keystore",
"//external/conscrypt",
"//external/okhttp",
"//external/robolectric-shadows",
"//external/robolectric-shadows/robolectric",
"//external/robolectric-shadows/shadows/supportv4",
"//external/robolectric-shadows/shadows/httpclient",
"//frameworks/opt/net/wifi/service",
"//frameworks/opt/net/wifi/tests/wifitests",
"//libcore",
"//system/extras/verity",
"//tools/security/remote_provisioning/attestation_testing",
"//vendor:__subpackages__",
]
// A bouncycastle library in the original org.bouncycastle package for use
// outside of the platform. e.g. for host or in unbundled apps.
java_library {
name: "bouncycastle-unbundled",
visibility: unbundled_visibility,
defaults: ["bouncycastle-defaults"],
host_supported: true,
srcs: ["bcprov/src/main/java/**/*.java"],
exclude_srcs: [
"bcprov/src/main/java/org/bouncycastle/asn1/ocsp/**/*.java",
],
sdk_version: "core_current",
java_version: "1.7",
}
// Bouncycastle PKIX classes in the original org.bouncycastle package for use
// outside of the platform. e.g. for host or in unbundled apps / CTS tests.
java_library {
name: "bouncycastle-bcpkix-unbundled",
visibility: unbundled_visibility,
defaults: ["bouncycastle-defaults"],
host_supported: true,
srcs: ["bcpkix/src/main/java/**/*.java"],
exclude_srcs: ["bcpkix/src/main/java/org/bouncycastle/cert/ocsp/**/*.java"],
libs: ["bouncycastle-unbundled"],
sdk_version: "core_current",
}
// Bouncycastle OCSP classes in the original org.bouncycastle package for use
// outside of the platform. e.g. for host or in unbundled apps / CTS tests.
java_library_static {
name: "bouncycastle-ocsp-unbundled",
visibility: unbundled_visibility,
defaults: ["bouncycastle-defaults"],
host_supported: true,
srcs: [
"bcpkix/src/main/java/org/bouncycastle/cert/ocsp/**/*.java",
"bcprov/src/main/java/org/bouncycastle/asn1/ocsp/**/*.java",
],
libs: [
"bouncycastle-unbundled",
"bouncycastle-bcpkix-unbundled",
],
sdk_version: "core_current",
}
// For compatibility with old bouncycastle-host name.
//
// When converting .mk files to .bp files do not change the visibility of this
// module, instead replace usages of this with bouncycastle-unbundled.
java_library_host {
name: "bouncycastle-host",
static_libs: ["bouncycastle-unbundled"],
}
// Bouncycastle subset for use by platform/packages/modules/IPsec project.
//
// Avoids including the whole of bouncycastle_unbundled in ike.
//
// Specifically, SHA1Digest and MD4Digest (and their dependencies) must be used by IKEv2 to support
// legacy authentication methods.
java_library {
name: "bouncycastle_ike_digests",
visibility: ["//packages/modules/IPsec"],
apex_available: [
"com.android.ipsec",
"test_com.android.ipsec",
],
srcs: [
"bcprov/src/main/java/org/bouncycastle/crypto/Digest.java",
"bcprov/src/main/java/org/bouncycastle/crypto/ExtendedDigest.java",
"bcprov/src/main/java/org/bouncycastle/crypto/digests/EncodableDigest.java",
"bcprov/src/main/java/org/bouncycastle/crypto/digests/GeneralDigest.java",
"bcprov/src/main/java/org/bouncycastle/crypto/digests/MD4Digest.java",
"bcprov/src/main/java/org/bouncycastle/crypto/digests/SHA1Digest.java",
"bcprov/src/main/java/org/bouncycastle/util/Memoable.java",
"bcprov/src/main/java/org/bouncycastle/util/Pack.java",
],
sdk_version: "core_current",
}