// // 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", "//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", } // A guaranteed unstripped version of bouncycastle. // The build system may or may not strip the bouncycastle jar, but this one will // not be stripped. See b/24535627. java_library { name: "bouncycastle-testdex", visibility: [ "//art:__subpackages__", ], defaults: ["bouncycastle-defaults"], installable: true, srcs: [":bouncycastle_java_files"], libs: ["unsupportedappusage"], sdk_version: "none", system_modules: "art-module-intra-core-api-stubs-system-modules", dex_preopt: { enabled: false, }, java_version: "1.7", } unbundled_visibility = [ "//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", ] // 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 IPsec. // // 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", }