aosp12/external/bouncycastle/Android.bp

254 lines
8.2 KiB
Plaintext

//
// 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"],
default_applicable_licenses: ["external_bouncycastle_license"],
}
// Added automatically by a large-scale-change that took the approach of
// 'apply every license found to every target'. While this makes sure we respect
// every license restriction, it may not be entirely correct.
//
// e.g. GPL in an MIT project might only apply to the contrib/ directory.
//
// Please consider splitting the single license below into multiple licenses,
// taking care not to lose any license_kind information, and overriding the
// default license using the 'licenses: [...]' property on targets as needed.
//
// For unused files, consider creating a 'fileGroup' with "//visibility:private"
// to attach the license to, and including a comment whether the files may be
// used in the current project.
// See: http://go/android-license-faq
license {
name: "external_bouncycastle_license",
visibility: [":__subpackages__"],
license_kinds: [
"SPDX-license-identifier-Apache-2.0",
"SPDX-license-identifier-BSD",
"SPDX-license-identifier-MIT",
],
license_text: [
"NOTICE",
],
}
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 ART module. Repackaging is needed to avoid 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",
"//packages/modules/ArtPrebuilt",
],
apex_available: [
"com.android.art",
"com.android.art.debug",
],
min_sdk_version: "31",
defaults: ["bouncycastle-defaults"],
installable: true,
srcs: [":bouncycastle_java_files"],
libs: ["unsupportedappusage"],
sdk_version: "none",
system_modules: "art-module-intra-core-api-stubs-system-modules",
}
// A bouncycastle library repackaged in com.android.internal.org.bouncycastle
// for use in the Android platform where it is important not to conflict with
// the original org.bouncycastle package or the one in the ART module.
java_library {
name: "bouncycastle-repackaged-unbundled",
visibility: [
"//cts/tests/libcore/wycheproof-bc",
"//external/sl4a/Common",
"//external/wycheproof",
"//frameworks/base",
"//frameworks/base/packages/Connectivity/tests/unit",
"//frameworks/base/tests/net",
"//packages/modules/Connectivity/tests/unit",
],
defaults: ["bouncycastle-defaults"],
installable: true,
sdk_version: "core_current",
srcs: ["repackaged_platform/bcprov/src/main/java/**/*.java"],
}
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",
"//packages/apps/CertInstaller",
"//packages/apps/KeyChain",
"//packages/apps/RemoteProvisioner/tests/unittests",
"//packages/modules/Connectivity/tests/cts/net",
"//packages/modules/Wifi/service",
"//packages/modules/Wifi/service/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",
min_sdk_version: "30",
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 frameworks/opt/net/ike 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: [
"//art/build/sdk",
"//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",
}