Merge mnc-dr-enso-dev into master
OpenJDK adjustments for master.
- Restored removed libcore.icu.* classes (needed
by the openjdk java.text.* classes). This will be
undone in short future.
- Adjusted java.lang.* and java.lang.reflect.* classes
for native reflection and other changes in master.
Bug: 25758743
Change-Id: Ifbbe5b1e8661138fc32ad24127f76f711dd585b7
diff --git a/Android.mk b/Android.mk
index 2aea13c..ebd5063 100644
--- a/Android.mk
+++ b/Android.mk
@@ -35,12 +35,6 @@
include $(LOCAL_PATH)/NativeCode.mk
#
-# Include the definitions for the Certificate Authority (CA) certificates
-#
-
-include $(LOCAL_PATH)/CaCerts.mk
-
-#
# Copy OpenJDK prebuilt data files
#
include $(CLEAR_VARS)
diff --git a/CaCerts.mk b/CaCerts.mk
deleted file mode 100644
index f85f524..0000000
--- a/CaCerts.mk
+++ /dev/null
@@ -1,58 +0,0 @@
-# -*- mode: makefile -*-
-# Copyright (C) 2011 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.
-
-#
-# Definitions for installing Certificate Authority (CA) certificates
-#
-
-define all-files-under
-$(patsubst ./%,%, \
- $(shell cd $(LOCAL_PATH) ; \
- find $(1) -type f) \
- )
-endef
-
-# $(1): module name
-# $(2): source file
-# $(3): destination directory
-define include-prebuilt-with-destination-directory
-include $$(CLEAR_VARS)
-LOCAL_MODULE := $(1)
-LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/CaCerts.mk
-LOCAL_MODULE_STEM := $(notdir $(2))
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_CLASS := ETC
-LOCAL_MODULE_PATH := $(3)
-LOCAL_SRC_FILES := $(2)
-include $$(BUILD_PREBUILT)
-endef
-
-cacerts := $(call all-files-under,luni/src/main/files/cacerts)
-
-cacerts_target_directory := $(TARGET_OUT)/etc/security/cacerts
-$(foreach cacert, $(cacerts), $(eval $(call include-prebuilt-with-destination-directory,target-cacert-$(notdir $(cacert)),$(cacert),$(cacerts_target_directory))))
-cacerts_target := $(addprefix $(cacerts_target_directory)/,$(foreach cacert,$(cacerts),$(notdir $(cacert))))
-.PHONY: cacerts_target
-cacerts: $(cacerts_target)
-
-# This is so that build/target/product/core.mk can use cacerts in PRODUCT_PACKAGES
-ALL_MODULES.cacerts.INSTALLED := $(cacerts_target)
-
-cacerts_host_directory := $(HOST_OUT)/etc/security/cacerts
-$(foreach cacert, $(cacerts), $(eval $(call include-prebuilt-with-destination-directory,host-cacert-$(notdir $(cacert)),$(cacert),$(cacerts_host_directory))))
-
-cacerts_host := $(addprefix $(cacerts_host_directory)/,$(foreach cacert,$(cacerts),$(notdir $(cacert))))
-.PHONY: cacerts-host
-cacerts-host: $(cacerts_host)
diff --git a/Docs.mk b/Docs.mk
index b89e393..2edee0d 100644
--- a/Docs.mk
+++ b/Docs.mk
@@ -10,20 +10,26 @@
# List of libcore javadoc source files
-libcore_to_document := $(openjdk_javadoc_files) $(non_openjdk_javadoc_files)
+_libcore_files := $(openjdk_javadoc_files) $(non_openjdk_javadoc_files)
+_libcore_files := $(addprefix libcore/, $(_libcore_files))
-# IcuIteratorWrapper.java references com.ibm.icu.text.BreakIterator,
-# which is renamed by our jarjar rule, and so unrecognizable by javadoc,
-# with annoying error: error: package com.ibm.icu.text does not exist.
-# We don't want to generate doc for this file anyway.
+_icu_files := \
+ $(call find-files-in-subdirs, external/icu, \
+ "*.java", \
+ android_icu4j/src/main/java/android/icu/lang \
+ android_icu4j/src/main/java/android/icu/math \
+ android_icu4j/src/main/java/android/icu/text \
+ android_icu4j/src/main/java/android/icu/util \
+ )
+_icu_files := $(addprefix external/icu/, $(_icu_files))
+
+# List of libcore-related javadoc source files
#
-# TODO(narayan): Deal with this exclusion.
-#
-# libcore_to_document += \
-# $(filter-out luni/src/main/java/java/text/IcuIteratorWrapper.java,\
-# $(call find-files-in-subdirs, libcore, \
-# "*.java", \
-# luni/src/main/java/java))
+# NOTE: Because libcore-related source spans modules (not just libcore!), files names here are
+# returned that are relative to the build root / $(TOPDIR) and not libcore.
+# BUILD_DROIDDOC requires file names that are relative the *current* LOCAL_DIR so users must account
+# for this.
+libcore_to_document := $(_libcore_files) $(_icu_files)
libcore_docs_include_once := 1
endif # libcore_docs_include_once
diff --git a/JavaLibrary.mk b/JavaLibrary.mk
index c440c0a..78071cb 100644
--- a/JavaLibrary.mk
+++ b/JavaLibrary.mk
@@ -70,39 +70,19 @@
#
# ICU4J related rules.
#
-# We compile icu4j along with core-libart because we're implementing parts of core-libart
-# in terms of icu4j.
-icu4j_root := ../external/icu/icu4j/
-icu4j_src_files := $(call all-java-files-under,$(icu4j_root)/main/classes)
-
-# Filter out bits of ICU4J we don't use yet : the SPIs (which we have limited support for),
-# the charset encoders and the transliterators.
-icu4j_src_files := $(filter-out $(icu4j_root)/main/classes/localespi/%, $(icu4j_src_files))
-icu4j_src_files := $(filter-out $(icu4j_root)/main/classes/charset/%, $(icu4j_src_files))
-icu4j_src_files := $(filter-out $(icu4j_root)/main/classes/translit/%, $(icu4j_src_files))
-
-# Not all src dirs contain resources, some instead contain other random files
-# that should not be included as resources. The ones that should be included
-# can be identifed by the fact that they contain particular subdir trees.
-#
-define all-icu-subdir-with-subdir
-$(patsubst $(LOCAL_PATH)/%/$(2),%,$(wildcard $(LOCAL_PATH)/$(1)/$(2)))
-endef
-
-icu4j_resource_dirs := $(call all-icu-subdir-with-subdir,$(icu4j_root)/main/classes/*/src,com/ibm/icu)
-icu4j_resource_dirs := $(filter-out $(icu4j_root)/main/classes/localespi/%, $(icu4j_resource_dirs))
-icu4j_resource_dirs := $(filter-out $(icu4j_root)/main/classes/charset/%, $(icu4j_resource_dirs))
-icu4j_resource_dirs := $(filter-out $(icu4j_root)/main/classes/translit/%, $(icu4j_resource_dirs))
-
-
+# We compile android_icu4j along with core-libart because we're implementing parts of core-libart
+# in terms of android_icu4j.
+android_icu4j_root := ../external/icu/android_icu4j/
+android_icu4j_src_files := $(call all-java-files-under,$(android_icu4j_root)/src/main)
+android_icu4j_resource_dirs := $(android_icu4j_root)/resources
#
# Build for the target (device).
#
include $(CLEAR_VARS)
-LOCAL_SRC_FILES := $(openjdk_java_files) $(non_openjdk_java_files) $(icu4j_src_files)
-LOCAL_JAVA_RESOURCE_DIRS := $(core_resource_dirs) $(icu4j_resource_dirs)
+LOCAL_SRC_FILES := $(openjdk_java_files) $(non_openjdk_java_files) $(android_icu4j_src_files)
+LOCAL_JAVA_RESOURCE_DIRS := $(core_resource_dirs) $(android_icu4j_resource_dirs)
LOCAL_NO_STANDARD_LIBRARIES := true
LOCAL_JAVACFLAGS := $(local_javac_flags)
LOCAL_DX_FLAGS := --core-library
@@ -112,7 +92,6 @@
LOCAL_REQUIRED_MODULES := tzdata
LOCAL_CORE_LIBRARY := true
LOCAL_UNINSTALLABLE_MODULE := true
-LOCAL_JARJAR_RULES := $(LOCAL_PATH)/jarjar-rules.txt
include $(BUILD_JAVA_LIBRARY)
include $(CLEAR_VARS)
@@ -128,12 +107,11 @@
LOCAL_REQUIRED_MODULES := tzdata
LOCAL_CORE_LIBRARY := true
LOCAL_REQUIRED_MODULES := currency.data-target
-LOCAL_JARJAR_RULES := $(LOCAL_PATH)/jarjar-rules.txt
include $(BUILD_JAVA_LIBRARY)
# Definitions to make the core library.
include $(CLEAR_VARS)
-LOCAL_SRC_FILES := $(non_openjdk_java_files) $(icu4j_src_files)
+LOCAL_SRC_FILES := $(non_openjdk_java_files) $(android_icu4j_src_files)
LOCAL_NO_STANDARD_LIBRARIES := true
LOCAL_JAVACFLAGS := $(local_javac_flags)
LOCAL_DX_FLAGS := --core-library
@@ -143,26 +121,15 @@
LOCAL_JAVA_LIBRARIES := core-all
LOCAL_CORE_LIBRARY := true
LOCAL_REQUIRED_MODULES := tzdata
-LOCAL_JARJAR_RULES := $(LOCAL_PATH)/jarjar-rules.txt
include $(BUILD_JAVA_LIBRARY)
-# Path to the ICU4C data files in the Android device file system:
-icu4c_data := /system/usr/icu
-# TODO: It's quite hideous that this double-slash between icu4j and main is required.
-# It's because we provide a variable substition of the make-rule generated jar command
-# to substitute a processed ICUProperties.config file in place of the original.
-#
-# We can avoid this by filtering out ICUConfig.properties from our list of resources.
-icu4j_config_root := $(LOCAL_PATH)/../external/icu/icu4j//main/classes/core/src
-include external/icu/icu4j/adjust_icudt_path.mk
-
ifeq ($(LIBCORE_SKIP_TESTS),)
# Make the core-tests library.
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(test_src_files)
LOCAL_JAVA_RESOURCE_DIRS := $(test_resource_dirs)
LOCAL_NO_STANDARD_LIBRARIES := true
-LOCAL_JAVA_LIBRARIES := core-oj core-libart okhttp core-junit bouncycastle
+LOCAL_JAVA_LIBRARIES := core-oj core-libart okhttp core-junit bouncycastle mockito-target
LOCAL_STATIC_JAVA_LIBRARIES := core-tests-support sqlite-jdbc mockwebserver nist-pkix-tests
LOCAL_JAVACFLAGS := $(local_javac_flags)
LOCAL_MODULE := core-tests
@@ -209,7 +176,7 @@
include $(BUILD_HOST_JAVA_LIBRARY)
include $(CLEAR_VARS)
-LOCAL_SRC_FILES := $(non_openjdk_java_files) $(openjdk_java_files) $(icu4j_src_files)
+LOCAL_SRC_FILES := $(non_openjdk_java_files) $(openjdk_java_files) $(android_icu4j_src_files)
LOCAL_JAVA_RESOURCE_DIRS := $(core_resource_dirs)
LOCAL_NO_STANDARD_LIBRARIES := true
LOCAL_JAVACFLAGS := $(local_javac_flags)
@@ -220,7 +187,6 @@
LOCAL_REQUIRED_MODULES := tzdata-host
LOCAL_CORE_LIBRARY := true
LOCAL_UNINSTALLABLE_MODULE := true
-LOCAL_JARJAR_RULES := $(LOCAL_PATH)/jarjar-rules.txt
include $(BUILD_HOST_DALVIK_JAVA_LIBRARY)
include $(CLEAR_VARS)
@@ -236,12 +202,11 @@
LOCAL_REQUIRED_MODULES := tzdata-host
LOCAL_CORE_LIBRARY := true
LOCAL_REQUIRED_MODULES := currency.data-host
-LOCAL_JARJAR_RULES := $(LOCAL_PATH)/jarjar-rules.txt
include $(BUILD_HOST_DALVIK_JAVA_LIBRARY)
# Definitions to make the core library.
include $(CLEAR_VARS)
-LOCAL_SRC_FILES := $(non_openjdk_java_files) $(icu4j_src_files)
+LOCAL_SRC_FILES := $(non_openjdk_java_files) $(android_icu4j_src_files)
LOCAL_NO_STANDARD_LIBRARIES := true
LOCAL_JAVACFLAGS := $(local_javac_flags)
LOCAL_DX_FLAGS := --core-library
@@ -250,7 +215,6 @@
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/JavaLibrary.mk
LOCAL_JAVA_LIBRARIES := core-oj-hostdex
LOCAL_REQUIRED_MODULES := tzdata-host
-LOCAL_JARJAR_RULES := $(LOCAL_PATH)/jarjar-rules.txt
include $(BUILD_HOST_DALVIK_JAVA_LIBRARY)
# Make the core-tests library.
@@ -259,7 +223,7 @@
LOCAL_SRC_FILES := $(test_src_files)
LOCAL_JAVA_RESOURCE_DIRS := $(test_resource_dirs)
LOCAL_NO_STANDARD_LIBRARIES := true
- LOCAL_JAVA_LIBRARIES := core-oj-hostdex core-libart-hostdex okhttp-hostdex bouncycastle-hostdex core-junit-hostdex core-tests-support-hostdex
+ LOCAL_JAVA_LIBRARIES := core-oj-hostdex core-libart-hostdex okhttp-hostdex bouncycastle-hostdex core-junit-hostdex core-tests-support-hostdex mockito-api-hostdex
LOCAL_STATIC_JAVA_LIBRARIES := sqlite-jdbc-host mockwebserver-host nist-pkix-tests-host
LOCAL_JAVACFLAGS := $(local_javac_flags)
LOCAL_MODULE_TAGS := optional
@@ -308,9 +272,10 @@
# for shared defintion of libcore_to_document
include $(LOCAL_PATH)/Docs.mk
-LOCAL_SRC_FILES := $(libcore_to_document)
+# The libcore_to_document paths are relative to $(TOPDIR). We are in libcore so we must prepend
+# ../ to make LOCAL_SRC_FILES relative to $(LOCAL_PATH).
+LOCAL_SRC_FILES := $(addprefix ../, $(libcore_to_document))
# rerun doc generation without recompiling the java
-LOCAL_JAVA_LIBRARIES:=
LOCAL_JAVACFLAGS := $(local_javac_flags)
LOCAL_MODULE_CLASS:=JAVA_LIBRARIES
diff --git a/NativeCode.mk b/NativeCode.mk
index 72158ae..d25f750 100644
--- a/NativeCode.mk
+++ b/NativeCode.mk
@@ -84,6 +84,7 @@
core_test_files := \
luni/src/test/native/dalvik_system_JniTest.cpp \
+ luni/src/test/native/libcore_java_io_FileTest.cpp \
#
# Build for the target (device).
@@ -111,6 +112,7 @@
# Ignore "note: the mangling of 'va_list' has changed in GCC 4.4"
LOCAL_CFLAGS += -Wno-psabi
endif
+LOCAL_CFLAGS += -Wno-error
# Define the rules.
LOCAL_SRC_FILES := $(openjdk_core_src_files)
@@ -131,7 +133,7 @@
LOCAL_CPPFLAGS += $(core_cppflags)
LOCAL_SRC_FILES += $(core_test_files)
LOCAL_C_INCLUDES += libcore/include
-LOCAL_SHARED_LIBRARIES += libcrypto
+LOCAL_SHARED_LIBRARIES += libcrypto libnativehelper
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := libjavacoretests
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/NativeCode.mk
@@ -151,6 +153,7 @@
LOCAL_MODULE_TAGS := debug
LOCAL_MODULE := libjavacore-unit-tests
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/NativeCode.mk
+LOCAL_SHARED_LIBRARIES := libnativehelper
LOCAL_CXX_STL := libc++
include $(BUILD_NATIVE_TEST)
@@ -165,6 +168,7 @@
LOCAL_MODULE_TAGS := debug
LOCAL_MODULE := libjavacore-benchmarks
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/NativeCode.mk
+LOCAL_SHARED_LIBRARIES := libnativehelper
LOCAL_CXX_STL := libc++
LOCAL_MULTILIB := both
LOCAL_MODULE_STEM_32 := $(LOCAL_MODULE)32
@@ -221,7 +225,8 @@
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := libjavacoretests
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/NativeCode.mk
- LOCAL_SHARED_LIBRARIES := libcrypto-host
+ LOCAL_SHARED_LIBRARIES := libcrypto-host libnativehelper
+ LOCAL_MULTILIB := both
LOCAL_CXX_STL := libc++
include $(BUILD_HOST_SHARED_LIBRARY)
endif # LIBCORE_SKIP_TESTS
diff --git a/benchmarks/src/benchmarks/ClassLoaderResourceBenchmark.java b/benchmarks/src/benchmarks/ClassLoaderResourceBenchmark.java
new file mode 100644
index 0000000..379eaec
--- /dev/null
+++ b/benchmarks/src/benchmarks/ClassLoaderResourceBenchmark.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2015 Google Inc.
+ *
+ * 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 benchmarks;
+
+import com.google.caliper.SimpleBenchmark;
+
+import junit.framework.Assert;
+
+public class ClassLoaderResourceBenchmark extends SimpleBenchmark {
+
+ private static final String EXISTENT_RESOURCE = "java/util/logging/logging.properties";
+ private static final String MISSING_RESOURCE = "missing_entry";
+
+ public void timeGetBootResource_hit(int reps) {
+ ClassLoader currentClassLoader = getClass().getClassLoader();
+ Assert.assertNotNull(currentClassLoader.getResource(EXISTENT_RESOURCE));
+
+ for (int rep = 0; rep < reps; ++rep) {
+ currentClassLoader.getResource(EXISTENT_RESOURCE);
+ }
+ }
+
+ public void timeGetBootResource_miss(int reps) {
+ ClassLoader currentClassLoader = getClass().getClassLoader();
+ Assert.assertNull(currentClassLoader.getResource(MISSING_RESOURCE));
+
+ for (int rep = 0; rep < reps; ++rep) {
+ currentClassLoader.getResource(MISSING_RESOURCE);
+ }
+ }
+
+}
diff --git a/benchmarks/src/benchmarks/ReferenceBenchmark.java b/benchmarks/src/benchmarks/ReferenceBenchmark.java
new file mode 100644
index 0000000..0fa63f2
--- /dev/null
+++ b/benchmarks/src/benchmarks/ReferenceBenchmark.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2015 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 benchmarks;
+
+import com.google.caliper.SimpleBenchmark;
+import java.lang.ref.PhantomReference;
+import java.lang.ref.ReferenceQueue;
+
+/**
+ * Benchmark to evaluate the performance of References.
+ */
+public class ReferenceBenchmark extends SimpleBenchmark {
+
+ private Object object;
+
+ // How fast can references can be allocated?
+ public void timeAlloc(int reps) {
+ ReferenceQueue<Object> queue = new ReferenceQueue<Object>();
+ for (int i = 0; i < reps; i++) {
+ new PhantomReference(object, queue);
+ }
+ }
+
+ // How fast can references can be allocated and manually enqueued?
+ public void timeAllocAndEnqueue(int reps) {
+ ReferenceQueue<Object> queue = new ReferenceQueue<Object>();
+ for (int i = 0; i < reps; i++) {
+ (new PhantomReference<Object>(object, queue)).enqueue();
+ }
+ }
+
+ // How fast can references can be allocated, enqueued, and polled?
+ public void timeAllocEnqueueAndPoll(int reps) {
+ ReferenceQueue<Object> queue = new ReferenceQueue<Object>();
+ for (int i = 0; i < reps; i++) {
+ (new PhantomReference<Object>(object, queue)).enqueue();
+ }
+ for (int i = 0; i < reps; i++) {
+ queue.poll();
+ }
+ }
+
+ // How fast can references can be allocated, enqueued, and removed?
+ public void timeAllocEnqueueAndRemove(int reps) {
+ ReferenceQueue<Object> queue = new ReferenceQueue<Object>();
+ for (int i = 0; i < reps; i++) {
+ (new PhantomReference<Object>(object, queue)).enqueue();
+ }
+ for (int i = 0; i < reps; i++) {
+ try {
+ queue.remove();
+ } catch (InterruptedException ie) {
+ i--;
+ }
+ }
+ }
+}
diff --git a/benchmarks/src/benchmarks/SmallBigIntegerBenchmark.java b/benchmarks/src/benchmarks/SmallBigIntegerBenchmark.java
new file mode 100644
index 0000000..81a3ab5
--- /dev/null
+++ b/benchmarks/src/benchmarks/SmallBigIntegerBenchmark.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2015 Google Inc.
+ *
+ * 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 benchmarks;
+
+import java.math.BigInteger;
+import java.util.Random;
+
+/**
+ * This pretends to measure performance of operations on small BigIntegers.
+ * Given our current implementation, this is really a way to measure performance of
+ * finalization and JNI.
+ * We manually determine the number of iterations so that it should cause total memory
+ * allocation on the order of a few hundred megabytes. Due to BigInteger's reliance on
+ * finalization, these may unfortunately all be kept around at once.
+ */
+public class SmallBigIntegerBenchmark {
+ // We allocate about 2 1/3 BigIntegers per iteration.
+ // Assuming 100 bytes/BigInteger, this gives us around 500MB total.
+ static final int NITERS = 2 * 1000 * 1000;
+ static final BigInteger BIG_THREE = BigInteger.valueOf(3);
+ static final BigInteger BIG_FOUR = BigInteger.valueOf(4);
+
+ public static void main(String args[]) {
+ final Random r = new Random();
+ BigInteger x = new BigInteger(20, r);
+ final long startNanos = System.nanoTime();
+ long intermediateNanos = 0;
+ for (int i = 0; i < NITERS; ++i) {
+ if (i == NITERS / 100) {
+ intermediateNanos = System.nanoTime();
+ }
+ // We know this converges, but the compiler doesn't.
+ if (x.and(BigInteger.ONE).equals(BigInteger.ONE)) {
+ x = x.multiply(BIG_THREE).add(BigInteger.ONE);
+ } else {
+ x = x.shiftRight(1);
+ }
+ }
+ if (x.signum() < 0 || x.compareTo(BIG_FOUR) > 0) {
+ throw new AssertionError("Something went horribly wrong.");
+ }
+ final long finalNanos = System.nanoTime();
+ double firstFewTime = ((double) intermediateNanos - (double) startNanos) / (NITERS / 100);
+ double restTime = ((double) finalNanos - (double) intermediateNanos) / (99 * NITERS / 100);
+ System.out.println("First Few: " + firstFewTime
+ + " nanoseconds per iteration (2.33 BigInteger ops/iter)");
+ System.out.println("Remainder: " + restTime + " nanoseconds per iteration");
+ }
+}
+
diff --git a/benchmarks/src/benchmarks/XmlSerializeBenchmark.java b/benchmarks/src/benchmarks/XmlSerializeBenchmark.java
new file mode 100644
index 0000000..7319490
--- /dev/null
+++ b/benchmarks/src/benchmarks/XmlSerializeBenchmark.java
@@ -0,0 +1,118 @@
+/*
+ * Copyright (C) 2015 Google Inc.
+ *
+ * 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 benchmarks;
+
+import com.google.caliper.Param;
+import com.google.caliper.Runner;
+import com.google.caliper.SimpleBenchmark;
+
+import org.xmlpull.v1.*;
+
+import java.io.CharArrayWriter;
+import java.io.IOException;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.util.Random;
+
+
+public class XmlSerializeBenchmark extends SimpleBenchmark {
+
+ @Param( {"0.99 0.7 0.7 0.7 0.7 0.7",
+ "0.999 0.3 0.3 0.95 0.9 0.9"})
+ String datasetAsString;
+
+ @Param( { "854328", "312547"} )
+ int seed;
+
+ double[] dataset;
+ private Constructor<? extends XmlSerializer> kxmlConstructor;
+ private Constructor<? extends XmlSerializer> fastConstructor;
+
+ private void serializeRandomXml(Constructor<? extends XmlSerializer> ctor, long seed)
+ throws Exception {
+ double contChance = dataset[0];
+ double levelUpChance = dataset[1];
+ double levelDownChance = dataset[2];
+ double attributeChance = dataset[3];
+ double writeChance1 = dataset[4];
+ double writeChance2 = dataset[5];
+
+ XmlSerializer serializer = (XmlSerializer) ctor.newInstance();
+
+ CharArrayWriter w = new CharArrayWriter();
+ serializer.setOutput(w);
+ int level = 0;
+ Random r = new Random(seed);
+ char[] toWrite = {'a','b','c','d','s','z'};
+ serializer.startDocument("UTF-8", true);
+ while(r.nextDouble() < contChance) {
+ while(level > 0 && r.nextDouble() < levelUpChance) {
+ serializer.endTag("aaaaaa", "bbbbbb");
+ level--;
+ }
+ while(r.nextDouble() < levelDownChance) {
+ serializer.startTag("aaaaaa", "bbbbbb");
+ level++;
+ }
+ serializer.startTag("aaaaaa", "bbbbbb");
+ level++;
+ while(r.nextDouble() < attributeChance) {
+ serializer.attribute("aaaaaa", "cccccc", "dddddd");
+ }
+ serializer.endTag("aaaaaa", "bbbbbb");
+ level--;
+ while(r.nextDouble() < writeChance1)
+ serializer.text(toWrite, 0, 5);
+ while(r.nextDouble() < writeChance2)
+ serializer.text("Textxtsxtxtxt ");
+ }
+ serializer.endDocument();
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ protected void setUp() throws Exception {
+ kxmlConstructor = (Constructor) Class.forName("org.kxml2.io.KXmlSerializer")
+ .getConstructor();
+ fastConstructor = (Constructor) Class.forName("com.android.internal.util.FastXmlSerializer")
+ .getConstructor();
+ String[] splitted = datasetAsString.split(" ");
+ dataset = new double[splitted.length];
+ for (int i = 0; i < splitted.length; i++) {
+ dataset[i] = Double.valueOf(splitted[i]);
+ }
+ }
+
+ private void internalTimeSerializer(Constructor<? extends XmlSerializer> ctor, int reps)
+ throws Exception {
+ for (int i = 0; i < reps; i++) {
+ serializeRandomXml(ctor, seed);
+ }
+ }
+
+ public void timeKxml(int reps) throws Exception {
+ internalTimeSerializer(kxmlConstructor, reps);
+ }
+
+ public void timeFast(int reps) throws Exception {
+ internalTimeSerializer(fastConstructor, reps);
+ }
+
+ public static void main(String[] args) {
+ Runner.main(XmlSerializeBenchmark.class, args);
+ }
+}
diff --git a/benchmarks/src/benchmarks/regression/AnnotatedElementBenchmark.java b/benchmarks/src/benchmarks/regression/AnnotatedElementBenchmark.java
index 6c33968..107767b 100644
--- a/benchmarks/src/benchmarks/regression/AnnotatedElementBenchmark.java
+++ b/benchmarks/src/benchmarks/regression/AnnotatedElementBenchmark.java
@@ -141,7 +141,68 @@
public void timeGetDeclaredAnnotationsOnSubclass(int reps) {
for (int i = 0; i < reps; i++) {
- ExtendsHasThreeAnnotations.class.getAnnotations();
+ ExtendsHasThreeAnnotations.class.getDeclaredAnnotations();
+ }
+ }
+
+
+ // get annotations with enclosing / inner classes
+
+ public void timeGetDeclaredClasses(int reps) {
+ for (int i = 0; i < reps; i++) {
+ AnnotatedElementBenchmark.class.getDeclaredClasses();
+ }
+ }
+
+ public void timeGetDeclaringClass(int reps) {
+ for (int i = 0; i < reps; i++) {
+ HasSmallAnnotation.class.getDeclaringClass();
+ }
+ }
+
+ public void timeGetEnclosingClass(int reps) {
+ Object anonymousClass = new Object() {};
+ for (int i = 0; i < reps; i++) {
+ anonymousClass.getClass().getEnclosingClass();
+ }
+ }
+
+ public void timeGetEnclosingConstructor(int reps) {
+ Object anonymousClass = new Object() {};
+ for (int i = 0; i < reps; i++) {
+ anonymousClass.getClass().getEnclosingConstructor();
+ }
+ }
+
+ public void timeGetEnclosingMethod(int reps) {
+ Object anonymousClass = new Object() {};
+ for (int i = 0; i < reps; i++) {
+ anonymousClass.getClass().getEnclosingMethod();
+ }
+ }
+
+ public void timeGetModifiers(int reps) {
+ for (int i = 0; i < reps; i++) {
+ HasSmallAnnotation.class.getModifiers();
+ }
+ }
+
+ public void timeGetSimpleName(int reps) {
+ for (int i = 0; i < reps; i++) {
+ HasSmallAnnotation.class.getSimpleName();
+ }
+ }
+
+ public void timeIsAnonymousClass(int reps) {
+ Object anonymousClass = new Object() {};
+ for (int i = 0; i < reps; i++) {
+ anonymousClass.getClass().isAnonymousClass();
+ }
+ }
+
+ public void timeIsLocalClass(int reps) {
+ for (int i = 0; i < reps; i++) {
+ HasSmallAnnotation.class.isLocalClass();
}
}
@@ -174,7 +235,7 @@
@Marker
public class HasThreeAnnotations {}
- public class ExtendsHasThreeAnnotations {}
+ public class ExtendsHasThreeAnnotations extends HasThreeAnnotations {}
// the annotations
diff --git a/benchmarks/src/benchmarks/regression/BidiBenchmark.java b/benchmarks/src/benchmarks/regression/BidiBenchmark.java
new file mode 100644
index 0000000..bb5087e
--- /dev/null
+++ b/benchmarks/src/benchmarks/regression/BidiBenchmark.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2015 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 benchmarks.regression;
+
+import com.google.caliper.SimpleBenchmark;
+
+import java.math.BigDecimal;
+import java.text.AttributedCharacterIterator;
+import java.text.Bidi;
+import java.text.DecimalFormat;
+
+public class BidiBenchmark extends SimpleBenchmark {
+
+ private static final AttributedCharacterIterator charIter =
+ DecimalFormat.getInstance().formatToCharacterIterator(new BigDecimal(Math.PI));
+
+ public void time_createBidiFromIter(int reps) {
+ for (int i = 0; i < reps; i++) {
+ Bidi bidi = new Bidi(charIter);
+ }
+ }
+
+ public void time_createBidiFromCharArray(int reps) {
+ for (int i = 0; i < reps; i++) {
+ Bidi bd = new Bidi(new char[]{'s', 's', 's'}, 0, new byte[]{(byte) 1,
+ (byte) 2, (byte) 3}, 0, 3, Bidi.DIRECTION_RIGHT_TO_LEFT);
+ }
+ }
+
+ public void time_createBidiFromString(int reps) {
+ for (int i = 0; i < reps; i++) {
+ Bidi bidi = new Bidi("Hello", Bidi.DIRECTION_LEFT_TO_RIGHT);
+ }
+ }
+
+ public void time_reorderVisually(int reps) {
+ for (int i = 0; i < reps; i++) {
+ Bidi.reorderVisually(new byte[]{2, 1, 3, 0, 4}, 0,
+ new String[]{"H", "e", "l", "l", "o"}, 0, 5);
+ }
+ }
+
+ public void time_hebrewBidi(int reps) {
+ for (int i = 0; i < reps; i++) {
+ Bidi bd = new Bidi(new char[]{'\u05D0', '\u05D0', '\u05D0'}, 0,
+ new byte[]{(byte) -1, (byte) -2, (byte) -3}, 0, 3,
+ Bidi.DIRECTION_DEFAULT_RIGHT_TO_LEFT);
+ bd = new Bidi(new char[]{'\u05D0', '\u05D0', '\u05D0'}, 0,
+ new byte[]{(byte) -1, (byte) -2, (byte) -3}, 0, 3,
+ Bidi.DIRECTION_LEFT_TO_RIGHT);
+ }
+ }
+
+ public void time_complicatedOverrideBidi(int reps) {
+ for (int i = 0; i < reps; i++) {
+ Bidi bd = new Bidi("a\u05D0a\"a\u05D0\"\u05D0a".toCharArray(), 0,
+ new byte[]{0, 0, 0, -3, -3, 2, 2, 0, 3}, 0, 9,
+ Bidi.DIRECTION_RIGHT_TO_LEFT);
+ }
+ }
+
+ public void time_requiresBidi(int reps) {
+ for (int i = 0; i < reps; i++) {
+ Bidi.requiresBidi("\u05D0".toCharArray(), 1, 1); // false.
+ Bidi.requiresBidi("\u05D0".toCharArray(), 0, 1); // true.
+ }
+ }
+
+}
diff --git a/benchmarks/src/benchmarks/regression/CollatorBenchmark.java b/benchmarks/src/benchmarks/regression/CollatorBenchmark.java
new file mode 100644
index 0000000..9a8f20e
--- /dev/null
+++ b/benchmarks/src/benchmarks/regression/CollatorBenchmark.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2015 Google Inc.
+ *
+ * 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 benchmarks.regression;
+
+import com.google.caliper.SimpleBenchmark;
+
+import java.text.Collator;
+import java.text.RuleBasedCollator;
+import java.util.Locale;
+
+public class CollatorBenchmark extends SimpleBenchmark {
+
+ private static final RuleBasedCollator collator = (RuleBasedCollator)
+ Collator.getInstance(Locale.US);
+
+ public void timeCollatorPrimary(int reps) {
+ collator.setStrength(Collator.PRIMARY);
+ for (int i = 0; i < reps; i++) {
+ collator.compare("abcde", "abcdf");
+ collator.compare("abcde", "abcde");
+ collator.compare("abcdf", "abcde");
+ }
+ }
+
+ public void timeCollatorSecondary(int reps) {
+ collator.setStrength(Collator.SECONDARY);
+ for (int i = 0; i < reps; i++) {
+ collator.compare("abcdÂ", "abcdÄ");
+ collator.compare("abcdÂ", "abcdÂ");
+ collator.compare("abcdÄ", "abcdÂ");
+ }
+ }
+
+ public void timeCollatorTertiary(int reps) {
+ collator.setStrength(Collator.TERTIARY);
+ for (int i = 0; i < reps; i++) {
+ collator.compare("abcdE", "abcde");
+ collator.compare("abcde", "abcde");
+ collator.compare("abcde", "abcdE");
+ }
+ }
+
+ public void timeCollatorIdentical(int reps) {
+ collator.setStrength(Collator.IDENTICAL);
+ for (int i = 0; i < reps; i++) {
+ collator.compare("abcdȪ", "abcdȫ");
+ collator.compare("abcdȪ", "abcdȪ");
+ collator.compare("abcdȫ", "abcdȪ");
+ }
+ }
+}
diff --git a/benchmarks/src/benchmarks/regression/DecimalFormatBenchmark.java b/benchmarks/src/benchmarks/regression/DecimalFormatBenchmark.java
new file mode 100644
index 0000000..3d65ef0
--- /dev/null
+++ b/benchmarks/src/benchmarks/regression/DecimalFormatBenchmark.java
@@ -0,0 +1,159 @@
+package benchmarks.regression;
+
+import com.google.caliper.SimpleBenchmark;
+
+import java.math.BigDecimal;
+import java.text.DecimalFormat;
+import java.text.NumberFormat;
+import java.util.Locale;
+
+public class DecimalFormatBenchmark extends SimpleBenchmark {
+
+ private static final String EXP_PATTERN = "##E0";
+
+ private static final DecimalFormat df = (DecimalFormat) DecimalFormat.getInstance();
+ // Keep patternInstance for timing with patterns, to not dirty the plain instance.
+ private static final DecimalFormat patternInstance = (DecimalFormat)
+ DecimalFormat.getInstance();
+ private static final DecimalFormat dfCurrencyUS = (DecimalFormat)
+ NumberFormat.getCurrencyInstance(Locale.US);
+ private static final DecimalFormat dfCurrencyFR = (DecimalFormat)
+ NumberFormat.getInstance(Locale.FRANCE);
+
+ private static final BigDecimal BD10E3 = new BigDecimal("10E3");
+ private static final BigDecimal BD10E9 = new BigDecimal("10E9");
+ private static final BigDecimal BD10E100 = new BigDecimal("10E100");
+ private static final BigDecimal BD10E1000 = new BigDecimal("10E1000");
+
+ private static final int WHOLE_NUMBER = 10;
+ private static final double TWO_DP_NUMBER = 3.14;
+
+ public static void formatWithGrouping(Object obj, int reps) {
+ df.setGroupingSize(3);
+ df.setGroupingUsed(true);
+ for (int i = 0; i < reps; i++) {
+ df.format(obj);
+ }
+ }
+
+ public static void format(String pattern, Object obj, int reps) {
+ patternInstance.applyPattern(pattern);
+ for (int i = 0; i < reps; i++) {
+ patternInstance.format(obj);
+ }
+ }
+
+ public static void format(Object obj, int reps) {
+ for (int i = 0; i < reps; i++) {
+ df.format(obj);
+ }
+ }
+
+ public static void formatToCharacterIterator(Object obj, int reps) {
+ for (int i = 0; i < reps; i++) {
+ df.formatToCharacterIterator(obj);
+ }
+ }
+
+
+ public static void formatCurrencyUS(Object obj, int reps) {
+ for (int i = 0; i < reps; i++) {
+ dfCurrencyUS.format(obj);
+ }
+ }
+
+ public static void formatCurrencyFR(Object obj, int reps) {
+ for (int i = 0; i < reps; i++) {
+ dfCurrencyFR.format(obj);
+ }
+ }
+
+ public void time_formatGrouping_BigDecimal10e3(int reps) {
+ formatWithGrouping(BD10E3, reps);
+ }
+
+ public void time_formatGrouping_BigDecimal10e9(int reps) {
+ formatWithGrouping(BD10E9, reps);
+ }
+
+ public void time_formatGrouping_BigDecimal10e100(int reps) {
+ formatWithGrouping(BD10E100, reps);
+ }
+
+ public void time_formatGrouping_BigDecimal10e1000(int reps) {
+ formatWithGrouping(BD10E1000, reps);
+ }
+
+ public void time_formatBigDecimal10e3(int reps) {
+ format(BD10E3, reps);
+ }
+
+ public void time_formatBigDecimal10e9(int reps) {
+ format(BD10E9, reps);
+ }
+
+ public void time_formatBigDecimal10e100(int reps) {
+ format(BD10E100, reps);
+ }
+
+ public void time_formatBigDecimal10e1000(int reps) {
+ format(BD10E1000, reps);
+ }
+
+ public void time_formatPi(int reps) {
+ format(Math.PI, reps);
+ }
+
+ public void time_formatE(int reps) {
+ format(Math.E, reps);
+ }
+
+ public void time_formatUSD(int reps) {
+ formatCurrencyUS(WHOLE_NUMBER, reps);
+ }
+
+ public void time_formatUsdWithCents(int reps) {
+ formatCurrencyUS(TWO_DP_NUMBER, reps);
+ }
+
+ public void time_formatEur(int reps) {
+ formatCurrencyFR(WHOLE_NUMBER, reps);
+ }
+
+ public void time_formatEurWithCents(int reps) {
+ formatCurrencyFR(TWO_DP_NUMBER, reps);
+ }
+
+ public void time_formatAsExponent10e3(int reps) {
+ format(EXP_PATTERN, BD10E3, reps);
+ }
+
+ public void time_formatAsExponent10e9(int reps) {
+ format(EXP_PATTERN, BD10E9, reps);
+ }
+
+ public void time_formatAsExponent10e100(int reps) {
+ format(EXP_PATTERN, BD10E100, reps);
+ }
+
+ public void time_formatAsExponent10e1000(int reps) {
+ format(EXP_PATTERN, BD10E1000, reps);
+ }
+
+ public void time_formatToCharacterIterator10e3(int reps) {
+ formatToCharacterIterator(BD10E3, reps);
+ }
+
+ public void time_formatToCharacterIterator10e9(int reps) {
+ formatToCharacterIterator(BD10E9, reps);
+ }
+
+ public void time_formatToCharacterIterator10e100(int reps) {
+ formatToCharacterIterator(BD10E100, reps);
+ }
+
+ public void time_formatToCharacterIterator10e1000(int reps) {
+ formatToCharacterIterator(BD10E1000, reps);
+ }
+
+}
diff --git a/benchmarks/src/benchmarks/regression/IcuBenchmark.java b/benchmarks/src/benchmarks/regression/IcuBenchmark.java
index 2aed36b..36014f2 100644
--- a/benchmarks/src/benchmarks/regression/IcuBenchmark.java
+++ b/benchmarks/src/benchmarks/regression/IcuBenchmark.java
@@ -19,14 +19,68 @@
import com.google.caliper.SimpleBenchmark;
import java.util.Locale;
-import java.util.TimeZone;
import libcore.icu.ICU;
public class IcuBenchmark extends SimpleBenchmark {
- public void time_getBestDateTimePattern(int reps) throws Exception {
- for (int rep = 0; rep < reps; ++rep) {
- ICU.getBestDateTimePattern("dEEEMMM", new Locale("en", "US"));
+
+ private static final String ASCII_LOWERCASE = makeUnicodeRange(97, 122);
+ private static final String ASCII_UPPERCASE = makeUnicodeRange(65, 90);
+
+ private static final String LAT_1_SUPPLEMENT = makeUnicodeRange(0xC0, 0xFF);
+ private static final String LAT_EXTENDED_A = makeUnicodeRange(0x100, 0x17F);
+ private static final String LAT_EXTENDED_B = makeUnicodeRange(0x180, 0x24F);
+
+ private static final Locale CZECH_LOCALE = Locale.forLanguageTag("cs-CZ");
+ private static final Locale PINYIN_LOCALE = Locale.forLanguageTag("zh-Latn");
+
+ public static String makeUnicodeRange(int startingCodePoint, int endingCodePoint) {
+ char[] tmp = new char[endingCodePoint - startingCodePoint + 1];
+ for (int i = startingCodePoint; i <= endingCodePoint; i++) {
+ tmp[i - startingCodePoint] = (char) i;
+ }
+ return new String(tmp);
}
- }
+
+ public void time_getBestDateTimePattern(int reps) throws Exception {
+ for (int rep = 0; rep < reps; ++rep) {
+ ICU.getBestDateTimePattern("dEEEMMM", new Locale("en", "US"));
+ }
+ }
+
+ // Convert standard lowercase ASCII characters to uppercase using ICU4C in the US locale.
+ public void time_toUpperCaseAsciiUS(int reps) {
+ for (int i = 0; i < reps; i++) {
+ ICU.toUpperCase(ASCII_LOWERCASE, Locale.US);
+ }
+ }
+
+ // Convert standard uppercase ASCII characters to lowercase.
+ public void time_toLowerCaseAsciiUs(int reps) {
+ for (int i = 0; i < reps; i++) {
+ ICU.toLowerCase(ASCII_UPPERCASE, Locale.US);
+ }
+ }
+
+ // Convert Latin 1 supplement characters to uppercase in France locale.
+ public void time_toUpperCaseLat1SuplFr(int reps) {
+ for (int i = 0; i < reps; i++) {
+ ICU.toUpperCase(LAT_1_SUPPLEMENT, Locale.FRANCE);
+ }
+ }
+
+ // Convert Latin Extension A characters to uppercase in Czech locale
+ public void time_toUpperCaseLatExtACz(int reps) {
+ for (int i = 0; i < reps; i++) {
+ ICU.toUpperCase(LAT_EXTENDED_A, CZECH_LOCALE);
+ }
+ }
+
+ // Convert Latin Extension B characters to uppercase in Pinyin locale.
+ public void time_toUpperCaseLatExtBPinyin(int reps) {
+ for (int i = 0; i < reps; i++) {
+ ICU.toUpperCase(LAT_EXTENDED_B, PINYIN_LOCALE);
+ }
+ }
+
}
diff --git a/benchmarks/src/benchmarks/regression/IdnBenchmark.java b/benchmarks/src/benchmarks/regression/IdnBenchmark.java
new file mode 100644
index 0000000..9de5261
--- /dev/null
+++ b/benchmarks/src/benchmarks/regression/IdnBenchmark.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2015 Google Inc.
+ *
+ * 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 benchmarks.regression;
+
+import com.google.caliper.SimpleBenchmark;
+
+import java.net.IDN;
+
+public class IdnBenchmark extends SimpleBenchmark {
+
+ public void timeToUnicode(int reps) {
+ for (int i = 0; i < reps; i++) {
+ IDN.toASCII("fass.de");
+ IDN.toASCII("faß.de");
+ IDN.toASCII("fäß.de");
+ IDN.toASCII("a\u200Cb");
+ IDN.toASCII("öbb.at");
+ IDN.toASCII("abc・日本.co.jp");
+ IDN.toASCII("日本.co.jp");
+ IDN.toASCII("x\u0327\u0301.de");
+ IDN.toASCII("σόλοσ.gr");
+ }
+ }
+
+ public void timeToAscii(int reps) {
+ for (int i = 0; i < reps; i++) {
+ IDN.toUnicode("xn--fss-qla.de");
+ IDN.toUnicode("xn--n00d.com");
+ IDN.toUnicode("xn--bb-eka.at");
+ IDN.toUnicode("xn--og-09a.de");
+ IDN.toUnicode("xn--53h.de");
+ IDN.toUnicode("xn--iny-zx5a.de");
+ IDN.toUnicode("xn--abc-rs4b422ycvb.co.jp");
+ IDN.toUnicode("xn--wgv71a.co.jp");
+ IDN.toUnicode("xn--x-xbb7i.de");
+ IDN.toUnicode("xn--wxaikc6b.gr");
+ IDN.toUnicode("xn--wxaikc6b.xn--gr-gtd9a1b0g.de");
+ }
+ }
+
+}
diff --git a/benchmarks/src/benchmarks/regression/ReflectionBenchmark.java b/benchmarks/src/benchmarks/regression/ReflectionBenchmark.java
index fcb2636..4b47b26 100644
--- a/benchmarks/src/benchmarks/regression/ReflectionBenchmark.java
+++ b/benchmarks/src/benchmarks/regression/ReflectionBenchmark.java
@@ -163,6 +163,14 @@
}
}
+ public void timeClass_isInstance(int reps) throws Exception {
+ D d = new D();
+ Class<?> klass = IC.class;
+ for (int rep = 0; rep < reps; ++rep) {
+ klass.isInstance(d);
+ }
+ }
+
public void timeGetInstanceField(int reps) throws Exception {
for (int rep = 0; rep < reps; ++rep) {
// The field here (and in timeGetStaticField) were chosen to be
@@ -182,6 +190,18 @@
}
}
+ public void timeGetInterfaceStaticField(int reps) throws Exception {
+ for (int rep = 0; rep < reps; ++rep) {
+ F.class.getField("sf");
+ }
+ }
+
+ public void timeGetSuperClassField(int reps) throws Exception {
+ for (int rep = 0; rep < reps; ++rep) {
+ G.class.getField("f");
+ }
+ }
+
public static class C {
public static int sf = 0;
@@ -206,4 +226,26 @@
sf = value;
}
}
+
+ interface IA {
+ }
+
+ interface IB extends IA {
+ }
+
+ interface IC extends IB {
+ public static final int sf = 0;
+ }
+
+ class D implements IC {
+ }
+
+ class E extends D {
+ }
+
+ class F extends E implements IB {
+ }
+
+ class G extends C {
+ }
}
diff --git a/benchmarks/src/benchmarks/regression/StrictMathBenchmark.java b/benchmarks/src/benchmarks/regression/StrictMathBenchmark.java
index 44c030a..e844d93 100644
--- a/benchmarks/src/benchmarks/regression/StrictMathBenchmark.java
+++ b/benchmarks/src/benchmarks/regression/StrictMathBenchmark.java
@@ -30,6 +30,36 @@
private final int i = 1;
private final long l = 1L;
+ /* Values for full line coverage of ceiling function */
+ private static final double[] CEIL_DOUBLES = new double[] {
+ 3245817.2018463886,
+ 1418139.083668501,
+ 3.572936802189103E15,
+ -4.7828929737254625E249,
+ 213596.58636369856,
+ 6.891928421440976E-96,
+ -7.9318566885477E-36,
+ -1.9610339084804148E15,
+ -4.696725715628246E10,
+ 3742491.296880909,
+ 7.140274745333553E11
+ };
+
+ /* Values for full line coverage of floor function */
+ private static final double[] FLOOR_DOUBLES = new double[] {
+ 7.140274745333553E11,
+ 3742491.296880909,
+ -4.696725715628246E10,
+ -1.9610339084804148E15,
+ 7.049948629370372E-56,
+ -7.702933170334643E-16,
+ -1.99657681810579,
+ -1.1659287182288336E236,
+ 4.085518816513057E15,
+ -1500948.440658056,
+ -2.2316479921415575E7
+ };
+
public void timeAbsD(int reps) {
for (int rep = 0; rep < reps; ++rep) {
StrictMath.abs(d);
@@ -84,9 +114,11 @@
}
}
- public void timeCeil(int reps) {
+ public void timeCeilOverInterestingValues(int reps) {
for (int rep = 0; rep < reps; ++rep) {
- StrictMath.ceil(d);
+ for (int i = 0; i < CEIL_DOUBLES.length; ++i) {
+ StrictMath.ceil(CEIL_DOUBLES[i]);
+ }
}
}
@@ -126,9 +158,11 @@
}
}
- public void timeFloor(int reps) {
+ public void timeFloorOverInterestingValues(int reps) {
for (int rep = 0; rep < reps; ++rep) {
- StrictMath.floor(d);
+ for (int i = 0; i < FLOOR_DOUBLES.length; ++i) {
+ StrictMath.floor(FLOOR_DOUBLES[i]);
+ }
}
}
diff --git a/benchmarks/src/benchmarks/regression/StringEqualsBenchmark.java b/benchmarks/src/benchmarks/regression/StringEqualsBenchmark.java
new file mode 100644
index 0000000..3ba2ac1
--- /dev/null
+++ b/benchmarks/src/benchmarks/regression/StringEqualsBenchmark.java
@@ -0,0 +1,268 @@
+/*
+ * Copyright (C) 2015 Google Inc.
+ *
+ * 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 benchmarks.regression;
+
+import com.google.caliper.Param;
+import com.google.caliper.Runner;
+import com.google.caliper.SimpleBenchmark;
+import junit.framework.Assert;
+
+/**
+ * Benchmarks to measure the performance of String.equals for Strings of varying lengths.
+ * Each benchmarks makes 5 measurements, aiming at covering cases like strings of equal length
+ * that are not equal, identical strings with different references, strings with different endings,
+ * interned strings, and strings of different lengths.
+ */
+public class StringEqualsBenchmark extends SimpleBenchmark {
+ private final String long1 = "Ahead-of-time compilation is possible as the compiler may just"
+ + "convert an instruction thus: dex code: add-int v1000, v2000, v3000 C code: setIntRegter"
+ + "(1000, call_dex_add_int(getIntRegister(2000), getIntRegister(3000)) This means even lid"
+ + "instructions may have code generated, however, it is not expected that code generate in"
+ + "this way will perform well. The job of AOT verification is to tell the compiler that"
+ + "instructions are sound and provide tests to detect unsound sequences so slow path code"
+ + "may be generated. Other than for totally invalid code, the verification may fail at AOr"
+ + "run-time. At AOT time it can be because of incomplete information, at run-time it can e"
+ + "that code in a different apk that the application depends upon has changed. The Dalvik"
+ + "verifier would return a bool to state whether a Class were good or bad. In ART the fail"
+ + "case becomes either a soft or hard failure. Classes have new states to represent that a"
+ + "soft failure occurred at compile time and should be re-verified at run-time.";
+
+ private final String veryLong = "Garbage collection has two phases. The first distinguishes"
+ + "live objects from garbage objects. The second is reclaiming the rage of garbage object"
+ + "In the mark-sweep algorithm used by Dalvik, the first phase is achievd by computing the"
+ + "closure of all reachable objects in a process known as tracing from theoots. After the"
+ + "trace has completed, garbage objects are reclaimed. Each of these operations can be"
+ + "parallelized and can be interleaved with the operation of the applicationTraditionally,"
+ + "the tracing phase dominates the time spent in garbage collection. The greatreduction i"
+ + "pause time can be achieved by interleaving as much of this phase as possible with the"
+ + "application. If we simply ran the GC in a separate thread with no other changes, normal"
+ + "operation of an application would confound the trace. Abstractly, the GC walks the h o"
+ + "all reachable objects. When the application is paused, the object graph cannot change."
+ + "The GC can therefore walk this structure and assume that all reachable objects live."
+ + "When the application is running, this graph may be altered. New nodes may be addnd edge"
+ + "may be changed. These changes may cause live objects to be hidden and falsely recla by"
+ + "the GC. To avoid this problem a write barrier is used to intercept and record modifion"
+ + "to objects in a separate structure. After performing its walk, the GC will revisit the"
+ + "updated objects and re-validate its assumptions. Without a card table, the garbage"
+ + "collector would have to visit all objects reached during the trace looking for dirtied"
+ + "objects. The cost of this operation would be proportional to the amount of live data."
+ + "With a card table, the cost of this operation is proportional to the amount of updateat"
+ + "The write barrier in Dalvik is a card marking write barrier. Card marking is the proce"
+ + "of noting the location of object connectivity changes on a sub-page granularity. A car"
+ + "is merely a colorful term for a contiguous extent of memory smaller than a page, common"
+ + "somewhere between 128- and 512-bytes. Card marking is implemented by instrumenting all"
+ + "locations in the virtual machine which can assign a pointer to an object. After themal"
+ + "pointer assignment has occurred, a byte is written to a byte-map spanning the heap whic"
+ + "corresponds to the location of the updated object. This byte map is known as a card ta"
+ + "The garbage collector visits this card table and looks for written bytes to reckon the"
+ + "location of updated objects. It then rescans all objects located on the dirty card,"
+ + "correcting liveness assumptions that were invalidated by the application. While card"
+ + "marking imposes a small burden on the application outside of a garbage collection, the"
+ + "overhead of maintaining the card table is paid for by the reduced time spent inside"
+ + "garbage collection. With the concurrent garbage collection thread and a write barrier"
+ + "supported by the interpreter, JIT, and Runtime we modify garbage collection";
+
+ private final String[][] shortStrings = new String[][] {
+ // Equal, constant comparison
+ { "a", "a" },
+ // Different constants, first character different
+ { ":", " :"},
+ // Different constants, last character different, same length
+ { "ja M", "ja N"},
+ // Different constants, different lengths
+ {"$$$", "$$"},
+ // Force execution of code beyond reference equality check
+ {"hi", new String("hi")}
+ };
+
+ private final String[][] mediumStrings = new String[][] {
+ // Equal, constant comparison
+ { "Hello my name is ", "Hello my name is " },
+ // Different constants, different lengths
+ { "What's your name?", "Whats your name?" },
+ // Force execution of code beyond reference equality check
+ { "Android Runtime", new String("Android Runtime") },
+ // Different constants, last character different, same length
+ { "v3ry Cre@tiVe?****", "v3ry Cre@tiVe?***." },
+ // Different constants, first character different, same length
+ { "!@#$%^&*()_++*^$#@", "0@#$%^&*()_++*^$#@" }
+ };
+
+ private final String[][] longStrings = new String[][] {
+ // Force execution of code beyond reference equality check
+ { long1, new String(long1) },
+ // Different constants, last character different, same length
+ { long1 + "fun!", long1 + "----" },
+ // Equal, constant comparison
+ { long1 + long1, long1 + long1 },
+ // Different constants, different lengths
+ { long1 + "123456789", long1 + "12345678" },
+ // Different constants, first character different, same length
+ { "Android Runtime" + long1, "android Runtime" + long1 }
+ };
+
+ private final String[][] veryLongStrings = new String[][] {
+ // Force execution of code beyond reference equality check
+ { veryLong, new String(veryLong) },
+ // Different constants, different lengths
+ { veryLong + veryLong, veryLong + " " + veryLong },
+ // Equal, constant comparison
+ { veryLong + veryLong + veryLong, veryLong + veryLong + veryLong },
+ // Different constants, last character different, same length
+ { veryLong + "77777", veryLong + "99999" },
+ // Different constants, first character different
+ { "Android Runtime" + veryLong, "android Runtime" + veryLong }
+ };
+
+ private final String[][] endStrings = new String[][] {
+ // Different constants, medium but different lengths
+ { "Hello", "Hello " },
+ // Different constants, long but different lengths
+ { long1, long1 + "x"},
+ // Different constants, very long but different lengths
+ { veryLong, veryLong + "?"},
+ // Different constants, same medium lengths
+ { "How are you doing today?", "How are you doing today " },
+ // Different constants, short but different lengths
+ { "1", "1." }
+ };
+
+ private final String tmpStr1 = "012345678901234567890"
+ + "0123456789012345678901234567890123456789"
+ + "0123456789012345678901234567890123456789"
+ + "0123456789012345678901234567890123456789"
+ + "0123456789012345678901234567890123456789";
+
+ private final String tmpStr2 = "z012345678901234567890"
+ + "0123456789012345678901234567890123456789"
+ + "0123456789012345678901234567890123456789"
+ + "0123456789012345678901234567890123456789"
+ + "012345678901234567890123456789012345678x";
+
+ private final String[][] nonalignedStrings = new String[][] {
+ // Different non-word aligned medium length strings
+ { tmpStr1, tmpStr1.substring(1) },
+ // Different differently non-word aligned medium length strings
+ { tmpStr2, tmpStr2.substring(2) },
+ // Different non-word aligned long length strings
+ { long1, long1.substring(3) },
+ // Different non-word aligned very long length strings
+ { veryLong, veryLong.substring(1) },
+ // Equal non-word aligned constant strings
+ { "hello", "hello".substring(1) }
+ };
+
+ private final Object[] objects = new Object[] {
+ // Compare to Double object
+ new Double(1.5),
+ // Compare to Integer object
+ new Integer(9999999),
+ // Compare to String array
+ new String[] {"h", "i"},
+ // Compare to int array
+ new int[] {1, 2, 3},
+ // Compare to Character object
+ new Character('a')
+ };
+
+ // Check assumptions about how the compiler, new String(String), and String.intern() work.
+ // Any failures here would invalidate these benchmarks.
+ @Override protected void setUp() throws Exception {
+ // String constants are the same object
+ Assert.assertSame("abc", "abc");
+ // new String(String) makes a copy
+ Assert.assertNotSame("abc" , new String("abc"));
+ // Interned strings are treated like constants, so it is not necessary to
+ // separately benchmark interned strings.
+ Assert.assertSame("abc", "abc".intern());
+ Assert.assertSame("abc", new String("abc").intern());
+ // Compiler folds constant strings into new constants
+ Assert.assertSame(long1 + long1, long1 + long1);
+ }
+
+ // Benchmark cases of String.equals(null)
+ public void timeEqualsNull(int reps) {
+ for (int rep = 0; rep < reps; ++rep) {
+ for (int i = 0; i < mediumStrings.length; i++) {
+ mediumStrings[i][0].equals(null);
+ }
+ }
+ }
+
+ // Benchmark cases with very short (<5 character) Strings
+ public void timeEqualsShort(int reps) {
+ for (int rep = 0; rep < reps; ++rep) {
+ for (int i = 0; i < shortStrings.length; i++) {
+ shortStrings[i][0].equals(shortStrings[i][1]);
+ }
+ }
+ }
+
+ // Benchmark cases with medium length (10-15 character) Strings
+ public void timeEqualsMedium(int reps) {
+ for (int rep = 0; rep < reps; ++rep) {
+ for (int i = 0; i < mediumStrings.length; i++) {
+ mediumStrings[i][0].equals(mediumStrings[i][1]);
+ }
+ }
+ }
+
+ // Benchmark cases with long (>100 character) Strings
+ public void timeEqualsLong(int reps) {
+ for (int rep = 0; rep < reps; ++rep) {
+ for (int i = 0; i < longStrings.length; i++) {
+ longStrings[i][0].equals(longStrings[i][1]);
+ }
+ }
+ }
+
+ // Benchmark cases with very long (>1000 character) Strings
+ public void timeEqualsVeryLong(int reps) {
+ for (int rep = 0; rep < reps; ++rep) {
+ for (int i = 0; i < veryLongStrings.length; i++) {
+ veryLongStrings[i][0].equals(veryLongStrings[i][1]);
+ }
+ }
+ }
+
+ // Benchmark cases with non-word aligned Strings
+ public void timeEqualsNonWordAligned(int reps) {
+ for (int rep = 0; rep < reps; ++rep) {
+ for (int i = 0; i < nonalignedStrings.length; i++) {
+ nonalignedStrings[i][0].equals(nonalignedStrings[i][1]);
+ }
+ }
+ }
+
+ // Benchmark cases with slight differences in the endings
+ public void timeEqualsEnd(int reps) {
+ for (int rep = 0; rep < reps; ++rep) {
+ for (int i = 0; i < endStrings.length; i++) {
+ endStrings[i][0].equals(endStrings[i][1]);
+ }
+ }
+ }
+
+ // Benchmark cases of comparing a string to a non-string object
+ public void timeEqualsNonString(int reps) {
+ for (int rep = 0; rep < reps; ++rep) {
+ for (int i = 0; i < mediumStrings.length; i++) {
+ mediumStrings[i][0].equals(objects[i]);
+ }
+ }
+ }
+}
diff --git a/benchmarks/src/benchmarks/regression/SystemPropertiesBenchmark.java b/benchmarks/src/benchmarks/regression/SystemPropertiesBenchmark.java
deleted file mode 100644
index 9c675e1..0000000
--- a/benchmarks/src/benchmarks/regression/SystemPropertiesBenchmark.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (C) 2011 Google Inc.
- *
- * 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 benchmarks.regression;
-
-import com.google.caliper.SimpleBenchmark;
-
-public class SystemPropertiesBenchmark extends SimpleBenchmark {
- public void timeGetProperties(int reps) throws Exception {
- for (int i = 0; i < reps; ++i) {
- // Force the properties to be recreated.
- System.setProperties(null);
- System.getProperties();
- }
- }
-}
diff --git a/dalvik/src/main/java/dalvik/annotation/AndroidOnly.java b/dalvik/src/main/java/dalvik/annotation/AndroidOnly.java
deleted file mode 100644
index da3c1c5..0000000
--- a/dalvik/src/main/java/dalvik/annotation/AndroidOnly.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (C) 2008 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 dalvik.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Marks a test-case as Android-only, that is, it should not be executed on
- * other systems.
- *
- * @hide
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target({ ElementType.METHOD, ElementType.TYPE })
-public @interface AndroidOnly {
-
- /**
- * Plain text reason for adding this annotation.
- */
- String value();
-
-}
diff --git a/dalvik/src/main/java/dalvik/annotation/BrokenTest.java b/dalvik/src/main/java/dalvik/annotation/BrokenTest.java
deleted file mode 100644
index 16788d0..0000000
--- a/dalvik/src/main/java/dalvik/annotation/BrokenTest.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2008 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 dalvik.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Marks a test case as broken. This means the test case should be fixed.
- *
- * @hide
- *
- * @deprecated - use expectations/brokentests.txt instead
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target({ ElementType.METHOD })
-public @interface BrokenTest {
-
- /**
- * Plain text reason for adding this annotation.
- */
- String value();
-
-}
diff --git a/dalvik/src/main/java/dalvik/annotation/SideEffect.java b/dalvik/src/main/java/dalvik/annotation/SideEffect.java
deleted file mode 100644
index 2d691e3..0000000
--- a/dalvik/src/main/java/dalvik/annotation/SideEffect.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2008 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 dalvik.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Marks a test-case as either having a side-effect that other tests might
- * notice or suffering from such a side effect. Such tests should be run in an
- * isolated manner.
- *
- * @hide
- *
- * @deprecated - use expectations/brokentests.txt instead
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target({ ElementType.METHOD, ElementType.TYPE })
-public @interface SideEffect {
-
- /**
- * Plain text reason for adding this annotation.
- */
- String value();
-
-}
diff --git a/dalvik/src/main/java/dalvik/annotation/TestLevel.java b/dalvik/src/main/java/dalvik/annotation/TestLevel.java
deleted file mode 100644
index f62ea2f..0000000
--- a/dalvik/src/main/java/dalvik/annotation/TestLevel.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (C) 2008 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 dalvik.annotation;
-
-/**
- * Defines an enumeration of possible states a test case can be in.
- *
- * @hide
- */
-public enum TestLevel {
-
- /**
- * Indicates that a test method completely tests its target API method.
- */
- COMPLETE,
-
- /**
- * Indicates that a test method partially tests its target API method and
- * that together with all other {@code PARTIAL_COMPLETE} tests for the same
- * method it is sufficient.
- */
- PARTIAL_COMPLETE,
-
- /**
- * Just for compatibility purposes, will be removed later.
- */
- PARTIAL_OK,
-
- /**
- * Indicates that a test method partially tests its target API method. It
- * needs a second review phase to find out if the sum of all partial tests
- * is sufficient for completely testing the target API method. If yes, the
- * level has to be changed to {@code PARTIAL_COMPLETE}.
- */
- PARTIAL,
-
- /**
- * Indicates that a test method is known to not completely test an API
- * method but the missing test steps are too complex and costly to
- * implement. This level is positioned somewhere between {@code PARTIAL}
- * and {@code COMPLETE}.
- */
- SUFFICIENT,
-
- /**
- * Indicates that a test method provides additional testing for an API
- * method for which there already exists one {@code COMPLETE} or a set of
- * {@code PARTIAL_COMPLETE} tests. This level may also be used for test
- * methods that test a concept which can not be directly attributed to
- * the specification of an API method or class.
- */
- ADDITIONAL,
-
- /**
- * Indicates that there is nothing to test in an API method, for example if
- * the specification states that a method does nothing.
- */
- NOT_NECESSARY,
-
- /**
- * Indicates that it is very hard or impossible to test an API method.
- */
- NOT_FEASIBLE,
-
- /**
- * Indicates that the tests is either insufficient or wrong. Something needs
- * to be done about it.
- */
- TODO,
-
-}
diff --git a/dalvik/src/main/java/dalvik/annotation/TestTargetClass.java b/dalvik/src/main/java/dalvik/annotation/TestTargetClass.java
index 1e16d0c..89116ba 100644
--- a/dalvik/src/main/java/dalvik/annotation/TestTargetClass.java
+++ b/dalvik/src/main/java/dalvik/annotation/TestTargetClass.java
@@ -38,10 +38,4 @@
* Specifies the class being tested.
*/
Class<?> value();
-
- /**
- * Option to specify untested methods for the class.
- * @hide
- */
- TestTargetNew[] untestedMethods() default {};
}
diff --git a/dalvik/src/main/java/dalvik/annotation/TestTargetNew.java b/dalvik/src/main/java/dalvik/annotation/TestTargetNew.java
deleted file mode 100644
index 80aebee..0000000
--- a/dalvik/src/main/java/dalvik/annotation/TestTargetNew.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 2008 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 dalvik.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Defines an annotation used be used within the TestInfo annotation. It
- * specifies a single method target for the test (but can be used multiple
- * times).
- * @hide
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target({ ElementType.ANNOTATION_TYPE, ElementType.METHOD })
-public @interface TestTargetNew {
-
- /**
- * Specifies the name of the API method that is being tested. This field
- * may be left empty if the test target is a concept implemented in a
- * class rather than a concrete API method.
- */
- String method() default "";
-
- /**
- * Specifies the signature of the API method that is being tested, in terms
- * of Java classes.
- */
- Class<?>[] args() default {};
-
- /**
- * Specifies the class to which the tested method belongs. If this value is
- * not provided, the class identified in @TestTargetClass is used by the
- * test progress doclet.
- */
- Class<?> clazz() default void.class;
-
- /**
- * Specifies the level of coverage the tested API method has.
- */
- TestLevel level();
-
- /**
- * Specifies noteworthy plain-text information about the test, for example
- * if something is NOT covered by the test method.
- */
- String notes() default "";
-}
diff --git a/dalvik/src/main/java/dalvik/annotation/TestTargets.java b/dalvik/src/main/java/dalvik/annotation/TestTargets.java
deleted file mode 100644
index 207572c..0000000
--- a/dalvik/src/main/java/dalvik/annotation/TestTargets.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (C) 2008 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 dalvik.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Defines an annotation for test classes that allows to link them to the class
- * that is being tested. The current assumption is that the test are somewhat
- * organized according to the API classes they test. Might be too strict for
- * some cases.
- * @hide
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target({ ElementType.METHOD })
-public @interface TestTargets {
-
- /**
- * Specifies the API methods that are tested by the annotated test method.
- */
- TestTargetNew[] value();
-}
diff --git a/dalvik/src/main/java/dalvik/annotation/ToBeFixed.java b/dalvik/src/main/java/dalvik/annotation/ToBeFixed.java
deleted file mode 100644
index 751a038..0000000
--- a/dalvik/src/main/java/dalvik/annotation/ToBeFixed.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2008 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 dalvik.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Defines an annotation for test methods that indicate the test method
- * need to be fixed in future.
- * {@hide pending API Council approval}
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target({ ElementType.METHOD })
-public @interface ToBeFixed {
-
- /**
- * Specifies the related bug number on CTS bug tracking system.
- */
- String bug() default "";
-
- /**
- * Specifies why this method need to be fixed. If we think it's a bug, explain
- * the expectation and the actual result.
- */
- String explanation() default "";
-}
diff --git a/dalvik/src/main/java/dalvik/system/DexFile.java b/dalvik/src/main/java/dalvik/system/DexFile.java
index 52d5d8a..2330925 100644
--- a/dalvik/src/main/java/dalvik/system/DexFile.java
+++ b/dalvik/src/main/java/dalvik/system/DexFile.java
@@ -34,7 +34,12 @@
* read-only by the VM.
*/
public final class DexFile {
+ /**
+ * If close is called, mCookie becomes null but the internal cookie is preserved if the close
+ * failed so that we can free resources in the finalizer.
+ */
private Object mCookie;
+ private Object mInternalCookie;
private final String mFileName;
private final CloseGuard guard = CloseGuard.get();
@@ -58,6 +63,20 @@
public DexFile(File file) throws IOException {
this(file.getPath());
}
+ /*
+ * Private version with class loader argument.
+ *
+ * @param file
+ * the File object referencing the actual DEX file
+ * @param loader
+ * the class loader object creating the DEX file object
+ * @param elements
+ * the temporary dex path list elements from DexPathList.makeElements
+ */
+ DexFile(File file, ClassLoader loader, DexPathList.Element[] elements)
+ throws IOException {
+ this(file.getPath(), loader, elements);
+ }
/**
* Opens a DEX file from a given filename. This will usually be a ZIP/JAR
@@ -77,7 +96,22 @@
* access rights missing for opening it
*/
public DexFile(String fileName) throws IOException {
- mCookie = openDexFile(fileName, null, 0);
+ this(fileName, null, null);
+ }
+
+ /*
+ * Private version with class loader argument.
+ *
+ * @param fileName
+ * the filename of the DEX file
+ * @param loader
+ * the class loader creating the DEX file object
+ * @param elements
+ * the temporary dex path list elements from DexPathList.makeElements
+ */
+ DexFile(String fileName, ClassLoader loader, DexPathList.Element[] elements) throws IOException {
+ mCookie = openDexFile(fileName, null, 0, loader, elements);
+ mInternalCookie = mCookie;
mFileName = fileName;
guard.open("close");
//System.out.println("DEX FILE cookie is " + mCookie + " fileName=" + fileName);
@@ -93,8 +127,13 @@
* File that will hold the optimized form of the DEX data.
* @param flags
* Enable optional features.
+ * @param loader
+ * The class loader creating the DEX file object.
+ * @param elements
+ * The temporary dex path list elements from DexPathList.makeElements
*/
- private DexFile(String sourceName, String outputName, int flags) throws IOException {
+ private DexFile(String sourceName, String outputName, int flags, ClassLoader loader,
+ DexPathList.Element[] elements) throws IOException {
if (outputName != null) {
try {
String parent = new File(outputName).getParent();
@@ -108,9 +147,8 @@
}
}
- mCookie = openDexFile(sourceName, outputName, flags);
+ mCookie = openDexFile(sourceName, outputName, flags, loader, elements);
mFileName = sourceName;
- guard.open("close");
//System.out.println("DEX FILE cookie is " + mCookie + " sourceName=" + sourceName + " outputName=" + outputName);
}
@@ -148,7 +186,39 @@
* decided to open it multiple times. In practice this may not
* be a real issue.
*/
- return new DexFile(sourcePathName, outputPathName, flags);
+ return loadDex(sourcePathName, outputPathName, flags, null, null);
+ }
+
+ /*
+ * Private version of loadDex that also takes a class loader.
+ *
+ * @param sourcePathName
+ * Jar or APK file with "classes.dex". (May expand this to include
+ * "raw DEX" in the future.)
+ * @param outputPathName
+ * File that will hold the optimized form of the DEX data.
+ * @param flags
+ * Enable optional features. (Currently none defined.)
+ * @param loader
+ * Class loader that is aloading the DEX file.
+ * @param elements
+ * The temporary dex path list elements from DexPathList.makeElements
+ * @return
+ * A new or previously-opened DexFile.
+ * @throws IOException
+ * If unable to open the source or output file.
+ */
+ static DexFile loadDex(String sourcePathName, String outputPathName,
+ int flags, ClassLoader loader, DexPathList.Element[] elements) throws IOException {
+
+ /*
+ * TODO: we may want to cache previously-opened DexFile objects.
+ * The cache would be synchronized with close(). This would help
+ * us avoid mapping the same DEX more than once when an app
+ * decided to open it multiple times. In practice this may not
+ * be a real issue.
+ */
+ return new DexFile(sourcePathName, outputPathName, flags, loader, elements);
}
/**
@@ -167,17 +237,20 @@
/**
* Closes the DEX file.
* <p>
- * This may not be able to release any resources. If classes from this
- * DEX file are still resident, the DEX file can't be unmapped.
+ * This may not be able to release all of the resources. If classes from this DEX file are
+ * still resident, the DEX file can't be unmapped. In the case where we do not release all
+ * the resources, close is called again in the finalizer.
*
* @throws IOException
* if an I/O error occurs during closing the file, which
* normally should not happen
*/
public void close() throws IOException {
- if (mCookie != null) {
+ if (mInternalCookie != null) {
+ if (closeDexFile(mInternalCookie)) {
+ mInternalCookie = null;
+ }
guard.close();
- closeDexFile(mCookie);
mCookie = null;
}
}
@@ -216,14 +289,14 @@
* @hide
*/
public Class loadClassBinaryName(String name, ClassLoader loader, List<Throwable> suppressed) {
- return defineClass(name, loader, mCookie, suppressed);
+ return defineClass(name, loader, mCookie, this, suppressed);
}
private static Class defineClass(String name, ClassLoader loader, Object cookie,
- List<Throwable> suppressed) {
+ DexFile dexFile, List<Throwable> suppressed) {
Class result = null;
try {
- result = defineClassNative(name, loader, cookie);
+ result = defineClassNative(name, loader, cookie, dexFile);
} catch (NoClassDefFoundError e) {
if (suppressed != null) {
suppressed.add(e);
@@ -279,7 +352,11 @@
if (guard != null) {
guard.warnIfOpen();
}
- close();
+ if (mInternalCookie != null && !closeDexFile(mInternalCookie)) {
+ throw new AssertionError("Failed to close dex file in finalizer.");
+ }
+ mInternalCookie = null;
+ mCookie = null;
} finally {
super.finalize();
}
@@ -290,22 +367,32 @@
* Open a DEX file. The value returned is a magic VM cookie. On
* failure, an IOException is thrown.
*/
- private static Object openDexFile(String sourceName, String outputName, int flags) throws IOException {
+ private static Object openDexFile(String sourceName, String outputName, int flags,
+ ClassLoader loader, DexPathList.Element[] elements) throws IOException {
// Use absolute paths to enable the use of relative paths when testing on host.
return openDexFileNative(new File(sourceName).getAbsolutePath(),
- (outputName == null) ? null : new File(outputName).getAbsolutePath(),
- flags);
+ (outputName == null)
+ ? null
+ : new File(outputName).getAbsolutePath(),
+ flags,
+ loader,
+ elements);
}
- private static native void closeDexFile(Object cookie);
- private static native Class defineClassNative(String name, ClassLoader loader, Object cookie)
+ /*
+ * Returns true if we managed to close the dex file.
+ */
+ private static native boolean closeDexFile(Object cookie);
+ private static native Class defineClassNative(String name, ClassLoader loader, Object cookie,
+ DexFile dexFile)
throws ClassNotFoundException, NoClassDefFoundError;
private static native String[] getClassNameList(Object cookie);
/*
* Open a DEX file. The value returned is a magic VM cookie. On
* failure, an IOException is thrown.
*/
- private static native Object openDexFileNative(String sourceName, String outputName, int flags);
+ private static native Object openDexFileNative(String sourceName, String outputName, int flags,
+ ClassLoader loader, DexPathList.Element[] elements);
/**
* Returns true if the VM believes that the apk/jar file is out of date
diff --git a/dalvik/src/main/java/dalvik/system/DexPathList.java b/dalvik/src/main/java/dalvik/system/DexPathList.java
index e25feb9..d4f80e9 100644
--- a/dalvik/src/main/java/dalvik/system/DexPathList.java
+++ b/dalvik/src/main/java/dalvik/system/DexPathList.java
@@ -27,11 +27,12 @@
import java.util.Collections;
import java.util.Enumeration;
import java.util.List;
-import java.util.zip.ZipFile;
import java.util.zip.ZipEntry;
import libcore.io.IoUtils;
import libcore.io.Libcore;
-import static android.system.OsConstants.*;
+import libcore.io.ClassPathURLStreamHandler;
+
+import static android.system.OsConstants.S_ISDIR;
/**
* A pair of lists of entries, associated with a {@code ClassLoader}.
@@ -117,8 +118,8 @@
ArrayList<IOException> suppressedExceptions = new ArrayList<IOException>();
// save dexPath for BaseDexClassLoader
- this.dexElements = makePathElements(splitDexPath(dexPath), optimizedDirectory,
- suppressedExceptions);
+ this.dexElements = makeDexElements(splitDexPath(dexPath), optimizedDirectory,
+ suppressedExceptions, definingContext);
// Native libraries may exist in both the system and
// application library paths, and we use this search order:
@@ -136,8 +137,9 @@
List<File> allNativeLibraryDirectories = new ArrayList<>(nativeLibraryDirectories);
allNativeLibraryDirectories.addAll(systemNativeLibraryDirectories);
- this.nativeLibraryPathElements = makePathElements(allNativeLibraryDirectories, null,
- suppressedExceptions);
+ this.nativeLibraryPathElements = makePathElements(allNativeLibraryDirectories,
+ suppressedExceptions,
+ definingContext);
if (suppressedExceptions.size() > 0) {
this.dexElementsSuppressedExceptions =
@@ -169,8 +171,7 @@
/**
* Splits the given dex path string into elements using the path
* separator, pruning out any elements that do not refer to existing
- * and readable files. (That is, directories are not included in the
- * result.)
+ * and readable files.
*/
private static List<File> splitDexPath(String path) {
return splitPaths(path, false);
@@ -211,9 +212,36 @@
* Makes an array of dex/resource path elements, one per element of
* the given array.
*/
+ private static Element[] makeDexElements(List<File> files, File optimizedDirectory,
+ List<IOException> suppressedExceptions,
+ ClassLoader loader) {
+ return makeElements(files, optimizedDirectory, suppressedExceptions, false, loader);
+ }
+
+ /**
+ * Makes an array of directory/zip path elements, one per element of the given array.
+ */
+ private static Element[] makePathElements(List<File> files,
+ List<IOException> suppressedExceptions,
+ ClassLoader loader) {
+ return makeElements(files, null, suppressedExceptions, true, loader);
+ }
+
+ /*
+ * TODO (dimitry): Revert after GMS core stops relying on the existence of this
+ * method (see b/21957414 for details)
+ */
private static Element[] makePathElements(List<File> files, File optimizedDirectory,
List<IOException> suppressedExceptions) {
- List<Element> elements = new ArrayList<>();
+ return makeElements(files, null, suppressedExceptions, true, null);
+ }
+
+ private static Element[] makeElements(List<File> files, File optimizedDirectory,
+ List<IOException> suppressedExceptions,
+ boolean ignoreDexFiles,
+ ClassLoader loader) {
+ Element[] elements = new Element[files.size()];
+ int elementsPos = 0;
/*
* Open all files and load the (direct or contained) dex files
* up front.
@@ -232,29 +260,31 @@
} else if (file.isDirectory()) {
// We support directories for looking up resources and native libraries.
// Looking up resources in directories is useful for running libcore tests.
- elements.add(new Element(file, true, null, null));
+ elements[elementsPos++] = new Element(file, true, null, null);
} else if (file.isFile()) {
- if (name.endsWith(DEX_SUFFIX)) {
+ if (!ignoreDexFiles && name.endsWith(DEX_SUFFIX)) {
// Raw dex file (not inside a zip/jar).
try {
- dex = loadDexFile(file, optimizedDirectory);
+ dex = loadDexFile(file, optimizedDirectory, loader, elements);
} catch (IOException ex) {
System.logE("Unable to load dex file: " + file, ex);
}
} else {
zip = file;
- try {
- dex = loadDexFile(file, optimizedDirectory);
- } catch (IOException suppressed) {
- /*
- * IOException might get thrown "legitimately" by the DexFile constructor if
- * the zip file turns out to be resource-only (that is, no classes.dex file
- * in it).
- * Let dex == null and hang on to the exception to add to the tea-leaves for
- * when findClass returns null.
- */
- suppressedExceptions.add(suppressed);
+ if (!ignoreDexFiles) {
+ try {
+ dex = loadDexFile(file, optimizedDirectory, loader, elements);
+ } catch (IOException suppressed) {
+ /*
+ * IOException might get thrown "legitimately" by the DexFile constructor if
+ * the zip file turns out to be resource-only (that is, no classes.dex file
+ * in it).
+ * Let dex == null and hang on to the exception to add to the tea-leaves for
+ * when findClass returns null.
+ */
+ suppressedExceptions.add(suppressed);
+ }
}
}
} else {
@@ -262,24 +292,28 @@
}
if ((zip != null) || (dex != null)) {
- elements.add(new Element(dir, false, zip, dex));
+ elements[elementsPos++] = new Element(dir, false, zip, dex);
}
}
-
- return elements.toArray(new Element[elements.size()]);
+ if (elementsPos != elements.length) {
+ elements = Arrays.copyOf(elements, elementsPos);
+ }
+ return elements;
}
/**
- * Constructs a {@code DexFile} instance, as appropriate depending
- * on whether {@code optimizedDirectory} is {@code null}.
+ * Constructs a {@code DexFile} instance, as appropriate depending on whether
+ * {@code optimizedDirectory} is {@code null}. An application image file may be associated with
+ * the {@code loader} if it is not null.
*/
- private static DexFile loadDexFile(File file, File optimizedDirectory)
+ private static DexFile loadDexFile(File file, File optimizedDirectory, ClassLoader loader,
+ Element[] elements)
throws IOException {
if (optimizedDirectory == null) {
- return new DexFile(file);
+ return new DexFile(file, loader, elements);
} else {
String optimizedPath = optimizedPathFor(file, optimizedDirectory);
- return DexFile.loadDex(file.getPath(), optimizedPath, 0);
+ return DexFile.loadDex(file.getPath(), optimizedPath, 0, loader, elements);
}
}
@@ -408,7 +442,7 @@
}
/**
- * Element of the dex/resource file path
+ * Element of the dex/resource/native library path
*/
/*package*/ static class Element {
private final File dir;
@@ -416,7 +450,7 @@
private final File zip;
private final DexFile dexFile;
- private ZipFile zipFile;
+ private ClassPathURLStreamHandler urlHandler;
private boolean initialized;
public Element(File dir, boolean isDirectory, File zip, DexFile dexFile) {
@@ -449,7 +483,7 @@
}
try {
- zipFile = new ZipFile(zip);
+ urlHandler = new ClassPathURLStreamHandler(zip.getPath());
} catch (IOException ioe) {
/*
* Note: ZipException (a subclass of IOException)
@@ -458,25 +492,10 @@
* file).
*/
System.logE("Unable to open zip file: " + zip, ioe);
- zipFile = null;
+ urlHandler = null;
}
}
- /**
- * Returns true if entry with specified path exists and not compressed.
- *
- * Note that ZipEntry does not provide information about offset so we
- * cannot reliably check if entry is page-aligned. For now we are going
- * take optimistic approach and rely on (1) if library was extracted
- * it would have been found by the previous step (2) if library was not extracted
- * but STORED and not page-aligned the installation of the app would have failed
- * because of checks in PackageManagerService.
- */
- private boolean isZipEntryExistsAndStored(ZipFile zipFile, String path) {
- ZipEntry entry = zipFile.getEntry(path);
- return entry != null && entry.getMethod() == ZipEntry.STORED;
- }
-
public String findNativeLibrary(String name) {
maybeInit();
@@ -485,9 +504,13 @@
if (IoUtils.canOpenReadOnly(path)) {
return path;
}
- } else if (zipFile != null) {
+ } else if (urlHandler != null) {
+ // Having a urlHandler means the element has a zip file.
+ // In this case Android supports loading the library iff
+ // it is stored in the zip uncompressed.
+
String entryName = new File(dir, name).getPath();
- if (isZipEntryExistsAndStored(zipFile, entryName)) {
+ if (urlHandler.isEntryStored(entryName)) {
return zip.getPath() + zipSeparator + entryName;
}
}
@@ -511,27 +534,12 @@
}
}
- if (zipFile == null || zipFile.getEntry(name) == null) {
- /*
- * Either this element has no zip/jar file (first
- * clause), or the zip/jar file doesn't have an entry
- * for the given name (second clause).
+ if (urlHandler == null) {
+ /* This element has no zip/jar file.
*/
return null;
}
-
- try {
- /*
- * File.toURL() is compliant with RFC 1738 in
- * always creating absolute path names. If we
- * construct the URL by concatenating strings, we
- * might end up with illegal URLs for relative
- * names.
- */
- return new URL("jar:" + zip.toURL() + "!/" + name);
- } catch (MalformedURLException ex) {
- throw new RuntimeException(ex);
- }
+ return urlHandler.getEntryUrlOrNull(name);
}
}
}
diff --git a/dalvik/src/main/java/dalvik/system/VMDebug.java b/dalvik/src/main/java/dalvik/system/VMDebug.java
index 59e28e2..23d7407 100644
--- a/dalvik/src/main/java/dalvik/system/VMDebug.java
+++ b/dalvik/src/main/java/dalvik/system/VMDebug.java
@@ -361,6 +361,8 @@
/**
* Counts the instances of a class.
+ * It is the caller's responsibility to do GC if they don't want unreachable
+ * objects to get counted.
*
* @param klass the class to be counted.
* @param assignable if false, direct instances of klass are
@@ -372,6 +374,21 @@
public static native long countInstancesOfClass(Class klass, boolean assignable);
/**
+ * Counts the instances of classes.
+ * It is the caller's responsibility to do GC if they don't want unreachable
+ * objects to get counted.
+ *
+ * @param classes the classes to be counted.
+ * @param assignable if false, direct instances of klass are
+ * counted. If true, instances that are
+ * assignable to klass, as defined by
+ * {@link Class#isAssignableFrom} are counted.
+ * @return an array containing the number of matching instances. The value for
+ * an index is the number of instances of the class at that index in number classes.
+ */
+ public static native long[] countInstancesOfClasses(Class[] classes, boolean assignable);
+
+ /**
* Export the heap per-space stats for dumpsys meminfo.
*
* The content of the array is:
diff --git a/expectations/brokentests.txt b/expectations/brokentests.txt
index 20734cf..de6f21d 100644
--- a/expectations/brokentests.txt
+++ b/expectations/brokentests.txt
@@ -8,18 +8,6 @@
bug: 5834665
},
{
- description: "libcore.java.net.URLConnectionTest#testServerShutdownInput fails on ICL27 mysid-userdebug (5534202 is caused by 5731252)",
- name: "libcore.java.net.URLConnectionTest#testServerShutdownInput",
- bug: 5534202
-},
-{
- description: "This test has been failing in our continuous build recently.",
- names: [
- "libcore.java.net.URLConnectionTest#testConnectTimeouts"
- ],
- bug: 3441111
-},
-{
description: "We're retiring the security manager. Unfortunately, tests all over the place
need to check that they're secure, so they all fail when we refuse to install
a security manager. This suppresses all of these failures.",
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/java/lang/ClassLoaderTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/java/lang/ClassLoaderTest.java
index 2caab39..73562c6 100644
--- a/harmony-tests/src/test/java/org/apache/harmony/tests/java/lang/ClassLoaderTest.java
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/java/lang/ClassLoaderTest.java
@@ -21,6 +21,11 @@
import java.io.IOException;
import java.io.InputStream;
+import java.net.JarURLConnection;
+import java.net.URL;
+import java.util.Arrays;
+import java.util.jar.JarFile;
+import libcore.io.Streams;
public class ClassLoaderTest extends TestCase {
@@ -130,6 +135,71 @@
assertGetResourceAsStreamNotNull(testClassLoader, ClassTest.SHARP_RESOURCE_ABS_NAME);
}
+ public void testUncachedJarStreamBehavior() throws Exception {
+ URL resourceFromJar = testClassLoader.getResource(TEST_RESOURCE_NAME);
+ JarURLConnection uncachedConnection = (JarURLConnection) resourceFromJar.openConnection();
+ uncachedConnection.setUseCaches(false);
+ JarFile uncachedJarFile = uncachedConnection.getJarFile();
+ InputStream is = uncachedConnection.getInputStream();
+ is.close();
+
+ assertTrue("Closing the stream should close a cached connection",
+ isJarUrlConnectClosed(uncachedConnection));
+
+ // Closing the stream closes the JarFile.
+ assertTrue(isJarFileClosed(uncachedJarFile));
+ }
+
+ public void testCachedJarStreamBehavior() throws Exception {
+ URL resourceFromJar = testClassLoader.getResource(TEST_RESOURCE_NAME);
+ JarURLConnection cachedConnection1 = (JarURLConnection) resourceFromJar.openConnection();
+ assertTrue(cachedConnection1.getUseCaches());
+
+ JarURLConnection cachedConnection2 = (JarURLConnection) resourceFromJar.openConnection();
+ assertTrue(cachedConnection2.getUseCaches());
+
+ InputStream is1 = cachedConnection1.getInputStream();
+ byte[] resourceData1 = Streams.readFullyNoClose(is1);
+ is1.close();
+ assertFalse("Closing the stream should not close a cached connection",
+ isJarUrlConnectClosed(cachedConnection1));
+
+ InputStream is2 = cachedConnection2.getInputStream();
+ byte[] resourceData2 = Streams.readFullyNoClose(is2);
+ is2.close();
+ assertFalse("Closing the stream should not close a cached connection",
+ isJarUrlConnectClosed(cachedConnection2));
+
+ assertEquals(Arrays.toString(resourceData1), Arrays.toString(resourceData2));
+ }
+
+ public void testResourceJarFileBehavior() throws Exception {
+ URL resourceFromJar = testClassLoader.getResource(TEST_RESOURCE_NAME);
+ JarURLConnection urlConnection1 = (JarURLConnection) resourceFromJar.openConnection();
+ assertTrue(urlConnection1.getUseCaches());
+
+ JarURLConnection urlConnection2 = (JarURLConnection) resourceFromJar.openConnection();
+ assertTrue(urlConnection1.getUseCaches());
+ assertNotSame(urlConnection1, urlConnection2);
+
+ JarURLConnection uncachedConnection = (JarURLConnection) resourceFromJar.openConnection();
+ assertNotSame(uncachedConnection, urlConnection2);
+ uncachedConnection.setUseCaches(false);
+
+ JarFile jarFile1 = urlConnection1.getJarFile();
+ JarFile jarFile2 = urlConnection2.getJarFile();
+ // Note: This implies nobody should ever call JarFile.close() when caching is enabled.
+ // We cannot test this, because it will break later tests.
+ assertSame(jarFile1, jarFile2);
+
+ JarFile uncachedJarFile = uncachedConnection.getJarFile();
+ assertNotSame(jarFile1, uncachedJarFile);
+ uncachedJarFile.close();
+
+ assertFalse(isJarFileClosed(jarFile1));
+ assertTrue(isJarFileClosed(uncachedJarFile));
+ }
+
private static void assertGetResourceAsStreamNotNull(ClassLoader classLoader,
String resourceName) throws IOException {
InputStream is = null;
@@ -155,4 +225,25 @@
fail("IOException getting stream for resource : " + e.getMessage());
}
}
+
+ private static boolean isJarFileClosed(JarFile jarFile) {
+ // Indirectly detect that the JarFile has been closed.
+ try {
+ jarFile.getEntry("anyName");
+ return false;
+ } catch (IllegalStateException expected) {
+ return true;
+ }
+ }
+
+ private static boolean isJarUrlConnectClosed(JarURLConnection jarURLConnection)
+ throws IOException {
+ // Indirectly detect that the jarURLConnection has been closed.
+ try {
+ jarURLConnection.getInputStream();
+ return false;
+ } catch (IllegalStateException e) {
+ return true;
+ }
+ }
}
\ No newline at end of file
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/java/lang/Process2Test.java b/harmony-tests/src/test/java/org/apache/harmony/tests/java/lang/Process2Test.java
index 649488c..7294bdd 100644
--- a/harmony-tests/src/test/java/org/apache/harmony/tests/java/lang/Process2Test.java
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/java/lang/Process2Test.java
@@ -17,8 +17,6 @@
package org.apache.harmony.tests.java.lang;
-import dalvik.annotation.AndroidOnly;
-
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.IOException;
@@ -35,7 +33,6 @@
* java.lang.Process#getOutputStream()
* Tests if these methods return buffered streams.
*/
- @AndroidOnly("dalvikvm specific")
public void test_streams()
throws IOException, InterruptedException {
Process p = javaProcessBuilder().start();
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/java/lang/reflect/GenericSignatureFormatErrorTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/java/lang/reflect/GenericSignatureFormatErrorTest.java
index 0cad681..20b9ab0 100644
--- a/harmony-tests/src/test/java/org/apache/harmony/tests/java/lang/reflect/GenericSignatureFormatErrorTest.java
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/java/lang/reflect/GenericSignatureFormatErrorTest.java
@@ -1,6 +1,5 @@
package org.apache.harmony.tests.java.lang.reflect;
-import dalvik.annotation.AndroidOnly;
import dalvik.system.DexFile;
import junit.framework.TestCase;
@@ -31,8 +30,6 @@
}
- @AndroidOnly("Uses Android specific class dalvik.system.DexFile " +
- "for loading classes.")
// SideEffect: strange issue (exception: 'could not open dex file',
// dalvikvm: 'waitpid failed' log msg - only occurs when @SideEffect is removed
// and this test is run via running tests.luni.AllTestsLang TestSuite
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/java/net/DatagramSocketTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/java/net/DatagramSocketTest.java
index d9f3d91..e8f8e29 100644
--- a/harmony-tests/src/test/java/org/apache/harmony/tests/java/net/DatagramSocketTest.java
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/java/net/DatagramSocketTest.java
@@ -819,7 +819,7 @@
}
public void test_getReuseAddress() throws Exception {
- DatagramSocket theSocket = new DatagramSocket();
+ DatagramSocket theSocket = new DatagramSocket(null);
theSocket.setReuseAddress(true);
assertTrue("getReuseAddress false when it should be true", theSocket.getReuseAddress());
theSocket.setReuseAddress(false);
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/java/nio/channels/SinkChannelTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/java/nio/channels/SinkChannelTest.java
index 32f59c5..55a8fc3 100644
--- a/harmony-tests/src/test/java/org/apache/harmony/tests/java/nio/channels/SinkChannelTest.java
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/java/nio/channels/SinkChannelTest.java
@@ -463,7 +463,8 @@
public void test_socketChannel_read_close() throws Exception {
ServerSocketChannel ssc = ServerSocketChannel.open();
- ssc.socket().bind(new InetSocketAddress(InetAddress.getLocalHost(),49999));
+ ssc.socket().bind(new InetSocketAddress(InetAddress.getLocalHost(), 0 /* any free port */));
+ int localPort = ssc.socket().getLocalPort();
SocketChannel sc = SocketChannel.open();
ByteBuffer buf = null;
try{
@@ -472,7 +473,7 @@
}catch (NullPointerException e){
// expected
}
- sc.connect(new InetSocketAddress(InetAddress.getLocalHost(),49999));
+ sc.connect(new InetSocketAddress(InetAddress.getLocalHost(), localPort));
SocketChannel sock = ssc.accept();
ssc.close();
sc.close();
@@ -487,9 +488,10 @@
public void test_socketChannel_read_write() throws Exception {
ServerSocketChannel ssc = ServerSocketChannel.open();
- ssc.socket().bind(new InetSocketAddress(InetAddress.getLocalHost(),49999));
+ ssc.socket().bind(new InetSocketAddress(InetAddress.getLocalHost(), 0 /* any free port */));
+ int localPort = ssc.socket().getLocalPort();
SocketChannel sc = SocketChannel.open();
- sc.connect(new InetSocketAddress(InetAddress.getLocalHost(),49999));
+ sc.connect(new InetSocketAddress(InetAddress.getLocalHost(), localPort));
SocketChannel sock = ssc.accept();
ByteBuffer[] buf = {ByteBuffer.allocate(10),null};
try {
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/CollationElementIteratorTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/CollationElementIteratorTest.java
index 081b446..e7334bc 100644
--- a/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/CollationElementIteratorTest.java
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/CollationElementIteratorTest.java
@@ -34,9 +34,12 @@
public class CollationElementIteratorTest extends TestCase {
private RuleBasedCollator coll;
+ private RuleBasedCollator traditionalSpanishColl;
protected void setUp() {
coll = (RuleBasedCollator) Collator.getInstance(Locale.US);
+ traditionalSpanishColl = (RuleBasedCollator)
+ Collator.getInstance(Locale.forLanguageTag("es-u-co-trad"));
}
public void testGetOffset() {
@@ -191,10 +194,8 @@
}
public void testSetTextString() {
- RuleBasedCollator rbColl = (RuleBasedCollator) Collator.getInstance(
- Locale.forLanguageTag("es-u-co-trad"));
String text = "caa";
- CollationElementIterator iterator = rbColl.getCollationElementIterator(text);
+ CollationElementIterator iterator = traditionalSpanishColl.getCollationElementIterator(text);
iterator.setOffset(0);
assertEquals(0, iterator.getOffset());
iterator.setOffset(1);
@@ -211,14 +212,14 @@
}
public void testSetTextCharacterIterator() {
- RuleBasedCollator rbColl = (RuleBasedCollator) Collator.getInstance(
- Locale.forLanguageTag("es-u-co-trad"));
String text = "caa";
- CollationElementIterator iterator = rbColl.getCollationElementIterator(text);
+ CollationElementIterator iterator = traditionalSpanishColl.getCollationElementIterator(text);
iterator.setOffset(1);
assertEquals(1, iterator.getOffset());
+ // In traditional spanish the "ch" acts as a single character so the iterator cannot stop
+ // between the 'c' and the 'h', it goes back if that is attempted.
iterator.setText(new StringCharacterIterator("cha"));
iterator.setOffset(1);
- assertEquals(1, iterator.getOffset());
+ assertEquals(0, iterator.getOffset());
}
}
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/DecimalFormatTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/DecimalFormatTest.java
index e0e04e8..3d710c5 100644
--- a/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/DecimalFormatTest.java
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/DecimalFormatTest.java
@@ -922,8 +922,8 @@
"$$#0.######",
"%#,###,####", // icu only. icu supports two grouping sizes
"#,##0.00;(#,##0.00)",
- "#0.##-'E'"
- // icu only. E in the suffix does not need to be quoted. This is done automatically.
+ "#0.##-E"
+ // icu only. E in the suffix does not need to be quoted.
};
for (int i = 0; i < patterns.length; i++) {
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/NumberFormatTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/NumberFormatTest.java
index 49e3d9e..98d1ba7 100644
--- a/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/NumberFormatTest.java
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/NumberFormatTest.java
@@ -172,9 +172,12 @@
// try with a locale that has a different integer pattern
format = (DecimalFormat) NumberFormat.getIntegerInstance(arLocale);
+ // Previous versions of android use just the positive format string (ICU4C) although now we
+ // use '<positive_format>;<negative_format>' because of ICU4J denormalization.
+ String variant = (format.toPattern().indexOf(';') > 0) ? "#,##0;-#,##0" : "#,##0";
assertEquals(
"Test7: NumberFormat.getIntegerInstance(new Locale(\"ar\", \"AE\")).toPattern() returned wrong pattern",
- "#,##0", format.toPattern());
+ variant, format.toPattern());
assertEquals(
"Test8: NumberFormat.getIntegerInstance(new Locale(\"ar\", \"AE\")).format(-35.76) returned wrong value",
"\u200f-\u0666", format.format(-6));
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/RuleBasedCollatorTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/RuleBasedCollatorTest.java
index 906857b..3e67e46 100644
--- a/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/RuleBasedCollatorTest.java
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/RuleBasedCollatorTest.java
@@ -40,17 +40,11 @@
}
public void testHashCode() throws ParseException {
- {
- String rule = "&9 < a < b < c < d";
- RuleBasedCollator coll = new RuleBasedCollator(rule);
- assertEquals(rule.hashCode(), coll.hashCode());
- }
+ String rule = "&9 < a < b < c < d";
- {
- String rule = "&9 < a < b < c < d < e";
- RuleBasedCollator coll = new RuleBasedCollator(rule);
- assertEquals(rule.hashCode(), coll.hashCode());
- }
+ RuleBasedCollator coll = new RuleBasedCollator(rule);
+ RuleBasedCollator same = new RuleBasedCollator(rule);
+ assertEquals(coll.hashCode(), same.hashCode());
}
public void testClone() throws ParseException {
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/ArraysTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/ArraysTest.java
index 277abce..8b4844c 100644
--- a/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/ArraysTest.java
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/ArraysTest.java
@@ -2217,7 +2217,7 @@
long[] b = new long[a.length];
for (int i = 0; i < a.length; i++) {
- b[i] = (int) a[i];
+ b[i] = (long) a[i];
}
return b;
}
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/EnumMapTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/EnumMapTest.java
index 676e373..b201468 100644
--- a/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/EnumMapTest.java
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/EnumMapTest.java
@@ -16,8 +16,6 @@
package org.apache.harmony.tests.java.util;
-import dalvik.annotation.AndroidOnly;
-
import java.util.ArrayList;
import java.util.Collection;
import java.util.EnumMap;
@@ -333,7 +331,7 @@
/**
* java.util.EnumMap#entrySet()
*/
- @AndroidOnly("Map.Entry is indirectly modified on RI when Iterator.next() is invoked")
+ // AndroidOnly("Map.Entry is indirectly modified on RI when Iterator.next() is invoked")
@SuppressWarnings({ "unchecked", "boxing" })
public void test_entrySet() {
EnumMap enumSizeMap = new EnumMap(Size.class);
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/FormatterTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/FormatterTest.java
index c0e814e..87e177f 100644
--- a/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/FormatterTest.java
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/FormatterTest.java
@@ -152,6 +152,8 @@
private TimeZone defaultTimeZone;
+ private Locale defaultLocale;
+
/**
* java.util.Formatter#Formatter()
*/
@@ -4164,6 +4166,7 @@
* test the short name for timezone whether uses DaylightTime or not
*/
public void test_DaylightTime() {
+ Locale.setDefault(Locale.US);
Calendar c1 = new GregorianCalendar(2007, 0, 1);
Calendar c2 = new GregorianCalendar(2007, 7, 1);
@@ -4216,6 +4219,8 @@
secret = File.createTempFile("secret", null);
+ defaultLocale = Locale.getDefault();
+
defaultTimeZone = TimeZone.getDefault();
TimeZone cst = TimeZone.getTimeZone("Asia/Shanghai");
TimeZone.setDefault(cst);
@@ -4239,6 +4244,7 @@
secret.delete();
}
+ Locale.setDefault(defaultLocale);
TimeZone.setDefault(defaultTimeZone);
}
}
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/GregorianCalendarTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/GregorianCalendarTest.java
index f35be4b..6f25495 100644
--- a/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/GregorianCalendarTest.java
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/GregorianCalendarTest.java
@@ -31,6 +31,20 @@
private static final TimeZone AMERICA_CHICAGO = TimeZone.getTimeZone("America/Chicago");
private static final TimeZone AMERICA_NEW_YORK = TimeZone.getTimeZone("America/New_York");
+ private Locale defaultLocale;
+
+ @Override
+ public void setUp() throws Exception {
+ super.setUp();
+ defaultLocale = Locale.getDefault();
+ }
+
+ @Override
+ public void tearDown() throws Exception {
+ Locale.setDefault(defaultLocale);
+ super.tearDown();
+ }
+
/**
* java.util.GregorianCalendar#GregorianCalendar()
*/
@@ -531,6 +545,8 @@
* java.util.GregorianCalendar#roll(int, boolean)
*/
public void test_rollIZ() {
+ Locale.setDefault(Locale.US);
+
// Test for method void java.util.GregorianCalendar.roll(int, boolean)
GregorianCalendar gc = new GregorianCalendar(1972, Calendar.OCTOBER,
13, 19, 9, 59);
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/RandomTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/RandomTest.java
index d51d8abf..f790a31 100644
--- a/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/RandomTest.java
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/RandomTest.java
@@ -18,12 +18,13 @@
package org.apache.harmony.tests.java.util;
import java.io.Serializable;
+import java.util.Arrays;
import java.util.Random;
import org.apache.harmony.testframework.serialization.SerializationTest;
public class RandomTest extends junit.framework.TestCase {
- Random r;
+ private Random r;
/**
* java.util.Random#Random()
@@ -44,6 +45,17 @@
.nextInt() == r2.nextInt());
}
+ public void test_setSeed() {
+ Random r = new Random();
+ r.setSeed(1337);
+ Random r2 = new Random();
+ r2.setSeed(1337);
+ for (int i = 0; i < 100; i++)
+ assertTrue("Values from randoms with same seed don't match", r
+ .nextInt() == r2.nextInt());
+ }
+
+
/**
* java.util.Random#nextBoolean()
*/
@@ -216,38 +228,39 @@
*/
public void test_setSeedJ() {
// Test for method void java.util.Random.setSeed(long)
- long[] randomArray = new long[100];
- boolean someDifferent = false;
- final long firstSeed = 1000;
- long aLong, anotherLong, yetAnotherLong;
- Random aRandom = new Random();
- Random anotherRandom = new Random();
- Random yetAnotherRandom = new Random();
- aRandom.setSeed(firstSeed);
- anotherRandom.setSeed(firstSeed);
- for (int counter = 0; counter < randomArray.length; counter++) {
- aLong = aRandom.nextLong();
- anotherLong = anotherRandom.nextLong();
- assertTrue(
- "Two randoms with same seeds gave differing nextLong values",
- aLong == anotherLong);
- yetAnotherLong = yetAnotherRandom.nextLong();
- randomArray[counter] = aLong;
- if (aLong != yetAnotherLong)
- someDifferent = true;
+ long[] random1Values = new long[100];
+ long[] random2Values = new long[100];
+ long[] random3Values = new long[100];
+
+ Random random1 = new Random();
+ Random random2 = new Random();
+ Random random3 = new Random();
+
+ random1.setSeed(1337);
+ random2.setSeed(1337);
+ random3.setSeed(5000);
+
+ for (int i = 0; i < 100; ++i) {
+ random1Values[i] = random1.nextLong();
+ random2Values[i] = random2.nextLong();
+ random3Values[i] = random3.nextLong();
}
- assertTrue(
- "Two randoms with the different seeds gave the same chain of values",
- someDifferent);
- aRandom.setSeed(firstSeed);
- for (int counter = 0; counter < randomArray.length; counter++)
- assertTrue(
- "Reseting a random to its old seed did not result in the same chain of values as it gave before",
- aRandom.nextLong() == randomArray[counter]);
+
+ assertTrue(Arrays.equals(random1Values, random2Values));
+ assertFalse(Arrays.equals(random2Values, random3Values));
+
+ // Set random3's seed to 1337 and assert it results in the same sequence of
+ // values as the first two randoms.
+ random3.setSeed(1337);
+ for (int i = 0; i < 100; ++i) {
+ random3Values[i] = random3.nextLong();
+ }
+
+ assertTrue(Arrays.equals(random1Values, random3Values));
}
- class Mock_Random extends Random {
- boolean nextCalled = false;
+ static final class Mock_Random extends Random {
+ private boolean nextCalled = false;
public boolean getFlag () {
boolean retVal = nextCalled;
@@ -283,18 +296,12 @@
assertTrue(mr.getFlag());
}
- /**
- * Sets up the fixture, for example, open a network connection. This method
- * is called before a test is executed.
- */
+ @Override
protected void setUp() {
r = new Random();
}
- /**
- * Tears down the fixture, for example, close a network connection. This
- * method is called after a test is executed.
- */
+ @Override
protected void tearDown() {
}
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/WeakHashMapTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/WeakHashMapTest.java
index 1d5294f..395f495 100644
--- a/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/WeakHashMapTest.java
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/WeakHashMapTest.java
@@ -57,8 +57,7 @@
for (int i = 0; i < 100; i++)
whm.put(keyArray[i], valueArray[i]);
for (int i = 0; i < 100; i++)
- assertTrue("Incorrect value retrieved",
- whm.get(keyArray[i]) == valueArray[i]);
+ assertTrue("Incorrect value retrieved", whm.get(keyArray[i]) == valueArray[i]);
}
@@ -71,8 +70,7 @@
for (int i = 0; i < 100; i++)
whm.put(keyArray[i], valueArray[i]);
for (int i = 0; i < 100; i++)
- assertTrue("Incorrect value retrieved",
- whm.get(keyArray[i]) == valueArray[i]);
+ assertTrue("Incorrect value retrieved", whm.get(keyArray[i]) == valueArray[i]);
WeakHashMap empty = new WeakHashMap(0);
assertNull("Empty weakhashmap access", empty.get("nothing"));
@@ -96,8 +94,7 @@
for (int i = 0; i < 100; i++)
whm.put(keyArray[i], valueArray[i]);
for (int i = 0; i < 100; i++)
- assertTrue("Incorrect value retrieved",
- whm.get(keyArray[i]) == valueArray[i]);
+ assertTrue("Incorrect value retrieved", whm.get(keyArray[i]) == valueArray[i]);
WeakHashMap empty = new WeakHashMap(0, 0.75f);
assertNull("Empty hashtable access", empty.get("nothing"));
@@ -139,8 +136,7 @@
whm.clear();
assertTrue("Cleared map should be empty", whm.isEmpty());
for (int i = 0; i < 100; i++)
- assertNull("Cleared map should only return null", whm
- .get(keyArray[i]));
+ assertNull("Cleared map should only return null", whm.get(keyArray[i]));
}
@@ -153,8 +149,7 @@
for (int i = 0; i < 100; i++)
whm.put(keyArray[i], valueArray[i]);
for (int i = 0; i < 100; i++)
- assertTrue("Should contain referenced key", whm
- .containsKey(keyArray[i]));
+ assertTrue("Should contain referenced key", whm.containsKey(keyArray[i]));
keyArray[25] = null;
keyArray[50] = null;
}
@@ -168,8 +163,7 @@
for (int i = 0; i < 100; i++)
whm.put(keyArray[i], valueArray[i]);
for (int i = 0; i < 100; i++)
- assertTrue("Should contain referenced value", whm
- .containsValue(valueArray[i]));
+ assertTrue("Should contain referenced value", whm.containsValue(valueArray[i]));
keyArray[25] = null;
keyArray[50] = null;
}
@@ -185,15 +179,13 @@
List keys = Arrays.asList(keyArray);
List values = Arrays.asList(valueArray);
Set entrySet = whm.entrySet();
- assertTrue("Incorrect number of entries returned--wanted 100, got: "
- + entrySet.size(), entrySet.size() == 100);
+ assertTrue("Incorrect number of entries returned--wanted 100, got: " + entrySet.size(),
+ entrySet.size() == 100);
Iterator it = entrySet.iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
- assertTrue("Invalid map entry returned--bad key", keys
- .contains(entry.getKey()));
- assertTrue("Invalid map entry returned--bad key", values
- .contains(entry.getValue()));
+ assertTrue("Invalid map entry returned--bad key", keys.contains(entry.getKey()));
+ assertTrue("Invalid map entry returned--bad key", values.contains(entry.getValue()));
}
keys = null;
values = null;
@@ -201,7 +193,7 @@
FinalizationTester.induceFinalization();
long startTime = System.currentTimeMillis();
- // We use a busy wait loop here since we can not know when the ReferenceQueue
+ // We use a busy wait loop here since we cannot know when the ReferenceQueue
// daemon will enqueue the cleared references on their internal reference
// queues. The current timeout is 5 seconds.
do {
@@ -212,9 +204,7 @@
} while (entrySet.size() != 99 &&
System.currentTimeMillis() - startTime < 5000);
- assertTrue(
- "Incorrect number of entries returned after gc--wanted 99, got: "
- + entrySet.size(), entrySet.size() == 99);
+ assertEquals("Incorrect number of keys returned after gc,", 99, entrySet.size());
}
/**
@@ -273,10 +263,8 @@
for (int i = 0; i < 100; i++)
whm.put(keyArray[i], valueArray[i]);
- assertTrue("Remove returned incorrect value",
- whm.remove(keyArray[25]) == valueArray[25]);
- assertNull("Remove returned incorrect value",
- whm.remove(keyArray[25]));
+ assertTrue("Remove returned incorrect value", whm.remove(keyArray[25]) == valueArray[25]);
+ assertNull("Remove returned incorrect value", whm.remove(keyArray[25]));
assertEquals("Size should be 99 after remove", 99, whm.size());
}
@@ -305,23 +293,26 @@
Iterator it = keySet.iterator();
while (it.hasNext()) {
Object key = it.next();
- assertTrue("Invalid map entry returned--bad key", keys
- .contains(key));
+ assertTrue("Invalid map entry returned--bad key", keys.contains(key));
}
keys = null;
values = null;
keyArray[50] = null;
- int count = 0;
+ FinalizationTester.induceFinalization();
+ long startTime = System.currentTimeMillis();
+ // We use a busy wait loop here since we cannot know when the ReferenceQueue
+ // daemon will enqueue the cleared references on their internal reference
+ // queues. The current timeout is 5 seconds.
do {
- System.gc();
- System.gc();
- FinalizationTester.induceFinalization();
- count++;
- } while (count <= 5 && keySet.size() == 100);
+ try {
+ Thread.sleep(100);
+ } catch (InterruptedException e) {
+ }
+ } while (keySet.size() != 99 &&
+ System.currentTimeMillis() - startTime < 5000);
- assertEquals("Incorrect number of keys returned after gc,", 99, keySet
- .size());
+ assertEquals("Incorrect number of keys returned after gc,", 99, keySet.size());
}
/**
@@ -378,28 +369,30 @@
List values = Arrays.asList(valueArray);
Collection valuesCollection = whm.values();
- assertEquals("Incorrect number of keys returned,", 100,
- valuesCollection.size());
+ assertEquals("Incorrect number of keys returned,", 100, valuesCollection.size());
Iterator it = valuesCollection.iterator();
while (it.hasNext()) {
Object value = it.next();
- assertTrue("Invalid map entry returned--bad value", values
- .contains(value));
+ assertTrue("Invalid map entry returned--bad value", values.contains(value));
}
keys = null;
values = null;
keyArray[50] = null;
- int count = 0;
+ FinalizationTester.induceFinalization();
+ long startTime = System.currentTimeMillis();
+ // We use a busy wait loop here since we cannot know when the ReferenceQueue
+ // daemon will enqueue the cleared references on their internal reference
+ // queues. The current timeout is 5 seconds.
do {
- System.gc();
- System.gc();
- FinalizationTester.induceFinalization();
- count++;
- } while (count <= 5 && valuesCollection.size() == 100);
+ try {
+ Thread.sleep(100);
+ } catch (InterruptedException e) {
+ }
+ } while (valuesCollection.size() != 99 &&
+ System.currentTimeMillis() - startTime < 5000);
- assertEquals("Incorrect number of keys returned after gc,", 99,
- valuesCollection.size());
+ assertEquals("Incorrect number of keys returned after gc,", 99, valuesCollection.size());
}
/**
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/jar/JarEntryTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/jar/JarEntryTest.java
index a48bd60..3f4ed3b 100644
--- a/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/jar/JarEntryTest.java
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/jar/JarEntryTest.java
@@ -26,6 +26,7 @@
import java.util.jar.JarFile;
import java.util.zip.ZipEntry;
import junit.framework.TestCase;
+import libcore.io.Streams;
import tests.support.resource.Support_Resources;
public class JarEntryTest extends TestCase {
@@ -80,9 +81,6 @@
}
}
- /**
- * java.util.jar.JarEntry#JarEntry(java.util.zip.ZipEntry)
- */
public void test_ConstructorLjava_util_zip_ZipEntry() {
assertNotNull("Jar file is null", jarFile);
zipEntry = jarFile.getEntry(entryName);
@@ -116,38 +114,46 @@
attrJar.close();
}
- /**
- * java.util.jar.JarEntry#getCertificates()
- */
- public void test_getCertificates() throws Exception {
+ // http://b/1864326
+ public void testCertificatesAndCodesigners() throws Exception {
zipEntry = jarFile.getEntry(entryName2);
jarEntry = new JarEntry(zipEntry);
assertNull(jarEntry.getCertificates());
- // Regression Test for HARMONY-3424
+ // Regression Test for HARMONY-3424, b/1864326
String jarFileName = "TestCodeSigners.jar";
Support_Resources.copyFile(resources, null, jarFileName);
File file = new File(resources, jarFileName);
JarFile jarFile = new JarFile(file);
JarEntry jarEntry1 = jarFile.getJarEntry("Test.class");
JarEntry jarEntry2 = jarFile.getJarEntry("Test.class");
- InputStream in = jarFile.getInputStream(jarEntry1);
- byte[] buffer = new byte[1024];
- while (in.available() > 0) {
- assertNull("getCertificates() should be null until the entry is read",
- jarEntry1.getCertificates());
+
+ try (InputStream in = jarFile.getInputStream(jarEntry1)) {
+ // Code signers and certs must be {@code null} until the entry is completely
+ // read.
+ assertNull(jarEntry1.getCertificates());
assertNull(jarEntry2.getCertificates());
- in.read(buffer);
+ assertNull(jarEntry1.getCodeSigners());
+ assertNull(jarEntry2.getCodeSigners());
+
+ // Read a few bytes from the stream.
+ in.read(new byte[64]);
+ assertNull(jarEntry1.getCertificates());
+ assertNull(jarEntry2.getCertificates());
+ assertNull(jarEntry1.getCodeSigners());
+ assertNull(jarEntry2.getCodeSigners());
+
+ // Read the rest of the stream.
+ Streams.skipByReading(in, Long.MAX_VALUE);
+
+ assertEquals(-1, in.read());
+ assertNotNull(jarEntry1.getCodeSigners());
+ assertNotNull(jarEntry2.getCodeSigners());
+ assertNotNull(jarEntry1.getCertificates());
+ assertNotNull(jarEntry2.getCertificates());
}
- assertEquals("the file is fully read", -1, in.read());
- assertNotNull(jarEntry1.getCertificates());
- assertNotNull(jarEntry2.getCertificates());
- in.close();
}
- /**
- * java.util.jar.JarEntry#getCodeSigners()
- */
public void test_getCodeSigners() throws IOException {
String jarFileName = "TestCodeSigners.jar";
Support_Resources.copyFile(resources, null, jarFileName);
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/HandshakeCompletedEventTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/HandshakeCompletedEventTest.java
index ec2f4f31..bb2265f 100644
--- a/harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/HandshakeCompletedEventTest.java
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/HandshakeCompletedEventTest.java
@@ -17,7 +17,6 @@
package org.apache.harmony.tests.javax.net.ssl;
-import dalvik.annotation.AndroidOnly;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -334,7 +333,6 @@
* because our self-signed test certificates are not valid.)
*/
- @AndroidOnly("Uses bks key store. Change useBKS to false to run on the RI")
public void testClientAuth() throws Exception {
boolean useBKS = true;
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/SSLSocketTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/SSLSocketTest.java
index 11e3142..861f4a8 100644
--- a/harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/SSLSocketTest.java
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/SSLSocketTest.java
@@ -15,7 +15,6 @@
*/
package org.apache.harmony.tests.javax.net.ssl;
-import dalvik.annotation.AndroidOnly;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -223,7 +222,7 @@
/**
* javax.net.ssl.SSLSocket#addHandshakeCompletedListener(HandshakeCompletedListener listener)
*/
- @AndroidOnly("RI doesn't throw the specified IAE")
+ // AndroidOnly("RI doesn't throw the specified IAE")
public void test_addHandshakeCompletedListener() throws IOException {
SSLSocket ssl = getSSLSocket();
HandshakeCompletedListener ls = new HandshakeCL();
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/javax/security/auth/x500/X500PrincipalTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/javax/security/auth/x500/X500PrincipalTest.java
index d730650..74fca95 100644
--- a/harmony-tests/src/test/java/org/apache/harmony/tests/javax/security/auth/x500/X500PrincipalTest.java
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/javax/security/auth/x500/X500PrincipalTest.java
@@ -1681,12 +1681,10 @@
* compares with expected value of name - "\nB"
*/
public void testNameSpecialChars_RFC1779_01() throws Exception {
- //FIXME see testNameSpecialChars_RFC2253_01
- // String dn = "CN=\\\nB";
- // X500Principal principal = new X500Principal(dn);
- // String s = principal.getName(X500Principal.RFC1779);
- // assertEquals("CN=\"\nB\"", s);
-
+ String dn = "CN=\\\nB";
+ X500Principal principal = new X500Principal(dn);
+ String s = principal.getName(X500Principal.RFC1779);
+ assertEquals("CN=\"\nB\"", s);
}
/**
@@ -2207,6 +2205,14 @@
assertEquals("CN=\"A\nB\"", s);
}
+
+ public void testNamePlus_RFC1779() throws Exception {
+ String dn = "CN=A\\+B";
+ X500Principal principal = new X500Principal(dn);
+ String s = principal.getName(X500Principal.RFC1779);
+ assertEquals("CN=\"A+B\"", s);
+ }
+
/**
* Inits X500Principal with the string with special characters - CN=A\nB
* gets Name in RFC2253 format
@@ -3087,4 +3093,3 @@
new X500Principal("CN=A, CN=B + C=C") };
}
}
-
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/javax/xml/parsers/SAXParserFactoryTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/javax/xml/parsers/SAXParserFactoryTest.java
index de2a128..eee3dcd 100644
--- a/harmony-tests/src/test/java/org/apache/harmony/tests/javax/xml/parsers/SAXParserFactoryTest.java
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/javax/xml/parsers/SAXParserFactoryTest.java
@@ -35,7 +35,6 @@
import org.xml.sax.SAXNotSupportedException;
import org.xml.sax.helpers.DefaultHandler;
-import dalvik.annotation.AndroidOnly;
import dalvik.annotation.KnownFailure;
public class SAXParserFactoryTest extends TestCase {
@@ -65,7 +64,7 @@
super.tearDown();
}
- @AndroidOnly("Android SAX implementation is non-validating")
+ // AndroidOnly("Android SAX implementation is non-validating")
public void test_Constructor() {
MySAXParserFactory mpf = new MySAXParserFactory();
assertTrue(mpf instanceof SAXParserFactory);
diff --git a/jarjar-rules.txt b/jarjar-rules.txt
deleted file mode 100644
index b2da6eb..0000000
--- a/jarjar-rules.txt
+++ /dev/null
@@ -1 +0,0 @@
-rule com.ibm.icu.** android.icu.@1
diff --git a/java_tests_blacklist b/java_tests_blacklist
index 38e953d..a34d4cc 100644
--- a/java_tests_blacklist
+++ b/java_tests_blacklist
@@ -91,4 +91,9 @@
luni/src/test/java/libcore/net/http/ResponseUtilsTest.java
luni/src/test/java/libcore/java/util/LocaleTest.java
luni/src/test/java/libcore/java/util/zip/Zip64FileTest.java
-luni/src/test/java/libcore/java/util/zip/ZipEntryTest.java
\ No newline at end of file
+luni/src/test/java/libcore/java/util/zip/ZipEntryTest.java
+luni/src/test/java/libcore/io/Base64Test.java
+luni/src/test/java/libcore/java/net/URLConnectionTest.java
+luni/src/test/java/libcore/java/security/cert/X509CertificateTest.java
+luni/src/test/java/libcore/java/text/DecimalFormatSymbolsTest.java
+luni/src/test/java/libcore/java/util/jar/StrictJarFileTest.java
diff --git a/libart/src/main/java/java/lang/CaseMapper.java b/libart/src/main/java/java/lang/CaseMapper.java
index f23a4ef..7f9d2e3 100644
--- a/libart/src/main/java/java/lang/CaseMapper.java
+++ b/libart/src/main/java/java/lang/CaseMapper.java
@@ -16,9 +16,9 @@
package java.lang;
+import android.icu.text.Transliterator;
import java.util.Locale;
import libcore.icu.ICU;
-import libcore.icu.Transliterator;
/**
* Performs case operations as described by http://unicode.org/reports/tr21/tr21-5.html.
@@ -138,7 +138,7 @@
private static final ThreadLocal<Transliterator> EL_UPPER = new ThreadLocal<Transliterator>() {
@Override protected Transliterator initialValue() {
- return new Transliterator("el-Upper");
+ return Transliterator.getInstance("el-Upper");
}
};
diff --git a/libart/src/main/java/java/lang/Class.java b/libart/src/main/java/java/lang/Class.java
index fc6a0f8..b710867 100644
--- a/libart/src/main/java/java/lang/Class.java
+++ b/libart/src/main/java/java/lang/Class.java
@@ -37,6 +37,7 @@
import java.io.InputStream;
import java.io.Serializable;
import java.lang.annotation.Annotation;
+import java.lang.annotation.Inherited;
import java.lang.reflect.AccessibleObject;
import java.lang.reflect.AnnotatedElement;
import java.lang.reflect.Constructor;
@@ -53,7 +54,9 @@
import java.security.ProtectionDomain;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collection;
import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
import libcore.reflect.AnnotationAccess;
import libcore.reflect.GenericSignatureParser;
@@ -137,9 +140,6 @@
*/
private transient DexCache dexCache;
- /** Short-cut to dexCache.strings */
- private transient String[] dexCacheStrings;
-
/**
* The interface table (iftable_) contains pairs of a interface class and an array of the
* interface methods. There is one pair per interface supported by this class. That
@@ -159,11 +159,21 @@
/** Lazily computed name of this class; always prefer calling getName(). */
private transient String name;
- /** The superclass, or null if this is java.lang.Object, an interface or primitive type. */
+ /**
+ * The superclass, or null if this is java.lang.Object or a primitive type.
+ *
+ * Note that interfaces have java.lang.Object as their
+ * superclass. This doesn't match the expectations of
+ * getSuperClass() which needs to check for interfaces and return
+ * null.
+ */
private transient Class<? super T> superClass;
- /** If class verify fails, we must return same error on subsequent tries. */
- private transient Class<?> verifyErrorClass;
+ /**
+ * If class verify fails, we must return same error on subsequent tries. We may store either
+ * the class of the error, or an actual instance of Throwable here.
+ */
+ private transient Object verifyError;
/**
* Virtual method table (vtable), for use by "invoke-virtual". The vtable from the superclass
@@ -173,6 +183,9 @@
*/
private transient Object vtable;
+ /** Short-cut to dexCache.strings */
+ private transient long dexCacheStrings;
+
/** access flags; low 16 bits are defined by VM spec */
private transient int accessFlags;
@@ -195,6 +208,9 @@
/** Virtual methods defined in this class; invoked through vtable. */
private transient long virtualMethods;
+ /** Class flags to help the GC with object scanning. */
+ private transient int classFlags;
+
/**
* Total size of the Class instance; used when allocating storage on GC heap.
* See also {@link Class#objectSize}.
@@ -220,24 +236,12 @@
*/
private transient volatile int dexTypeIndex;
- /** Number of direct methods. */
- private transient int numDirectMethods;
-
- /** Number of instance fields. */
- private transient int numInstanceFields;
-
/** Number of instance fields that are object references. */
private transient int numReferenceInstanceFields;
/** Number of static fields that are object references. */
private transient int numReferenceStaticFields;
- /** Number of static fields. */
- private transient int numStaticFields;
-
- /** Number of virtual methods. */
- private transient int numVirtualMethods;
-
/**
* Total object size; used when allocating storage on GC heap. For interfaces and abstract
* classes this will be zero. See also {@link Class#classSize}.
@@ -356,7 +360,25 @@
}
@Override public <A extends Annotation> A getAnnotation(Class<A> annotationType) {
- return AnnotationAccess.getAnnotation(this, annotationType);
+ if (annotationType == null) {
+ throw new NullPointerException("annotationType == null");
+ }
+
+ A annotation = getDeclaredAnnotation(annotationType);
+ if (annotation != null) {
+ return annotation;
+ }
+
+ if (annotationType.isDeclaredAnnotationPresent(Inherited.class)) {
+ for (Class<?> sup = getSuperclass(); sup != null; sup = sup.getSuperclass()) {
+ annotation = sup.getDeclaredAnnotation(annotationType);
+ if (annotation != null) {
+ return annotation;
+ }
+ }
+ }
+
+ return null;
}
/**
@@ -366,7 +388,33 @@
* @see #getDeclaredAnnotations()
*/
@Override public Annotation[] getAnnotations() {
- return AnnotationAccess.getAnnotations(this);
+ /*
+ * We need to get the annotations declared on this class, plus the
+ * annotations from superclasses that have the "@Inherited" annotation
+ * set. We create a temporary map to use while we accumulate the
+ * annotations and convert it to an array at the end.
+ *
+ * It's possible to have duplicates when annotations are inherited.
+ * We use a Map to filter those out.
+ *
+ * HashMap might be overkill here.
+ */
+ HashMap<Class<?>, Annotation> map = new HashMap<Class<?>, Annotation>();
+ for (Annotation declaredAnnotation : getDeclaredAnnotations()) {
+ map.put(declaredAnnotation.annotationType(), declaredAnnotation);
+ }
+ for (Class<?> sup = getSuperclass(); sup != null; sup = sup.getSuperclass()) {
+ for (Annotation declaredAnnotation : sup.getDeclaredAnnotations()) {
+ Class<? extends Annotation> clazz = declaredAnnotation.annotationType();
+ if (!map.containsKey(clazz) && clazz.isDeclaredAnnotationPresent(Inherited.class)) {
+ map.put(clazz, declaredAnnotation);
+ }
+ }
+ }
+
+ /* Convert annotation values from HashMap to array. */
+ Collection<Annotation> coll = map.values();
+ return coll.toArray(new Annotation[coll.size()]);
}
/**
@@ -576,7 +624,7 @@
* {@code (Class[]) null} is equivalent to the empty array.
* @return the method described by {@code name} and {@code parameterTypes}.
* @throws NoSuchMethodException
- * if the requested constructor cannot be found.
+ * if the requested method cannot be found.
* @throws NullPointerException
* if {@code name} is {@code null}.
* @see #getMethod(String, Class[])
@@ -739,18 +787,23 @@
*
* @see #getAnnotations()
*/
- @Override public Annotation[] getDeclaredAnnotations() {
- List<Annotation> result = AnnotationAccess.getDeclaredAnnotations(this);
- return result.toArray(new Annotation[result.size()]);
- }
+ @Override public native Annotation[] getDeclaredAnnotations();
+
+ /**
+ * Returns the annotation if it exists.
+ */
+ private native <A extends Annotation> A getDeclaredAnnotation(Class<A> annotationClass);
+
+ /**
+ * Returns true if the annotation exists.
+ */
+ private native boolean isDeclaredAnnotationPresent(Class<? extends Annotation> annotationClass);
/**
* Returns an array containing {@code Class} objects for all classes,
* interfaces, enums and annotations that are members of this class.
*/
- public Class<?>[] getDeclaredClasses() {
- return AnnotationAccess.getMemberClasses(this);
- }
+ public native Class<?>[] getDeclaredClasses();
/**
* Returns a {@code Field} object for the field with the given name
@@ -797,12 +850,7 @@
* class is a top-level class, a primitive, an array, or defined within a
* method or constructor.
*/
- public Class<?> getDeclaringClass() {
- if (AnnotationAccess.isAnonymousClass(this)) {
- return null;
- }
- return AnnotationAccess.getEnclosingClass(this);
- }
+ public native Class<?> getDeclaringClass();
/**
* Returns the class enclosing this class. For most classes this is the same
@@ -810,17 +858,7 @@
* within a method or constructor (typically anonymous inner classes), this
* is the declaring class of that member.
*/
- public Class<?> getEnclosingClass() {
- Class<?> declaringClass = getDeclaringClass();
- if (declaringClass != null) {
- return declaringClass;
- }
- AccessibleObject member = AnnotationAccess.getEnclosingMethodOrConstructor(this);
- if (member != null) {
- return ((Member) member).getDeclaringClass();
- }
- return AnnotationAccess.getEnclosingClass(this);
- }
+ public native Class<?> getEnclosingClass();
/**
* Returns the enclosing {@code Constructor} of this {@code Class}, if it is an
@@ -830,10 +868,11 @@
if (classNameImpliesTopLevel()) {
return null;
}
- AccessibleObject result = AnnotationAccess.getEnclosingMethodOrConstructor(this);
- return result instanceof Constructor ? (Constructor<?>) result : null;
+ return getEnclosingConstructorNative();
}
+ private native Constructor<?> getEnclosingConstructorNative();
+
/**
* Returns the enclosing {@code Method} of this {@code Class}, if it is an
* anonymous or local/automatic class; otherwise {@code null}.
@@ -842,10 +881,11 @@
if (classNameImpliesTopLevel()) {
return null;
}
- AccessibleObject result = AnnotationAccess.getEnclosingMethodOrConstructor(this);
- return result instanceof Method ? (Method) result : null;
+ return getEnclosingMethodNative();
}
+ private native Method getEnclosingMethodNative();
+
/**
* Returns true if this class is definitely a top level class, or false if
* a more expensive check like {@link #getEnclosingClass()} is necessary.
@@ -873,13 +913,15 @@
}
/**
- * Returns a {@code Field} object which represents the public field with the
- * given name. This method first searches the class C represented by
- * this {@code Class}, then the interfaces implemented by C and finally the
- * superclasses of C.
+ * Returns a {@code Field} object which represents the public field with the given name. This
+ * method first searches the class C represented by this {@code Class}, then recursively calls
+ * {@code getField} on the interfaces directly implemented by C (in the order they are declared)
+ * and finally recursively calls {@code getField} on the superclass of C.
*
* @throws NoSuchFieldException
* if the field cannot be found.
+ * @throws NullPointerException
+ * if name is null.
* @see #getDeclaredField(String)
*/
public Field getField(String name) throws NoSuchFieldException {
@@ -893,27 +935,14 @@
return result;
}
- private Field getPublicFieldRecursive(String name) {
- // search superclasses
- for (Class<?> c = this; c != null; c = c.superClass) {
- Field result = c.getDeclaredFieldInternal(name);
- if (result != null && (result.getModifiers() & Modifier.PUBLIC) != 0) {
- return result;
- }
- }
-
- // search iftable which has a flattened and uniqued list of interfaces
- if (ifTable != null) {
- for (int i = 0; i < ifTable.length; i += 2) {
- Field result = ((Class<?>) ifTable[i]).getPublicFieldRecursive(name);
- if (result != null && (result.getModifiers() & Modifier.PUBLIC) != 0) {
- return result;
- }
- }
- }
-
- return null;
- }
+ /**
+ * The native implementation of the {@code getField} method.
+ *
+ * @throws NullPointerException
+ * if name is null.
+ * @see #getField(String)
+ */
+ private native Field getPublicFieldRecursive(String name);
/**
* Returns an array containing {@code Field} objects for all public fields
@@ -1048,10 +1077,12 @@
return Modifier.ABSTRACT | Modifier.FINAL | componentModifiers;
}
int JAVA_FLAGS_MASK = 0xffff;
- int modifiers = AnnotationAccess.getInnerClassFlags(this, accessFlags & JAVA_FLAGS_MASK);
+ int modifiers = getInnerClassFlags(accessFlags & JAVA_FLAGS_MASK);
return modifiers & JAVA_FLAGS_MASK;
}
+ private native int getInnerClassFlags(int defaultValue);
+
/**
* Returns the name of the class represented by this {@code Class}. For a
* description of the format which is used, see the class definition of
@@ -1098,9 +1129,7 @@
/**
* Returns the simple name of a member or local class, or {@code null} otherwise.
*/
- private String getInnerClassName() {
- return AnnotationAccess.getInnerClassName(this);
- }
+ private native String getInnerClassName();
/**
* Returns {@code null}.
@@ -1225,16 +1254,30 @@
}
@Override public boolean isAnnotationPresent(Class<? extends Annotation> annotationType) {
- return AnnotationAccess.isAnnotationPresent(this, annotationType);
+ if (annotationType == null) {
+ throw new NullPointerException("annotationType == null");
+ }
+
+ if (isDeclaredAnnotationPresent(annotationType)) {
+ return true;
+ }
+
+ if (annotationType.isDeclaredAnnotationPresent(Inherited.class)) {
+ for (Class<?> sup = getSuperclass(); sup != null; sup = sup.getSuperclass()) {
+ if (sup.isDeclaredAnnotationPresent(annotationType)) {
+ return true;
+ }
+ }
+ }
+
+ return false;
}
/**
* Tests whether the class represented by this {@code Class} is
* anonymous.
*/
- public boolean isAnonymousClass() {
- return AnnotationAccess.isAnonymousClass(this);
- }
+ public native boolean isAnonymousClass();
/**
* Tests whether the class represented by this {@code Class} is an array class.
@@ -1331,7 +1374,7 @@
*/
public boolean isLocalClass() {
return !classNameImpliesTopLevel()
- && AnnotationAccess.getEnclosingMethodOrConstructor(this) != null
+ && (getEnclosingMethod() != null || getEnclosingConstructor() != null)
&& !isAnonymousClass();
}
diff --git a/libart/src/main/java/java/lang/ClassLoader.java b/libart/src/main/java/java/lang/ClassLoader.java
index 2663b6b..593c38c 100644
--- a/libart/src/main/java/java/lang/ClassLoader.java
+++ b/libart/src/main/java/java/lang/ClassLoader.java
@@ -99,6 +99,30 @@
private Map<String, Package> packages = new HashMap<String, Package>();
/**
+ * Pointer to the allocator used by the runtime to allocate metadata such
+ * as ArtFields and ArtMethods.
+ */
+ private transient long allocator;
+
+ /**
+ * Pointer to the class table, only used from within the runtime.
+ */
+ private transient long classTable;
+
+ /**
+ * Pointer to a lambda box class table, only used from within the runtime.
+ *
+ * Lambda proxies are nominally made from within the runtime, and we want to avoid calling back
+ * into the managed code except as the slow path.
+ *
+ * (unlike a {@link java.lang.reflect.Proxy} which is nominally made from the managed code)
+ *
+ * Making a proxy for the same list of interfaces repeatedly will use the cache and
+ * avoid having to generate a class (the fast path).
+ */
+ private transient long lambdaProxyCache;
+
+ /**
* To avoid unloading individual classes, {@link java.lang.reflect.Proxy}
* only generates one class for each set of interfaces. This maps sets of
* interfaces to the proxy class that implements all of them. It is declared
diff --git a/libart/src/main/java/java/lang/Daemons.java b/libart/src/main/java/java/lang/Daemons.java
index ac5ad4d..d4e0786 100644
--- a/libart/src/main/java/java/lang/Daemons.java
+++ b/libart/src/main/java/java/lang/Daemons.java
@@ -23,6 +23,7 @@
import java.lang.ref.Reference;
import java.lang.ref.ReferenceQueue;
import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.TimeoutException;
import libcore.util.EmptyArray;
@@ -114,6 +115,8 @@
threadToStop.join();
return;
} catch (InterruptedException ignored) {
+ } catch (OutOfMemoryError ignored) {
+ // An OOME may be thrown if allocating the InterruptedException failed.
}
}
}
@@ -151,6 +154,8 @@
}
} catch (InterruptedException e) {
continue;
+ } catch (OutOfMemoryError e) {
+ continue;
}
enqueue(list);
}
@@ -171,19 +176,50 @@
private static class FinalizerDaemon extends Daemon {
private static final FinalizerDaemon INSTANCE = new FinalizerDaemon();
private final ReferenceQueue<Object> queue = FinalizerReference.queue;
- private volatile Object finalizingObject;
- private volatile long finalizingStartedNanos;
+ private final AtomicInteger progressCounter = new AtomicInteger(0);
+ // Object (not reference!) being finalized. Accesses may race!
+ private Object finalizingObject = null;
FinalizerDaemon() {
super("FinalizerDaemon");
}
@Override public void run() {
+ // This loop may be performance critical, since we need to keep up with mutator
+ // generation of finalizable objects.
+ // We minimize the amount of work we do per finalizable object. For example, we avoid
+ // reading the current time here, since that involves a kernel call per object. We
+ // limit fast path communication with FinalizerWatchDogDaemon to what's unavoidable: A
+ // non-volatile store to communicate the current finalizable object, e.g. for
+ // reporting, and a release store (lazySet) to a counter.
+ // We do stop the FinalizerWatchDogDaemon if we have nothing to do for a
+ // potentially extended period. This prevents the device from waking up regularly
+ // during idle times.
+
+ // Local copy of progressCounter; saves a fence per increment on ARM and MIPS.
+ int localProgressCounter = progressCounter.get();
+
while (isRunning()) {
- // Take a reference, blocking until one is ready or the thread should stop
try {
- doFinalize((FinalizerReference<?>) queue.remove());
+ // Use non-blocking poll to avoid FinalizerWatchdogDaemon communication
+ // when busy.
+ FinalizerReference<?> finalizingReference = (FinalizerReference<?>)queue.poll();
+ if (finalizingReference != null) {
+ finalizingObject = finalizingReference.get();
+ progressCounter.lazySet(++localProgressCounter);
+ } else {
+ finalizingObject = null;
+ progressCounter.lazySet(++localProgressCounter);
+ // Slow path; block.
+ FinalizerWatchdogDaemon.INSTANCE.goToSleep();
+ finalizingReference = (FinalizerReference<?>)queue.remove();
+ finalizingObject = finalizingReference.get();
+ progressCounter.set(++localProgressCounter);
+ FinalizerWatchdogDaemon.INSTANCE.wakeUp();
+ }
+ doFinalize(finalizingReference);
} catch (InterruptedException ignored) {
+ } catch (OutOfMemoryError ignored) {
}
}
}
@@ -194,11 +230,6 @@
Object object = reference.get();
reference.clear();
try {
- finalizingStartedNanos = System.nanoTime();
- finalizingObject = object;
- synchronized (FinalizerWatchdogDaemon.INSTANCE) {
- FinalizerWatchdogDaemon.INSTANCE.notify();
- }
object.finalize();
} catch (Throwable ex) {
// The RI silently swallows these, but Android has always logged.
@@ -223,75 +254,131 @@
private static class FinalizerWatchdogDaemon extends Daemon {
private static final FinalizerWatchdogDaemon INSTANCE = new FinalizerWatchdogDaemon();
+ private boolean needToWork = true; // Only accessed in synchronized methods.
+
FinalizerWatchdogDaemon() {
super("FinalizerWatchdogDaemon");
}
@Override public void run() {
while (isRunning()) {
- boolean waitSuccessful = waitForObject();
- if (waitSuccessful == false) {
+ if (!sleepUntilNeeded()) {
// We have been interrupted, need to see if this daemon has been stopped.
continue;
}
- boolean finalized = waitForFinalization();
- if (!finalized && !VMRuntime.getRuntime().isDebuggerActive()) {
- Object finalizedObject = FinalizerDaemon.INSTANCE.finalizingObject;
- // At this point we probably timed out, look at the object in case the finalize
- // just finished.
- if (finalizedObject != null) {
- finalizerTimedOut(finalizedObject);
- break;
- }
+ final Object finalizing = waitForFinalization();
+ if (finalizing != null && !VMRuntime.getRuntime().isDebuggerActive()) {
+ finalizerTimedOut(finalizing);
+ break;
}
}
}
- private boolean waitForObject() {
+ /**
+ * Wait until something is ready to be finalized.
+ * Return false if we have been interrupted
+ * See also http://code.google.com/p/android/issues/detail?id=22778.
+ */
+ private synchronized boolean sleepUntilNeeded() {
+ while (!needToWork) {
+ try {
+ wait();
+ } catch (InterruptedException e) {
+ // Daemon.stop may have interrupted us.
+ return false;
+ } catch (OutOfMemoryError e) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Notify daemon that it's OK to sleep until notified that something is ready to be
+ * finalized.
+ */
+ private synchronized void goToSleep() {
+ needToWork = false;
+ }
+
+ /**
+ * Notify daemon that there is something ready to be finalized.
+ */
+ private synchronized void wakeUp() {
+ needToWork = true;
+ notify();
+ }
+
+ private synchronized boolean getNeedToWork() {
+ return needToWork;
+ }
+
+ /**
+ * Sleep for the given number of nanoseconds.
+ * @return false if we were interrupted.
+ */
+ private boolean sleepFor(long durationNanos) {
+ long startNanos = System.nanoTime();
while (true) {
- Object object = FinalizerDaemon.INSTANCE.finalizingObject;
- if (object != null) {
+ long elapsedNanos = System.nanoTime() - startNanos;
+ long sleepNanos = durationNanos - elapsedNanos;
+ long sleepMills = sleepNanos / NANOS_PER_MILLI;
+ if (sleepMills <= 0) {
return true;
}
- synchronized (this) {
- // wait until something is ready to be finalized
- // http://code.google.com/p/android/issues/detail?id=22778
- try {
- wait();
- } catch (InterruptedException e) {
- // Daemon.stop may have interrupted us.
+ try {
+ Thread.sleep(sleepMills);
+ } catch (InterruptedException e) {
+ if (!isRunning()) {
+ return false;
+ }
+ } catch (OutOfMemoryError ignored) {
+ if (!isRunning()) {
return false;
}
}
}
}
- private void sleepFor(long startNanos, long durationNanos) {
- while (true) {
- long elapsedNanos = System.nanoTime() - startNanos;
- long sleepNanos = durationNanos - elapsedNanos;
- long sleepMills = sleepNanos / NANOS_PER_MILLI;
- if (sleepMills <= 0) {
- return;
- }
- try {
- Thread.sleep(sleepMills);
- } catch (InterruptedException e) {
- if (!isRunning()) {
- return;
- }
+
+ /**
+ * Return an object that took too long to finalize or return null.
+ * Wait MAX_FINALIZE_NANOS. If the FinalizerDaemon took essentially the whole time
+ * processing a single reference, return that reference. Otherwise return null.
+ */
+ private Object waitForFinalization() {
+ long startCount = FinalizerDaemon.INSTANCE.progressCounter.get();
+ // Avoid remembering object being finalized, so as not to keep it alive.
+ if (!sleepFor(MAX_FINALIZE_NANOS)) {
+ // Don't report possibly spurious timeout if we are interrupted.
+ return null;
+ }
+ if (getNeedToWork() && FinalizerDaemon.INSTANCE.progressCounter.get() == startCount) {
+ // We assume that only remove() and doFinalize() may take time comparable to
+ // MAX_FINALIZE_NANOS.
+ // We observed neither the effect of the gotoSleep() nor the increment preceding a
+ // later wakeUp. Any remove() call by the FinalizerDaemon during our sleep
+ // interval must have been followed by a wakeUp call before we checked needToWork.
+ // But then we would have seen the counter increment. Thus there cannot have
+ // been such a remove() call.
+ // The FinalizerDaemon must not have progressed (from either the beginning or the
+ // last progressCounter increment) to either the next increment or gotoSleep()
+ // call. Thus we must have taken essentially the whole MAX_FINALIZE_NANOS in a
+ // single doFinalize() call. Thus it's OK to time out. finalizingObject was set
+ // just before the counter increment, which preceded the doFinalize call. Thus we
+ // are guaranteed to get the correct finalizing value below, unless doFinalize()
+ // just finished as we were timing out, in which case we may get null or a later
+ // one. In this last case, we are very likely to discard it below.
+ Object finalizing = FinalizerDaemon.INSTANCE.finalizingObject;
+ sleepFor(NANOS_PER_SECOND / 2);
+ // Recheck to make it even less likely we report the wrong finalizing object in
+ // the case which a very slow finalization just finished as we were timing out.
+ if (getNeedToWork()
+ && FinalizerDaemon.INSTANCE.progressCounter.get() == startCount) {
+ return finalizing;
}
}
- }
-
- private boolean waitForFinalization() {
- long startTime = FinalizerDaemon.INSTANCE.finalizingStartedNanos;
- sleepFor(startTime, MAX_FINALIZE_NANOS);
- // If we are finalizing an object and the start time is the same, it must be that we
- // timed out finalizing something. It may not be the same object that we started out
- // with but this doesn't matter.
- return FinalizerDaemon.INSTANCE.finalizingObject == null ||
- FinalizerDaemon.INSTANCE.finalizingStartedNanos != startTime;
+ return null;
}
private static void finalizerTimedOut(Object object) {
@@ -309,6 +396,8 @@
Thread.sleep(5000);
} catch (Exception e) {
System.logE("failed to send SIGQUIT", e);
+ } catch (OutOfMemoryError ignored) {
+ // May occur while trying to allocate the exception.
}
if (h == null) {
// If we have no handler, log and exit.
@@ -322,7 +411,7 @@
}
}
- // Adds a heap trim task ot the heap event processor, not called from java. Left for
+ // Adds a heap trim task to the heap event processor, not called from java. Left for
// compatibility purposes due to reflection.
public static void requestHeapTrim() {
VMRuntime.getRuntime().requestHeapTrim();
diff --git a/libart/src/main/java/java/lang/DexCache.java b/libart/src/main/java/java/lang/DexCache.java
index 73e35cd..37c1a1d 100644
--- a/libart/src/main/java/java/lang/DexCache.java
+++ b/libart/src/main/java/java/lang/DexCache.java
@@ -44,33 +44,53 @@
/** The location of the associated dex file. */
String location;
- /**
- * References to methods as they become resolved following interpreter semantics. May refer to
- * methods defined in other dex files.
- */
- Object resolvedMethods;
-
- /**
- * References to fields as they become resolved following interpreter semantics. May refer to
- * fields defined in other dex files. Either an int array or long array.
- */
- private Object resolvedFields;
-
- /**
- * References to types as they become resolved following interpreter semantics. May refer to
- * types defined in other dex files.
- */
- Class[] resolvedTypes;
-
- /**
- * References to strings as they become resolved following interpreter semantics. All strings
- * are interned.
- */
- String[] strings;
-
/** Holds C pointer to dexFile. */
private long dexFile;
+ /**
+ * References to fields (C array pointer) as they become resolved following
+ * interpreter semantics. May refer to fields defined in other dex files.
+ */
+ private long resolvedFields;
+
+ /**
+ * References to methods (C array pointer) as they become resolved following
+ * interpreter semantics. May refer to methods defined in other dex files.
+ */
+ private long resolvedMethods;
+
+ /**
+ * References to types (C array pointer) as they become resolved following
+ * interpreter semantics. May refer to types defined in other dex files.
+ */
+ private long resolvedTypes;
+
+ /**
+ * References to strings (C array pointer) as they become resolved following
+ * interpreter semantics. All strings are interned.
+ */
+ private long strings;
+
+ /**
+ * The number of elements in the native resolvedFields array.
+ */
+ private int numResolvedFields;
+
+ /**
+ * The number of elements in the native resolvedMethods array.
+ */
+ private int numResolvedMethods;
+
+ /**
+ * The number of elements in the native resolvedTypes array.
+ */
+ private int numResolvedTypes;
+
+ /**
+ * The number of elements in the native strings array.
+ */
+ private int numStrings;
+
// Only created by the VM.
private DexCache() {}
diff --git a/libart/src/main/java/java/lang/LambdaProxy.java b/libart/src/main/java/java/lang/LambdaProxy.java
new file mode 100755
index 0000000..8841ee7
--- /dev/null
+++ b/libart/src/main/java/java/lang/LambdaProxy.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2015 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 java.lang;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import libcore.util.EmptyArray;
+
+/**
+ * Runtime-only class used as a superclass for lambda proxies (box-object opcode).
+ * @hide
+ */
+public class LambdaProxy {
+ // TODO: This should be a type-erased "reference" to an art::lambda::Closure.
+ // TODO: only 32-bit on 32-bit systems.
+ private long closure; // native pointer to art::lambda::Closure.
+ // The closure is deleted by (native) lambda::BoxTable after it detects the LambdaProxy was GCd.
+
+ @SuppressWarnings("unused")
+ protected LambdaProxy() {
+ }
+}
diff --git a/libart/src/main/java/java/lang/VMClassLoader.java b/libart/src/main/java/java/lang/VMClassLoader.java
index d180a4d..a9d6253 100644
--- a/libart/src/main/java/java/lang/VMClassLoader.java
+++ b/libart/src/main/java/java/lang/VMClassLoader.java
@@ -16,33 +16,58 @@
package java.lang;
-import java.net.MalformedURLException;
+import java.io.File;
+import java.io.IOException;
import java.net.URL;
+import java.net.URLStreamHandler;
import java.util.ArrayList;
import java.util.List;
+import libcore.io.ClassPathURLStreamHandler;
class VMClassLoader {
+ private static final ClassPathURLStreamHandler[] bootClassPathUrlHandlers;
+ static {
+ bootClassPathUrlHandlers = createBootClassPathUrlHandlers();
+ }
+
+ /**
+ * Creates an array of ClassPathURLStreamHandler objects for handling resource loading from
+ * the boot classpath.
+ */
+ private static ClassPathURLStreamHandler[] createBootClassPathUrlHandlers() {
+ String[] bootClassPathEntries = getBootClassPathEntries();
+ ArrayList<String> zipFileUris = new ArrayList<String>(bootClassPathEntries.length);
+ ArrayList<URLStreamHandler> urlStreamHandlers =
+ new ArrayList<URLStreamHandler>(bootClassPathEntries.length);
+ for (String bootClassPathEntry : bootClassPathEntries) {
+ try {
+ String entryUri = new File(bootClassPathEntry).toURI().toString();
+
+ // We assume all entries are zip or jar files.
+ URLStreamHandler urlStreamHandler =
+ new ClassPathURLStreamHandler(bootClassPathEntry);
+ zipFileUris.add(entryUri);
+ urlStreamHandlers.add(urlStreamHandler);
+ } catch (IOException e) {
+ // Skip it
+ System.logE("Unable to open boot classpath entry: " + bootClassPathEntry, e);
+ }
+ }
+ return urlStreamHandlers.toArray(new ClassPathURLStreamHandler[urlStreamHandlers.size()]);
+ }
+
/**
* Get a resource from a file in the bootstrap class path.
*
- * It would be simpler to just walk through the class path elements
- * ourselves, but that would require reopening Jar files.
- *
- * We assume that the bootclasspath can't change once the VM has
- * started. This assumption seems to be supported by the spec.
+ * We assume that the bootclasspath can't change once the VM has started.
+ * This assumption seems to be supported by the spec.
*/
static URL getResource(String name) {
- int numEntries = getBootClassPathSize();
- for (int i = 0; i < numEntries; i++) {
- String urlStr = getBootClassPathResource(name, i);
- if (urlStr != null) {
- try {
- return new URL(urlStr);
- } catch (MalformedURLException mue) {
- mue.printStackTrace();
- // unexpected; keep going
- }
+ for (ClassPathURLStreamHandler urlHandler : bootClassPathUrlHandlers) {
+ URL url = urlHandler.getEntryUrlOrNull(name);
+ if (url != null) {
+ return url;
}
}
return null;
@@ -53,16 +78,10 @@
*/
static List<URL> getResources(String name) {
ArrayList<URL> list = new ArrayList<URL>();
- int numEntries = getBootClassPathSize();
- for (int i = 0; i < numEntries; i++) {
- String urlStr = getBootClassPathResource(name, i);
- if (urlStr != null) {
- try {
- list.add(new URL(urlStr));
- } catch (MalformedURLException mue) {
- mue.printStackTrace();
- // unexpected; keep going
- }
+ for (ClassPathURLStreamHandler urlHandler : bootClassPathUrlHandlers) {
+ URL url = urlHandler.getEntryUrlOrNull(name);
+ if (url != null) {
+ list.add(url);
}
}
return list;
@@ -73,6 +92,6 @@
/**
* Boot class path manipulation, for getResources().
*/
- native private static int getBootClassPathSize();
- native private static String getBootClassPathResource(String name, int index);
+ native private static String[] getBootClassPathEntries();
+
}
diff --git a/libart/src/main/java/java/lang/reflect/Constructor.java b/libart/src/main/java/java/lang/reflect/Constructor.java
index 9711ef4..0dadd8d 100644
--- a/libart/src/main/java/java/lang/reflect/Constructor.java
+++ b/libart/src/main/java/java/lang/reflect/Constructor.java
@@ -36,7 +36,6 @@
import java.lang.annotation.Annotation;
import java.util.Comparator;
import java.util.List;
-import libcore.reflect.AnnotationAccess;
import libcore.reflect.Types;
/**
@@ -97,10 +96,7 @@
* this constructor has no declared exceptions, an empty array will be
* returned.
*/
- public Class<?>[] getExceptionTypes() {
- // TODO: use dex cache to speed looking up class
- return AnnotationAccess.getExceptions(this);
- }
+ public native Class<?>[] getExceptionTypes();
/**
* Returns an array of the {@code Class} objects associated with the
@@ -181,24 +177,23 @@
return super.getGenericExceptionTypes();
}
- @Override public Annotation[] getDeclaredAnnotations() {
- List<Annotation> result = AnnotationAccess.getDeclaredAnnotations(this);
- return result.toArray(new Annotation[result.size()]);
- }
+ @Override public native Annotation[] getDeclaredAnnotations();
@Override public boolean isAnnotationPresent(Class<? extends Annotation> annotationType) {
if (annotationType == null) {
throw new NullPointerException("annotationType == null");
}
- return AnnotationAccess.isDeclaredAnnotationPresent(this, annotationType);
+ return isAnnotationPresentNative(annotationType);
}
+ private native boolean isAnnotationPresentNative(Class<? extends Annotation> annotationType);
@Override public <A extends Annotation> A getAnnotation(Class<A> annotationType) {
if (annotationType == null) {
throw new NullPointerException("annotationType == null");
}
- return AnnotationAccess.getDeclaredAnnotation(this, annotationType);
+ return getAnnotationNative(annotationType);
}
+ private native <A extends Annotation> A getAnnotationNative(Class<A> annotationType);
/**
* Returns an array of arrays that represent the annotations of the formal
@@ -209,9 +204,13 @@
* @return an array of arrays of {@code Annotation} instances
*/
public Annotation[][] getParameterAnnotations() {
- return AnnotationAccess.getParameterAnnotations(
- declaringClassOfOverriddenMethod, dexMethodIndex);
+ Annotation[][] parameterAnnotations = getParameterAnnotationsNative();
+ if (parameterAnnotations == null) {
+ parameterAnnotations = new Annotation[getParameterTypes().length][0];
+ }
+ return parameterAnnotations;
}
+ private native Annotation[][] getParameterAnnotationsNative();
/**
* Returns the constructor's signature in non-printable form. This is called
diff --git a/libart/src/main/java/java/lang/reflect/Field.java b/libart/src/main/java/java/lang/reflect/Field.java
index 37f2ad0..06cc0b2 100644
--- a/libart/src/main/java/java/lang/reflect/Field.java
+++ b/libart/src/main/java/java/lang/reflect/Field.java
@@ -36,7 +36,6 @@
import java.lang.annotation.Annotation;
import java.util.Comparator;
import java.util.List;
-import libcore.reflect.AnnotationAccess;
import libcore.reflect.GenericSignatureParser;
import libcore.reflect.Types;
@@ -218,7 +217,7 @@
* instantiated for some reason
*/
public Type getGenericType() {
- String signatureAttribute = AnnotationAccess.getSignature(this);
+ String signatureAttribute = getSignatureAttribute();
Class<?> declaringClass = getDeclaringClass();
ClassLoader cl = declaringClass.getClassLoader();
GenericSignatureParser parser = new GenericSignatureParser(cl);
@@ -230,6 +229,19 @@
return genericType;
}
+ private String getSignatureAttribute() {
+ String[] annotation = getSignatureAnnotation();
+ if (annotation == null) {
+ return null;
+ }
+ StringBuilder result = new StringBuilder();
+ for (String s : annotation) {
+ result.append(s);
+ }
+ return result.toString();
+ }
+ private native String[] getSignatureAnnotation();
+
/**
* Returns the constructor's signature in non-printable form. This is called
* (only) from IO native code and needed for deriving the serialVersionUID
@@ -240,24 +252,23 @@
return Types.getSignature(getType());
}
- @Override public Annotation[] getDeclaredAnnotations() {
- List<Annotation> result = AnnotationAccess.getDeclaredAnnotations(this);
- return result.toArray(new Annotation[result.size()]);
- }
+ @Override public native Annotation[] getDeclaredAnnotations();
@Override public <A extends Annotation> A getAnnotation(Class<A> annotationType) {
if (annotationType == null) {
throw new NullPointerException("annotationType == null");
}
- return AnnotationAccess.getDeclaredAnnotation(this, annotationType);
+ return getAnnotationNative(annotationType);
}
+ private native <A extends Annotation> A getAnnotationNative(Class<A> annotationType);
@Override public boolean isAnnotationPresent(Class<? extends Annotation> annotationType) {
if (annotationType == null) {
throw new NullPointerException("annotationType == null");
}
- return AnnotationAccess.isDeclaredAnnotationPresent(this, annotationType);
+ return isAnnotationPresentNative(annotationType);
}
+ private native boolean isAnnotationPresentNative(Class<? extends Annotation> annotationType);
/**
* Returns the value of the field in the specified object. This reproduces
diff --git a/libart/src/main/java/java/lang/reflect/Method.java b/libart/src/main/java/java/lang/reflect/Method.java
index a07ec6f..79287ba 100644
--- a/libart/src/main/java/java/lang/reflect/Method.java
+++ b/libart/src/main/java/java/lang/reflect/Method.java
@@ -36,7 +36,6 @@
import java.lang.annotation.Annotation;
import java.util.Comparator;
import java.util.List;
-import libcore.reflect.AnnotationAccess;
import libcore.reflect.Types;
/**
@@ -148,16 +147,7 @@
*
* @return the declared exception classes
*/
- public Class<?>[] getExceptionTypes() {
- if (getDeclaringClass().isProxy()) {
- return getExceptionTypesNative();
- } else {
- // TODO: use dex cache to speed looking up class
- return AnnotationAccess.getExceptions(this);
- }
- }
-
- private native Class<?>[] getExceptionTypesNative();
+ public native Class<?>[] getExceptionTypes();
/**
* Returns an array of {@code Class} objects associated with the parameter
@@ -250,8 +240,9 @@
if (annotationType == null) {
throw new NullPointerException("annotationType == null");
}
- return AnnotationAccess.isDeclaredAnnotationPresent(this, annotationType);
+ return isAnnotationPresentNative(annotationType);
}
+ private native boolean isAnnotationPresentNative(Class<? extends Annotation> annotationType);
/**
* Returns the exception types as an array of {@code Type} instances. If
@@ -288,17 +279,15 @@
return Types.getType(getMethodOrConstructorGenericInfo().genericReturnType);
}
- @Override public Annotation[] getDeclaredAnnotations() {
- List<Annotation> result = AnnotationAccess.getDeclaredAnnotations(this);
- return result.toArray(new Annotation[result.size()]);
- }
+ @Override public native Annotation[] getDeclaredAnnotations();
@Override public <A extends Annotation> A getAnnotation(Class<A> annotationType) {
if (annotationType == null) {
throw new NullPointerException("annotationType == null");
}
- return AnnotationAccess.getDeclaredAnnotation(this, annotationType);
+ return getAnnotationNative(annotationType);
}
+ private native <A extends Annotation> A getAnnotationNative(Class<A> annotationType);
/**
* Returns an array of arrays that represent the annotations of the formal
@@ -309,9 +298,13 @@
* @return an array of arrays of {@code Annotation} instances
*/
public Annotation[][] getParameterAnnotations() {
- return AnnotationAccess.getParameterAnnotations(
- declaringClassOfOverriddenMethod, dexMethodIndex);
+ Annotation[][] parameterAnnotations = getParameterAnnotationsNative();
+ if (parameterAnnotations == null) {
+ parameterAnnotations = new Annotation[getParameterTypes().length][0];
+ }
+ return parameterAnnotations;
}
+ private native Annotation[][] getParameterAnnotationsNative();
/**
* Returns the default value for the annotation member represented by this
@@ -323,9 +316,7 @@
* if this annotation member is of type {@code Class} and no
* definition can be found
*/
- public Object getDefaultValue() {
- return AnnotationAccess.getDefaultValue(this);
- }
+ public native Object getDefaultValue();
/**
* Returns the result of dynamically invoking this method. Equivalent to
diff --git a/libart/src/main/java/java/lang/reflect/Proxy.java b/libart/src/main/java/java/lang/reflect/Proxy.java
index 18ad49c..8aefd3b 100755
--- a/libart/src/main/java/java/lang/reflect/Proxy.java
+++ b/libart/src/main/java/java/lang/reflect/Proxy.java
@@ -108,6 +108,20 @@
*/
public static Class<?> getProxyClass(ClassLoader loader, Class<?>... interfaces)
throws IllegalArgumentException {
+ return getProxyClassImpl(loader,
+ interfaces,
+ false); // regular non-lambda proxy
+ }
+
+ private static Class<?> getLambdaProxyClass(ClassLoader loader, Class<?> iface) {
+ return getProxyClassImpl(loader,
+ new Class<?>[] { iface },
+ true); // special lambda proxy
+ }
+
+ private static Class<?> getProxyClassImpl(ClassLoader loader,
+ Class<?>[] interfaces,
+ boolean isLambdaProxy) {
if (loader == null) {
loader = ClassLoader.getSystemClassLoader();
}
@@ -116,6 +130,10 @@
throw new NullPointerException("interfaces == null");
}
+ if (isLambdaProxy && interfaces.length != 1) {
+ throw new IllegalArgumentException("lambda proxies must have exactly 1 interface");
+ }
+
// Make a copy of the list early on because we're using the list as a
// cache key and we don't want it changing under us.
final List<Class<?>> interfaceList = new ArrayList<Class<?>>(interfaces.length);
@@ -134,12 +152,14 @@
throw new IllegalArgumentException("duplicate interface in list: " + interfaceList);
}
- synchronized (loader.proxyCache) {
- Class<?> proxy = loader.proxyCache.get(interfaceList);
- if (proxy != null) {
- return proxy;
+ if (!isLambdaProxy) {
+ synchronized (loader.proxyCache) {
+ Class<?> proxy = loader.proxyCache.get(interfaceList);
+ if (proxy != null) {
+ return proxy;
+ }
}
- }
+ } // else ... Lambda proxies have a cache in the (native) runtime which does same as above.
String commonPackageName = null;
for (Class<?> c : interfaces) {
@@ -169,18 +189,45 @@
Method[] methodsArray = methods.toArray(new Method[methods.size()]);
Class<?>[][] exceptionsArray = exceptions.toArray(new Class<?>[exceptions.size()][]);
+ String suffix;
+ if (isLambdaProxy) {
+ suffix = "$LambdaProxy";
+ } else {
+ suffix = "$Proxy";
+ }
+
String baseName = commonPackageName != null && !commonPackageName.isEmpty()
- ? commonPackageName + ".$Proxy"
- : "$Proxy";
+ ? commonPackageName + "." + suffix
+ : suffix;
Class<?> result;
- synchronized (loader.proxyCache) {
- result = loader.proxyCache.get(interfaceList);
- if (result == null) {
- String name = baseName + nextClassNameIndex++;
- result = generateProxy(name, interfaces, loader, methodsArray, exceptionsArray);
- loader.proxyCache.put(interfaceList, result);
+ if (!isLambdaProxy) {
+ synchronized (loader.proxyCache) {
+ result = loader.proxyCache.get(interfaceList);
+ if (result == null) {
+ String name = baseName + nextClassNameIndex++;
+ result = generateProxy(name,
+ interfaces,
+ loader,
+ methodsArray,
+ exceptionsArray,
+ isLambdaProxy);
+ loader.proxyCache.put(interfaceList, result);
+ }
+ }
+ } else {
+ String name;
+ synchronized (loader.proxyCache) {
+ name = baseName + nextClassNameIndex++;
}
+
+ // Let the runtime sort out duplicate lambda proxies itself.
+ result = generateProxy(name,
+ interfaces,
+ loader,
+ methodsArray,
+ exceptionsArray,
+ isLambdaProxy);
}
return result;
@@ -380,7 +427,7 @@
private static native Class<?> generateProxy(String name, Class<?>[] interfaces,
ClassLoader loader, Method[] methods,
- Class<?>[][] exceptions);
+ Class<?>[][] exceptions, boolean isLambdaProxy);
/*
* The VM clones this method's descriptor when generating a proxy class.
diff --git a/luni/src/main/files/README.cacerts b/luni/src/main/files/README.cacerts
deleted file mode 100755
index ca5c570..0000000
--- a/luni/src/main/files/README.cacerts
+++ /dev/null
@@ -1,7 +0,0 @@
-The filenames in the cacerts directory are in the format of <hash>.<n>
-where "hash" is the subject hash produced by:
-
- openssl x509 -subject_hash_old -in filename
-
-and the "n" is a unique integer identifier starting at 0 to deal
-with collisions. See OpenSSL's c_rehash manpage for details.
diff --git a/luni/src/main/files/cacerts/00673b5b.0 b/luni/src/main/files/cacerts/00673b5b.0
deleted file mode 100644
index ccea509..0000000
--- a/luni/src/main/files/cacerts/00673b5b.0
+++ /dev/null
@@ -1,83 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCB
-qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
-Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
-MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
-BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3MDAwMDAwWhcNMzYw
-NzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5j
-LjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYG
-A1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
-IG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqG
-SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsoPD7gFnUnMekz52hWXMJEEUMDSxuaPFs
-W0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ1CRfBsDMRJSUjQJib+ta
-3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGcq/gcfomk
-6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6
-Sk/KaAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94J
-NqR32HuHUETVPm4pafs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBA
-MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XP
-r87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUFAAOCAQEAeRHAS7ORtvzw6WfU
-DW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeEuzLlQRHAd9mz
-YJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
-xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2
-/qxAeeWsEG89jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/
-LHbTY5xZ3Y+m4Q6gLkH3LpVHz7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7
-jVaMaA==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 34:4e:d5:57:20:d5:ed:ec:49:f4:2f:ce:37:db:2b:6d
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2006 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA
- Validity
- Not Before: Nov 17 00:00:00 2006 GMT
- Not After : Jul 16 23:59:59 2036 GMT
- Subject: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2006 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:ac:a0:f0:fb:80:59:d4:9c:c7:a4:cf:9d:a1:59:
- 73:09:10:45:0c:0d:2c:6e:68:f1:6c:5b:48:68:49:
- 59:37:fc:0b:33:19:c2:77:7f:cc:10:2d:95:34:1c:
- e6:eb:4d:09:a7:1c:d2:b8:c9:97:36:02:b7:89:d4:
- 24:5f:06:c0:cc:44:94:94:8d:02:62:6f:eb:5a:dd:
- 11:8d:28:9a:5c:84:90:10:7a:0d:bd:74:66:2f:6a:
- 38:a0:e2:d5:54:44:eb:1d:07:9f:07:ba:6f:ee:e9:
- fd:4e:0b:29:f5:3e:84:a0:01:f1:9c:ab:f8:1c:7e:
- 89:a4:e8:a1:d8:71:65:0d:a3:51:7b:ee:bc:d2:22:
- 60:0d:b9:5b:9d:df:ba:fc:51:5b:0b:af:98:b2:e9:
- 2e:e9:04:e8:62:87:de:2b:c8:d7:4e:c1:4c:64:1e:
- dd:cf:87:58:ba:4a:4f:ca:68:07:1d:1c:9d:4a:c6:
- d5:2f:91:cc:7c:71:72:1c:c5:c0:67:eb:32:fd:c9:
- 92:5c:94:da:85:c0:9b:bf:53:7d:2b:09:f4:8c:9d:
- 91:1f:97:6a:52:cb:de:09:36:a4:77:d8:7b:87:50:
- 44:d5:3e:6e:29:69:fb:39:49:26:1e:09:a5:80:7b:
- 40:2d:eb:e8:27:85:c9:fe:61:fd:7e:e6:7c:97:1d:
- d5:9d
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- 7B:5B:45:CF:AF:CE:CB:7A:FD:31:92:1A:6A:B6:F3:46:EB:57:48:50
- Signature Algorithm: sha1WithRSAEncryption
- 79:11:c0:4b:b3:91:b6:fc:f0:e9:67:d4:0d:6e:45:be:55:e8:
- 93:d2:ce:03:3f:ed:da:25:b0:1d:57:cb:1e:3a:76:a0:4c:ec:
- 50:76:e8:64:72:0c:a4:a9:f1:b8:8b:d6:d6:87:84:bb:32:e5:
- 41:11:c0:77:d9:b3:60:9d:eb:1b:d5:d1:6e:44:44:a9:a6:01:
- ec:55:62:1d:77:b8:5c:8e:48:49:7c:9c:3b:57:11:ac:ad:73:
- 37:8e:2f:78:5c:90:68:47:d9:60:60:e6:fc:07:3d:22:20:17:
- c4:f7:16:e9:c4:d8:72:f9:c8:73:7c:df:16:2f:15:a9:3e:fd:
- 6a:27:b6:a1:eb:5a:ba:98:1f:d5:e3:4d:64:0a:9d:13:c8:61:
- ba:f5:39:1c:87:ba:b8:bd:7b:22:7f:f6:fe:ac:40:79:e5:ac:
- 10:6f:3d:8f:1b:79:76:8b:c4:37:b3:21:18:84:e5:36:00:eb:
- 63:20:99:b9:e9:fe:33:04:bb:41:c8:c1:02:f9:44:63:20:9e:
- 81:ce:42:d3:d6:3f:2c:76:d3:63:9c:59:dd:8f:a6:e1:0e:a0:
- 2e:41:f7:2e:95:47:cf:bc:fd:33:f3:f6:0b:61:7e:7e:91:2b:
- 81:47:c2:27:30:ee:a7:10:5d:37:8f:5c:39:2b:e4:04:f0:7b:
- 8d:56:8c:68
-SHA1 Fingerprint=91:C6:D6:EE:3E:8A:C8:63:84:E5:48:C2:99:29:5C:75:6C:81:7B:81
diff --git a/luni/src/main/files/cacerts/02b73561.0 b/luni/src/main/files/cacerts/02b73561.0
deleted file mode 100644
index 573528b..0000000
--- a/luni/src/main/files/cacerts/02b73561.0
+++ /dev/null
@@ -1,90 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEb
-MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
-GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRp
-ZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVow
-fjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
-A1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAiBgNV
-BAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEB
-BQADggEPADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPM
-cm3ye5drswfxdySRXyWP9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3S
-HpR7LZQdqnXXs5jLrLxkU0C8j6ysNstcrbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996
-CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rCoznl2yY4rYsK7hljxxwk
-3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3Vp6ea5EQz
-6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNV
-HQ4EFgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1Ud
-EwEB/wQFMAMBAf8wgYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2Rv
-Y2EuY29tL1NlY3VyZUNlcnRpZmljYXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRw
-Oi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmww
-DQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm4J4oqF7Tt/Q0
-5qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj
-Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtI
-gKvcnDe4IRRLDXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJ
-aD61JlfutuC23bkpgHl9j6PwpCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDl
-izeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1HRR3B7Hzs/Sk=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=GB, ST=Greater Manchester, L=Salford, O=Comodo CA Limited, CN=Secure Certificate Services
- Validity
- Not Before: Jan 1 00:00:00 2004 GMT
- Not After : Dec 31 23:59:59 2028 GMT
- Subject: C=GB, ST=Greater Manchester, L=Salford, O=Comodo CA Limited, CN=Secure Certificate Services
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c0:71:33:82:8a:d0:70:eb:73:87:82:40:d5:1d:
- e4:cb:c9:0e:42:90:f9:de:34:b9:a1:ba:11:f4:25:
- 85:f3:cc:72:6d:f2:7b:97:6b:b3:07:f1:77:24:91:
- 5f:25:8f:f6:74:3d:e4:80:c2:f8:3c:0d:f3:bf:40:
- ea:f7:c8:52:d1:72:6f:ef:c8:ab:41:b8:6e:2e:17:
- 2a:95:69:0c:cd:d2:1e:94:7b:2d:94:1d:aa:75:d7:
- b3:98:cb:ac:bc:64:53:40:bc:8f:ac:ac:36:cb:5c:
- ad:bb:dd:e0:94:17:ec:d1:5c:d0:bf:ef:a5:95:c9:
- 90:c5:b0:ac:fb:1b:43:df:7a:08:5d:b7:b8:f2:40:
- 1b:2b:27:9e:50:ce:5e:65:82:88:8c:5e:d3:4e:0c:
- 7a:ea:08:91:b6:36:aa:2b:42:fb:ea:c2:a3:39:e5:
- db:26:38:ad:8b:0a:ee:19:63:c7:1c:24:df:03:78:
- da:e6:ea:c1:47:1a:0b:0b:46:09:dd:02:fc:de:cb:
- 87:5f:d7:30:63:68:a1:ae:dc:32:a1:ba:be:fe:44:
- ab:68:b6:a5:17:15:fd:bd:d5:a7:a7:9a:e4:44:33:
- e9:88:8e:fc:ed:51:eb:93:71:4e:ad:01:e7:44:8e:
- ab:2d:cb:a8:fe:01:49:48:f0:c0:dd:c7:68:d8:92:
- fe:3d
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 3C:D8:93:88:C2:C0:82:09:CC:01:99:06:93:20:E9:9E:70:09:63:4F
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 CRL Distribution Points:
-
- Full Name:
- URI:http://crl.comodoca.com/SecureCertificateServices.crl
-
- Full Name:
- URI:http://crl.comodo.net/SecureCertificateServices.crl
-
- Signature Algorithm: sha1WithRSAEncryption
- 87:01:6d:23:1d:7e:5b:17:7d:c1:61:32:cf:8f:e7:f3:8a:94:
- 59:66:e0:9e:28:a8:5e:d3:b7:f4:34:e6:aa:39:b2:97:16:c5:
- 82:6f:32:a4:e9:8c:e7:af:fd:ef:c2:e8:b9:4b:aa:a3:f4:e6:
- da:8d:65:21:fb:ba:80:eb:26:28:85:1a:fe:39:8c:de:5b:04:
- 04:b4:54:f9:a3:67:9e:41:fa:09:52:cc:05:48:a8:c9:3f:21:
- 04:1e:ce:48:6b:fc:85:e8:c2:7b:af:7f:b7:cc:f8:5f:3a:fd:
- 35:c6:0d:ef:97:dc:4c:ab:11:e1:6b:cb:31:d1:6c:fb:48:80:
- ab:dc:9c:37:b8:21:14:4b:0d:71:3d:ec:83:33:6e:d1:6e:32:
- 16:ec:98:c7:16:8b:59:a6:34:ab:05:57:2d:93:f7:aa:13:cb:
- d2:13:e2:b7:2e:3b:cd:6b:50:17:09:68:3e:b5:26:57:ee:b6:
- e0:b6:dd:b9:29:80:79:7d:8f:a3:f0:a4:28:a4:15:c4:85:f4:
- 27:d4:6b:bf:e5:5c:e4:65:02:76:54:b4:e3:37:66:24:d3:19:
- 61:c8:52:10:e5:8b:37:9a:b9:a9:f9:1d:bf:ea:99:92:61:96:
- ff:01:cd:a1:5f:0d:bc:71:bc:0e:ac:0b:1d:47:45:1d:c1:ec:
- 7c:ec:fd:29
-SHA1 Fingerprint=4A:65:D5:F4:1D:EF:39:B8:B8:90:4A:4A:D3:64:81:33:CF:C7:A1:D1
diff --git a/luni/src/main/files/cacerts/03f2b8cf.0 b/luni/src/main/files/cacerts/03f2b8cf.0
deleted file mode 100644
index 82813fb..0000000
--- a/luni/src/main/files/cacerts/03f2b8cf.0
+++ /dev/null
@@ -1,120 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFWDCCA0CgAwIBAgIQUHBrzdgT/BtOOzNy0hFIjTANBgkqhkiG9w0BAQsFADBG
-MQswCQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNV
-BAMMEkNBIOayg+mAmuagueivgeS5pjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgw
-MTAwMDFaMEYxCzAJBgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRl
-ZDEbMBkGA1UEAwwSQ0Eg5rKD6YCa5qC56K+B5LmmMIICIjANBgkqhkiG9w0BAQEF
-AAOCAg8AMIICCgKCAgEA0EkhHiX8h8EqwqzbdoYGTufQdDTc7WU1/FDWiD+k8H/r
-D195L4mx/bxjWDeTmzj4t1up+thxx7S8gJeNbEvxUNUqKaqoGXqW5pWOdO2XCld1
-9AXbbQs5uQF/qvbW2mzmBeCkTVL829B0txGMe41P/4eDrv8FAxNXUDf+jJZSEExf
-v5RxadmWPgxDT74wwJ85dE8GRV2j1lY5aAfMh09Qd5Nx2UQIsYo06Yms25tO4dnk
-UkWMLhQfkWsZHWgpLFbE4h4TV2TwYeO5Ed+w4VegG63XX9Gv2ystP9Bojg/qnw+L
-NVgbExz03jWhCl3W6t8Sb8D7aQdGctyB9gQjF+BNdeFyb7Ao65vh4YOhn0pdr8yb
-+gIgthhid5E7o9Vlrdx8kHccREGkSovrlXLp9glk3Kgtn3R46MGiCWOc76DbT52V
-qyBPt7D3h1ymoOQ3OMdc4zUPLK2jgKLsLl3Az+2LBcLmc272idX10kaO6m1jGx6K
-yX2m+Jzr5dVjhU1zZmkR/sgO9MHHZklTfuQZa/HpelmjbX7FF+Ynxu8b22/8DU0G
-AbQOXDBGVWCvOGU6yke6rCzMRh+yRpY/8+0mBe53oWprfi1tWFxK1I5nuPHa1UaK
-J/kR8slC/k7e3x9cxKSGhxYzoacXGKUN5AXlK8IrC6KVkLn9YDxOiT7nnO4fuwEC
-AwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
-BBYEFOBNv9ybQV0T6GTwp+kVpOGBwboxMA0GCSqGSIb3DQEBCwUAA4ICAQBqinA4
-WbbaixjIvirTthnVZil6Xc1bL3McJk6jfW+rtylNpumlEYOnOXOvEESS5iVdT2H6
-yAa+Tkvv/vMx/sZ8cApBWNromUuWyXi8mHwCKe0JgOYKOoICKuLJL8hWGSbueBwj
-/feTZU7n85iYr83d2Z5AiDEoOqsuC7CsDCT6eiaY8xJhEPRdF/d+4niXVOKM6Cm6
-jBAyvd0zaziGfjk9DgNyp115j0WKWa5bIW4xRtVZjc8VX90xJc/bYNaBRHIpAlf2
-ltTW/+op2znFuCyKGo3Oy+dCMYYFaA6eFN0AkLppRQjbbpCBhqcqBT/mhDn4t/lX
-X0ykeVoQDF7Va/81XwVRHmyjdanPUIPTfPRm94KNPQx96N97qA4bLJyuQHCH2u2n
-FoJavjVsIE4iYdm8UXrNemHcSxH5/mc0zy4EZmFcV5cjjPOGG0jfKq+nwf/Yjj4D
-u9gqsPoUJbJRa4ZDhS4HIxaAjUz7tGM7zMN07RujHv41D198HRaG9Q7DlfEvr10l
-O1Hm13ZBONFLAzkopR6RctR9q5czxNM+4Gm2KHmgCY0c0f9BckgG/Jou5yD5m6Le
-ie2uPAmvylezkolwQOQvT8Jwg0DXJCxr5wkf09XHwQj02w47HAcLQxGEIYbpgNR1
-2KvxAmLBsX5VYc8T1yaw15zLKYs4SgsOkI26oQ==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 50:70:6b:cd:d8:13:fc:1b:4e:3b:33:72:d2:11:48:8d
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=CN, O=WoSign CA Limited, CN=CA \xE6\xB2\x83\xE9\x80\x9A\xE6\xA0\xB9\xE8\xAF\x81\xE4\xB9\xA6
- Validity
- Not Before: Aug 8 01:00:01 2009 GMT
- Not After : Aug 8 01:00:01 2039 GMT
- Subject: C=CN, O=WoSign CA Limited, CN=CA \xE6\xB2\x83\xE9\x80\x9A\xE6\xA0\xB9\xE8\xAF\x81\xE4\xB9\xA6
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:d0:49:21:1e:25:fc:87:c1:2a:c2:ac:db:76:86:
- 06:4e:e7:d0:74:34:dc:ed:65:35:fc:50:d6:88:3f:
- a4:f0:7f:eb:0f:5f:79:2f:89:b1:fd:bc:63:58:37:
- 93:9b:38:f8:b7:5b:a9:fa:d8:71:c7:b4:bc:80:97:
- 8d:6c:4b:f1:50:d5:2a:29:aa:a8:19:7a:96:e6:95:
- 8e:74:ed:97:0a:57:75:f4:05:db:6d:0b:39:b9:01:
- 7f:aa:f6:d6:da:6c:e6:05:e0:a4:4d:52:fc:db:d0:
- 74:b7:11:8c:7b:8d:4f:ff:87:83:ae:ff:05:03:13:
- 57:50:37:fe:8c:96:52:10:4c:5f:bf:94:71:69:d9:
- 96:3e:0c:43:4f:be:30:c0:9f:39:74:4f:06:45:5d:
- a3:d6:56:39:68:07:cc:87:4f:50:77:93:71:d9:44:
- 08:b1:8a:34:e9:89:ac:db:9b:4e:e1:d9:e4:52:45:
- 8c:2e:14:1f:91:6b:19:1d:68:29:2c:56:c4:e2:1e:
- 13:57:64:f0:61:e3:b9:11:df:b0:e1:57:a0:1b:ad:
- d7:5f:d1:af:db:2b:2d:3f:d0:68:8e:0f:ea:9f:0f:
- 8b:35:58:1b:13:1c:f4:de:35:a1:0a:5d:d6:ea:df:
- 12:6f:c0:fb:69:07:46:72:dc:81:f6:04:23:17:e0:
- 4d:75:e1:72:6f:b0:28:eb:9b:e1:e1:83:a1:9f:4a:
- 5d:af:cc:9b:fa:02:20:b6:18:62:77:91:3b:a3:d5:
- 65:ad:dc:7c:90:77:1c:44:41:a4:4a:8b:eb:95:72:
- e9:f6:09:64:dc:a8:2d:9f:74:78:e8:c1:a2:09:63:
- 9c:ef:a0:db:4f:9d:95:ab:20:4f:b7:b0:f7:87:5c:
- a6:a0:e4:37:38:c7:5c:e3:35:0f:2c:ad:a3:80:a2:
- ec:2e:5d:c0:cf:ed:8b:05:c2:e6:73:6e:f6:89:d5:
- f5:d2:46:8e:ea:6d:63:1b:1e:8a:c9:7d:a6:f8:9c:
- eb:e5:d5:63:85:4d:73:66:69:11:fe:c8:0e:f4:c1:
- c7:66:49:53:7e:e4:19:6b:f1:e9:7a:59:a3:6d:7e:
- c5:17:e6:27:c6:ef:1b:db:6f:fc:0d:4d:06:01:b4:
- 0e:5c:30:46:55:60:af:38:65:3a:ca:47:ba:ac:2c:
- cc:46:1f:b2:46:96:3f:f3:ed:26:05:ee:77:a1:6a:
- 6b:7e:2d:6d:58:5c:4a:d4:8e:67:b8:f1:da:d5:46:
- 8a:27:f9:11:f2:c9:42:fe:4e:de:df:1f:5c:c4:a4:
- 86:87:16:33:a1:a7:17:18:a5:0d:e4:05:e5:2b:c2:
- 2b:0b:a2:95:90:b9:fd:60:3c:4e:89:3e:e7:9c:ee:
- 1f:bb:01
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- E0:4D:BF:DC:9B:41:5D:13:E8:64:F0:A7:E9:15:A4:E1:81:C1:BA:31
- Signature Algorithm: sha256WithRSAEncryption
- 6a:8a:70:38:59:b6:da:8b:18:c8:be:2a:d3:b6:19:d5:66:29:
- 7a:5d:cd:5b:2f:73:1c:26:4e:a3:7d:6f:ab:b7:29:4d:a6:e9:
- a5:11:83:a7:39:73:af:10:44:92:e6:25:5d:4f:61:fa:c8:06:
- be:4e:4b:ef:fe:f3:31:fe:c6:7c:70:0a:41:58:da:e8:99:4b:
- 96:c9:78:bc:98:7c:02:29:ed:09:80:e6:0a:3a:82:02:2a:e2:
- c9:2f:c8:56:19:26:ee:78:1c:23:fd:f7:93:65:4e:e7:f3:98:
- 98:af:cd:dd:d9:9e:40:88:31:28:3a:ab:2e:0b:b0:ac:0c:24:
- fa:7a:26:98:f3:12:61:10:f4:5d:17:f7:7e:e2:78:97:54:e2:
- 8c:e8:29:ba:8c:10:32:bd:dd:33:6b:38:86:7e:39:3d:0e:03:
- 72:a7:5d:79:8f:45:8a:59:ae:5b:21:6e:31:46:d5:59:8d:cf:
- 15:5f:dd:31:25:cf:db:60:d6:81:44:72:29:02:57:f6:96:d4:
- d6:ff:ea:29:db:39:c5:b8:2c:8a:1a:8d:ce:cb:e7:42:31:86:
- 05:68:0e:9e:14:dd:00:90:ba:69:45:08:db:6e:90:81:86:a7:
- 2a:05:3f:e6:84:39:f8:b7:f9:57:5f:4c:a4:79:5a:10:0c:5e:
- d5:6b:ff:35:5f:05:51:1e:6c:a3:75:a9:cf:50:83:d3:7c:f4:
- 66:f7:82:8d:3d:0c:7d:e8:df:7b:a8:0e:1b:2c:9c:ae:40:70:
- 87:da:ed:a7:16:82:5a:be:35:6c:20:4e:22:61:d9:bc:51:7a:
- cd:7a:61:dc:4b:11:f9:fe:67:34:cf:2e:04:66:61:5c:57:97:
- 23:8c:f3:86:1b:48:df:2a:af:a7:c1:ff:d8:8e:3e:03:bb:d8:
- 2a:b0:fa:14:25:b2:51:6b:86:43:85:2e:07:23:16:80:8d:4c:
- fb:b4:63:3b:cc:c3:74:ed:1b:a3:1e:fe:35:0f:5f:7c:1d:16:
- 86:f5:0e:c3:95:f1:2f:af:5d:25:3b:51:e6:d7:76:41:38:d1:
- 4b:03:39:28:a5:1e:91:72:d4:7d:ab:97:33:c4:d3:3e:e0:69:
- b6:28:79:a0:09:8d:1c:d1:ff:41:72:48:06:fc:9a:2e:e7:20:
- f9:9b:a2:de:89:ed:ae:3c:09:af:ca:57:b3:92:89:70:40:e4:
- 2f:4f:c2:70:83:40:d7:24:2c:6b:e7:09:1f:d3:d5:c7:c1:08:
- f4:db:0e:3b:1c:07:0b:43:11:84:21:86:e9:80:d4:75:d8:ab:
- f1:02:62:c1:b1:7e:55:61:cf:13:d7:26:b0:d7:9c:cb:29:8b:
- 38:4a:0b:0e:90:8d:ba:a1
-SHA1 Fingerprint=16:32:47:8D:89:F9:21:3A:92:00:85:63:F5:A4:A7:D3:12:40:8A:D6
diff --git a/luni/src/main/files/cacerts/04f60c28.0 b/luni/src/main/files/cacerts/04f60c28.0
deleted file mode 100644
index dec2f4e..0000000
--- a/luni/src/main/files/cacerts/04f60c28.0
+++ /dev/null
@@ -1,54 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDEL
-MAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNl
-eSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMT
-JVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMjAx
-MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
-Ck5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVUaGUg
-VVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlm
-aWNhdGlvbiBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqflo
-I+d61SRvU8Za2EurxtW20eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinng
-o4N+LZfQYcTxmdwlkWOrfzCjtHDix6EznPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0G
-A1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNVHQ8BAf8EBAMCAQYwDwYD
-VR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBBHU6+4WMB
-zzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbW
-RNZu9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 5c:8b:99:c5:5a:94:c5:d2:71:56:de:cd:89:80:cc:26
- Signature Algorithm: ecdsa-with-SHA384
- Issuer: C=US, ST=New Jersey, L=Jersey City, O=The USERTRUST Network, CN=USERTrust ECC Certification Authority
- Validity
- Not Before: Feb 1 00:00:00 2010 GMT
- Not After : Jan 18 23:59:59 2038 GMT
- Subject: C=US, ST=New Jersey, L=Jersey City, O=The USERTRUST Network, CN=USERTrust ECC Certification Authority
- Subject Public Key Info:
- Public Key Algorithm: id-ecPublicKey
- Public-Key: (384 bit)
- pub:
- 04:1a:ac:54:5a:a9:f9:68:23:e7:7a:d5:24:6f:53:
- c6:5a:d8:4b:ab:c6:d5:b6:d1:e6:73:71:ae:dd:9c:
- d6:0c:61:fd:db:a0:89:03:b8:05:14:ec:57:ce:ee:
- 5d:3f:e2:21:b3:ce:f7:d4:8a:79:e0:a3:83:7e:2d:
- 97:d0:61:c4:f1:99:dc:25:91:63:ab:7f:30:a3:b4:
- 70:e2:c7:a1:33:9c:f3:bf:2e:5c:53:b1:5f:b3:7d:
- 32:7f:8a:34:e3:79:79
- ASN1 OID: secp384r1
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 3A:E1:09:86:D4:CF:19:C2:96:76:74:49:76:DC:E0:35:C6:63:63:9A
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- Signature Algorithm: ecdsa-with-SHA384
- 30:65:02:30:36:67:a1:16:08:dc:e4:97:00:41:1d:4e:be:e1:
- 63:01:cf:3b:aa:42:11:64:a0:9d:94:39:02:11:79:5c:7b:1d:
- fa:64:b9:ee:16:42:b3:bf:8a:c2:09:c4:ec:e4:b1:4d:02:31:
- 00:e9:2a:61:47:8c:52:4a:4b:4e:18:70:f6:d6:44:d6:6e:f5:
- 83:ba:6d:58:bd:24:d9:56:48:ea:ef:c4:a2:46:81:88:6a:3a:
- 46:d1:a9:9b:4d:c9:61:da:d1:5d:57:6a:18
-SHA1 Fingerprint=D1:CB:CA:5D:B2:D5:2A:7F:69:3B:67:4D:E5:F0:5A:1D:0C:95:7D:F0
diff --git a/luni/src/main/files/cacerts/052e396b.0 b/luni/src/main/files/cacerts/052e396b.0
deleted file mode 100644
index 009c813..0000000
--- a/luni/src/main/files/cacerts/052e396b.0
+++ /dev/null
@@ -1,87 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEU
-MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3
-b3JrMSMwIQYDVQQDExpBZGRUcnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1
-MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcxCzAJBgNVBAYTAlNFMRQwEgYDVQQK
-EwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5ldHdvcmsxIzAh
-BgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG9w0B
-AQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwq
-xBb/4Oxx64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G
-87B4pfYOQnrjfxvM0PC3KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i
-2O+tCBGaKZnhqkRFmhJePp1tUvznoD1oL/BLcHwTOK28FSXx1s6rosAx1i+f4P8U
-WfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GRwVY18BTcZTYJbqukB8c1
-0cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HUMIHRMB0G
-A1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0T
-AQH/BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6Fr
-pGkwZzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQL
-ExRBZGRUcnVzdCBUVFAgTmV0d29yazEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlm
-aWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBABmrder4i2VhlRO6aQTv
-hsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxGGuoYQ992zPlm
-hpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X
-dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3
-P6CxB9bpT9zeRXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9Y
-iQBCYz95OdBEsIJuQRno3eDBiFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5no
-xqE=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=SE, O=AddTrust AB, OU=AddTrust TTP Network, CN=AddTrust Qualified CA Root
- Validity
- Not Before: May 30 10:44:50 2000 GMT
- Not After : May 30 10:44:50 2020 GMT
- Subject: C=SE, O=AddTrust AB, OU=AddTrust TTP Network, CN=AddTrust Qualified CA Root
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:e4:1e:9a:fe:dc:09:5a:87:a4:9f:47:be:11:5f:
- af:84:34:db:62:3c:79:78:b7:e9:30:b5:ec:0c:1c:
- 2a:c4:16:ff:e0:ec:71:eb:8a:f5:11:6e:ed:4f:0d:
- 91:d2:12:18:2d:49:15:01:c2:a4:22:13:c7:11:64:
- ff:22:12:9a:b9:8e:5c:2f:08:cf:71:6a:b3:67:01:
- 59:f1:5d:46:f3:b0:78:a5:f6:0e:42:7a:e3:7f:1b:
- cc:d0:f0:b7:28:fd:2a:ea:9e:b3:b0:b9:04:aa:fd:
- f6:c7:b4:b1:b8:2a:a0:fb:58:f1:19:a0:6f:70:25:
- 7e:3e:69:4a:7f:0f:22:d8:ef:ad:08:11:9a:29:99:
- e1:aa:44:45:9a:12:5e:3e:9d:6d:52:fc:e7:a0:3d:
- 68:2f:f0:4b:70:7c:13:38:ad:bc:15:25:f1:d6:ce:
- ab:a2:c0:31:d6:2f:9f:e0:ff:14:59:fc:84:93:d9:
- 87:7c:4c:54:13:eb:9f:d1:2d:11:f8:18:3a:3a:de:
- 25:d9:f7:d3:40:ed:a4:06:12:c4:3b:e1:91:c1:56:
- 35:f0:14:dc:65:36:09:6e:ab:a4:07:c7:35:d1:c2:
- 03:33:36:5b:75:26:6d:42:f1:12:6b:43:6f:4b:71:
- 94:fa:34:1d:ed:13:6e:ca:80:7f:98:2f:6c:b9:65:
- d8:e9
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 39:95:8B:62:8B:5C:C9:D4:80:BA:58:0F:97:3F:15:08:43:CC:98:A7
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Authority Key Identifier:
- keyid:39:95:8B:62:8B:5C:C9:D4:80:BA:58:0F:97:3F:15:08:43:CC:98:A7
- DirName:/C=SE/O=AddTrust AB/OU=AddTrust TTP Network/CN=AddTrust Qualified CA Root
- serial:01
-
- Signature Algorithm: sha1WithRSAEncryption
- 19:ab:75:ea:f8:8b:65:61:95:13:ba:69:04:ef:86:ca:13:a0:
- c7:aa:4f:64:1b:3f:18:f6:a8:2d:2c:55:8f:05:b7:30:ea:42:
- 6a:1d:c0:25:51:2d:a7:bf:0c:b3:ed:ef:08:7f:6c:3c:46:1a:
- ea:18:43:df:76:cc:f9:66:86:9c:2c:68:f5:e9:17:f8:31:b3:
- 18:c4:d6:48:7d:23:4c:68:c1:7e:bb:01:14:6f:c5:d9:6e:de:
- bb:04:42:6a:f8:f6:5c:7d:e5:da:fa:87:eb:0d:35:52:67:d0:
- 9e:97:76:05:93:3f:95:c7:01:e6:69:55:38:7f:10:61:99:c9:
- e3:5f:a6:ca:3e:82:63:48:aa:e2:08:48:3e:aa:f2:b2:85:62:
- a6:b4:a7:d9:bd:37:9c:68:b5:2d:56:7d:b0:b7:3f:a0:b1:07:
- d6:e9:4f:dc:de:45:71:30:32:7f:1b:2e:09:f9:bf:52:a1:ee:
- c2:80:3e:06:5c:2e:55:40:c1:1b:f5:70:45:b0:dc:5d:fa:f6:
- 72:5a:77:d2:63:cd:cf:58:89:00:42:63:3f:79:39:d0:44:b0:
- 82:6e:41:19:e8:dd:e0:c1:88:5a:d1:1e:71:93:1f:24:30:74:
- e5:1e:a8:de:3c:27:37:7f:83:ae:9e:77:cf:f0:30:b1:ff:4b:
- 99:e8:c6:a1
-SHA1 Fingerprint=4D:23:78:EC:91:95:39:B5:00:7F:75:8F:03:3B:21:1E:C5:4D:8B:CF
diff --git a/luni/src/main/files/cacerts/08aef7bb.0 b/luni/src/main/files/cacerts/08aef7bb.0
deleted file mode 100644
index 3c6c9f8..0000000
--- a/luni/src/main/files/cacerts/08aef7bb.0
+++ /dev/null
@@ -1,95 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMx
-IDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxs
-cyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9v
-dCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDcxMjEzMTcwNzU0WhcNMjIxMjE0
-MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdl
-bGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQD
-DC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkw
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+r
-WxxTkqxtnt3CxC5FlAM1iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjU
-Dk/41itMpBb570OYj7OeUt9tkTmPOL13i0Nj67eT/DBMHAGTthP796EfvyXhdDcs
-HqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8bJVhHlfXBIEyg1J55oNj
-z7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiBK0HmOFaf
-SZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/Slwxl
-AgMBAAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqG
-KGh0dHA6Ly9jcmwucGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0P
-AQH/BAQDAgHGMB0GA1UdDgQWBBQmlRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0j
-BIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGBi6SBiDCBhTELMAkGA1UEBhMC
-VVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNX
-ZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg
-Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEB
-ALkVsUSRzCPIK0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd
-/ZDJPHV3V3p9+N701NX3leZ0bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pB
-A4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSljqHyita04pO2t/caaH/+Xc/77szWn
-k4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+esE2fDbbFwRnzVlhE9
-iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJtylv
-2G0xffX8oRAHh84vWdw+WNs=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=US, O=Wells Fargo WellsSecure, OU=Wells Fargo Bank NA, CN=WellsSecure Public Root Certificate Authority
- Validity
- Not Before: Dec 13 17:07:54 2007 GMT
- Not After : Dec 14 00:07:54 2022 GMT
- Subject: C=US, O=Wells Fargo WellsSecure, OU=Wells Fargo Bank NA, CN=WellsSecure Public Root Certificate Authority
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:ee:6f:b4:bd:79:e2:8f:08:21:9e:38:04:41:25:
- ef:ab:5b:1c:53:92:ac:6d:9e:dd:c2:c4:2e:45:94:
- 03:35:88:67:74:57:e3:df:8c:b8:a7:76:8f:3b:f7:
- a8:c4:db:29:63:0e:91:68:36:8a:97:8e:8a:71:68:
- 09:07:e4:e8:d4:0e:4f:f8:d6:2b:4c:a4:16:f9:ef:
- 43:98:8f:b3:9e:52:df:6d:91:39:8f:38:bd:77:8b:
- 43:63:eb:b7:93:fc:30:4c:1c:01:93:b6:13:fb:f7:
- a1:1f:bf:25:e1:74:37:2c:1e:a4:5e:3c:68:f8:4b:
- bf:0d:b9:1e:2e:36:e8:a9:e4:a7:f8:0f:cb:82:75:
- 7c:35:2d:22:d6:c2:bf:0b:f3:b4:fc:6c:95:61:1e:
- 57:d7:04:81:32:83:52:79:e6:83:63:cf:b7:cb:63:
- 8b:11:e2:bd:5e:eb:f6:8d:ed:95:72:28:b4:ac:12:
- 62:e9:4a:33:e6:83:32:ae:05:75:95:bd:84:95:db:
- 2a:5c:9b:8e:2e:0c:b8:81:2b:41:e6:38:56:9f:49:
- 9b:6c:76:fa:8a:5d:f7:01:79:81:7c:c1:83:40:05:
- fe:71:fd:0c:3f:cc:4e:60:09:0e:65:47:10:2f:01:
- c0:05:3f:8f:f8:b3:41:ef:5a:42:7e:59:ef:d2:97:
- 0c:65
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 CRL Distribution Points:
-
- Full Name:
- URI:http://crl.pki.wellsfargo.com/wsprca.crl
-
- X509v3 Key Usage: critical
- Digital Signature, Non Repudiation, Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- 26:95:19:10:D9:E8:A1:97:91:FF:DC:19:D9:B5:04:3E:D2:73:0A:6A
- X509v3 Authority Key Identifier:
- keyid:26:95:19:10:D9:E8:A1:97:91:FF:DC:19:D9:B5:04:3E:D2:73:0A:6A
- DirName:/C=US/O=Wells Fargo WellsSecure/OU=Wells Fargo Bank NA/CN=WellsSecure Public Root Certificate Authority
- serial:01
-
- Signature Algorithm: sha1WithRSAEncryption
- b9:15:b1:44:91:cc:23:c8:2b:4d:77:e3:f8:9a:7b:27:0d:cd:
- 72:bb:99:00:ca:7c:66:19:50:c6:d5:98:ed:ab:bf:03:5a:e5:
- 4d:e5:1e:c8:4f:71:97:86:d5:e3:1d:fd:90:c9:3c:75:77:57:
- 7a:7d:f8:de:f4:d4:d5:f7:95:e6:74:6e:1d:3c:ae:7c:9d:db:
- 02:03:05:2c:71:4b:25:3e:07:e3:5e:9a:f5:66:17:29:88:1a:
- 38:9f:cf:aa:41:03:84:97:6b:93:38:7a:ca:30:44:1b:24:44:
- 33:d0:e4:d1:dc:28:38:f4:13:43:35:35:29:63:a8:7c:a2:b5:
- ad:38:a4:ed:ad:fd:c6:9a:1f:ff:97:73:fe:fb:b3:35:a7:93:
- 86:c6:76:91:00:e6:ac:51:16:c4:27:32:5c:db:73:da:a5:93:
- 57:8e:3e:6d:35:26:08:59:d5:e7:44:d7:76:20:63:e7:ac:13:
- 67:c3:6d:b1:70:46:7c:d5:96:11:3d:89:6f:5d:a8:a1:eb:8d:
- 0a:da:c3:1d:33:6c:a3:ea:67:19:9a:99:7f:4b:3d:83:51:2a:
- 1d:ca:2f:86:0c:a2:7e:10:2d:2b:d4:16:95:0b:07:aa:2e:14:
- 92:49:b7:29:6f:d8:6d:31:7d:f5:fc:a1:10:07:87:ce:2f:59:
- dc:3e:58:db
-SHA1 Fingerprint=E7:B4:F6:9D:61:EC:90:69:DB:7E:90:A7:40:1A:3C:F4:7D:4F:E8:EE
diff --git a/luni/src/main/files/cacerts/0d5a4e1c.0 b/luni/src/main/files/cacerts/0d5a4e1c.0
deleted file mode 100644
index 2a40cf6..0000000
--- a/luni/src/main/files/cacerts/0d5a4e1c.0
+++ /dev/null
@@ -1,82 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEJzCCAw+gAwIBAgIHAI4X/iQggTANBgkqhkiG9w0BAQsFADCBsTELMAkGA1UE
-BhMCVFIxDzANBgNVBAcMBkFua2FyYTFNMEsGA1UECgxEVMOcUktUUlVTVCBCaWxn
-aSDEsGxldGnFn2ltIHZlIEJpbGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkg
-QS7Fni4xQjBABgNVBAMMOVTDnFJLVFJVU1QgRWxla3Ryb25payBTZXJ0aWZpa2Eg
-SGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSBINTAeFw0xMzA0MzAwODA3MDFaFw0yMzA0
-MjgwODA3MDFaMIGxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMU0wSwYD
-VQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8
-dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg1MIIB
-IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApCUZ4WWe60ghUEoI5RHwWrom
-/4NZzkQqL/7hzmAD/I0Dpe3/a6i6zDQGn1k19uwsu537jVJp45wnEFPzpALFp/kR
-Gml1bsMdi9GYjZOHp3GXDSHHmflS0yxjXVW86B8BSLlg/kJK9siArs1mep5Fimh3
-4khon6La8eHBEJ/rPCmBp+EyCNSgBbGM+42WAA4+Jd9ThiI7/PS98wl+d+yG6w8z
-5UNP9FR1bSmZLmZaQ9/LXMrI5Tjxfjs1nQ/0xVqhzPMggCTTV+wVunUlm+hkS7M0
-hO8EuPbJbKoCPrZV4jI3X/xml1/N1p7HIL9Nxqw/dV8c7TKcfGkAaZHjIxhT6QID
-AQABo0IwQDAdBgNVHQ4EFgQUVpkHHtOsDGlktAxQR95DLL4gwPswDgYDVR0PAQH/
-BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAJ5FdnsX
-SDLyOIspve6WSk6BGLFRRyDN0GSxDsnZAdkJzsiZ3GglE9Rc8qPoBP5yCccLqh0l
-VX6Wmle3usURehnmp349hQ71+S4pL+f5bFgWV1Al9j4uPqrtd3GqqpmWRgqujuwq
-URawXs3qZwQcWDD1YIq9pr1N5Za0/EKJAWv2cMhQOQwt1WbZyNKzMrcbGW3LM/nf
-peYVhDfwwvJllpKQd/Ct9JDpEXjXk4nAPQu6KfTomZ1yju2dL+6SfaHx/126M2CF
-Yv4HAqGEVka+lgqaE9chTLd8B59OTj+RdPsnnRHM3eaxynFNExc5JsUpISuTKWqW
-+qtB4Uu2NQvAmxU=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 156233699172481 (0x8e17fe242081)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=TR, L=Ankara, O=T\xC3\x9CRKTRUST Bilgi \xC4\xB0leti\xC5\x9Fim ve Bili\xC5\x9Fim G\xC3\xBCvenli\xC4\x9Fi Hizmetleri A.\xC5\x9E., CN=T\xC3\x9CRKTRUST Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xC4\xB1c\xC4\xB1s\xC4\xB1 H5
- Validity
- Not Before: Apr 30 08:07:01 2013 GMT
- Not After : Apr 28 08:07:01 2023 GMT
- Subject: C=TR, L=Ankara, O=T\xC3\x9CRKTRUST Bilgi \xC4\xB0leti\xC5\x9Fim ve Bili\xC5\x9Fim G\xC3\xBCvenli\xC4\x9Fi Hizmetleri A.\xC5\x9E., CN=T\xC3\x9CRKTRUST Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xC4\xB1c\xC4\xB1s\xC4\xB1 H5
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:a4:25:19:e1:65:9e:eb:48:21:50:4a:08:e5:11:
- f0:5a:ba:26:ff:83:59:ce:44:2a:2f:fe:e1:ce:60:
- 03:fc:8d:03:a5:ed:ff:6b:a8:ba:cc:34:06:9f:59:
- 35:f6:ec:2c:bb:9d:fb:8d:52:69:e3:9c:27:10:53:
- f3:a4:02:c5:a7:f9:11:1a:69:75:6e:c3:1d:8b:d1:
- 98:8d:93:87:a7:71:97:0d:21:c7:99:f9:52:d3:2c:
- 63:5d:55:bc:e8:1f:01:48:b9:60:fe:42:4a:f6:c8:
- 80:ae:cd:66:7a:9e:45:8a:68:77:e2:48:68:9f:a2:
- da:f1:e1:c1:10:9f:eb:3c:29:81:a7:e1:32:08:d4:
- a0:05:b1:8c:fb:8d:96:00:0e:3e:25:df:53:86:22:
- 3b:fc:f4:bd:f3:09:7e:77:ec:86:eb:0f:33:e5:43:
- 4f:f4:54:75:6d:29:99:2e:66:5a:43:df:cb:5c:ca:
- c8:e5:38:f1:7e:3b:35:9d:0f:f4:c5:5a:a1:cc:f3:
- 20:80:24:d3:57:ec:15:ba:75:25:9b:e8:64:4b:b3:
- 34:84:ef:04:b8:f6:c9:6c:aa:02:3e:b6:55:e2:32:
- 37:5f:fc:66:97:5f:cd:d6:9e:c7:20:bf:4d:c6:ac:
- 3f:75:5f:1c:ed:32:9c:7c:69:00:69:91:e3:23:18:
- 53:e9
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 56:99:07:1E:D3:AC:0C:69:64:B4:0C:50:47:DE:43:2C:BE:20:C0:FB
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- Signature Algorithm: sha256WithRSAEncryption
- 9e:45:76:7b:17:48:32:f2:38:8b:29:bd:ee:96:4a:4e:81:18:
- b1:51:47:20:cd:d0:64:b1:0e:c9:d9:01:d9:09:ce:c8:99:dc:
- 68:25:13:d4:5c:f2:a3:e8:04:fe:72:09:c7:0b:aa:1d:25:55:
- 7e:96:9a:57:b7:ba:c5:11:7a:19:e6:a7:7e:3d:85:0e:f5:f9:
- 2e:29:2f:e7:f9:6c:58:16:57:50:25:f6:3e:2e:3e:aa:ed:77:
- 71:aa:aa:99:96:46:0a:ae:8e:ec:2a:51:16:b0:5e:cd:ea:67:
- 04:1c:58:30:f5:60:8a:bd:a6:bd:4d:e5:96:b4:fc:42:89:01:
- 6b:f6:70:c8:50:39:0c:2d:d5:66:d9:c8:d2:b3:32:b7:1b:19:
- 6d:cb:33:f9:df:a5:e6:15:84:37:f0:c2:f2:65:96:92:90:77:
- f0:ad:f4:90:e9:11:78:d7:93:89:c0:3d:0b:ba:29:f4:e8:99:
- 9d:72:8e:ed:9d:2f:ee:92:7d:a1:f1:ff:5d:ba:33:60:85:62:
- fe:07:02:a1:84:56:46:be:96:0a:9a:13:d7:21:4c:b7:7c:07:
- 9f:4e:4e:3f:91:74:fb:27:9d:11:cc:dd:e6:b1:ca:71:4d:13:
- 17:39:26:c5:29:21:2b:93:29:6a:96:fa:ab:41:e1:4b:b6:35:
- 0b:c0:9b:15
-SHA1 Fingerprint=C4:18:F6:4D:46:D1:DF:00:3D:27:30:13:72:43:A9:12:11:C6:75:FB
diff --git a/luni/src/main/files/cacerts/0d69c7e1.0 b/luni/src/main/files/cacerts/0d69c7e1.0
deleted file mode 100644
index 84c387e..0000000
--- a/luni/src/main/files/cacerts/0d69c7e1.0
+++ /dev/null
@@ -1,47 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEk
-MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpH
-bG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX
-DTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD
-QSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu
-MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprlOQcJ
-FspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAw
-DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61F
-uOJAf/sKbvu+M8k8o4TVMAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGX
-kPoUVy0D7O48027KqGx2vKLeuwIgJ6iFJzWbVsaj8kfSt24bAgAXqmemFZHe+pTs
-ewv4n4Q=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 2a:38:a4:1c:96:0a:04:de:42:b2:28:a5:0b:e8:34:98:02
- Signature Algorithm: ecdsa-with-SHA256
- Issuer: OU=GlobalSign ECC Root CA - R4, O=GlobalSign, CN=GlobalSign
- Validity
- Not Before: Nov 13 00:00:00 2012 GMT
- Not After : Jan 19 03:14:07 2038 GMT
- Subject: OU=GlobalSign ECC Root CA - R4, O=GlobalSign, CN=GlobalSign
- Subject Public Key Info:
- Public Key Algorithm: id-ecPublicKey
- Public-Key: (256 bit)
- pub:
- 04:b8:c6:79:d3:8f:6c:25:0e:9f:2e:39:19:1c:03:
- a4:ae:9a:e5:39:07:09:16:ca:63:b1:b9:86:f8:8a:
- 57:c1:57:ce:42:fa:73:a1:f7:65:42:ff:1e:c1:00:
- b2:6e:73:0e:ff:c7:21:e5:18:a4:aa:d9:71:3f:a8:
- d4:b9:ce:8c:1d
- ASN1 OID: prime256v1
- X509v3 extensions:
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- 54:B0:7B:AD:45:B8:E2:40:7F:FB:0A:6E:FB:BE:33:C9:3C:A3:84:D5
- Signature Algorithm: ecdsa-with-SHA256
- 30:45:02:21:00:dc:92:a1:a0:13:a6:cf:03:b0:e6:c4:21:97:
- 90:fa:14:57:2d:03:ec:ee:3c:d3:6e:ca:a8:6c:76:bc:a2:de:
- bb:02:20:27:a8:85:27:35:9b:56:c6:a3:f2:47:d2:b7:6e:1b:
- 02:00:17:aa:67:a6:15:91:de:fa:94:ec:7b:0b:f8:9f:84
-SHA1 Fingerprint=69:69:56:2E:40:80:F4:24:A1:E7:19:9F:14:BA:F3:EE:58:AB:6A:BB
diff --git a/luni/src/main/files/cacerts/10531352.0 b/luni/src/main/files/cacerts/10531352.0
deleted file mode 100644
index be3e88c..0000000
--- a/luni/src/main/files/cacerts/10531352.0
+++ /dev/null
@@ -1,81 +0,0 @@
------BEGIN CERTIFICATE-----
-MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT
-HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVs
-ZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5
-MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNVBAYTAlVTMRAwDgYD
-VQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFy
-ZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2Vy
-dmljZXMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20p
-OsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm2
-8xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4PahHQUw2eeBGg6345AWh1K
-Ts9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLPLJGmpufe
-hRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk
-6mFBrMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAw
-DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+q
-AdcwKziIorhtSpzyEZGDMA0GCSqGSIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMI
-bw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPPE95Dz+I0swSdHynVv/heyNXB
-ve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTyxQGjhdByPq1z
-qwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd
-iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn
-0q23KXB56jzaYyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCN
-sSi6
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 0 (0x0)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Arizona, L=Scottsdale, O=Starfield Technologies, Inc., CN=Starfield Services Root Certificate Authority - G2
- Validity
- Not Before: Sep 1 00:00:00 2009 GMT
- Not After : Dec 31 23:59:59 2037 GMT
- Subject: C=US, ST=Arizona, L=Scottsdale, O=Starfield Technologies, Inc., CN=Starfield Services Root Certificate Authority - G2
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:d5:0c:3a:c4:2a:f9:4e:e2:f5:be:19:97:5f:8e:
- 88:53:b1:1f:3f:cb:cf:9f:20:13:6d:29:3a:c8:0f:
- 7d:3c:f7:6b:76:38:63:d9:36:60:a8:9b:5e:5c:00:
- 80:b2:2f:59:7f:f6:87:f9:25:43:86:e7:69:1b:52:
- 9a:90:e1:71:e3:d8:2d:0d:4e:6f:f6:c8:49:d9:b6:
- f3:1a:56:ae:2b:b6:74:14:eb:cf:fb:26:e3:1a:ba:
- 1d:96:2e:6a:3b:58:94:89:47:56:ff:25:a0:93:70:
- 53:83:da:84:74:14:c3:67:9e:04:68:3a:df:8e:40:
- 5a:1d:4a:4e:cf:43:91:3b:e7:56:d6:00:70:cb:52:
- ee:7b:7d:ae:3a:e7:bc:31:f9:45:f6:c2:60:cf:13:
- 59:02:2b:80:cc:34:47:df:b9:de:90:65:6d:02:cf:
- 2c:91:a6:a6:e7:de:85:18:49:7c:66:4e:a3:3a:6d:
- a9:b5:ee:34:2e:ba:0d:03:b8:33:df:47:eb:b1:6b:
- 8d:25:d9:9b:ce:81:d1:45:46:32:96:70:87:de:02:
- 0e:49:43:85:b6:6c:73:bb:64:ea:61:41:ac:c9:d4:
- 54:df:87:2f:c7:22:b2:26:cc:9f:59:54:68:9f:fc:
- be:2a:2f:c4:55:1c:75:40:60:17:85:02:55:39:8b:
- 7f:05
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- 9C:5F:00:DF:AA:01:D7:30:2B:38:88:A2:B8:6D:4A:9C:F2:11:91:83
- Signature Algorithm: sha256WithRSAEncryption
- 4b:36:a6:84:77:69:dd:3b:19:9f:67:23:08:6f:0e:61:c9:fd:
- 84:dc:5f:d8:36:81:cd:d8:1b:41:2d:9f:60:dd:c7:1a:68:d9:
- d1:6e:86:e1:88:23:cf:13:de:43:cf:e2:34:b3:04:9d:1f:29:
- d5:bf:f8:5e:c8:d5:c1:bd:ee:92:6f:32:74:f2:91:82:2f:bd:
- 82:42:7a:ad:2a:b7:20:7d:4d:bc:7a:55:12:c2:15:ea:bd:f7:
- 6a:95:2e:6c:74:9f:cf:1c:b4:f2:c5:01:a3:85:d0:72:3e:ad:
- 73:ab:0b:9b:75:0c:6d:45:b7:8e:94:ac:96:37:b5:a0:d0:8f:
- 15:47:0e:e3:e8:83:dd:8f:fd:ef:41:01:77:cc:27:a9:62:85:
- 33:f2:37:08:ef:71:cf:77:06:de:c8:19:1d:88:40:cf:7d:46:
- 1d:ff:1e:c7:e1:ce:ff:23:db:c6:fa:8d:55:4e:a9:02:e7:47:
- 11:46:3e:f4:fd:bd:7b:29:26:bb:a9:61:62:37:28:b6:2d:2a:
- f6:10:86:64:c9:70:a7:d2:ad:b7:29:70:79:ea:3c:da:63:25:
- 9f:fd:68:b7:30:ec:70:fb:75:8a:b7:6d:60:67:b2:1e:c8:b9:
- e9:d8:a8:6f:02:8b:67:0d:4d:26:57:71:da:20:fc:c1:4a:50:
- 8d:b1:28:ba
-SHA1 Fingerprint=92:5A:8F:8D:2C:6D:04:E0:66:5F:59:6A:FF:22:D8:63:E8:25:6F:3F
diff --git a/luni/src/main/files/cacerts/111e6273.0 b/luni/src/main/files/cacerts/111e6273.0
deleted file mode 100644
index 97aa17a..0000000
--- a/luni/src/main/files/cacerts/111e6273.0
+++ /dev/null
@@ -1,88 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G
-A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp
-Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1
-MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG
-A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL
-v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8
-eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq
-tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd
-C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa
-zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB
-mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH
-V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n
-bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG
-3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs
-J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO
-291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS
-ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd
-AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
-TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 04:00:00:00:00:01:0f:86:26:e6:0d
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: OU=GlobalSign Root CA - R2, O=GlobalSign, CN=GlobalSign
- Validity
- Not Before: Dec 15 08:00:00 2006 GMT
- Not After : Dec 15 08:00:00 2021 GMT
- Subject: OU=GlobalSign Root CA - R2, O=GlobalSign, CN=GlobalSign
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:a6:cf:24:0e:be:2e:6f:28:99:45:42:c4:ab:3e:
- 21:54:9b:0b:d3:7f:84:70:fa:12:b3:cb:bf:87:5f:
- c6:7f:86:d3:b2:30:5c:d6:fd:ad:f1:7b:dc:e5:f8:
- 60:96:09:92:10:f5:d0:53:de:fb:7b:7e:73:88:ac:
- 52:88:7b:4a:a6:ca:49:a6:5e:a8:a7:8c:5a:11:bc:
- 7a:82:eb:be:8c:e9:b3:ac:96:25:07:97:4a:99:2a:
- 07:2f:b4:1e:77:bf:8a:0f:b5:02:7c:1b:96:b8:c5:
- b9:3a:2c:bc:d6:12:b9:eb:59:7d:e2:d0:06:86:5f:
- 5e:49:6a:b5:39:5e:88:34:ec:bc:78:0c:08:98:84:
- 6c:a8:cd:4b:b4:a0:7d:0c:79:4d:f0:b8:2d:cb:21:
- ca:d5:6c:5b:7d:e1:a0:29:84:a1:f9:d3:94:49:cb:
- 24:62:91:20:bc:dd:0b:d5:d9:cc:f9:ea:27:0a:2b:
- 73:91:c6:9d:1b:ac:c8:cb:e8:e0:a0:f4:2f:90:8b:
- 4d:fb:b0:36:1b:f6:19:7a:85:e0:6d:f2:61:13:88:
- 5c:9f:e0:93:0a:51:97:8a:5a:ce:af:ab:d5:f7:aa:
- 09:aa:60:bd:dc:d9:5f:df:72:a9:60:13:5e:00:01:
- c9:4a:fa:3f:a4:ea:07:03:21:02:8e:82:ca:03:c2:
- 9b:8f
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- 9B:E2:07:57:67:1C:1E:C0:6A:06:DE:59:B4:9A:2D:DF:DC:19:86:2E
- X509v3 CRL Distribution Points:
-
- Full Name:
- URI:http://crl.globalsign.net/root-r2.crl
-
- X509v3 Authority Key Identifier:
- keyid:9B:E2:07:57:67:1C:1E:C0:6A:06:DE:59:B4:9A:2D:DF:DC:19:86:2E
-
- Signature Algorithm: sha1WithRSAEncryption
- 99:81:53:87:1c:68:97:86:91:ec:e0:4a:b8:44:0b:ab:81:ac:
- 27:4f:d6:c1:b8:1c:43:78:b3:0c:9a:fc:ea:2c:3c:6e:61:1b:
- 4d:4b:29:f5:9f:05:1d:26:c1:b8:e9:83:00:62:45:b6:a9:08:
- 93:b9:a9:33:4b:18:9a:c2:f8:87:88:4e:db:dd:71:34:1a:c1:
- 54:da:46:3f:e0:d3:2a:ab:6d:54:22:f5:3a:62:cd:20:6f:ba:
- 29:89:d7:dd:91:ee:d3:5c:a2:3e:a1:5b:41:f5:df:e5:64:43:
- 2d:e9:d5:39:ab:d2:a2:df:b7:8b:d0:c0:80:19:1c:45:c0:2d:
- 8c:e8:f8:2d:a4:74:56:49:c5:05:b5:4f:15:de:6e:44:78:39:
- 87:a8:7e:bb:f3:79:18:91:bb:f4:6f:9d:c1:f0:8c:35:8c:5d:
- 01:fb:c3:6d:b9:ef:44:6d:79:46:31:7e:0a:fe:a9:82:c1:ff:
- ef:ab:6e:20:c4:50:c9:5f:9d:4d:9b:17:8c:0c:e5:01:c9:a0:
- 41:6a:73:53:fa:a5:50:b4:6e:25:0f:fb:4c:18:f4:fd:52:d9:
- 8e:69:b1:e8:11:0f:de:88:d8:fb:1d:49:f7:aa:de:95:cf:20:
- 78:c2:60:12:db:25:40:8c:6a:fc:7e:42:38:40:64:12:f7:9e:
- 81:e1:93:2e
-SHA1 Fingerprint=75:E0:AB:B6:13:85:12:27:1C:04:F8:5F:DD:DE:38:E4:B7:24:2E:FE
diff --git a/luni/src/main/files/cacerts/119afc2e.0 b/luni/src/main/files/cacerts/119afc2e.0
deleted file mode 100644
index ffc1561a..0000000
--- a/luni/src/main/files/cacerts/119afc2e.0
+++ /dev/null
@@ -1,100 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIE5jCCA86gAwIBAgIEO45L/DANBgkqhkiG9w0BAQUFADBdMRgwFgYJKoZIhvcN
-AQkBFglwa2lAc2suZWUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKExlBUyBTZXJ0aWZp
-dHNlZXJpbWlza2Vza3VzMRAwDgYDVQQDEwdKdXVyLVNLMB4XDTAxMDgzMDE0MjMw
-MVoXDTE2MDgyNjE0MjMwMVowXTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMQsw
-CQYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEQ
-MA4GA1UEAxMHSnV1ci1TSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-AIFxNj4zB9bjMI0TfncyRsvPGbJgMUaXhvSYRqTCZUXP00B841oiqBB4M8yIsdOB
-SvZiF3tfTQou0M+LI+5PAk676w7KvRhj6IAcjeEcjT3g/1tf6mTll+g/mX8MCgkz
-ABpTpyHhOEvWgxutr2TC+Rx6jGZITWYfGAriPrsfB2WThbkasLnE+w0R9vXW+RvH
-LCu3GFH+4Hv2qEivbDtPL+/40UceJlfwUR0zlv/vWT3aTdEVNMfqPxZIe5EcgEMP
-PbgFPtGzlc3Yyg/CQ2fbt5PgIoIuvvVoKIO5wTtpeyDaTpxt4brNj3pssAki14sL
-2xzVWiZbDcDq5WDQn/413z8CAwEAAaOCAawwggGoMA8GA1UdEwEB/wQFMAMBAf8w
-ggEWBgNVHSAEggENMIIBCTCCAQUGCisGAQQBzh8BAQEwgfYwgdAGCCsGAQUFBwIC
-MIHDHoHAAFMAZQBlACAAcwBlAHIAdABpAGYAaQBrAGEAYQB0ACAAbwBuACAAdgDk
-AGwAagBhAHMAdABhAHQAdQBkACAAQQBTAC0AaQBzACAAUwBlAHIAdABpAGYAaQB0
-AHMAZQBlAHIAaQBtAGkAcwBrAGUAcwBrAHUAcwAgAGEAbABhAG0ALQBTAEsAIABz
-AGUAcgB0AGkAZgBpAGsAYQBhAHQAaQBkAGUAIABrAGkAbgBuAGkAdABhAG0AaQBz
-AGUAawBzMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNrLmVlL2Nwcy8wKwYDVR0f
-BCQwIjAgoB6gHIYaaHR0cDovL3d3dy5zay5lZS9qdXVyL2NybC8wHQYDVR0OBBYE
-FASqekej5ImvGs8KQKcYP2/v6X2+MB8GA1UdIwQYMBaAFASqekej5ImvGs8KQKcY
-P2/v6X2+MA4GA1UdDwEB/wQEAwIB5jANBgkqhkiG9w0BAQUFAAOCAQEAe8EYlFOi
-CfP+JmeaUOTDBS8rNXiRTHyoERF5TElZrMj3hWVcRrs7EKACr81Ptcw2Kuxd/u+g
-kcm2k298gFTsxwhwDY77guwqYHhpNjbRxZyLabVAyJRld/JXIWY7zoVAtjNjGr95
-HvxcHdMdkxuLDF2FvZkwMhgJkVLpfKG6/2SSmuz+Ne6ML678IIbsSt4beDI3poHS
-na9aEhbKmVv8b20OxaAehsmR0FyYgl9jDIpaq9iVpszLita/ZEuOyoqysOkhMp6q
-qIWYNIE5ITuoOlIyPfZrN4YGWhWY3PARZv40ILcD9EEQfTmEeZZyY7aWAuVrua0Z
-TbvGRNs2yyqcjg==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 999181308 (0x3b8e4bfc)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: emailAddress=pki@sk.ee, C=EE, O=AS Sertifitseerimiskeskus, CN=Juur-SK
- Validity
- Not Before: Aug 30 14:23:01 2001 GMT
- Not After : Aug 26 14:23:01 2016 GMT
- Subject: emailAddress=pki@sk.ee, C=EE, O=AS Sertifitseerimiskeskus, CN=Juur-SK
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:81:71:36:3e:33:07:d6:e3:30:8d:13:7e:77:32:
- 46:cb:cf:19:b2:60:31:46:97:86:f4:98:46:a4:c2:
- 65:45:cf:d3:40:7c:e3:5a:22:a8:10:78:33:cc:88:
- b1:d3:81:4a:f6:62:17:7b:5f:4d:0a:2e:d0:cf:8b:
- 23:ee:4f:02:4e:bb:eb:0e:ca:bd:18:63:e8:80:1c:
- 8d:e1:1c:8d:3d:e0:ff:5b:5f:ea:64:e5:97:e8:3f:
- 99:7f:0c:0a:09:33:00:1a:53:a7:21:e1:38:4b:d6:
- 83:1b:ad:af:64:c2:f9:1c:7a:8c:66:48:4d:66:1f:
- 18:0a:e2:3e:bb:1f:07:65:93:85:b9:1a:b0:b9:c4:
- fb:0d:11:f6:f5:d6:f9:1b:c7:2c:2b:b7:18:51:fe:
- e0:7b:f6:a8:48:af:6c:3b:4f:2f:ef:f8:d1:47:1e:
- 26:57:f0:51:1d:33:96:ff:ef:59:3d:da:4d:d1:15:
- 34:c7:ea:3f:16:48:7b:91:1c:80:43:0f:3d:b8:05:
- 3e:d1:b3:95:cd:d8:ca:0f:c2:43:67:db:b7:93:e0:
- 22:82:2e:be:f5:68:28:83:b9:c1:3b:69:7b:20:da:
- 4e:9c:6d:e1:ba:cd:8f:7a:6c:b0:09:22:d7:8b:0b:
- db:1c:d5:5a:26:5b:0d:c0:ea:e5:60:d0:9f:fe:35:
- df:3f
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Certificate Policies:
- Policy: 1.3.6.1.4.1.10015.1.1.1
- User Notice:
- Explicit Text:
- CPS: http://www.sk.ee/cps/
-
- X509v3 CRL Distribution Points:
-
- Full Name:
- URI:http://www.sk.ee/juur/crl/
-
- X509v3 Subject Key Identifier:
- 04:AA:7A:47:A3:E4:89:AF:1A:CF:0A:40:A7:18:3F:6F:EF:E9:7D:BE
- X509v3 Authority Key Identifier:
- keyid:04:AA:7A:47:A3:E4:89:AF:1A:CF:0A:40:A7:18:3F:6F:EF:E9:7D:BE
-
- X509v3 Key Usage: critical
- Digital Signature, Non Repudiation, Key Encipherment, Certificate Sign, CRL Sign
- Signature Algorithm: sha1WithRSAEncryption
- 7b:c1:18:94:53:a2:09:f3:fe:26:67:9a:50:e4:c3:05:2f:2b:
- 35:78:91:4c:7c:a8:11:11:79:4c:49:59:ac:c8:f7:85:65:5c:
- 46:bb:3b:10:a0:02:af:cd:4f:b5:cc:36:2a:ec:5d:fe:ef:a0:
- 91:c9:b6:93:6f:7c:80:54:ec:c7:08:70:0d:8e:fb:82:ec:2a:
- 60:78:69:36:36:d1:c5:9c:8b:69:b5:40:c8:94:65:77:f2:57:
- 21:66:3b:ce:85:40:b6:33:63:1a:bf:79:1e:fc:5c:1d:d3:1d:
- 93:1b:8b:0c:5d:85:bd:99:30:32:18:09:91:52:e9:7c:a1:ba:
- ff:64:92:9a:ec:fe:35:ee:8c:2f:ae:fc:20:86:ec:4a:de:1b:
- 78:32:37:a6:81:d2:9d:af:5a:12:16:ca:99:5b:fc:6f:6d:0e:
- c5:a0:1e:86:c9:91:d0:5c:98:82:5f:63:0c:8a:5a:ab:d8:95:
- a6:cc:cb:8a:d6:bf:64:4b:8e:ca:8a:b2:b0:e9:21:32:9e:aa:
- a8:85:98:34:81:39:21:3b:a8:3a:52:32:3d:f6:6b:37:86:06:
- 5a:15:98:dc:f0:11:66:fe:34:20:b7:03:f4:41:10:7d:39:84:
- 79:96:72:63:b6:96:02:e5:6b:b9:ad:19:4d:bb:c6:44:db:36:
- cb:2a:9c:8e
-SHA1 Fingerprint=40:9D:4B:D9:17:B5:5C:27:B6:9B:64:CB:98:22:44:0D:CD:09:B8:89
diff --git a/luni/src/main/files/cacerts/124bbd54.0 b/luni/src/main/files/cacerts/124bbd54.0
deleted file mode 100644
index 67e0675..0000000
--- a/luni/src/main/files/cacerts/124bbd54.0
+++ /dev/null
@@ -1,90 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEb
-MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
-GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0
-aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEwMDAwMDBaFw0yODEyMzEyMzU5NTla
-MH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
-BgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUwIwYD
-VQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0B
-AQEFAAOCAQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWW
-fnJSoBVC21ndZHoa0Lh73TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMt
-TGo87IvDktJTdyR0nAducPy9C1t2ul/y/9c3S0pgePfw+spwtOpZqqPOSC+pw7IL
-fhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6juljatEPmsbS9Is6FARW
-1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsSivnkBbA7
-kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0G
-A1UdDgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYD
-VR0TAQH/BAUwAwEB/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21v
-ZG9jYS5jb20vVHJ1c3RlZENlcnRpZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRo
-dHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENlcnRpZmljYXRlU2VydmljZXMu
-Y3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8NtwuleGFTQQuS9/
-HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32
-pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxIS
-jBc/lDb+XbDABHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+
-xqFx7D+gIIxmOom0jtTYsU0lR+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/Atyjcn
-dBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O9y5Xt5hwXsjEeLBi
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=GB, ST=Greater Manchester, L=Salford, O=Comodo CA Limited, CN=Trusted Certificate Services
- Validity
- Not Before: Jan 1 00:00:00 2004 GMT
- Not After : Dec 31 23:59:59 2028 GMT
- Subject: C=GB, ST=Greater Manchester, L=Salford, O=Comodo CA Limited, CN=Trusted Certificate Services
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:df:71:6f:36:58:53:5a:f2:36:54:57:80:c4:74:
- 08:20:ed:18:7f:2a:1d:e6:35:9a:1e:25:ac:9c:e5:
- 96:7e:72:52:a0:15:42:db:59:dd:64:7a:1a:d0:b8:
- 7b:dd:39:15:bc:55:48:c4:ed:3a:00:ea:31:11:ba:
- f2:71:74:1a:67:b8:cf:33:cc:a8:31:af:a3:e3:d7:
- 7f:bf:33:2d:4c:6a:3c:ec:8b:c3:92:d2:53:77:24:
- 74:9c:07:6e:70:fc:bd:0b:5b:76:ba:5f:f2:ff:d7:
- 37:4b:4a:60:78:f7:f0:fa:ca:70:b4:ea:59:aa:a3:
- ce:48:2f:a9:c3:b2:0b:7e:17:72:16:0c:a6:07:0c:
- 1b:38:cf:c9:62:b7:3f:a0:93:a5:87:41:f2:b7:70:
- 40:77:d8:be:14:7c:e3:a8:c0:7a:8e:e9:63:6a:d1:
- 0f:9a:c6:d2:f4:8b:3a:14:04:56:d4:ed:b8:cc:6e:
- f5:fb:e2:2c:58:bd:7f:4f:6b:2b:f7:60:24:58:24:
- ce:26:ef:34:91:3a:d5:e3:81:d0:b2:f0:04:02:d7:
- 5b:b7:3e:92:ac:6b:12:8a:f9:e4:05:b0:3b:91:49:
- 5c:b2:eb:53:ea:f8:9f:47:86:ee:bf:95:c0:c0:06:
- 9f:d2:5b:5e:11:1b:f4:c7:04:35:29:d2:55:5c:e4:
- ed:eb
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- C5:7B:58:BD:ED:DA:25:69:D2:F7:59:16:A8:B3:32:C0:7B:27:5B:F4
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 CRL Distribution Points:
-
- Full Name:
- URI:http://crl.comodoca.com/TrustedCertificateServices.crl
-
- Full Name:
- URI:http://crl.comodo.net/TrustedCertificateServices.crl
-
- Signature Algorithm: sha1WithRSAEncryption
- c8:93:81:3b:89:b4:af:b8:84:12:4c:8d:d2:f0:db:70:ba:57:
- 86:15:34:10:b9:2f:7f:1e:b0:a8:89:60:a1:8a:c2:77:0c:50:
- 4a:9b:00:8b:d8:8b:f4:41:e2:d0:83:8a:4a:1c:14:06:b0:a3:
- 68:05:70:31:30:a7:53:9b:0e:e9:4a:a0:58:69:67:0e:ae:9d:
- f6:a5:2c:41:bf:3c:06:6b:e4:59:cc:6d:10:f1:96:6f:1f:df:
- f4:04:02:a4:9f:45:3e:c8:d8:fa:36:46:44:50:3f:82:97:91:
- 1f:28:db:18:11:8c:2a:e4:65:83:57:12:12:8c:17:3f:94:36:
- fe:5d:b0:c0:04:77:13:b8:f4:15:d5:3f:38:cc:94:3a:55:d0:
- ac:98:f5:ba:00:5f:e0:86:19:81:78:2f:28:c0:7e:d3:cc:42:
- 0a:f5:ae:50:a0:d1:3e:c6:a1:71:ec:3f:a0:20:8c:66:3a:89:
- b4:8e:d4:d8:b1:4d:25:47:ee:2f:88:c8:b5:e1:05:45:c0:be:
- 14:71:de:7a:fd:8e:7b:7d:4d:08:96:a5:12:73:f0:2d:ca:37:
- 27:74:12:27:4c:cb:b6:97:e9:d9:ae:08:6d:5a:39:40:dd:05:
- 47:75:6a:5a:21:b3:a3:18:cf:4e:f7:2e:57:b7:98:70:5e:c8:
- c4:78:b0:62
-SHA1 Fingerprint=E1:9F:E3:0E:8B:84:60:9E:80:9B:17:0D:72:A8:C5:BA:6E:14:09:BD
diff --git a/luni/src/main/files/cacerts/12d55845.0 b/luni/src/main/files/cacerts/12d55845.0
deleted file mode 100644
index 29cbb95..0000000
--- a/luni/src/main/files/cacerts/12d55845.0
+++ /dev/null
@@ -1,78 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/
-MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
-DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow
-PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD
-Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O
-rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq
-OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b
-xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw
-7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD
-aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
-HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG
-SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69
-ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr
-AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz
-R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5
-JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo
-Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 44:af:b0:80:d6:a3:27:ba:89:30:39:86:2e:f8:40:6b
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: O=Digital Signature Trust Co., CN=DST Root CA X3
- Validity
- Not Before: Sep 30 21:12:19 2000 GMT
- Not After : Sep 30 14:01:15 2021 GMT
- Subject: O=Digital Signature Trust Co., CN=DST Root CA X3
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:df:af:e9:97:50:08:83:57:b4:cc:62:65:f6:90:
- 82:ec:c7:d3:2c:6b:30:ca:5b:ec:d9:c3:7d:c7:40:
- c1:18:14:8b:e0:e8:33:76:49:2a:e3:3f:21:49:93:
- ac:4e:0e:af:3e:48:cb:65:ee:fc:d3:21:0f:65:d2:
- 2a:d9:32:8f:8c:e5:f7:77:b0:12:7b:b5:95:c0:89:
- a3:a9:ba:ed:73:2e:7a:0c:06:32:83:a2:7e:8a:14:
- 30:cd:11:a0:e1:2a:38:b9:79:0a:31:fd:50:bd:80:
- 65:df:b7:51:63:83:c8:e2:88:61:ea:4b:61:81:ec:
- 52:6b:b9:a2:e2:4b:1a:28:9f:48:a3:9e:0c:da:09:
- 8e:3e:17:2e:1e:dd:20:df:5b:c6:2a:8a:ab:2e:bd:
- 70:ad:c5:0b:1a:25:90:74:72:c5:7b:6a:ab:34:d6:
- 30:89:ff:e5:68:13:7b:54:0b:c8:d6:ae:ec:5a:9c:
- 92:1e:3d:64:b3:8c:c6:df:bf:c9:41:70:ec:16:72:
- d5:26:ec:38:55:39:43:d0:fc:fd:18:5c:40:f1:97:
- eb:d5:9a:9b:8d:1d:ba:da:25:b9:c6:d8:df:c1:15:
- 02:3a:ab:da:6e:f1:3e:2e:f5:5c:08:9c:3c:d6:83:
- 69:e4:10:9b:19:2a:b6:29:57:e3:e5:3d:9b:9f:f0:
- 02:5d
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- C4:A7:B1:A4:7B:2C:71:FA:DB:E1:4B:90:75:FF:C4:15:60:85:89:10
- Signature Algorithm: sha1WithRSAEncryption
- a3:1a:2c:9b:17:00:5c:a9:1e:ee:28:66:37:3a:bf:83:c7:3f:
- 4b:c3:09:a0:95:20:5d:e3:d9:59:44:d2:3e:0d:3e:bd:8a:4b:
- a0:74:1f:ce:10:82:9c:74:1a:1d:7e:98:1a:dd:cb:13:4b:b3:
- 20:44:e4:91:e9:cc:fc:7d:a5:db:6a:e5:fe:e6:fd:e0:4e:dd:
- b7:00:3a:b5:70:49:af:f2:e5:eb:02:f1:d1:02:8b:19:cb:94:
- 3a:5e:48:c4:18:1e:58:19:5f:1e:02:5a:f0:0c:f1:b1:ad:a9:
- dc:59:86:8b:6e:e9:91:f5:86:ca:fa:b9:66:33:aa:59:5b:ce:
- e2:a7:16:73:47:cb:2b:cc:99:b0:37:48:cf:e3:56:4b:f5:cf:
- 0f:0c:72:32:87:c6:f0:44:bb:53:72:6d:43:f5:26:48:9a:52:
- 67:b7:58:ab:fe:67:76:71:78:db:0d:a2:56:14:13:39:24:31:
- 85:a2:a8:02:5a:30:47:e1:dd:50:07:bc:02:09:90:00:eb:64:
- 63:60:9b:16:bc:88:c9:12:e6:d2:7d:91:8b:f9:3d:32:8d:65:
- b4:e9:7c:b1:57:76:ea:c5:b6:28:39:bf:15:65:1c:c8:f6:77:
- 96:6a:0a:8d:77:0b:d8:91:0b:04:8e:07:db:29:b6:0a:ee:9d:
- 82:35:35:10
-SHA1 Fingerprint=DA:C9:02:4F:54:D8:F6:DF:94:93:5F:B1:73:26:38:CA:6A:D7:7C:13
diff --git a/luni/src/main/files/cacerts/1676090a.0 b/luni/src/main/files/cacerts/1676090a.0
deleted file mode 100644
index d8505a9..0000000
--- a/luni/src/main/files/cacerts/1676090a.0
+++ /dev/null
@@ -1,84 +0,0 @@
------BEGIN CERTIFICATE-----
-MIID9zCCAt+gAwIBAgIESJ8AATANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMC
-Q04xMjAwBgNVBAoMKUNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24g
-Q2VudGVyMUcwRQYDVQQDDD5DaGluYSBJbnRlcm5ldCBOZXR3b3JrIEluZm9ybWF0
-aW9uIENlbnRlciBFViBDZXJ0aWZpY2F0ZXMgUm9vdDAeFw0xMDA4MzEwNzExMjVa
-Fw0zMDA4MzEwNzExMjVaMIGKMQswCQYDVQQGEwJDTjEyMDAGA1UECgwpQ2hpbmEg
-SW50ZXJuZXQgTmV0d29yayBJbmZvcm1hdGlvbiBDZW50ZXIxRzBFBgNVBAMMPkNo
-aW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyIEVWIENlcnRp
-ZmljYXRlcyBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm35z
-7r07eKpkQ0H1UN+U8i6yjUqORlTSIRLIOTJCBumD1Z9S7eVnAztUwYyZmczpwA//
-DdmEEbK40ctb3B75aDFk4Zv6dOtouSCV98YPjUesWgbdYavi7NifFy2cyjw1l1Vx
-zUOFsUcW9SxTgHbP0wBkvUCZ3czY28Sf1hNfQYOL+Q2HklY0bBoQCxfVWhyXWIQ8
-hBouXJE0bhlffxdpxWXvayHG1VA6v2G5BY3vbzQ6sm8UY78WO5upKv23KzhmBsUs
-4qpnHkWnjQRmQvaPK++IIGmPMowUc9orhpFjIpryp9vOiYurXccUwVswah+xt54u
-gQEC7c+WXmPbqOY4twIDAQABo2MwYTAfBgNVHSMEGDAWgBR8cks5x8DbYqVPm6oY
-NJKiyoOCWTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4E
-FgQUfHJLOcfA22KlT5uqGDSSosqDglkwDQYJKoZIhvcNAQEFBQADggEBACrDx0M3
-j92tpLIM7twUbY8opJhJywyA6vPtI2Z1fcXTIWd50XPFtQO3WKwMVC/GVhMPMdoG
-52U7HW8228gd+f2ABsqjPWYWqJ1MFn3AlUa1UeTiH9fqBk1jjZaM7+czV0I664zB
-echNdn3e9rG3geCg+aF4RhcaVpjwTj2rHO3sOdwHSPdj/gauwqRcalsyiMXHM4Ws
-ZkJHwlgkmeHlPuV1LI5D1l08eB6olYIpUNHRFrrvwb562bTYzB5MRuF3sTGrvSrI
-zo9uoV1/A3U05K2JRVRevq4opbs/eHnrc7MKDf2+yfdWrPa37S+bISnHOLaVxATy
-wy39FCqQmbkHzJ8=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1218379777 (0x489f0001)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=CN, O=China Internet Network Information Center, CN=China Internet Network Information Center EV Certificates Root
- Validity
- Not Before: Aug 31 07:11:25 2010 GMT
- Not After : Aug 31 07:11:25 2030 GMT
- Subject: C=CN, O=China Internet Network Information Center, CN=China Internet Network Information Center EV Certificates Root
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:9b:7e:73:ee:bd:3b:78:aa:64:43:41:f5:50:df:
- 94:f2:2e:b2:8d:4a:8e:46:54:d2:21:12:c8:39:32:
- 42:06:e9:83:d5:9f:52:ed:e5:67:03:3b:54:c1:8c:
- 99:99:cc:e9:c0:0f:ff:0d:d9:84:11:b2:b8:d1:cb:
- 5b:dc:1e:f9:68:31:64:e1:9b:fa:74:eb:68:b9:20:
- 95:f7:c6:0f:8d:47:ac:5a:06:dd:61:ab:e2:ec:d8:
- 9f:17:2d:9c:ca:3c:35:97:55:71:cd:43:85:b1:47:
- 16:f5:2c:53:80:76:cf:d3:00:64:bd:40:99:dd:cc:
- d8:db:c4:9f:d6:13:5f:41:83:8b:f9:0d:87:92:56:
- 34:6c:1a:10:0b:17:d5:5a:1c:97:58:84:3c:84:1a:
- 2e:5c:91:34:6e:19:5f:7f:17:69:c5:65:ef:6b:21:
- c6:d5:50:3a:bf:61:b9:05:8d:ef:6f:34:3a:b2:6f:
- 14:63:bf:16:3b:9b:a9:2a:fd:b7:2b:38:66:06:c5:
- 2c:e2:aa:67:1e:45:a7:8d:04:66:42:f6:8f:2b:ef:
- 88:20:69:8f:32:8c:14:73:da:2b:86:91:63:22:9a:
- f2:a7:db:ce:89:8b:ab:5d:c7:14:c1:5b:30:6a:1f:
- b1:b7:9e:2e:81:01:02:ed:cf:96:5e:63:db:a8:e6:
- 38:b7
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Authority Key Identifier:
- keyid:7C:72:4B:39:C7:C0:DB:62:A5:4F:9B:AA:18:34:92:A2:CA:83:82:59
-
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- 7C:72:4B:39:C7:C0:DB:62:A5:4F:9B:AA:18:34:92:A2:CA:83:82:59
- Signature Algorithm: sha1WithRSAEncryption
- 2a:c3:c7:43:37:8f:dd:ad:a4:b2:0c:ee:dc:14:6d:8f:28:a4:
- 98:49:cb:0c:80:ea:f3:ed:23:66:75:7d:c5:d3:21:67:79:d1:
- 73:c5:b5:03:b7:58:ac:0c:54:2f:c6:56:13:0f:31:da:06:e7:
- 65:3b:1d:6f:36:db:c8:1d:f9:fd:80:06:ca:a3:3d:66:16:a8:
- 9d:4c:16:7d:c0:95:46:b5:51:e4:e2:1f:d7:ea:06:4d:63:8d:
- 96:8c:ef:e7:33:57:42:3a:eb:8c:c1:79:c8:4d:76:7d:de:f6:
- b1:b7:81:e0:a0:f9:a1:78:46:17:1a:56:98:f0:4e:3d:ab:1c:
- ed:ec:39:dc:07:48:f7:63:fe:06:ae:c2:a4:5c:6a:5b:32:88:
- c5:c7:33:85:ac:66:42:47:c2:58:24:99:e1:e5:3e:e5:75:2c:
- 8e:43:d6:5d:3c:78:1e:a8:95:82:29:50:d1:d1:16:ba:ef:c1:
- be:7a:d9:b4:d8:cc:1e:4c:46:e1:77:b1:31:ab:bd:2a:c8:ce:
- 8f:6e:a1:5d:7f:03:75:34:e4:ad:89:45:54:5e:be:ae:28:a5:
- bb:3f:78:79:eb:73:b3:0a:0d:fd:be:c9:f7:56:ac:f6:b7:ed:
- 2f:9b:21:29:c7:38:b6:95:c4:04:f2:c3:2d:fd:14:2a:90:99:
- b9:07:cc:9f
-SHA1 Fingerprint=4F:99:AA:93:FB:2B:D1:37:26:A1:99:4A:CE:7F:F0:05:F2:93:5D:1E
diff --git a/luni/src/main/files/cacerts/17b51fe6.0 b/luni/src/main/files/cacerts/17b51fe6.0
deleted file mode 100644
index f47a60f..0000000
--- a/luni/src/main/files/cacerts/17b51fe6.0
+++ /dev/null
@@ -1,87 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAw
-PTELMAkGA1UEBhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFz
-cyAyIFByaW1hcnkgQ0EwHhcNOTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9
-MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2VydHBsdXMxGzAZBgNVBAMTEkNsYXNz
-IDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANxQ
-ltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR5aiR
-VhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyL
-kcAbmXuZVg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCd
-EgETjdyAYveVqUSISnFOYFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yas
-H7WLO7dDWWuwJKZtkIvEcupdM5i3y95ee++U8Rs+yskhwcWYAqqi9lt3m/V+llU0
-HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRMECDAGAQH/AgEKMAsGA1Ud
-DwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJYIZIAYb4
-QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMu
-Y29tL0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/
-AN9WM2K191EBkOvDP9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8
-yfFC82x/xXp8HVGIutIKPidd3i1RTtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMR
-FcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+7UCmnYR0ObncHoUW2ikbhiMA
-ybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW//1IMwrh3KWB
-kJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7
-l7+ijrRU
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 85:bd:4b:f3:d8:da:e3:69:f6:94:d7:5f:c3:a5:44:23
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=FR, O=Certplus, CN=Class 2 Primary CA
- Validity
- Not Before: Jul 7 17:05:00 1999 GMT
- Not After : Jul 6 23:59:59 2019 GMT
- Subject: C=FR, O=Certplus, CN=Class 2 Primary CA
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:dc:50:96:d0:12:f8:35:d2:08:78:7a:b6:52:70:
- fd:6f:ee:cf:b9:11:cb:5d:77:e1:ec:e9:7e:04:8d:
- d6:cc:6f:73:43:57:60:ac:33:0a:44:ec:03:5f:1c:
- 80:24:91:e5:a8:91:56:12:82:f7:e0:2b:f4:db:ae:
- 61:2e:89:10:8d:6b:6c:ba:b3:02:bd:d5:36:c5:48:
- 37:23:e2:f0:5a:37:52:33:17:12:e2:d1:60:4d:be:
- 2f:41:11:e3:f6:17:25:0c:8b:91:c0:1b:99:7b:99:
- 56:0d:af:ee:d2:bc:47:57:e3:79:49:7b:34:89:27:
- 24:84:de:b1:ec:e9:58:4e:fe:4e:df:5a:be:41:ad:
- ac:08:c5:18:0e:ef:d2:53:ee:6c:d0:9d:12:01:13:
- 8d:dc:80:62:f7:95:a9:44:88:4a:71:4e:60:55:9e:
- db:23:19:79:56:07:0c:3f:63:0b:5c:b0:e2:be:7e:
- 15:fc:94:33:58:41:38:74:c4:e1:8f:8b:df:26:ac:
- 1f:b5:8b:3b:b7:43:59:6b:b0:24:a6:6d:90:8b:c4:
- 72:ea:5d:33:98:b7:cb:de:5e:7b:ef:94:f1:1b:3e:
- ca:c9:21:c1:c5:98:02:aa:a2:f6:5b:77:9b:f5:7e:
- 96:55:34:1c:67:69:c0:f1:42:e3:47:ac:fc:28:1c:
- 66:55
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:10
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- E3:73:2D:DF:CB:0E:28:0C:DE:DD:B3:A4:CA:79:B8:8E:BB:E8:30:89
- Netscape Cert Type:
- SSL CA, S/MIME CA
- X509v3 CRL Distribution Points:
-
- Full Name:
- URI:http://www.certplus.com/CRL/class2.crl
-
- Signature Algorithm: sha1WithRSAEncryption
- a7:54:cf:88:44:19:cb:df:d4:7f:00:df:56:33:62:b5:f7:51:
- 01:90:eb:c3:3f:d1:88:44:e9:24:5d:ef:e7:14:bd:20:b7:9a:
- 3c:00:fe:6d:9f:db:90:dc:d7:f4:62:d6:8b:70:5d:e7:e5:04:
- 48:a9:68:7c:c9:f1:42:f3:6c:7f:c5:7a:7c:1d:51:88:ba:d2:
- 0a:3e:27:5d:de:2d:51:4e:d3:13:64:69:e4:2e:e3:d3:e7:9b:
- 09:99:a6:e0:95:9b:ce:1a:d7:7f:be:3c:ce:52:b3:11:15:c1:
- 0f:17:cd:03:bb:9c:25:15:ba:a2:76:89:fc:06:f1:18:d0:93:
- 4b:0e:7c:82:b7:a5:f4:f6:5f:fe:ed:40:a6:9d:84:74:39:b9:
- dc:1e:85:16:da:29:1b:86:23:00:c9:bb:89:7e:6e:80:88:1e:
- 2f:14:b4:03:24:a8:32:6f:03:9a:47:2c:30:be:56:c6:a7:42:
- 02:70:1b:ea:40:d8:ba:05:03:70:07:a4:96:ff:fd:48:33:0a:
- e1:dc:a5:81:90:9b:4d:dd:7d:e7:e7:b2:cd:5c:c8:6a:95:f8:
- a5:f6:8d:c4:5d:78:08:be:7b:06:d6:49:cf:19:36:50:23:2e:
- 08:e6:9e:05:4d:47:18:d5:16:e9:b1:d6:b6:10:d5:bb:97:bf:
- a2:8e:b4:54
-SHA1 Fingerprint=74:20:74:41:72:9C:DD:92:EC:79:31:D8:23:10:8D:C2:81:92:E2:BB
diff --git a/luni/src/main/files/cacerts/1dac3003.0 b/luni/src/main/files/cacerts/1dac3003.0
deleted file mode 100644
index 28609cd..0000000
--- a/luni/src/main/files/cacerts/1dac3003.0
+++ /dev/null
@@ -1,88 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBb
-MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3Qx
-ETAPBgNVBAsTCERTVCBBQ0VTMRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0w
-MzExMjAyMTE5NThaFw0xNzExMjAyMTE5NThaMFsxCzAJBgNVBAYTAlVTMSAwHgYD
-VQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UECxMIRFNUIEFDRVMx
-FzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPu
-ktKe1jzIDZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7
-gLFViYsx+tC3dr5BPTCapCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZH
-fAjIgrrep4c9oW24MFbCswKBXy314powGCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4a
-ahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPyMjwmR/onJALJfh1biEIT
-ajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1UdEwEB/wQF
-MAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rk
-c3QuY29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjto
-dHRwOi8vd3d3LnRydXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMt
-aW5kZXguaHRtbDAdBgNVHQ4EFgQUCXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZI
-hvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V25FYrnJmQ6AgwbN99Pe7lv7Uk
-QIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6tFr8hlxCBPeP/
-h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq
-nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpR
-rscL9yuwNwXsvFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf2
-9w4LTJxoeHtxMcfrHuBnQfO3oKfN5XozNmr6mis=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 0d:5e:99:0a:d6:9d:b7:78:ec:d8:07:56:3b:86:15:d9
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=US, O=Digital Signature Trust, OU=DST ACES, CN=DST ACES CA X6
- Validity
- Not Before: Nov 20 21:19:58 2003 GMT
- Not After : Nov 20 21:19:58 2017 GMT
- Subject: C=US, O=Digital Signature Trust, OU=DST ACES, CN=DST ACES CA X6
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:b9:3d:f5:2c:c9:94:dc:75:8a:95:5d:63:e8:84:
- 77:76:66:b9:59:91:5c:46:dd:92:3e:9f:f9:0e:03:
- b4:3d:61:92:bd:23:26:b5:63:ee:92:d2:9e:d6:3c:
- c8:0d:90:5f:64:81:b1:a8:08:0d:4c:d8:f9:d3:05:
- 28:52:b4:01:25:c5:95:1c:0c:7e:3e:10:84:75:cf:
- c1:19:91:63:cf:e8:a8:91:88:b9:43:52:bb:80:b1:
- 55:89:8b:31:fa:d0:b7:76:be:41:3d:30:9a:a4:22:
- 25:17:73:e8:1e:e2:d3:ac:2a:bd:5b:38:21:d5:2a:
- 4b:d7:55:7d:e3:3a:55:bd:d7:6d:6b:02:57:6b:e6:
- 47:7c:08:c8:82:ba:de:a7:87:3d:a1:6d:b8:30:56:
- c2:b3:02:81:5f:2d:f5:e2:9a:30:18:28:b8:66:d3:
- cb:01:96:6f:ea:8a:45:55:d6:e0:9d:ff:67:2b:17:
- 02:a6:4e:1a:6a:11:0b:7e:b7:7b:e7:98:d6:8c:76:
- 6f:c1:3b:db:50:93:7e:e5:d0:8e:1f:37:b8:bd:ba:
- c6:9f:6c:e9:7c:33:f2:32:3c:26:47:fa:27:24:02:
- c9:7e:1d:5b:88:42:13:6a:35:7c:7d:35:e9:2e:66:
- 91:72:93:d5:32:26:c4:74:f5:53:a3:b3:5d:9a:f6:
- 09:cb
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Digital Signature, Non Repudiation, Certificate Sign, CRL Sign
- X509v3 Subject Alternative Name:
- email:pki-ops@trustdst.com
- X509v3 Certificate Policies:
- Policy: 2.16.840.1.101.3.2.1.1.1
- CPS: http://www.trustdst.com/certificates/policy/ACES-index.html
-
- X509v3 Subject Key Identifier:
- 09:72:06:4E:18:43:0F:E5:D6:CC:C3:6A:8B:31:7B:78:8F:A8:83:B8
- Signature Algorithm: sha1WithRSAEncryption
- a3:d8:8e:d6:b2:db:ce:05:e7:32:cd:01:d3:04:03:e5:76:e4:
- 56:2b:9c:99:90:e8:08:30:6c:df:7d:3d:ee:e5:bf:b5:24:40:
- 84:49:e1:d1:28:ae:c4:c2:3a:53:30:88:f1:f5:77:6e:51:ca:
- fa:ff:99:af:24:5f:1b:a0:fd:f2:ac:84:ca:df:a9:f0:5f:04:
- 2e:ad:16:bf:21:97:10:81:3d:e3:ff:87:8d:32:dc:94:e5:47:
- 8a:5e:6a:13:c9:94:95:3d:d2:ee:c8:34:95:d0:80:d4:ad:32:
- 08:80:54:3c:e0:bd:52:53:d7:52:7c:b2:69:3f:7f:7a:cf:6a:
- 74:ca:fa:04:2a:9c:4c:5a:06:a5:e9:20:ad:45:66:0f:69:f1:
- dd:bf:e9:e3:32:8b:fa:e0:c1:86:4d:72:3c:2e:d8:93:78:0a:
- 2a:f8:d8:d2:27:3d:19:89:5f:5a:7b:8a:3b:cc:0c:da:51:ae:
- c7:0b:f7:2b:b0:37:05:ec:bc:57:23:e2:38:d2:9b:68:f3:56:
- 12:88:4f:42:7c:b8:31:c4:b5:db:e4:c8:21:34:e9:48:11:35:
- ee:fa:c7:92:57:c5:9f:34:e4:c7:f6:f7:0e:0b:4c:9c:68:78:
- 7b:71:31:c7:eb:1e:e0:67:41:f3:b7:a0:a7:cd:e5:7a:33:36:
- 6a:fa:9a:2b
-SHA1 Fingerprint=40:54:DA:6F:1C:3F:40:74:AC:ED:0F:EC:CD:DB:79:D1:53:FB:90:1D
diff --git a/luni/src/main/files/cacerts/1dcd6f4c.0 b/luni/src/main/files/cacerts/1dcd6f4c.0
deleted file mode 100644
index d21efc6..0000000
--- a/luni/src/main/files/cacerts/1dcd6f4c.0
+++ /dev/null
@@ -1,121 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/
-MQswCQYDVQQGEwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmlj
-YXRpb24gQXV0aG9yaXR5MB4XDTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1ow
-PzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dvdmVybm1lbnQgUm9vdCBDZXJ0aWZp
-Y2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
-AJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qNw8XR
-IePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1q
-gQdW8or5BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKy
-yhwOeYHWtXBiCAEuTk8O1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAts
-F/tnyMKtsc2AtJfcdgEWFelq16TheEfOhtX7MfP6Mb40qij7cEwdScevLJ1tZqa2
-jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wovJ5pGfaENda1UhhXcSTvx
-ls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7Q3hub/FC
-VGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHK
-YS1tB6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoH
-EgKXTiCQ8P8NHuJBO9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThN
-Xo+EHWbNxWCWtFJaBYmOlXqYwZE8lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1Ud
-DgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNVHRMEBTADAQH/MDkGBGcqBwAE
-MTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg209yewDL7MTqK
-UWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ
-TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyf
-qzvS/3WXy6TjZwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaK
-ZEk9GhiHkASfQlK3T8v+R0F2Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFE
-JPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlUD7gsL0u8qV1bYH+Mh6XgUmMqvtg7
-hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6QzDxARvBMB1uUO07+1
-EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+HbkZ6Mm
-nD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WX
-udpVBrkk7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44Vbnz
-ssQwmSNOXfJIoRIM3BKQCZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDe
-LMDDav7v3Aun+kbfYNucpllQdSNpc5Oy+fwC00fmcc4QAu4njIT/rEUNE1yDMuAl
-pYYsfPQS
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 1f:9d:59:5a:d7:2f:c2:06:44:a5:80:08:69:e3:5e:f6
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=TW, O=Government Root Certification Authority
- Validity
- Not Before: Dec 5 13:23:33 2002 GMT
- Not After : Dec 5 13:23:33 2032 GMT
- Subject: C=TW, O=Government Root Certification Authority
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:9a:25:b8:ec:cc:a2:75:a8:7b:f7:ce:5b:59:8a:
- c9:d1:86:12:08:54:ec:9c:f2:e7:46:f6:88:f3:7c:
- e9:a5:df:4c:47:36:a4:1b:01:1c:7f:1e:57:8a:8d:
- c3:c5:d1:21:e3:da:24:3f:48:2b:fb:9f:2e:a1:94:
- e7:2c:1c:93:d1:bf:1b:01:87:53:99:ce:a7:f5:0a:
- 21:76:77:ff:a9:b7:c6:73:94:4f:46:f7:10:49:37:
- fa:a8:59:49:5d:6a:81:07:56:f2:8a:f9:06:d0:f7:
- 70:22:4d:b4:b7:41:b9:32:b8:b1:f0:b1:c3:9c:3f:
- 70:fd:53:dd:81:aa:d8:63:78:f6:d8:53:6e:a1:ac:
- 6a:84:24:72:54:86:c6:d2:b2:ca:1c:0e:79:81:d6:
- b5:70:62:08:01:2e:4e:4f:0e:d5:11:af:a9:af:e5:
- 9a:bf:dc:cc:87:6d:26:e4:c9:57:a2:fb:96:f9:cc:
- e1:3f:53:8c:6c:4c:7e:9b:53:08:0b:6c:17:fb:67:
- c8:c2:ad:b1:cd:80:b4:97:dc:76:01:16:15:e9:6a:
- d7:a4:e1:78:47:ce:86:d5:fb:31:f3:fa:31:be:34:
- aa:28:fb:70:4c:1d:49:c7:af:2c:9d:6d:66:a6:b6:
- 8d:64:7e:b5:20:6a:9d:3b:81:b6:8f:40:00:67:4b:
- 89:86:b8:cc:65:fe:15:53:e9:04:c1:d6:5f:1d:44:
- d7:0a:2f:27:9a:46:7d:a1:0d:75:ad:54:86:15:dc:
- 49:3b:f1:96:ce:0f:9b:a0:ec:a3:7a:5d:be:d5:2a:
- 75:42:e5:7b:de:a5:b6:aa:af:28:ac:ac:90:ac:38:
- b7:d5:68:35:26:7a:dc:f7:3b:f3:fd:45:9b:d1:bb:
- 43:78:6e:6f:f1:42:54:6a:98:f0:0d:ad:97:e9:52:
- 5e:e9:d5:6a:72:de:6a:f7:1b:60:14:f4:a5:e4:b6:
- 71:67:aa:1f:ea:e2:4d:c1:42:40:fe:67:46:17:38:
- 2f:47:3f:71:9c:ae:e5:21:ca:61:2d:6d:07:a8:84:
- 7c:2d:ee:51:25:f1:63:90:9e:fd:e1:57:88:6b:ef:
- 8a:23:6d:b1:e6:bd:3f:ad:d1:3d:96:0b:85:8d:cd:
- 6b:27:bb:b7:05:9b:ec:bb:91:a9:0a:07:12:02:97:
- 4e:20:90:f0:ff:0d:1e:e2:41:3b:d3:40:3a:e7:8d:
- 5d:da:66:e4:02:b0:07:52:98:5c:0e:8e:33:9c:c2:
- a6:95:fb:55:19:6e:4c:8e:ae:4b:0f:bd:c1:38:4d:
- 5e:8f:84:1d:66:cd:c5:60:96:b4:52:5a:05:89:8e:
- 95:7a:98:c1:91:3c:95:23:b2:0e:f4:79:b4:c9:7c:
- c1:4a:21
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- CC:CC:EF:CC:29:60:A4:3B:B1:92:B6:3C:FA:32:62:8F:AC:25:15:3B
- X509v3 Basic Constraints:
- CA:TRUE
- setCext-hashedRoot:
- 0/0-...0...+......0...g*........"...(6....2.1:.Qe
- Signature Algorithm: sha1WithRSAEncryption
- 40:80:4a:fa:26:c9:ce:5e:30:dd:4f:86:74:76:58:f5:ae:b3:
- 83:33:78:a4:7a:74:17:19:4e:e9:52:b5:b9:e0:0a:74:62:aa:
- 68:ca:78:a0:4c:9a:8e:2c:23:2e:d5:6a:12:24:bf:d4:68:d3:
- 8a:d0:d8:9c:9f:b4:1f:0c:de:38:7e:57:38:fc:8d:e2:4f:5e:
- 0c:9f:ab:3b:d2:ff:75:97:cb:a4:e3:67:08:ff:e5:c0:16:b5:
- 48:01:7d:e9:f9:0a:ff:1b:e5:6a:69:bf:78:21:a8:c2:a7:23:
- a9:86:ab:76:56:e8:0e:0c:f6:13:dd:2a:66:8a:64:49:3d:1a:
- 18:87:90:04:9f:42:52:b7:4f:cb:fe:47:41:76:35:ef:ff:00:
- 76:36:45:32:9b:c6:46:85:5d:e2:24:b0:1e:e3:48:96:98:57:
- 47:94:55:7a:0f:41:b1:44:24:f3:c1:fe:1a:6b:bf:88:fd:c1:
- a6:da:93:60:5e:81:4a:99:20:9c:48:66:19:b5:00:79:54:0f:
- b8:2c:2f:4b:bc:a9:5d:5b:60:7f:8c:87:a5:e0:52:63:2a:be:
- d8:3b:85:40:15:fe:1e:b6:65:3f:c5:4b:da:7e:b5:7a:35:29:
- a3:2e:7a:98:60:22:a3:f4:7d:27:4e:2d:ea:b4:74:3c:e9:0f:
- a4:33:0f:10:11:bc:13:01:d6:e5:0e:d3:bf:b5:12:a2:e1:45:
- 23:c0:cc:08:6e:61:b7:89:ab:83:e3:24:1e:e6:5d:07:e7:1f:
- 20:3e:cf:67:c8:e7:ac:30:6d:27:4b:68:6e:4b:2a:5c:02:08:
- 34:db:f8:76:e4:67:a3:26:9c:3f:a2:32:c2:4a:c5:81:18:31:
- 10:56:aa:84:ef:2d:0a:ff:b8:1f:77:d2:bf:a5:58:a0:62:e4:
- d7:4b:91:75:8d:89:80:98:7e:6d:cb:53:4e:5e:af:f6:b2:97:
- 85:97:b9:da:55:06:b9:24:ee:d7:c6:38:1e:63:1b:12:3b:95:
- e1:58:ac:f2:df:84:d5:5f:99:2f:0d:55:5b:e6:38:db:2e:3f:
- 72:e9:48:85:cb:bb:29:13:8f:1e:38:55:b9:f3:b2:c4:30:99:
- 23:4e:5d:f2:48:a1:12:0c:dc:12:90:09:90:54:91:03:3c:47:
- e5:d5:c9:65:e0:b7:4b:7d:ec:47:d3:b3:0b:3e:ad:9e:d0:74:
- 00:0e:eb:bd:51:ad:c0:de:2c:c0:c3:6a:fe:ef:dc:0b:a7:fa:
- 46:df:60:db:9c:a6:59:50:75:23:69:73:93:b2:f9:fc:02:d3:
- 47:e6:71:ce:10:02:ee:27:8c:84:ff:ac:45:0d:13:5c:83:32:
- e0:25:a5:86:2c:7c:f4:12
-SHA1 Fingerprint=F4:8B:11:BF:DE:AB:BE:94:54:20:71:E6:41:DE:6B:BE:88:2B:40:B9
diff --git a/luni/src/main/files/cacerts/1df5a75f.0 b/luni/src/main/files/cacerts/1df5a75f.0
deleted file mode 100644
index d325e83..0000000
--- a/luni/src/main/files/cacerts/1df5a75f.0
+++ /dev/null
@@ -1,90 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRF
-MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBD
-bGFzcyAzIENBIDIgMjAwOTAeFw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NTha
-ME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMM
-HkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIwDQYJKoZIhvcNAQEB
-BQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOADER03
-UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42
-tSHKXzlABF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9R
-ySPocq60vFYJfxLLHLGvKZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsM
-lFqVlNpQmvH/pStmMaTJOKDfHR+4CS7zp+hnUquVH+BGPtikw8paxTGA6Eian5Rp
-/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUCAwEAAaOCARowggEWMA8G
-A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ4PGEMA4G
-A1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVj
-dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUy
-MENBJTIwMiUyMDIwMDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRl
-cmV2b2NhdGlvbmxpc3QwQ6BBoD+GPWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3Js
-L2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAwOS5jcmwwDQYJKoZIhvcNAQEL
-BQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm2H6NMLVwMeni
-acfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0
-o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4K
-zCUqNQT4YJEVdT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8
-PIWmawomDeCTmGCufsYkl4phX5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3Y
-Johw1+qRzT65ysCQblrGXnRl11z+o+I=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 623603 (0x983f3)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=DE, O=D-Trust GmbH, CN=D-TRUST Root Class 3 CA 2 2009
- Validity
- Not Before: Nov 5 08:35:58 2009 GMT
- Not After : Nov 5 08:35:58 2029 GMT
- Subject: C=DE, O=D-Trust GmbH, CN=D-TRUST Root Class 3 CA 2 2009
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:d3:b2:4a:cf:7a:47:ef:75:9b:23:fa:3a:2f:d6:
- 50:45:89:35:3a:c6:6b:db:fe:db:00:68:a8:e0:03:
- 11:1d:37:50:08:9f:4d:4a:68:94:35:b3:53:d1:94:
- 63:a7:20:56:af:de:51:78:ec:2a:3d:f3:48:48:50:
- 3e:0a:df:46:55:8b:27:6d:c3:10:4d:0d:91:52:43:
- d8:87:e0:5d:4e:36:b5:21:ca:5f:39:40:04:5f:5b:
- 7e:cc:a3:c6:2b:a9:40:1e:d9:36:84:d6:48:f3:92:
- 1e:34:46:20:24:c1:a4:51:8e:4a:1a:ef:50:3f:69:
- 5d:19:7f:45:c3:c7:01:8f:51:c9:23:e8:72:ae:b4:
- bc:56:09:7f:12:cb:1c:b1:af:29:90:0a:c9:55:cc:
- 0f:d3:b4:1a:ed:47:35:5a:4a:ed:9c:73:04:21:d0:
- aa:bd:0c:13:b5:00:ca:26:6c:c4:6b:0c:94:5a:95:
- 94:da:50:9a:f1:ff:a5:2b:66:31:a4:c9:38:a0:df:
- 1d:1f:b8:09:2e:f3:a7:e8:67:52:ab:95:1f:e0:46:
- 3e:d8:a4:c3:ca:5a:c5:31:80:e8:48:9a:9f:94:69:
- fe:19:dd:d8:73:7c:81:ca:96:de:8e:ed:b3:32:05:
- 65:84:34:e6:e6:fd:57:10:b5:5f:76:bf:2f:b0:10:
- 0d:c5
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- FD:DA:14:C4:9F:30:DE:21:BD:1E:42:39:FC:AB:63:23:49:E0:F1:84
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 CRL Distribution Points:
-
- Full Name:
- URI:ldap://directory.d-trust.net/CN=D-TRUST%20Root%20Class%203%20CA%202%202009,O=D-Trust%20GmbH,C=DE?certificaterevocationlist
-
- Full Name:
- URI:http://www.d-trust.net/crl/d-trust_root_class_3_ca_2_2009.crl
-
- Signature Algorithm: sha256WithRSAEncryption
- 7f:97:db:30:c8:df:a4:9c:7d:21:7a:80:70:ce:14:12:69:88:
- 14:95:60:44:01:ac:b2:e9:30:4f:9b:50:c2:66:d8:7e:8d:30:
- b5:70:31:e9:e2:69:c7:f3:70:db:20:15:86:d0:0d:f0:be:ac:
- 01:75:84:ce:7e:9f:4d:bf:b7:60:3b:9c:f3:ca:1d:e2:5e:68:
- d8:a3:9d:97:e5:40:60:d2:36:21:fe:d0:b4:b8:17:da:74:a3:
- 7f:d4:df:b0:98:02:ac:6f:6b:6b:2c:25:24:72:a1:65:ee:25:
- 5a:e5:e6:32:e7:f2:df:ab:49:fa:f3:90:69:23:db:04:d9:e7:
- 5c:58:fc:65:d4:97:be:cc:fc:2e:0a:cc:25:2a:35:04:f8:60:
- 91:15:75:3d:41:ff:23:1f:19:c8:6c:eb:82:53:04:a6:e4:4c:
- 22:4d:8d:8c:ba:ce:5b:73:ec:64:54:50:6d:d1:9c:55:fb:69:
- c3:36:c3:8c:bc:3c:85:a6:6b:0a:26:0d:e0:93:98:60:ae:7e:
- c6:24:97:8a:61:5f:91:8e:66:92:09:87:36:cd:8b:9b:2d:3e:
- f6:51:d4:50:d4:59:28:bd:83:f2:cc:28:7b:53:86:6d:d8:26:
- 88:70:d7:ea:91:cd:3e:b9:ca:c0:90:6e:5a:c6:5e:74:65:d7:
- 5c:fe:a3:e2
-SHA1 Fingerprint=58:E8:AB:B0:36:15:33:FB:80:F7:9B:1B:6D:29:D3:FF:8D:5F:00:F0
diff --git a/luni/src/main/files/cacerts/1e1eab7c.0 b/luni/src/main/files/cacerts/1e1eab7c.0
deleted file mode 100644
index 6a4788c..0000000
--- a/luni/src/main/files/cacerts/1e1eab7c.0
+++ /dev/null
@@ -1,80 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx
-KzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd
-BgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl
-YyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgxMDAxMTAyOTU2WhcNMzMxMDAxMjM1
-OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy
-aXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50
-ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN
-8ELg63iIVl6bmlQdTQyK9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/
-RLyTPWGrTs0NvvAgJ1gORH8EGoel15YUNpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4
-hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZFiP0Zf3WHHx+xGwpzJFu5
-ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W0eDrXltM
-EnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGj
-QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1
-A/d2O2GCahKqGFPrAyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOy
-WL6ukK2YJ5f+AbGwUgC4TeQbIXQbfsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ
-1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzTucpH9sry9uetuUg/vBa3wW30
-6gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7hP0HHRwA11fXT
-91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml
-e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4p
-TpPDpFQUWw==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=DE, O=T-Systems Enterprise Services GmbH, OU=T-Systems Trust Center, CN=T-TeleSec GlobalRoot Class 3
- Validity
- Not Before: Oct 1 10:29:56 2008 GMT
- Not After : Oct 1 23:59:59 2033 GMT
- Subject: C=DE, O=T-Systems Enterprise Services GmbH, OU=T-Systems Trust Center, CN=T-TeleSec GlobalRoot Class 3
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:bd:75:93:f0:62:22:6f:24:ae:e0:7a:76:ac:7d:
- bd:d9:24:d5:b8:b7:fc:cd:f0:42:e0:eb:78:88:56:
- 5e:9b:9a:54:1d:4d:0c:8a:f6:d3:cf:70:f4:52:b5:
- d8:93:04:e3:46:86:71:41:4a:2b:f0:2a:2c:55:03:
- d6:48:c3:e0:39:38:ed:f2:5c:3c:3f:44:bc:93:3d:
- 61:ab:4e:cd:0d:be:f0:20:27:58:0e:44:7f:04:1a:
- 87:a5:d7:96:14:36:90:d0:49:7b:a1:75:fb:1a:6b:
- 73:b1:f8:ce:a9:09:2c:f2:53:d5:c3:14:44:b8:86:
- a5:f6:8b:2b:39:da:a3:33:54:d9:fa:72:1a:f7:22:
- 15:1c:88:91:6b:7f:66:e5:c3:6a:80:b0:24:f3:df:
- 86:45:88:fd:19:7f:75:87:1f:1f:b1:1b:0a:73:24:
- 5b:b9:65:e0:2c:54:c8:60:d3:66:17:3f:e1:cc:54:
- 33:73:91:02:3a:a6:7f:7b:76:39:a2:1f:96:b6:38:
- ae:b5:c8:93:74:1d:9e:b9:b4:e5:60:9d:2f:56:d1:
- e0:eb:5e:5b:4c:12:70:0c:6c:44:20:ab:11:d8:f4:
- 19:f6:d2:9c:52:37:e7:fa:b6:c2:31:3b:4a:d4:14:
- 99:ad:c7:1a:f5:5d:5f:fa:07:b8:7c:0d:1f:d6:83:
- 1e:b3
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- B5:03:F7:76:3B:61:82:6A:12:AA:18:53:EB:03:21:94:BF:FE:CE:CA
- Signature Algorithm: sha256WithRSAEncryption
- 56:3d:ef:94:d5:bd:da:73:b2:58:be:ae:90:ad:98:27:97:fe:
- 01:b1:b0:52:00:b8:4d:e4:1b:21:74:1b:7e:c0:ee:5e:69:2a:
- 25:af:5c:d6:1d:da:d2:79:c9:f3:97:29:e0:86:87:de:04:59:
- 0f:f1:59:d4:64:85:4b:99:af:25:04:1e:c9:46:a9:97:de:82:
- b2:1b:70:9f:9c:f6:af:71:31:dd:7b:05:a5:2c:d3:b9:ca:47:
- f6:ca:f2:f6:e7:ad:b9:48:3f:bc:16:b7:c1:6d:f4:ea:09:af:
- ec:f3:b5:e7:05:9e:a6:1e:8a:53:51:d6:93:81:cc:74:93:f6:
- b9:da:a6:25:05:74:79:5a:7e:40:3e:82:4b:26:11:30:6e:e1:
- 3f:41:c7:47:00:35:d5:f5:d3:f7:54:3e:81:3d:da:49:6a:9a:
- b3:ef:10:3d:e6:eb:6f:d1:c8:22:47:cb:cc:cf:01:31:92:d9:
- 18:e3:22:be:09:1e:1a:3e:5a:b2:e4:6b:0c:54:7a:7d:43:4e:
- b8:89:a5:7b:d7:a2:3d:96:86:cc:f2:26:34:2d:6a:92:9d:9a:
- 1a:d0:30:e2:5d:4e:04:b0:5f:8b:20:7e:77:c1:3d:95:82:d1:
- 46:9a:3b:3c:78:b8:6f:a1:d0:0d:64:a2:78:1e:29:4e:93:c3:
- a4:54:14:5b
-SHA1 Fingerprint=55:A6:72:3E:CB:F2:EC:CD:C3:23:74:70:19:9D:2A:BE:11:E3:81:D1
diff --git a/luni/src/main/files/cacerts/1e8e7201.0 b/luni/src/main/files/cacerts/1e8e7201.0
deleted file mode 100644
index 224b3d5..0000000
--- a/luni/src/main/files/cacerts/1e8e7201.0
+++ /dev/null
@@ -1,79 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G
-A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp
-Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4
-MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG
-A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8
-RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT
-gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm
-KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd
-QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ
-XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw
-DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o
-LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU
-RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp
-jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK
-6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX
-mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs
-Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH
-WD9f
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 04:00:00:00:00:01:21:58:53:08:a2
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: OU=GlobalSign Root CA - R3, O=GlobalSign, CN=GlobalSign
- Validity
- Not Before: Mar 18 10:00:00 2009 GMT
- Not After : Mar 18 10:00:00 2029 GMT
- Subject: OU=GlobalSign Root CA - R3, O=GlobalSign, CN=GlobalSign
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:cc:25:76:90:79:06:78:22:16:f5:c0:83:b6:84:
- ca:28:9e:fd:05:76:11:c5:ad:88:72:fc:46:02:43:
- c7:b2:8a:9d:04:5f:24:cb:2e:4b:e1:60:82:46:e1:
- 52:ab:0c:81:47:70:6c:dd:64:d1:eb:f5:2c:a3:0f:
- 82:3d:0c:2b:ae:97:d7:b6:14:86:10:79:bb:3b:13:
- 80:77:8c:08:e1:49:d2:6a:62:2f:1f:5e:fa:96:68:
- df:89:27:95:38:9f:06:d7:3e:c9:cb:26:59:0d:73:
- de:b0:c8:e9:26:0e:83:15:c6:ef:5b:8b:d2:04:60:
- ca:49:a6:28:f6:69:3b:f6:cb:c8:28:91:e5:9d:8a:
- 61:57:37:ac:74:14:dc:74:e0:3a:ee:72:2f:2e:9c:
- fb:d0:bb:bf:f5:3d:00:e1:06:33:e8:82:2b:ae:53:
- a6:3a:16:73:8c:dd:41:0e:20:3a:c0:b4:a7:a1:e9:
- b2:4f:90:2e:32:60:e9:57:cb:b9:04:92:68:68:e5:
- 38:26:60:75:b2:9f:77:ff:91:14:ef:ae:20:49:fc:
- ad:40:15:48:d1:02:31:61:19:5e:b8:97:ef:ad:77:
- b7:64:9a:7a:bf:5f:c1:13:ef:9b:62:fb:0d:6c:e0:
- 54:69:16:a9:03:da:6e:e9:83:93:71:76:c6:69:85:
- 82:17
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- 8F:F0:4B:7F:A8:2E:45:24:AE:4D:50:FA:63:9A:8B:DE:E2:DD:1B:BC
- Signature Algorithm: sha256WithRSAEncryption
- 4b:40:db:c0:50:aa:fe:c8:0c:ef:f7:96:54:45:49:bb:96:00:
- 09:41:ac:b3:13:86:86:28:07:33:ca:6b:e6:74:b9:ba:00:2d:
- ae:a4:0a:d3:f5:f1:f1:0f:8a:bf:73:67:4a:83:c7:44:7b:78:
- e0:af:6e:6c:6f:03:29:8e:33:39:45:c3:8e:e4:b9:57:6c:aa:
- fc:12:96:ec:53:c6:2d:e4:24:6c:b9:94:63:fb:dc:53:68:67:
- 56:3e:83:b8:cf:35:21:c3:c9:68:fe:ce:da:c2:53:aa:cc:90:
- 8a:e9:f0:5d:46:8c:95:dd:7a:58:28:1a:2f:1d:de:cd:00:37:
- 41:8f:ed:44:6d:d7:53:28:97:7e:f3:67:04:1e:15:d7:8a:96:
- b4:d3:de:4c:27:a4:4c:1b:73:73:76:f4:17:99:c2:1f:7a:0e:
- e3:2d:08:ad:0a:1c:2c:ff:3c:ab:55:0e:0f:91:7e:36:eb:c3:
- 57:49:be:e1:2e:2d:7c:60:8b:c3:41:51:13:23:9d:ce:f7:32:
- 6b:94:01:a8:99:e7:2c:33:1f:3a:3b:25:d2:86:40:ce:3b:2c:
- 86:78:c9:61:2f:14:ba:ee:db:55:6f:df:84:ee:05:09:4d:bd:
- 28:d8:72:ce:d3:62:50:65:1e:eb:92:97:83:31:d9:b3:b5:ca:
- 47:58:3f:5f
-SHA1 Fingerprint=D6:9B:56:11:48:F0:1C:77:C5:45:78:C1:09:26:DF:5B:85:69:76:AD
diff --git a/luni/src/main/files/cacerts/1eb37bdf.0 b/luni/src/main/files/cacerts/1eb37bdf.0
deleted file mode 100644
index 51c658f..0000000
--- a/luni/src/main/files/cacerts/1eb37bdf.0
+++ /dev/null
@@ -1,139 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYD
-VQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0
-IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3
-MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xKTAnBgNVBAMTIENoYW1iZXJz
-IG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEyMjk1MFoXDTM4MDcz
-MTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBj
-dXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIw
-EAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEp
-MCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0G
-CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW9
-28sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKAXuFixrYp4YFs8r/lfTJq
-VKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorjh40G072Q
-DuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR
-5gN/ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfL
-ZEFHcpOrUMPrCXZkNNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05a
-Sd+pZgvMPMZ4fKecHePOjlO+Bd5gD2vlGts/4+EhySnB8esHnFIbAURRPHsl18Tl
-UlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331lubKgdaX8ZSD6e2wsWsSaR6s
-+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ0wlf2eOKNcx5
-Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj
-ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAx
-hduub+84Mxh2EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNV
-HQ4EFgQU+SSsD7K1+HnA+mCIG8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1
-+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpN
-YWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29t
-L2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVy
-ZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAt
-IDIwMDiCCQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRV
-HSAAMCowKAYIKwYBBQUHAgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20w
-DQYJKoZIhvcNAQEFBQADggIBAJASryI1wqM58C7e6bXpeHxIvj99RZJe6dqxGfwW
-PJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH3qLPaYRgM+gQDROpI9CF
-5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbURWpGqOt1
-glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaH
-FoI6M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2
-pSB7+R5KBWIBpih1YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MD
-xvbxrN8y8NmBGuScvfaAFPDRLLmF9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QG
-tjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcKzBIKinmwPQN/aUv0NCB9szTq
-jktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvGnrDQWzilm1De
-fhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg
-OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZ
-d0jQ
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 11806822484801597146 (0xa3da427ea4b1aeda)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=EU, L=Madrid (see current address at www.camerfirma.com/address)/serialNumber=A82743287, O=AC Camerfirma S.A., CN=Chambers of Commerce Root - 2008
- Validity
- Not Before: Aug 1 12:29:50 2008 GMT
- Not After : Jul 31 12:29:50 2038 GMT
- Subject: C=EU, L=Madrid (see current address at www.camerfirma.com/address)/serialNumber=A82743287, O=AC Camerfirma S.A., CN=Chambers of Commerce Root - 2008
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:af:00:cb:70:37:2b:80:5a:4a:3a:6c:78:94:7d:
- a3:7f:1a:1f:f6:35:d5:bd:db:cb:0d:44:72:3e:26:
- b2:90:52:ba:63:3b:28:58:6f:a5:b3:6d:94:a6:f3:
- dd:64:0c:55:f6:f6:e7:f2:22:22:80:5e:e1:62:c6:
- b6:29:e1:81:6c:f2:bf:e5:7d:32:6a:54:a0:32:19:
- 59:fe:1f:8b:d7:3d:60:86:85:24:6f:e3:11:b3:77:
- 3e:20:96:35:21:6b:b3:08:d9:70:2e:64:f7:84:92:
- 53:d6:0e:b0:90:8a:8a:e3:87:8d:06:d3:bd:90:0e:
- e2:99:a1:1b:86:0e:da:9a:0a:bb:0b:61:50:06:52:
- f1:9e:7f:76:ec:cb:0f:d0:1e:0d:cf:99:30:3d:1c:
- c4:45:10:58:ac:d6:d3:e8:d7:e5:ea:c5:01:07:77:
- d6:51:e6:03:7f:8a:48:a5:4d:68:75:b9:e9:bc:9e:
- 4e:19:71:f5:32:4b:9c:6d:60:19:0b:fb:cc:9d:75:
- dc:bf:26:cd:8f:93:78:39:79:73:5e:25:0e:ca:5c:
- eb:77:12:07:cb:64:41:47:72:93:ab:50:c3:eb:09:
- 76:64:34:d2:39:b7:76:11:09:0d:76:45:c4:a9:ae:
- 3d:6a:af:b5:7d:65:2f:94:58:10:ec:5c:7c:af:7e:
- e2:b6:18:d9:d0:9b:4e:5a:49:df:a9:66:0b:cc:3c:
- c6:78:7c:a7:9c:1d:e3:ce:8e:53:be:05:de:60:0f:
- 6b:e5:1a:db:3f:e3:e1:21:c9:29:c1:f1:eb:07:9c:
- 52:1b:01:44:51:3c:7b:25:d7:c4:e5:52:54:5d:25:
- 07:ca:16:20:b8:ad:e4:41:ee:7a:08:fe:99:6f:83:
- a6:91:02:b0:6c:36:55:6a:e7:7d:f5:96:e6:ca:81:
- d6:97:f1:94:83:e9:ed:b0:b1:6b:12:69:1e:ac:fb:
- 5d:a9:c5:98:e9:b4:5b:58:7a:be:3d:a2:44:3a:63:
- 59:d4:0b:25:de:1b:4f:bd:e5:01:9e:cd:d2:29:d5:
- 9f:17:19:0a:6f:bf:0c:90:d3:09:5f:d9:e3:8a:35:
- cc:79:5a:4d:19:37:92:b7:c4:c1:ad:af:f4:79:24:
- 9a:b2:01:0b:b1:af:5c:96:f3:80:32:fb:5c:3d:98:
- f1:a0:3f:4a:de:be:af:94:2e:d9:55:9a:17:6e:60:
- 9d:63:6c:b8:63:c9:ae:81:5c:18:35:e0:90:bb:be:
- 3c:4f:37:22:b9:7e:eb:cf:9e:77:21:a6:3d:38:81:
- fb:48:da:31:3d:2b:e3:89:f5:d0:b5:bd:7e:e0:50:
- c4:12:89:b3:23:9a:10:31:85:db:ae:6f:ef:38:33:
- 18:76:11
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE, pathlen:12
- X509v3 Subject Key Identifier:
- F9:24:AC:0F:B2:B5:F8:79:C0:FA:60:88:1B:C4:D9:4D:02:9E:17:19
- X509v3 Authority Key Identifier:
- keyid:F9:24:AC:0F:B2:B5:F8:79:C0:FA:60:88:1B:C4:D9:4D:02:9E:17:19
- DirName:/C=EU/L=Madrid (see current address at www.camerfirma.com/address)/serialNumber=A82743287/O=AC Camerfirma S.A./CN=Chambers of Commerce Root - 2008
- serial:A3:DA:42:7E:A4:B1:AE:DA
-
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Certificate Policies:
- Policy: X509v3 Any Policy
- CPS: http://policy.camerfirma.com
-
- Signature Algorithm: sha1WithRSAEncryption
- 90:12:af:22:35:c2:a3:39:f0:2e:de:e9:b5:e9:78:7c:48:be:
- 3f:7d:45:92:5e:e9:da:b1:19:fc:16:3c:9f:b4:5b:66:9e:6a:
- e7:c3:b9:5d:88:e8:0f:ad:cf:23:0f:de:25:3a:5e:cc:4f:a5:
- c1:b5:2d:ac:24:d2:58:07:de:a2:cf:69:84:60:33:e8:10:0d:
- 13:a9:23:d0:85:e5:8e:7b:a6:9e:3d:72:13:72:33:f5:aa:7d:
- c6:63:1f:08:f4:fe:01:7f:24:cf:2b:2c:54:09:de:e2:2b:6d:
- 92:c6:39:4f:16:ea:3c:7e:7a:46:d4:45:6a:46:a8:eb:75:82:
- 56:a7:ab:a0:7c:68:13:33:f6:9d:30:f0:6f:27:39:24:23:2a:
- 90:fd:90:29:35:f2:93:df:34:a5:c6:f7:f8:ef:8c:0f:62:4a:
- 7c:ae:d3:f5:54:f8:8d:b6:9a:56:87:16:82:3a:33:ab:5a:22:
- 08:f7:82:ba:ea:2e:e0:47:9a:b4:b5:45:a3:05:3b:d9:dc:2e:
- 45:40:3b:ea:dc:7f:e8:3b:eb:d1:ec:26:d8:35:a4:30:c5:3a:
- ac:57:9e:b3:76:a5:20:7b:f9:1e:4a:05:62:01:a6:28:75:60:
- 97:92:0d:6e:3e:4d:37:43:0d:92:15:9c:18:22:cd:51:99:a0:
- 29:1a:3c:5f:8a:32:33:5b:30:c7:89:2f:47:98:0f:a3:03:c6:
- f6:f1:ac:df:32:f0:d9:81:1a:e4:9c:bd:f6:80:14:f0:d1:2c:
- b9:85:f5:d8:a3:b1:c8:a5:21:e5:1c:13:97:ee:0e:bd:df:29:
- a9:ef:34:53:5b:d3:e4:6a:13:84:06:b6:32:02:c4:52:ae:22:
- d2:dc:b2:21:42:1a:da:40:f0:29:c9:ec:0a:0c:5c:e2:d0:ba:
- cc:48:d3:37:0a:cc:12:0a:8a:79:b0:3d:03:7f:69:4b:f4:34:
- 20:7d:b3:34:ea:8e:4b:64:f5:3e:fd:b3:23:67:15:0d:04:b8:
- f0:2d:c1:09:51:3c:b2:6c:15:f0:a5:23:d7:83:74:e4:e5:2e:
- c9:fe:98:27:42:c6:ab:c6:9e:b0:d0:5b:38:a5:9b:50:de:7e:
- 18:98:b5:45:3b:f6:79:b4:e8:f7:1a:7b:06:83:fb:d0:8b:da:
- bb:c7:bd:18:ab:08:6f:3c:80:6b:40:3f:19:19:ba:65:8a:e6:
- be:d5:5c:d3:36:d7:ef:40:52:24:60:38:67:04:31:ec:8f:f3:
- 82:c6:de:b9:55:f3:3b:31:91:5a:dc:b5:08:15:ad:76:25:0a:
- 0d:7b:2e:87:e2:0c:a6:06:bc:26:10:6d:37:9d:ec:dd:78:8c:
- 7c:80:c5:f0:d9:77:48:d0
-SHA1 Fingerprint=78:6A:74:AC:76:AB:14:7F:9C:6A:30:50:BA:9E:A8:7E:FE:9A:CE:3C
diff --git a/luni/src/main/files/cacerts/1f58a078.0 b/luni/src/main/files/cacerts/1f58a078.0
deleted file mode 100644
index ac07485..0000000
--- a/luni/src/main/files/cacerts/1f58a078.0
+++ /dev/null
@@ -1,120 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQEL
-BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc
-BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00
-MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
-aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIgRzMwggIiMA0GCSqG
-SIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFhZiFf
-qq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMW
-n4rjyduYNM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ym
-c5GQYaYDFCDy54ejiK2toIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+
-O7q414AB+6XrW7PFXmAqMaCvN+ggOp+oMiwMzAkd056OXbxMmO7FGmh77FOm6RQ1
-o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+lV0POKa2Mq1W/xPtbAd0j
-IaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZoL1NesNKq
-IcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz
-8eQQsSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43eh
-vNURG3YBZwjgQQvD6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l
-7ZizlWNof/k19N+IxWA1ksB8aRxhlRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALG
-cC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
-BjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZIhvcNAQELBQAD
-ggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66
-AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RC
-roijQ1h5fq7KpVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0Ga
-W/ZZGYjeVYg3UQt4XAoeo0L9x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4n
-lv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgzdWqTHBLmYF5vHX/JHyPLhGGfHoJE
-+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6XU/IyAgkwo1jwDQHV
-csaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+NwmNtd
-dbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNg
-KCLjsZWDzYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeM
-HVOyToV7BjjHLPj4sHKNJeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4
-WSr2Rz0ZiC3oheGe7IUIarFsNMkd7EgrO3jtZsSOeWmD3n+M
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 44:57:34:24:5b:81:89:9b:35:f2:ce:b8:2b:3b:5b:a7:26:f0:75:28
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=BM, O=QuoVadis Limited, CN=QuoVadis Root CA 2 G3
- Validity
- Not Before: Jan 12 18:59:32 2012 GMT
- Not After : Jan 12 18:59:32 2042 GMT
- Subject: C=BM, O=QuoVadis Limited, CN=QuoVadis Root CA 2 G3
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:a1:ae:25:b2:01:18:dc:57:88:3f:46:eb:f9:af:
- e2:eb:23:71:e2:9a:d1:61:66:21:5f:aa:af:27:51:
- e5:6e:1b:16:d4:2d:7d:50:b0:53:77:bd:78:3a:60:
- e2:64:02:9b:7c:86:9b:d6:1a:8e:ad:ff:1f:15:7f:
- d5:95:1e:12:cb:e6:14:84:04:c1:df:36:b3:16:9f:
- 8a:e3:c9:db:98:34:ce:d8:33:17:28:46:fc:a7:c9:
- f0:d2:b4:d5:4d:09:72:49:f9:f2:87:e3:a9:da:7d:
- a1:7d:6b:b2:3a:25:a9:6d:52:44:ac:f8:be:6e:fb:
- dc:a6:73:91:90:61:a6:03:14:20:f2:e7:87:a3:88:
- ad:ad:a0:8c:ff:a6:0b:25:52:25:e7:16:01:d5:cb:
- b8:35:81:0c:a3:3b:f0:e1:e1:fc:5a:5d:ce:80:71:
- 6d:f8:49:ab:3e:3b:ba:b8:d7:80:01:fb:a5:eb:5b:
- b3:c5:5e:60:2a:31:a0:af:37:e8:20:3a:9f:a8:32:
- 2c:0c:cc:09:1d:d3:9e:8e:5d:bc:4c:98:ee:c5:1a:
- 68:7b:ec:53:a6:e9:14:35:a3:df:cd:80:9f:0c:48:
- fb:1c:f4:f1:bf:4a:b8:fa:d5:8c:71:4a:c7:1f:ad:
- fe:41:9a:b3:83:5d:f2:84:56:ef:a5:57:43:ce:29:
- ad:8c:ab:55:bf:c4:fb:5b:01:dd:23:21:a1:58:00:
- 8e:c3:d0:6a:13:ed:13:e3:12:2b:80:dc:67:e6:95:
- b2:cd:1e:22:6e:2a:f8:41:d4:f2:ca:14:07:8d:8a:
- 55:12:c6:69:f5:b8:86:68:2f:53:5e:b0:d2:aa:21:
- c1:98:e6:30:e3:67:55:c7:9b:6e:ac:19:a8:55:a6:
- 45:06:d0:23:3a:db:eb:65:5d:2a:11:11:f0:3b:4f:
- ca:6d:f4:34:c4:71:e4:ff:00:5a:f6:5c:ae:23:60:
- 85:73:f1:e4:10:b1:25:ae:d5:92:bb:13:c1:0c:e0:
- 39:da:b4:39:57:b5:ab:35:aa:72:21:3b:83:35:e7:
- 31:df:7a:21:6e:b8:32:08:7d:1d:32:91:15:4a:62:
- 72:cf:e3:77:a1:bc:d5:11:1b:76:01:67:08:e0:41:
- 0b:c3:eb:15:6e:f8:a4:19:d9:a2:ab:af:e2:27:52:
- 56:2b:02:8a:2c:14:24:f9:bf:42:02:bf:26:c8:c6:
- 8f:e0:6e:38:7d:53:2d:e5:ed:98:b3:95:63:68:7f:
- f9:35:f4:df:88:c5:60:35:92:c0:7c:69:1c:61:95:
- 16:d0:eb:de:0b:af:3e:04:10:45:65:58:50:38:af:
- 48:f2:59:b6:16:f2:3c:0d:90:02:c6:70:2e:01:ad:
- 3c:15:d7
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- ED:E7:6F:76:5A:BF:60:EC:49:5B:C6:A5:77:BB:72:16:71:9B:C4:3D
- Signature Algorithm: sha256WithRSAEncryption
- 91:df:80:3f:43:09:7e:71:c2:f7:eb:b3:88:8f:e1:51:b2:bc:
- 3d:75:f9:28:5d:c8:bc:99:9b:7b:5d:aa:e5:ca:e1:0a:f7:e8:
- b2:d3:9f:dd:67:31:7e:ba:01:aa:c7:6a:41:3b:90:d4:08:5c:
- b2:60:6a:90:f0:c8:ce:03:62:f9:8b:ed:fb:6e:2a:dc:06:4d:
- 3c:29:0f:89:16:8a:58:4c:48:0f:e8:84:61:ea:3c:72:a6:77:
- e4:42:ae:88:a3:43:58:79:7e:ae:ca:a5:53:0d:a9:3d:70:bd:
- 20:19:61:a4:6c:38:fc:43:32:e1:c1:47:ff:f8:ec:f1:11:22:
- 32:96:9c:c2:f6:5b:69:96:7b:20:0c:43:41:9a:5b:f6:59:19:
- 88:de:55:88:37:51:0b:78:5c:0a:1e:a3:42:fd:c7:9d:88:0f:
- c0:f2:78:02:24:54:93:af:89:87:88:c9:4a:80:1d:ea:d0:6e:
- 3e:61:2e:36:bb:35:0e:27:96:fd:66:34:3b:61:72:73:f1:16:
- 5c:47:06:54:49:00:7a:58:12:b0:0a:ef:85:fd:b1:b8:33:75:
- 6a:93:1c:12:e6:60:5e:6f:1d:7f:c9:1f:23:cb:84:61:9f:1e:
- 82:44:f9:5f:ad:62:55:24:9a:52:98:ed:51:e7:a1:7e:97:3a:
- e6:2f:1f:11:da:53:80:2c:85:9e:ab:35:10:db:22:5f:6a:c5:
- 5e:97:53:f2:32:02:09:30:a3:58:f0:0d:01:d5:72:c6:b1:7c:
- 69:7b:c3:f5:36:45:cc:61:6e:5e:4c:94:c5:5e:ae:e8:0e:5e:
- 8b:bf:f7:cd:e0:ed:a1:0e:1b:33:ee:54:18:fe:0f:be:ef:7e:
- 84:6b:43:e3:70:98:db:5d:75:b2:0d:59:07:85:15:23:39:d6:
- f1:df:a9:26:0f:d6:48:c7:b3:a6:22:f5:33:37:5a:95:47:9f:
- 7b:ba:18:15:6f:ff:d6:14:64:83:49:d2:0a:67:21:db:0f:35:
- 63:60:28:22:e3:b1:95:83:cd:85:a6:dd:2f:0f:e7:67:52:6e:
- bb:2f:85:7c:f5:4a:73:e7:c5:3e:c0:bd:21:12:05:3f:fc:b7:
- 03:49:02:5b:c8:25:e6:e2:54:38:f5:79:87:8c:1d:53:b2:4e:
- 85:7b:06:38:c7:2c:f8:f8:b0:72:8d:25:e5:77:52:f4:03:1c:
- 48:a6:50:5f:88:20:30:6e:f2:82:43:ab:3d:97:84:e7:53:fb:
- 21:c1:4f:0f:22:9a:86:b8:59:2a:f6:47:3d:19:88:2d:e8:85:
- e1:9e:ec:85:08:6a:b1:6c:34:c9:1d:ec:48:2b:3b:78:ed:66:
- c4:8e:79:69:83:de:7f:8c
-SHA1 Fingerprint=09:3C:61:F3:8B:8B:DC:7D:55:DF:75:38:02:05:00:E1:25:F5:C8:36
diff --git a/luni/src/main/files/cacerts/21855f49.0 b/luni/src/main/files/cacerts/21855f49.0
deleted file mode 100644
index afaaf34..0000000
--- a/luni/src/main/files/cacerts/21855f49.0
+++ /dev/null
@@ -1,119 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFaTCCA1GgAwIBAgIJAMMDmu5QkG4oMA0GCSqGSIb3DQEBBQUAMFIxCzAJBgNV
-BAYTAlNLMRMwEQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMu
-MRkwFwYDVQQDExBDQSBEaXNpZyBSb290IFIxMB4XDTEyMDcxOTA5MDY1NloXDTQy
-MDcxOTA5MDY1NlowUjELMAkGA1UEBhMCU0sxEzARBgNVBAcTCkJyYXRpc2xhdmEx
-EzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERpc2lnIFJvb3QgUjEw
-ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCqw3j33Jijp1pedxiy3QRk
-D2P9m5YJgNXoqqXinCaUOuiZc4yd39ffg/N4T0Dhf9Kn0uXKE5Pn7cZ3Xza1lK/o
-OI7bm+V8u8yN63Vz4STN5qctGS7Y1oprFOsIYgrY3LMATcMjfF9DCCMyEtztDK3A
-fQ+lekLZWnDZv6fXARz2m6uOt0qGeKAeVjGu74IKgEH3G8muqzIm1Cxr7X1r5OJe
-IgpFy4QxTaz+29FHuvlglzmxZcfe+5nkCiKxLU3lSCZpq+Kq8/v8kiky6bM+TR8n
-oc2OuRf7JT7JbvN32g0S9l3HuzYQ1VTW8+DiR0jm3hTaYVKvJrT1cU/J19IG32PK
-/yHoWQbgCNWEFVP3Q+V8xaCJmGtzxmjOZd69fwX3se72V6FglcXM6pM6vpmumwKj
-rckWtc7dXpl4fho5frLABaTAgqWjR56M6ly2vGfb5ipN0gTco65F97yLnByn1tUD
-3AjLLhbKXEAz6GfDLuemROoRRRw1ZS0eRWEkG4IupZ0zXWX4Qfkuy5Q/H6MMMSRE
-7cderVC6xkGbrPAXZcD4XW9boAo0PO7X6oifmPmvTiT6l7Jkdtqr9O3jw2Dv1fkC
-yC2fg69naQanMVXVz0tv/wQFx1isXxYb5dKj6zHbHzMVTdDypVP1y+E9Tmgt2BLd
-qvLmTZtJ5cUoobqwWsagtQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud
-DwEB/wQEAwIBBjAdBgNVHQ4EFgQUiQq0OJMa5qvum5EY+fU8PjXQ04IwDQYJKoZI
-hvcNAQEFBQADggIBADKL9p1Kyb4U5YysOMo6CdQbzoaz3evUuii+Eq5FLAR0rBNR
-xVgYZk2C2tXck8An4b58n1KeElb21Zyp9HWc+jcSjxyT7Ff+Bw+r1RL3D65hXlaA
-SfX8MPWbTx9BLxyE04nH4toCdu0Jz2zBuByDHBb6lM19oMgY0sidbvW9adRtPTXo
-HqJPYNcHKfyyo6SdbhWSVhlMCrDpfNIZTUJG7L399ldb3Zh+pE3McgODWF3vkzpB
-emOqfDqo9ayk0d2iLbYq/J8BjuIQscTK5GfbVSUZP/3oNn6z4eGBrxEWi1CXYBmC
-AMBrTXO40RMHPuq2MU/wQppt4hF05ZSsjYSVPCGvxdpHyN85YmLLW1AL14FABZyb
-7bq2ix4Eb5YgOe2kfSnbSM6C3NQCjR0EMVrHS/BsYVLXtFHCgWzN4funodKSds+x
-DzdYpPJScWc/DIh4gInByLUfkmO+p3qKViwaqKactV2zY9ATIKHrkWzQjX2v3wvk
-F7mGnjixlAxYjOBVqjtjbZqJYLhkKpLGN/R+Q0O3c+gB53+XD9fyexn9GtePyfqF
-a3qdnom2piiZk4hA9z7NUaPK6u95RyG1/jLix8NRb76AdPCkwzryT+lf3xkK8jsT
-Q6wxpLPn6/wY1gGp8yqPNg7rtLG8t0zJa7+h89n07eLw4+1knj0vllJPgFOL
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 14052245610670616104 (0xc3039aee50906e28)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=SK, L=Bratislava, O=Disig a.s., CN=CA Disig Root R1
- Validity
- Not Before: Jul 19 09:06:56 2012 GMT
- Not After : Jul 19 09:06:56 2042 GMT
- Subject: C=SK, L=Bratislava, O=Disig a.s., CN=CA Disig Root R1
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:aa:c3:78:f7:dc:98:a3:a7:5a:5e:77:18:b2:dd:
- 04:64:0f:63:fd:9b:96:09:80:d5:e8:aa:a5:e2:9c:
- 26:94:3a:e8:99:73:8c:9d:df:d7:df:83:f3:78:4f:
- 40:e1:7f:d2:a7:d2:e5:ca:13:93:e7:ed:c6:77:5f:
- 36:b5:94:af:e8:38:8e:db:9b:e5:7c:bb:cc:8d:eb:
- 75:73:e1:24:cd:e6:a7:2d:19:2e:d8:d6:8a:6b:14:
- eb:08:62:0a:d8:dc:b3:00:4d:c3:23:7c:5f:43:08:
- 23:32:12:dc:ed:0c:ad:c0:7d:0f:a5:7a:42:d9:5a:
- 70:d9:bf:a7:d7:01:1c:f6:9b:ab:8e:b7:4a:86:78:
- a0:1e:56:31:ae:ef:82:0a:80:41:f7:1b:c9:ae:ab:
- 32:26:d4:2c:6b:ed:7d:6b:e4:e2:5e:22:0a:45:cb:
- 84:31:4d:ac:fe:db:d1:47:ba:f9:60:97:39:b1:65:
- c7:de:fb:99:e4:0a:22:b1:2d:4d:e5:48:26:69:ab:
- e2:aa:f3:fb:fc:92:29:32:e9:b3:3e:4d:1f:27:a1:
- cd:8e:b9:17:fb:25:3e:c9:6e:f3:77:da:0d:12:f6:
- 5d:c7:bb:36:10:d5:54:d6:f3:e0:e2:47:48:e6:de:
- 14:da:61:52:af:26:b4:f5:71:4f:c9:d7:d2:06:df:
- 63:ca:ff:21:e8:59:06:e0:08:d5:84:15:53:f7:43:
- e5:7c:c5:a0:89:98:6b:73:c6:68:ce:65:de:bd:7f:
- 05:f7:b1:ee:f6:57:a1:60:95:c5:cc:ea:93:3a:be:
- 99:ae:9b:02:a3:ad:c9:16:b5:ce:dd:5e:99:78:7e:
- 1a:39:7e:b2:c0:05:a4:c0:82:a5:a3:47:9e:8c:ea:
- 5c:b6:bc:67:db:e6:2a:4d:d2:04:dc:a3:ae:45:f7:
- bc:8b:9c:1c:a7:d6:d5:03:dc:08:cb:2e:16:ca:5c:
- 40:33:e8:67:c3:2e:e7:a6:44:ea:11:45:1c:35:65:
- 2d:1e:45:61:24:1b:82:2e:a5:9d:33:5d:65:f8:41:
- f9:2e:cb:94:3f:1f:a3:0c:31:24:44:ed:c7:5e:ad:
- 50:ba:c6:41:9b:ac:f0:17:65:c0:f8:5d:6f:5b:a0:
- 0a:34:3c:ee:d7:ea:88:9f:98:f9:af:4e:24:fa:97:
- b2:64:76:da:ab:f4:ed:e3:c3:60:ef:d5:f9:02:c8:
- 2d:9f:83:af:67:69:06:a7:31:55:d5:cf:4b:6f:ff:
- 04:05:c7:58:ac:5f:16:1b:e5:d2:a3:eb:31:db:1f:
- 33:15:4d:d0:f2:a5:53:f5:cb:e1:3d:4e:68:2d:d8:
- 12:dd:aa:f2:e6:4d:9b:49:e5:c5:28:a1:ba:b0:5a:
- c6:a0:b5
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- 89:0A:B4:38:93:1A:E6:AB:EE:9B:91:18:F9:F5:3C:3E:35:D0:D3:82
- Signature Algorithm: sha1WithRSAEncryption
- 32:8b:f6:9d:4a:c9:be:14:e5:8c:ac:38:ca:3a:09:d4:1b:ce:
- 86:b3:dd:eb:d4:ba:28:be:12:ae:45:2c:04:74:ac:13:51:c5:
- 58:18:66:4d:82:da:d5:dc:93:c0:27:e1:be:7c:9f:52:9e:12:
- 56:f6:d5:9c:a9:f4:75:9c:fa:37:12:8f:1c:93:ec:57:fe:07:
- 0f:ab:d5:12:f7:0f:ae:61:5e:56:80:49:f5:fc:30:f5:9b:4f:
- 1f:41:2f:1c:84:d3:89:c7:e2:da:02:76:ed:09:cf:6c:c1:b8:
- 1c:83:1c:16:fa:94:cd:7d:a0:c8:18:d2:c8:9d:6e:f5:bd:69:
- d4:6d:3d:35:e8:1e:a2:4f:60:d7:07:29:fc:b2:a3:a4:9d:6e:
- 15:92:56:19:4c:0a:b0:e9:7c:d2:19:4d:42:46:ec:bd:fd:f6:
- 57:5b:dd:98:7e:a4:4d:cc:72:03:83:58:5d:ef:93:3a:41:7a:
- 63:aa:7c:3a:a8:f5:ac:a4:d1:dd:a2:2d:b6:2a:fc:9f:01:8e:
- e2:10:b1:c4:ca:e4:67:db:55:25:19:3f:fd:e8:36:7e:b3:e1:
- e1:81:af:11:16:8b:50:97:60:19:82:00:c0:6b:4d:73:b8:d1:
- 13:07:3e:ea:b6:31:4f:f0:42:9a:6d:e2:11:74:e5:94:ac:8d:
- 84:95:3c:21:af:c5:da:47:c8:df:39:62:62:cb:5b:50:0b:d7:
- 81:40:05:9c:9b:ed:ba:b6:8b:1e:04:6f:96:20:39:ed:a4:7d:
- 29:db:48:ce:82:dc:d4:02:8d:1d:04:31:5a:c7:4b:f0:6c:61:
- 52:d7:b4:51:c2:81:6c:cd:e1:fb:a7:a1:d2:92:76:cf:b1:0f:
- 37:58:a4:f2:52:71:67:3f:0c:88:78:80:89:c1:c8:b5:1f:92:
- 63:be:a7:7a:8a:56:2c:1a:a8:a6:9c:b5:5d:b3:63:d0:13:20:
- a1:eb:91:6c:d0:8d:7d:af:df:0b:e4:17:b9:86:9e:38:b1:94:
- 0c:58:8c:e0:55:aa:3b:63:6d:9a:89:60:b8:64:2a:92:c6:37:
- f4:7e:43:43:b7:73:e8:01:e7:7f:97:0f:d7:f2:7b:19:fd:1a:
- d7:8f:c9:fa:85:6b:7a:9d:9e:89:b6:a6:28:99:93:88:40:f7:
- 3e:cd:51:a3:ca:ea:ef:79:47:21:b5:fe:32:e2:c7:c3:51:6f:
- be:80:74:f0:a4:c3:3a:f2:4f:e9:5f:df:19:0a:f2:3b:13:43:
- ac:31:a4:b3:e7:eb:fc:18:d6:01:a9:f3:2a:8f:36:0e:eb:b4:
- b1:bc:b7:4c:c9:6b:bf:a1:f3:d9:f4:ed:e2:f0:e3:ed:64:9e:
- 3d:2f:96:52:4f:80:53:8b
-SHA1 Fingerprint=8E:1C:74:F8:A6:20:B9:E5:8A:F4:61:FA:EC:2B:47:56:51:1A:52:C6
diff --git a/luni/src/main/files/cacerts/219d9499.0 b/luni/src/main/files/cacerts/219d9499.0
deleted file mode 100644
index 90790d3..0000000
--- a/luni/src/main/files/cacerts/219d9499.0
+++ /dev/null
@@ -1,84 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh
-MB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBE
-YWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3
-MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRo
-ZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3Mg
-MiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggEN
-ADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCA
-PVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6w
-wdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXi
-EqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMY
-avx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+
-YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLE
-sNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h
-/t2oatTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5
-IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmlj
-YXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD
-ggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYXMP80kWNy
-OO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKtI3lpjbi2Tc7P
-TMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
-HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mER
-dEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5Cuf
-ReYNnyicsbkqWletNw+vHX/bvZ8=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 0 (0x0)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=US, O=The Go Daddy Group, Inc., OU=Go Daddy Class 2 Certification Authority
- Validity
- Not Before: Jun 29 17:06:20 2004 GMT
- Not After : Jun 29 17:06:20 2034 GMT
- Subject: C=US, O=The Go Daddy Group, Inc., OU=Go Daddy Class 2 Certification Authority
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:de:9d:d7:ea:57:18:49:a1:5b:eb:d7:5f:48:86:
- ea:be:dd:ff:e4:ef:67:1c:f4:65:68:b3:57:71:a0:
- 5e:77:bb:ed:9b:49:e9:70:80:3d:56:18:63:08:6f:
- da:f2:cc:d0:3f:7f:02:54:22:54:10:d8:b2:81:d4:
- c0:75:3d:4b:7f:c7:77:c3:3e:78:ab:1a:03:b5:20:
- 6b:2f:6a:2b:b1:c5:88:7e:c4:bb:1e:b0:c1:d8:45:
- 27:6f:aa:37:58:f7:87:26:d7:d8:2d:f6:a9:17:b7:
- 1f:72:36:4e:a6:17:3f:65:98:92:db:2a:6e:5d:a2:
- fe:88:e0:0b:de:7f:e5:8d:15:e1:eb:cb:3a:d5:e2:
- 12:a2:13:2d:d8:8e:af:5f:12:3d:a0:08:05:08:b6:
- 5c:a5:65:38:04:45:99:1e:a3:60:60:74:c5:41:a5:
- 72:62:1b:62:c5:1f:6f:5f:1a:42:be:02:51:65:a8:
- ae:23:18:6a:fc:78:03:a9:4d:7f:80:c3:fa:ab:5a:
- fc:a1:40:a4:ca:19:16:fe:b2:c8:ef:5e:73:0d:ee:
- 77:bd:9a:f6:79:98:bc:b1:07:67:a2:15:0d:dd:a0:
- 58:c6:44:7b:0a:3e:62:28:5f:ba:41:07:53:58:cf:
- 11:7e:38:74:c5:f8:ff:b5:69:90:8f:84:74:ea:97:
- 1b:af
- Exponent: 3 (0x3)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- D2:C4:B0:D2:91:D4:4C:11:71:B3:61:CB:3D:A1:FE:DD:A8:6A:D4:E3
- X509v3 Authority Key Identifier:
- keyid:D2:C4:B0:D2:91:D4:4C:11:71:B3:61:CB:3D:A1:FE:DD:A8:6A:D4:E3
- DirName:/C=US/O=The Go Daddy Group, Inc./OU=Go Daddy Class 2 Certification Authority
- serial:00
-
- X509v3 Basic Constraints:
- CA:TRUE
- Signature Algorithm: sha1WithRSAEncryption
- 32:4b:f3:b2:ca:3e:91:fc:12:c6:a1:07:8c:8e:77:a0:33:06:
- 14:5c:90:1e:18:f7:08:a6:3d:0a:19:f9:87:80:11:6e:69:e4:
- 96:17:30:ff:34:91:63:72:38:ee:cc:1c:01:a3:1d:94:28:a4:
- 31:f6:7a:c4:54:d7:f6:e5:31:58:03:a2:cc:ce:62:db:94:45:
- 73:b5:bf:45:c9:24:b5:d5:82:02:ad:23:79:69:8d:b8:b6:4d:
- ce:cf:4c:ca:33:23:e8:1c:88:aa:9d:8b:41:6e:16:c9:20:e5:
- 89:9e:cd:3b:da:70:f7:7e:99:26:20:14:54:25:ab:6e:73:85:
- e6:9b:21:9d:0a:6c:82:0e:a8:f8:c2:0c:fa:10:1e:6c:96:ef:
- 87:0d:c4:0f:61:8b:ad:ee:83:2b:95:f8:8e:92:84:72:39:eb:
- 20:ea:83:ed:83:cd:97:6e:08:bc:eb:4e:26:b6:73:2b:e4:d3:
- f6:4c:fe:26:71:e2:61:11:74:4a:ff:57:1a:87:0f:75:48:2e:
- cf:51:69:17:a0:02:12:61:95:d5:d1:40:b2:10:4c:ee:c4:ac:
- 10:43:a6:a5:9e:0a:d5:95:62:9a:0d:cf:88:82:c5:32:0c:e4:
- 2b:9f:45:e6:0d:9f:28:9c:b1:b9:2a:5a:57:ad:37:0f:af:1d:
- 7f:db:bd:9f
-SHA1 Fingerprint=27:96:BA:E6:3F:18:01:E2:77:26:1B:A0:D7:77:70:02:8F:20:EE:E4
diff --git a/luni/src/main/files/cacerts/23f4c490.0 b/luni/src/main/files/cacerts/23f4c490.0
deleted file mode 100644
index 22c6ee2..0000000
--- a/luni/src/main/files/cacerts/23f4c490.0
+++ /dev/null
@@ -1,84 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzEl
-MCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMp
-U3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQw
-NjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBoMQswCQYDVQQGEwJVUzElMCMGA1UE
-ChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZp
-ZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqGSIb3
-DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf
-8MOh2tTYbitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN
-+lq2cwQlZut3f+dZxkqZJRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0
-X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVmepsZGD3/cVE8MC5fvj13c7JdBmzDI1aa
-K4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSNF4Azbl5KXZnJHoe0nRrA
-1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HFMIHCMB0G
-A1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fR
-zt0fhvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0
-YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBD
-bGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8w
-DQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGsafPzWdqbAYcaT1epoXkJKtv3
-L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLMPUxA2IGvd56D
-eruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl
-xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynp
-VSJYACPq4xJDKVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEY
-WQPJIrSPnNVeKtelttQKbfi3QBFGmh95DmK/D5fs4C8fF5Q=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 0 (0x0)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=US, O=Starfield Technologies, Inc., OU=Starfield Class 2 Certification Authority
- Validity
- Not Before: Jun 29 17:39:16 2004 GMT
- Not After : Jun 29 17:39:16 2034 GMT
- Subject: C=US, O=Starfield Technologies, Inc., OU=Starfield Class 2 Certification Authority
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:b7:32:c8:fe:e9:71:a6:04:85:ad:0c:11:64:df:
- ce:4d:ef:c8:03:18:87:3f:a1:ab:fb:3c:a6:9f:f0:
- c3:a1:da:d4:d8:6e:2b:53:90:fb:24:a4:3e:84:f0:
- 9e:e8:5f:ec:e5:27:44:f5:28:a6:3f:7b:de:e0:2a:
- f0:c8:af:53:2f:9e:ca:05:01:93:1e:8f:66:1c:39:
- a7:4d:fa:5a:b6:73:04:25:66:eb:77:7f:e7:59:c6:
- 4a:99:25:14:54:eb:26:c7:f3:7f:19:d5:30:70:8f:
- af:b0:46:2a:ff:ad:eb:29:ed:d7:9f:aa:04:87:a3:
- d4:f9:89:a5:34:5f:db:43:91:82:36:d9:66:3c:b1:
- b8:b9:82:fd:9c:3a:3e:10:c8:3b:ef:06:65:66:7a:
- 9b:19:18:3d:ff:71:51:3c:30:2e:5f:be:3d:77:73:
- b2:5d:06:6c:c3:23:56:9a:2b:85:26:92:1c:a7:02:
- b3:e4:3f:0d:af:08:79:82:b8:36:3d:ea:9c:d3:35:
- b3:bc:69:ca:f5:cc:9d:e8:fd:64:8d:17:80:33:6e:
- 5e:4a:5d:99:c9:1e:87:b4:9d:1a:c0:d5:6e:13:35:
- 23:5e:df:9b:5f:3d:ef:d6:f7:76:c2:ea:3e:bb:78:
- 0d:1c:42:67:6b:04:d8:f8:d6:da:6f:8b:f2:44:a0:
- 01:ab
- Exponent: 3 (0x3)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- BF:5F:B7:D1:CE:DD:1F:86:F4:5B:55:AC:DC:D7:10:C2:0E:A9:88:E7
- X509v3 Authority Key Identifier:
- keyid:BF:5F:B7:D1:CE:DD:1F:86:F4:5B:55:AC:DC:D7:10:C2:0E:A9:88:E7
- DirName:/C=US/O=Starfield Technologies, Inc./OU=Starfield Class 2 Certification Authority
- serial:00
-
- X509v3 Basic Constraints:
- CA:TRUE
- Signature Algorithm: sha1WithRSAEncryption
- 05:9d:3f:88:9d:d1:c9:1a:55:a1:ac:69:f3:f3:59:da:9b:01:
- 87:1a:4f:57:a9:a1:79:09:2a:db:f7:2f:b2:1e:cc:c7:5e:6a:
- d8:83:87:a1:97:ef:49:35:3e:77:06:41:58:62:bf:8e:58:b8:
- 0a:67:3f:ec:b3:dd:21:66:1f:c9:54:fa:72:cc:3d:4c:40:d8:
- 81:af:77:9e:83:7a:bb:a2:c7:f5:34:17:8e:d9:11:40:f4:fc:
- 2c:2a:4d:15:7f:a7:62:5d:2e:25:d3:00:0b:20:1a:1d:68:f9:
- 17:b8:f4:bd:8b:ed:28:59:dd:4d:16:8b:17:83:c8:b2:65:c7:
- 2d:7a:a5:aa:bc:53:86:6d:dd:57:a4:ca:f8:20:41:0b:68:f0:
- f4:fb:74:be:56:5d:7a:79:f5:f9:1d:85:e3:2d:95:be:f5:71:
- 90:43:cc:8d:1f:9a:00:0a:87:29:e9:55:22:58:00:23:ea:e3:
- 12:43:29:5b:47:08:dd:8c:41:6a:65:06:a8:e5:21:aa:41:b4:
- 95:21:95:b9:7d:d1:34:ab:13:d6:ad:bc:dc:e2:3d:39:cd:bd:
- 3e:75:70:a1:18:59:03:c9:22:b4:8f:9c:d5:5e:2a:d7:a5:b6:
- d4:0a:6d:f8:b7:40:11:46:9a:1f:79:0e:62:bf:0f:97:ec:e0:
- 2f:1f:17:94
-SHA1 Fingerprint=AD:7E:1C:28:B0:64:EF:8F:60:03:40:20:14:C3:D0:E3:37:0E:B5:8A
diff --git a/luni/src/main/files/cacerts/27af790d.0 b/luni/src/main/files/cacerts/27af790d.0
deleted file mode 100644
index 7de9d2f..0000000
--- a/luni/src/main/files/cacerts/27af790d.0
+++ /dev/null
@@ -1,55 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDEL
-MAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChj
-KSAyMDA3IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2
-MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
-eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1OVowgZgxCzAJBgNV
-BAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykgMjAw
-NyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNV
-BAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBH
-MjB2MBAGByqGSM49AgEGBSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcL
-So17VDs6bl8VAsBQps8lL33KSLjHUGMcKiEIfJo22Av+0SbFWDEwKCXzXV2juLal
-tJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO
-BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+EVXVMAoG
-CCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGT
-qQ7mndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBucz
-rD6ogRLQy7rQkgu2npaqBA+K
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 3c:b2:f4:48:0a:00:e2:fe:eb:24:3b:5e:60:3e:c3:6b
- Signature Algorithm: ecdsa-with-SHA384
- Issuer: C=US, O=GeoTrust Inc., OU=(c) 2007 GeoTrust Inc. - For authorized use only, CN=GeoTrust Primary Certification Authority - G2
- Validity
- Not Before: Nov 5 00:00:00 2007 GMT
- Not After : Jan 18 23:59:59 2038 GMT
- Subject: C=US, O=GeoTrust Inc., OU=(c) 2007 GeoTrust Inc. - For authorized use only, CN=GeoTrust Primary Certification Authority - G2
- Subject Public Key Info:
- Public Key Algorithm: id-ecPublicKey
- Public-Key: (384 bit)
- pub:
- 04:15:b1:e8:fd:03:15:43:e5:ac:eb:87:37:11:62:
- ef:d2:83:36:52:7d:45:57:0b:4a:8d:7b:54:3b:3a:
- 6e:5f:15:02:c0:50:a6:cf:25:2f:7d:ca:48:b8:c7:
- 50:63:1c:2a:21:08:7c:9a:36:d8:0b:fe:d1:26:c5:
- 58:31:30:28:25:f3:5d:5d:a3:b8:b6:a5:b4:92:ed:
- 6c:2c:9f:eb:dd:43:89:a2:3c:4b:48:91:1d:50:ec:
- 26:df:d6:60:2e:bd:21
- ASN1 OID: secp384r1
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- 15:5F:35:57:51:55:FB:25:B2:AD:03:69:FC:01:A3:FA:BE:11:55:D5
- Signature Algorithm: ecdsa-with-SHA384
- 30:64:02:30:64:96:59:a6:e8:09:de:8b:ba:fa:5a:88:88:f0:
- 1f:91:d3:46:a8:f2:4a:4c:02:63:fb:6c:5f:38:db:2e:41:93:
- a9:0e:e6:9d:dc:31:1c:b2:a0:a7:18:1c:79:e1:c7:36:02:30:
- 3a:56:af:9a:74:6c:f6:fb:83:e0:33:d3:08:5f:a1:9c:c2:5b:
- 9f:46:d6:b6:cb:91:06:63:a2:06:e7:33:ac:3e:a8:81:12:d0:
- cb:ba:d0:92:0b:b6:9e:96:aa:04:0f:8a
-SHA1 Fingerprint=8D:17:84:D5:37:F3:03:7D:EC:70:FE:57:8B:51:9A:99:E6:10:D7:B0
diff --git a/luni/src/main/files/cacerts/2add47b6.0 b/luni/src/main/files/cacerts/2add47b6.0
deleted file mode 100644
index aa88539..0000000
--- a/luni/src/main/files/cacerts/2add47b6.0
+++ /dev/null
@@ -1,52 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEk
-MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpH
-bG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX
-DTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD
-QSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu
-MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6SFkc
-8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8ke
-hOvRnkmSh5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD
-VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYI
-KoZIzj0EAwMDaAAwZQIxAOVpEslu28YxuglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg
-515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7yFz9SO8NdCKoCOJuxUnO
-xwy8p2Fp8fc74SrL+SvzZpA3
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 60:59:49:e0:26:2e:bb:55:f9:0a:77:8a:71:f9:4a:d8:6c
- Signature Algorithm: ecdsa-with-SHA384
- Issuer: OU=GlobalSign ECC Root CA - R5, O=GlobalSign, CN=GlobalSign
- Validity
- Not Before: Nov 13 00:00:00 2012 GMT
- Not After : Jan 19 03:14:07 2038 GMT
- Subject: OU=GlobalSign ECC Root CA - R5, O=GlobalSign, CN=GlobalSign
- Subject Public Key Info:
- Public Key Algorithm: id-ecPublicKey
- Public-Key: (384 bit)
- pub:
- 04:47:45:0e:96:fb:7d:5d:bf:e9:39:d1:21:f8:9f:
- 0b:b6:d5:7b:1e:92:3a:48:59:1c:f0:62:31:2d:c0:
- 7a:28:fe:1a:a7:5c:b3:b6:cc:97:e7:45:d4:58:fa:
- d1:77:6d:43:a2:c0:87:65:34:0a:1f:7a:dd:eb:3c:
- 33:a1:c5:9d:4d:a4:6f:41:95:38:7f:c9:1e:84:eb:
- d1:9e:49:92:87:94:87:0c:3a:85:4a:66:9f:9d:59:
- 93:4d:97:61:06:86:4a
- ASN1 OID: secp384r1
- X509v3 extensions:
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- 3D:E6:29:48:9B:EA:07:CA:21:44:4A:26:DE:6E:DE:D2:83:D0:9F:59
- Signature Algorithm: ecdsa-with-SHA384
- 30:65:02:31:00:e5:69:12:c9:6e:db:c6:31:ba:09:41:e1:97:
- f8:fb:fd:9a:e2:7d:12:c9:ed:7c:64:d3:cb:05:25:8b:56:d9:
- a0:e7:5e:5d:4e:0b:83:9c:5b:76:29:a0:09:26:21:6a:62:02:
- 30:71:d2:b5:8f:5c:ea:3b:e1:78:09:85:a8:75:92:3b:c8:5c:
- fd:48:ef:0d:74:22:a8:08:e2:6e:c5:49:ce:c7:0c:bc:a7:61:
- 69:f1:f7:3b:e1:2a:cb:f9:2b:f3:66:90:37
-SHA1 Fingerprint=1F:24:C6:30:CD:A4:18:EF:20:69:FF:AD:4F:DD:5F:46:3A:1B:69:AA
diff --git a/luni/src/main/files/cacerts/2d9dafe4.0 b/luni/src/main/files/cacerts/2d9dafe4.0
deleted file mode 100644
index b99db95..0000000
--- a/luni/src/main/files/cacerts/2d9dafe4.0
+++ /dev/null
@@ -1,119 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd
-MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg
-Q2xhc3MgMyBSb290IENBMB4XDTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFow
-TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw
-HgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB
-BQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRHsJ8Y
-ZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3E
-N3coTRiR5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9
-tznDDgFHmV0ST9tD+leh7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX
-0DJq1l1sDPGzbjniazEuOQAnFN44wOwZZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c
-/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH2xc519woe2v1n/MuwU8X
-KhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV/afmiSTY
-zIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvS
-O1UQRwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D
-34xFMFbG02SrZvPAXpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgP
-K9Dx2hzLabjKSWJtyNBjYt1gD1iqj6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3
-AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFEe4zf/lb+74suwv
-Tg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAACAj
-QTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV
-cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXS
-IGrs/CIBKM+GuIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2
-HJLw5QY33KbmkJs4j1xrG0aGQ0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsa
-O5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8ZORK15FTAaggiG6cX0S5y2CBNOxv
-033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2KSb12tjE8nVhz36u
-dmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz6MkE
-kbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg41
-3OEMXbugUZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvD
-u79leNKGef9JOxqDDPDeeOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq
-4/g7u9xN12TyUb7mqqta6THuBrxzvxNiCp/HuZc=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 2 (0x2)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=NO, O=Buypass AS-983163327, CN=Buypass Class 3 Root CA
- Validity
- Not Before: Oct 26 08:28:58 2010 GMT
- Not After : Oct 26 08:28:58 2040 GMT
- Subject: C=NO, O=Buypass AS-983163327, CN=Buypass Class 3 Root CA
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:a5:da:0a:95:16:50:e3:95:f2:5e:9d:76:31:06:
- 32:7a:9b:f1:10:76:b8:00:9a:b5:52:36:cd:24:47:
- b0:9f:18:64:bc:9a:f6:fa:d5:79:d8:90:62:4c:22:
- 2f:de:38:3d:d6:e0:a8:e9:1c:2c:db:78:11:e9:8e:
- 68:51:15:72:c7:f3:33:87:e4:a0:5d:0b:5c:e0:57:
- 07:2a:30:f5:cd:c4:37:77:28:4d:18:91:e6:bf:d5:
- 52:fd:71:2d:70:3e:e7:c6:c4:8a:e3:f0:28:0b:f4:
- 76:98:a1:8b:87:55:b2:3a:13:fc:b7:3e:27:37:8e:
- 22:e3:a8:4f:2a:ef:60:bb:3d:b7:39:c3:0e:01:47:
- 99:5d:12:4f:db:43:fa:57:a1:ed:f9:9d:be:11:47:
- 26:5b:13:98:ab:5d:16:8a:b0:37:1c:57:9d:45:ff:
- 88:96:36:bf:bb:ca:07:7b:6f:87:63:d7:d0:32:6a:
- d6:5d:6c:0c:f1:b3:6e:39:e2:6b:31:2e:39:00:27:
- 14:de:38:c0:ec:19:66:86:12:e8:9d:72:16:13:64:
- 52:c7:a9:37:1c:fd:82:30:ed:84:18:1d:f4:ae:5c:
- ff:70:13:00:eb:b1:f5:33:7a:4b:d6:55:f8:05:8d:
- 4b:69:b0:f5:b3:28:36:5c:14:c4:51:73:4d:6b:0b:
- f1:34:07:db:17:39:d7:dc:28:7b:6b:f5:9f:f3:2e:
- c1:4f:17:2a:10:f3:cc:ca:e8:eb:fd:6b:ab:2e:9a:
- 9f:2d:82:6e:04:d4:52:01:93:2d:3d:86:fc:7e:fc:
- df:ef:42:1d:a6:6b:ef:b9:20:c6:f7:bd:a0:a7:95:
- fd:a7:e6:89:24:d8:cc:8c:34:6c:e2:23:2f:d9:12:
- 1a:21:b9:55:91:6f:0b:91:79:19:0c:ad:40:88:0b:
- 70:e2:7a:d2:0e:d8:68:48:bb:82:13:39:10:58:e9:
- d8:2a:07:c6:12:db:58:db:d2:3b:55:10:47:05:15:
- 67:62:7e:18:63:a6:46:3f:09:0e:54:32:5e:bf:0d:
- 62:7a:27:ef:80:e8:db:d9:4b:06:5a:37:5a:25:d0:
- 08:12:77:d4:6f:09:50:97:3d:c8:1d:c3:df:8c:45:
- 30:56:c6:d3:64:ab:66:f3:c0:5e:96:9c:c3:c4:ef:
- c3:7c:6b:8b:3a:79:7f:b3:49:cf:3d:e2:89:9f:a0:
- 30:4b:85:b9:9c:94:24:79:8f:7d:6b:a9:45:68:0f:
- 2b:d0:f1:da:1c:cb:69:b8:ca:49:62:6d:c8:d0:63:
- 62:dd:60:0f:58:aa:8f:a1:bc:05:a5:66:a2:cf:1b:
- 76:b2:84:64:b1:4c:39:52:c0:30:ba:f0:8c:4b:02:
- b0:b6:b7
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- 47:B8:CD:FF:E5:6F:EE:F8:B2:EC:2F:4E:0E:F9:25:B0:8E:3C:6B:C3
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 00:20:23:41:35:04:90:c2:40:62:60:ef:e2:35:4c:d7:3f:ac:
- e2:34:90:b8:a1:6f:76:fa:16:16:a4:48:37:2c:e9:90:c2:f2:
- 3c:f8:0a:9f:d8:81:e5:bb:5b:da:25:2c:a4:a7:55:71:24:32:
- f6:c8:0b:f2:bc:6a:f8:93:ac:b2:07:c2:5f:9f:db:cc:c8:8a:
- aa:be:6a:6f:e1:49:10:cc:31:d7:80:bb:bb:c8:d8:a2:0e:64:
- 57:ea:a2:f5:c2:a9:31:15:d2:20:6a:ec:fc:22:01:28:cf:86:
- b8:80:1e:a9:cc:11:a5:3c:f2:16:b3:47:9d:fc:d2:80:21:c4:
- cb:d0:47:70:41:a1:ca:83:19:08:2c:6d:f2:5d:77:9c:8a:14:
- 13:d4:36:1c:92:f0:e5:06:37:dc:a6:e6:90:9b:38:8f:5c:6b:
- 1b:46:86:43:42:5f:3e:01:07:53:54:5d:65:7d:f7:8a:73:a1:
- 9a:54:5a:1f:29:43:14:27:c2:85:0f:b5:88:7b:1a:3b:94:b7:
- 1d:60:a7:b5:9c:e7:29:69:57:5a:9b:93:7a:43:30:1b:03:d7:
- 62:c8:40:a6:aa:fc:64:e4:4a:d7:91:53:01:a8:20:88:6e:9c:
- 5f:44:b9:cb:60:81:34:ec:6f:d3:7d:da:48:5f:eb:b4:90:bc:
- 2d:a9:1c:0b:ac:1c:d5:a2:68:20:80:04:d6:fc:b1:8f:2f:bb:
- 4a:31:0d:4a:86:1c:eb:e2:36:29:26:f5:da:d8:c4:f2:75:61:
- cf:7e:ae:76:63:4a:7a:40:65:93:87:f8:1e:80:8c:86:e5:86:
- d6:8f:0e:fc:53:2c:60:e8:16:61:1a:a2:3e:43:7b:cd:39:60:
- 54:6a:f5:f2:89:26:01:68:83:48:a2:33:e8:c9:04:91:b2:11:
- 34:11:3e:ea:d0:43:19:1f:03:93:90:0c:ff:51:3d:57:f4:41:
- 6e:e1:cb:a0:be:eb:c9:63:cd:6d:cc:e4:f8:36:aa:68:9d:ed:
- bd:5d:97:70:44:0d:b6:0e:35:dc:e1:0c:5d:bb:a0:51:94:cb:
- 7e:16:eb:11:2f:a3:92:45:c8:4c:71:d9:bc:c9:99:52:57:46:
- 2f:50:cf:bd:35:69:f4:3d:15:ce:06:a5:2c:0f:3e:f6:81:ba:
- 94:bb:c3:bb:bf:65:78:d2:86:79:ff:49:3b:1a:83:0c:f0:de:
- 78:ec:c8:f2:4d:4c:1a:de:82:29:f8:c1:5a:da:ed:ee:e6:27:
- 5e:e8:45:d0:9d:1c:51:a8:68:ab:44:e3:d0:8b:6a:e3:f8:3b:
- bb:dc:4d:d7:64:f2:51:be:e6:aa:ab:5a:e9:31:ee:06:bc:73:
- bf:13:62:0a:9f:c7:b9:97
-SHA1 Fingerprint=DA:FA:F7:FA:66:84:EC:06:8F:14:50:BD:C7:C2:81:A5:BC:A9:64:57
diff --git a/luni/src/main/files/cacerts/2fa87019.0 b/luni/src/main/files/cacerts/2fa87019.0
deleted file mode 100644
index 5303927..0000000
--- a/luni/src/main/files/cacerts/2fa87019.0
+++ /dev/null
@@ -1,86 +0,0 @@
------BEGIN CERTIFICATE-----
-MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBi
-MQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu
-MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3Jp
-dHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMxMjM1OTU5WjBiMQswCQYDVQQGEwJV
-UzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydO
-ZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqG
-SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwz
-c7MEL7xxjOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPP
-OCwGJgl6cvf6UDL4wpPTaaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rl
-mGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXTcrA/vGp97Eh/jcOrqnErU2lBUzS1sLnF
-BgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc/Qzpf14Dl847ABSHJ3A4
-qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMBAAGjgZcw
-gZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIB
-BjAPBgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwu
-bmV0c29sc3NsLmNvbS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3Jp
-dHkuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc8
-6fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q4LqILPxFzBiwmZVRDuwduIj/
-h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/GGUsyfJj4akH
-/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv
-wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHN
-pGxlaKFJdlxDydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 57:cb:33:6f:c2:5c:16:e6:47:16:17:e3:90:31:68:e0
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=US, O=Network Solutions L.L.C., CN=Network Solutions Certificate Authority
- Validity
- Not Before: Dec 1 00:00:00 2006 GMT
- Not After : Dec 31 23:59:59 2029 GMT
- Subject: C=US, O=Network Solutions L.L.C., CN=Network Solutions Certificate Authority
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:e4:bc:7e:92:30:6d:c6:d8:8e:2b:0b:bc:46:ce:
- e0:27:96:de:de:f9:fa:12:d3:3c:33:73:b3:04:2f:
- bc:71:8c:e5:9f:b6:22:60:3e:5f:5d:ce:09:ff:82:
- 0c:1b:9a:51:50:1a:26:89:dd:d5:61:5d:19:dc:12:
- 0f:2d:0a:a2:43:5d:17:d0:34:92:20:ea:73:cf:38:
- 2c:06:26:09:7a:72:f7:fa:50:32:f8:c2:93:d3:69:
- a2:23:ce:41:b1:cc:e4:d5:1f:36:d1:8a:3a:f8:8c:
- 63:e2:14:59:69:ed:0d:d3:7f:6b:e8:b8:03:e5:4f:
- 6a:e5:98:63:69:48:05:be:2e:ff:33:b6:e9:97:59:
- 69:f8:67:19:ae:93:61:96:44:15:d3:72:b0:3f:bc:
- 6a:7d:ec:48:7f:8d:c3:ab:aa:71:2b:53:69:41:53:
- 34:b5:b0:b9:c5:06:0a:c4:b0:45:f5:41:5d:6e:89:
- 45:7b:3d:3b:26:8c:74:c2:e5:d2:d1:7d:b2:11:d4:
- fb:58:32:22:9a:80:c9:dc:fd:0c:e9:7f:5e:03:97:
- ce:3b:00:14:87:27:70:38:a9:8e:6e:b3:27:76:98:
- 51:e0:05:e3:21:ab:1a:d5:85:22:3c:29:b5:9a:16:
- c5:80:a8:f4:bb:6b:30:8f:2f:46:02:a2:b1:0c:22:
- e0:d3
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 21:30:C9:FB:00:D7:4E:98:DA:87:AA:2A:D0:A7:2E:B1:40:31:A7:4C
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 CRL Distribution Points:
-
- Full Name:
- URI:http://crl.netsolssl.com/NetworkSolutionsCertificateAuthority.crl
-
- Signature Algorithm: sha1WithRSAEncryption
- bb:ae:4b:e7:b7:57:eb:7f:aa:2d:b7:73:47:85:6a:c1:e4:a5:
- 1d:e4:e7:3c:e9:f4:59:65:77:b5:7a:5b:5a:8d:25:36:e0:7a:
- 97:2e:38:c0:57:60:83:98:06:83:9f:b9:76:7a:6e:50:e0:ba:
- 88:2c:fc:45:cc:18:b0:99:95:51:0e:ec:1d:b8:88:ff:87:50:
- 1c:82:c2:e3:e0:32:80:bf:a0:0b:47:c8:c3:31:ef:99:67:32:
- 80:4f:17:21:79:0c:69:5c:de:5e:34:ae:02:b5:26:ea:50:df:
- 7f:18:65:2c:c9:f2:63:e1:a9:07:fe:7c:71:1f:6b:33:24:6a:
- 1e:05:f7:05:68:c0:6a:12:cb:2e:5e:61:cb:ae:28:d3:7e:c2:
- b4:66:91:26:5f:3c:2e:24:5f:cb:58:0f:eb:28:ec:af:11:96:
- f3:dc:7b:6f:c0:a7:88:f2:53:77:b3:60:5e:ae:ae:28:da:35:
- 2c:6f:34:45:d3:26:e1:de:ec:5b:4f:27:6b:16:7c:bd:44:04:
- 18:82:b3:89:79:17:10:71:3d:7a:a2:16:4e:f5:01:cd:a4:6c:
- 65:68:a1:49:76:5c:43:c9:d8:bc:36:67:6c:a5:94:b5:d4:cc:
- b9:bd:6a:35:56:21:de:d8:c3:eb:fb:cb:a4:60:4c:b0:55:a0:
- a0:7b:57:b2
-SHA1 Fingerprint=74:F8:A3:C3:EF:E7:B3:90:06:4B:83:90:3C:21:64:60:20:E5:DF:CE
diff --git a/luni/src/main/files/cacerts/33815e15.0 b/luni/src/main/files/cacerts/33815e15.0
deleted file mode 100644
index ed650d9..0000000
--- a/luni/src/main/files/cacerts/33815e15.0
+++ /dev/null
@@ -1,153 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEW
-MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg
-Q2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0NjM2WhcNMzYwOTE3MTk0NjM2WjB9
-MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi
-U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3Rh
-cnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA
-A4ICDwAwggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZk
-pMyONvg45iPwbm2xPN1yo4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rf
-OQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/C
-Ji/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/deMotHweXMAEtcnn6RtYT
-Kqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt2PZE4XNi
-HzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMM
-Av+Z6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w
-+2OqqGwaVLRcJXrJosmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+
-Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3
-Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVcUjyJthkqcwEKDwOzEmDyei+B
-26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT37uMdBNSSwID
-AQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE
-FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9j
-ZXJ0LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3Js
-LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFM
-BgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUHAgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0
-Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRwOi8vY2VydC5zdGFy
-dGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYgU3Rh
-cnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlh
-YmlsaXR5LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2Yg
-dGhlIFN0YXJ0Q29tIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFp
-bGFibGUgYXQgaHR0cDovL2NlcnQuc3RhcnRjb20ub3JnL3BvbGljeS5wZGYwEQYJ
-YIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBGcmVlIFNT
-TCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAgEAFmyZ
-9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8
-jhvh3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUW
-FjgKXlf2Ysd6AgXmvB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJz
-ewT4F+irsfMuXGRuczE6Eri8sxHkfY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1
-ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3fsNrarnDy0RLrHiQi+fHLB5L
-EUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZEoalHmdkrQYu
-L6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq
-yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuC
-O3NJo2pXh5Tl1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6V
-um0ABj6y6koQOdjQK/W/7HW/lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkySh
-NOsF/5oirpt9P/FlUQqmMGqz9IgcgA38corog14=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=IL, O=StartCom Ltd., OU=Secure Digital Certificate Signing, CN=StartCom Certification Authority
- Validity
- Not Before: Sep 17 19:46:36 2006 GMT
- Not After : Sep 17 19:46:36 2036 GMT
- Subject: C=IL, O=StartCom Ltd., OU=Secure Digital Certificate Signing, CN=StartCom Certification Authority
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:c1:88:db:09:bc:6c:46:7c:78:9f:95:7b:b5:33:
- 90:f2:72:62:d6:c1:36:20:22:24:5e:ce:e9:77:f2:
- 43:0a:a2:06:64:a4:cc:8e:36:f8:38:e6:23:f0:6e:
- 6d:b1:3c:dd:72:a3:85:1c:a1:d3:3d:b4:33:2b:d3:
- 2f:af:fe:ea:b0:41:59:67:b6:c4:06:7d:0a:9e:74:
- 85:d6:79:4c:80:37:7a:df:39:05:52:59:f7:f4:1b:
- 46:43:a4:d2:85:85:d2:c3:71:f3:75:62:34:ba:2c:
- 8a:7f:1e:8f:ee:ed:34:d0:11:c7:96:cd:52:3d:ba:
- 33:d6:dd:4d:de:0b:3b:4a:4b:9f:c2:26:2f:fa:b5:
- 16:1c:72:35:77:ca:3c:5d:e6:ca:e1:26:8b:1a:36:
- 76:5c:01:db:74:14:25:fe:ed:b5:a0:88:0f:dd:78:
- ca:2d:1f:07:97:30:01:2d:72:79:fa:46:d6:13:2a:
- a8:b9:a6:ab:83:49:1d:e5:f2:ef:dd:e4:01:8e:18:
- 0a:8f:63:53:16:85:62:a9:0e:19:3a:cc:b5:66:a6:
- c2:6b:74:07:e4:2b:e1:76:3e:b4:6d:d8:f6:44:e1:
- 73:62:1f:3b:c4:be:a0:53:56:25:6c:51:09:f7:aa:
- ab:ca:bf:76:fd:6d:9b:f3:9d:db:bf:3d:66:bc:0c:
- 56:aa:af:98:48:95:3a:4b:df:a7:58:50:d9:38:75:
- a9:5b:ea:43:0c:02:ff:99:eb:e8:6c:4d:70:5b:29:
- 65:9c:dd:aa:5d:cc:af:01:31:ec:0c:eb:d2:8d:e8:
- ea:9c:7b:e6:6e:f7:27:66:0c:1a:48:d7:6e:42:e3:
- 3f:de:21:3e:7b:e1:0d:70:fb:63:aa:a8:6c:1a:54:
- b4:5c:25:7a:c9:a2:c9:8b:16:a6:bb:2c:7e:17:5e:
- 05:4d:58:6e:12:1d:01:ee:12:10:0d:c6:32:7f:18:
- ff:fc:f4:fa:cd:6e:91:e8:36:49:be:1a:48:69:8b:
- c2:96:4d:1a:12:b2:69:17:c1:0a:90:d6:fa:79:22:
- 48:bf:ba:7b:69:f8:70:c7:fa:7a:37:d8:d8:0d:d2:
- 76:4f:57:ff:90:b7:e3:91:d2:dd:ef:c2:60:b7:67:
- 3a:dd:fe:aa:9c:f0:d4:8b:7f:72:22:ce:c6:9f:97:
- b6:f8:af:8a:a0:10:a8:d9:fb:18:c6:b6:b5:5c:52:
- 3c:89:b6:19:2a:73:01:0a:0f:03:b3:12:60:f2:7a:
- 2f:81:db:a3:6e:ff:26:30:97:f5:8b:dd:89:57:b6:
- ad:3d:b3:af:2b:c5:b7:76:02:f0:a5:d6:2b:9a:86:
- 14:2a:72:f6:e3:33:8c:5d:09:4b:13:df:bb:8c:74:
- 13:52:4b
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Key Usage:
- Digital Signature, Key Encipherment, Key Agreement, Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- 4E:0B:EF:1A:A4:40:5B:A5:17:69:87:30:CA:34:68:43:D0:41:AE:F2
- X509v3 CRL Distribution Points:
-
- Full Name:
- URI:http://cert.startcom.org/sfsca-crl.crl
-
- Full Name:
- URI:http://crl.startcom.org/sfsca-crl.crl
-
- X509v3 Certificate Policies:
- Policy: 1.3.6.1.4.1.23223.1.1.1
- CPS: http://cert.startcom.org/policy.pdf
- CPS: http://cert.startcom.org/intermediate.pdf
- User Notice:
- Organization: Start Commercial (StartCom) Ltd.
- Number: 1
- Explicit Text: Limited Liability, read the section *Legal Limitations* of the StartCom Certification Authority Policy available at http://cert.startcom.org/policy.pdf
-
- Netscape Cert Type:
- SSL CA, S/MIME CA, Object Signing CA
- Netscape Comment:
- StartCom Free SSL Certification Authority
- Signature Algorithm: sha1WithRSAEncryption
- 16:6c:99:f4:66:0c:34:f5:d0:85:5e:7d:0a:ec:da:10:4e:38:
- 1c:5e:df:a6:25:05:4b:91:32:c1:e8:3b:f1:3d:dd:44:09:5b:
- 07:49:8a:29:cb:66:02:b7:b1:9a:f7:25:98:09:3c:8e:1b:e1:
- dd:36:87:2b:4b:bb:68:d3:39:66:3d:a0:26:c7:f2:39:91:1d:
- 51:ab:82:7b:7e:d5:ce:5a:e4:e2:03:57:70:69:97:08:f9:5e:
- 58:a6:0a:df:8c:06:9a:45:16:16:38:0a:5e:57:f6:62:c7:7a:
- 02:05:e6:bc:1e:b5:f2:9e:f4:a9:29:83:f8:b2:14:e3:6e:28:
- 87:44:c3:90:1a:de:38:a9:3c:ac:43:4d:64:45:ce:dd:28:a9:
- 5c:f2:73:7b:04:f8:17:e8:ab:b1:f3:2e:5c:64:6e:73:31:3a:
- 12:b8:bc:b3:11:e4:7d:8f:81:51:9a:3b:8d:89:f4:4d:93:66:
- 7b:3c:03:ed:d3:9a:1d:9a:f3:65:50:f5:a0:d0:75:9f:2f:af:
- f0:ea:82:43:98:f8:69:9c:89:79:c4:43:8e:46:72:e3:64:36:
- 12:af:f7:25:1e:38:89:90:77:7e:c3:6b:6a:b9:c3:cb:44:4b:
- ac:78:90:8b:e7:c7:2c:1e:4b:11:44:c8:34:52:27:cd:0a:5d:
- 9f:85:c1:89:d5:1a:78:f2:95:10:53:32:dd:80:84:66:75:d9:
- b5:68:28:fb:61:2e:be:84:a8:38:c0:99:12:86:a5:1e:67:64:
- ad:06:2e:2f:a9:70:85:c7:96:0f:7c:89:65:f5:8e:43:54:0e:
- ab:dd:a5:80:39:94:60:c0:34:c9:96:70:2c:a3:12:f5:1f:48:
- 7b:bd:1c:7e:6b:b7:9d:90:f4:22:3b:ae:f8:fc:2a:ca:fa:82:
- 52:a0:ef:af:4b:55:93:eb:c1:b5:f0:22:8b:ac:34:4e:26:22:
- 04:a1:87:2c:75:4a:b7:e5:7d:13:d7:b8:0c:64:c0:36:d2:c9:
- 2f:86:12:8c:23:09:c1:1b:82:3b:73:49:a3:6a:57:87:94:e5:
- d6:78:c5:99:43:63:e3:4d:e0:77:2d:e1:65:99:72:69:04:1a:
- 47:09:e6:0f:01:56:24:fb:1f:bf:0e:79:a9:58:2e:b9:c4:09:
- 01:7e:95:ba:6d:00:06:3e:b2:ea:4a:10:39:d8:d0:2b:f5:bf:
- ec:75:bf:97:02:c5:09:1b:08:dc:55:37:e2:81:fb:37:84:43:
- 62:20:ca:e7:56:4b:65:ea:fe:6c:c1:24:93:24:a1:34:eb:05:
- ff:9a:22:ae:9b:7d:3f:f1:65:51:0a:a6:30:6a:b3:f4:88:1c:
- 80:0d:fc:72:8a:e8:83:5e
-SHA1 Fingerprint=3E:2B:F7:F2:03:1B:96:F3:8C:E6:C4:D8:A8:5D:3E:2D:58:47:6A:0F
diff --git a/luni/src/main/files/cacerts/33815e15.1 b/luni/src/main/files/cacerts/33815e15.1
deleted file mode 100644
index 8f3271c..0000000
--- a/luni/src/main/files/cacerts/33815e15.1
+++ /dev/null
@@ -1,147 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEW
-MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg
-Q2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0NjM3WhcNMzYwOTE3MTk0NjM2WjB9
-MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi
-U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3Rh
-cnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA
-A4ICDwAwggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZk
-pMyONvg45iPwbm2xPN1yo4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rf
-OQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/C
-Ji/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/deMotHweXMAEtcnn6RtYT
-Kqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt2PZE4XNi
-HzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMM
-Av+Z6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w
-+2OqqGwaVLRcJXrJosmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+
-Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3
-Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVcUjyJthkqcwEKDwOzEmDyei+B
-26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT37uMdBNSSwID
-AQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
-VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFul
-F2mHMMo0aEPQQa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCC
-ATgwLgYIKwYBBQUHAgEWImh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5w
-ZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL2ludGVybWVk
-aWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENvbW1lcmNpYWwgKFN0
-YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0aGUg
-c2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0
-aWZpY2F0aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93
-d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgG
-CWCGSAGG+EIBDQQrFilTdGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1
-dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5fPGFf59Jb2vKXfuM/gTF
-wWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWmN3PH/UvS
-Ta0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst
-0OcNOrg+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNc
-pRJvkrKTlMeIFw6Ttn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKl
-CcWw0bdT82AUuoVpaiF8H3VhFyAXe2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVF
-P0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA2MFrLH9ZXF2RsXAiV+uKa0hK
-1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBsHvUwyKMQ5bLm
-KhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE
-JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ
-8dCAWZvLMdibD4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnm
-fyWl8kgAwKQB2j8=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 45 (0x2d)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=IL, O=StartCom Ltd., OU=Secure Digital Certificate Signing, CN=StartCom Certification Authority
- Validity
- Not Before: Sep 17 19:46:37 2006 GMT
- Not After : Sep 17 19:46:36 2036 GMT
- Subject: C=IL, O=StartCom Ltd., OU=Secure Digital Certificate Signing, CN=StartCom Certification Authority
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:c1:88:db:09:bc:6c:46:7c:78:9f:95:7b:b5:33:
- 90:f2:72:62:d6:c1:36:20:22:24:5e:ce:e9:77:f2:
- 43:0a:a2:06:64:a4:cc:8e:36:f8:38:e6:23:f0:6e:
- 6d:b1:3c:dd:72:a3:85:1c:a1:d3:3d:b4:33:2b:d3:
- 2f:af:fe:ea:b0:41:59:67:b6:c4:06:7d:0a:9e:74:
- 85:d6:79:4c:80:37:7a:df:39:05:52:59:f7:f4:1b:
- 46:43:a4:d2:85:85:d2:c3:71:f3:75:62:34:ba:2c:
- 8a:7f:1e:8f:ee:ed:34:d0:11:c7:96:cd:52:3d:ba:
- 33:d6:dd:4d:de:0b:3b:4a:4b:9f:c2:26:2f:fa:b5:
- 16:1c:72:35:77:ca:3c:5d:e6:ca:e1:26:8b:1a:36:
- 76:5c:01:db:74:14:25:fe:ed:b5:a0:88:0f:dd:78:
- ca:2d:1f:07:97:30:01:2d:72:79:fa:46:d6:13:2a:
- a8:b9:a6:ab:83:49:1d:e5:f2:ef:dd:e4:01:8e:18:
- 0a:8f:63:53:16:85:62:a9:0e:19:3a:cc:b5:66:a6:
- c2:6b:74:07:e4:2b:e1:76:3e:b4:6d:d8:f6:44:e1:
- 73:62:1f:3b:c4:be:a0:53:56:25:6c:51:09:f7:aa:
- ab:ca:bf:76:fd:6d:9b:f3:9d:db:bf:3d:66:bc:0c:
- 56:aa:af:98:48:95:3a:4b:df:a7:58:50:d9:38:75:
- a9:5b:ea:43:0c:02:ff:99:eb:e8:6c:4d:70:5b:29:
- 65:9c:dd:aa:5d:cc:af:01:31:ec:0c:eb:d2:8d:e8:
- ea:9c:7b:e6:6e:f7:27:66:0c:1a:48:d7:6e:42:e3:
- 3f:de:21:3e:7b:e1:0d:70:fb:63:aa:a8:6c:1a:54:
- b4:5c:25:7a:c9:a2:c9:8b:16:a6:bb:2c:7e:17:5e:
- 05:4d:58:6e:12:1d:01:ee:12:10:0d:c6:32:7f:18:
- ff:fc:f4:fa:cd:6e:91:e8:36:49:be:1a:48:69:8b:
- c2:96:4d:1a:12:b2:69:17:c1:0a:90:d6:fa:79:22:
- 48:bf:ba:7b:69:f8:70:c7:fa:7a:37:d8:d8:0d:d2:
- 76:4f:57:ff:90:b7:e3:91:d2:dd:ef:c2:60:b7:67:
- 3a:dd:fe:aa:9c:f0:d4:8b:7f:72:22:ce:c6:9f:97:
- b6:f8:af:8a:a0:10:a8:d9:fb:18:c6:b6:b5:5c:52:
- 3c:89:b6:19:2a:73:01:0a:0f:03:b3:12:60:f2:7a:
- 2f:81:db:a3:6e:ff:26:30:97:f5:8b:dd:89:57:b6:
- ad:3d:b3:af:2b:c5:b7:76:02:f0:a5:d6:2b:9a:86:
- 14:2a:72:f6:e3:33:8c:5d:09:4b:13:df:bb:8c:74:
- 13:52:4b
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- 4E:0B:EF:1A:A4:40:5B:A5:17:69:87:30:CA:34:68:43:D0:41:AE:F2
- X509v3 Authority Key Identifier:
- keyid:4E:0B:EF:1A:A4:40:5B:A5:17:69:87:30:CA:34:68:43:D0:41:AE:F2
-
- X509v3 Certificate Policies:
- Policy: 1.3.6.1.4.1.23223.1.1.1
- CPS: http://www.startssl.com/policy.pdf
- CPS: http://www.startssl.com/intermediate.pdf
- User Notice:
- Organization: Start Commercial (StartCom) Ltd.
- Number: 1
- Explicit Text: Limited Liability, read the section *Legal Limitations* of the StartCom Certification Authority Policy available at http://www.startssl.com/policy.pdf
-
- Netscape Cert Type:
- SSL CA, S/MIME CA, Object Signing CA
- Netscape Comment:
- StartCom Free SSL Certification Authority
- Signature Algorithm: sha256WithRSAEncryption
- 8e:8f:e7:dc:94:79:7c:f1:85:7f:9f:49:6f:6b:ca:5d:fb:8c:
- fe:04:c5:c1:62:d1:7d:42:8a:bc:53:b7:94:03:66:30:3f:b1:
- e7:0a:a7:50:20:55:25:7f:76:7a:14:0d:eb:04:0e:40:e6:3e:
- d8:88:ab:07:27:83:a9:75:a6:37:73:c7:fd:4b:d2:4d:ad:17:
- 40:c8:46:be:3b:7f:51:fc:c3:b6:05:31:dc:cd:85:22:4e:71:
- b7:f2:71:5e:b0:1a:c6:ba:93:8b:78:92:4a:85:f8:78:0f:83:
- fe:2f:ad:2c:f7:e4:a4:bb:2d:d0:e7:0d:3a:b8:3e:ce:f6:78:
- f6:ae:47:24:ca:a3:35:36:ce:c7:c6:87:98:da:ec:fb:e9:b2:
- ce:27:9b:88:c3:04:a1:f6:0b:59:68:af:c9:db:10:0f:4d:f6:
- 64:63:5c:a5:12:6f:92:b2:93:94:c7:88:17:0e:93:b6:7e:62:
- 8b:90:7f:ab:4e:9f:fc:e3:75:14:4f:2a:32:df:5b:0d:e0:f5:
- 7b:93:0d:ab:a1:cf:87:e1:a5:04:45:e8:3c:12:a5:09:c5:b0:
- d1:b7:53:f3:60:14:ba:85:69:6a:21:7c:1f:75:61:17:20:17:
- 7b:6c:3b:41:29:5c:e1:ac:5a:d1:cd:8c:9b:eb:60:1d:19:ec:
- f7:e5:b0:da:f9:79:18:a5:45:3f:49:43:57:d2:dd:24:d5:2c:
- a3:fd:91:8d:27:b5:e5:eb:14:06:9a:4c:7b:21:bb:3a:ad:30:
- 06:18:c0:d8:c1:6b:2c:7f:59:5c:5d:91:b1:70:22:57:eb:8a:
- 6b:48:4a:d5:0f:29:ec:c6:40:c0:2f:88:4c:68:01:17:77:f4:
- 24:19:4f:bd:fa:e1:b2:20:21:4b:dd:1a:d8:29:7d:aa:b8:de:
- 54:ec:21:55:80:6c:1e:f5:30:c8:a3:10:e5:b2:e6:2a:14:31:
- c3:85:2d:8c:98:b1:86:5a:4f:89:59:2d:b9:c7:f7:1c:c8:8a:
- 7f:c0:9d:05:4a:e6:42:4f:62:a3:6d:29:a4:1f:85:ab:db:e5:
- 81:c8:ad:2a:3d:4c:5d:5b:84:26:71:c4:85:5e:71:24:ca:a5:
- 1b:6c:d8:61:d3:1a:e0:54:db:ce:ba:a9:32:b5:22:f6:73:41:
- 09:5d:b8:17:5d:0e:0f:99:90:d6:47:da:6f:0a:3a:62:28:14:
- 67:82:d9:f1:d0:80:59:9b:cb:31:d8:9b:0f:8c:77:4e:b5:68:
- 8a:f2:6c:f6:24:0e:2d:6c:70:c5:73:d1:de:14:d0:71:8f:b6:
- d3:7b:02:f6:e3:b8:d4:09:6e:6b:9e:75:84:39:e6:7f:25:a5:
- f2:48:00:c0:a4:01:da:3f
-SHA1 Fingerprint=A3:F1:33:3F:E2:42:BF:CF:C5:D1:4E:8F:39:42:98:40:68:10:D1:A0
diff --git a/luni/src/main/files/cacerts/343eb6cb.0 b/luni/src/main/files/cacerts/343eb6cb.0
deleted file mode 100644
index ef2f406..0000000
--- a/luni/src/main/files/cacerts/343eb6cb.0
+++ /dev/null
@@ -1,88 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYG
-A1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2Jh
-bCBSb290MB4XDTA2MTIxNTA4MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UE
-ChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBS
-b290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+Mi8vRRQZhP/8NN5
-7CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW0ozS
-J8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2y
-HLtgwEZLAfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iP
-t3sMpTjr3kfb1V05/Iin89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNz
-FtApD0mpSPCzqrdsxacwOUBdrsTiXSZT8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAY
-XSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/
-MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2MDSgMqAw
-hi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3Js
-MB8GA1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUA
-A4IBAQBW7wojoFROlZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMj
-Wqd8BfP9IjsO0QbE2zZMcwSO5bAi5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUx
-XOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2hO0j9n0Hq0V+09+zv+mKts2o
-omcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+TX3EJIrduPuoc
-A06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW
-WL1WMRJOEcgh4LMRkWXbtKaIOM5V
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 04:00:00:00:00:01:0f:85:aa:2d:48
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: O=Cybertrust, Inc, CN=Cybertrust Global Root
- Validity
- Not Before: Dec 15 08:00:00 2006 GMT
- Not After : Dec 15 08:00:00 2021 GMT
- Subject: O=Cybertrust, Inc, CN=Cybertrust Global Root
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:f8:c8:bc:bd:14:50:66:13:ff:f0:d3:79:ec:23:
- f2:b7:1a:c7:8e:85:f1:12:73:a6:19:aa:10:db:9c:
- a2:65:74:5a:77:3e:51:7d:56:f6:dc:23:b6:d4:ed:
- 5f:58:b1:37:4d:d5:49:0e:6e:f5:6a:87:d6:d2:8c:
- d2:27:c6:e2:ff:36:9f:98:65:a0:13:4e:c6:2a:64:
- 9b:d5:90:12:cf:14:06:f4:3b:e3:d4:28:be:e8:0e:
- f8:ab:4e:48:94:6d:8e:95:31:10:5c:ed:a2:2d:bd:
- d5:3a:6d:b2:1c:bb:60:c0:46:4b:01:f5:49:ae:7e:
- 46:8a:d0:74:8d:a1:0c:02:ce:ee:fc:e7:8f:b8:6b:
- 66:f3:7f:44:00:bf:66:25:14:2b:dd:10:30:1d:07:
- 96:3f:4d:f6:6b:b8:8f:b7:7b:0c:a5:38:eb:de:47:
- db:d5:5d:39:fc:88:a7:f3:d7:2a:74:f1:e8:5a:a2:
- 3b:9f:50:ba:a6:8c:45:35:c2:50:65:95:dc:63:82:
- ef:dd:bf:77:4d:9c:62:c9:63:73:16:d0:29:0f:49:
- a9:48:f0:b3:aa:b7:6c:c5:a7:30:39:40:5d:ae:c4:
- e2:5d:26:53:f0:ce:1c:23:08:61:a8:94:19:ba:04:
- 62:40:ec:1f:38:70:77:12:06:71:a7:30:18:5d:25:
- 27:a5
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- B6:08:7B:0D:7A:CC:AC:20:4C:86:56:32:5E:CF:AB:6E:85:2D:70:57
- X509v3 CRL Distribution Points:
-
- Full Name:
- URI:http://www2.public-trust.com/crl/ct/ctroot.crl
-
- X509v3 Authority Key Identifier:
- keyid:B6:08:7B:0D:7A:CC:AC:20:4C:86:56:32:5E:CF:AB:6E:85:2D:70:57
-
- Signature Algorithm: sha1WithRSAEncryption
- 56:ef:0a:23:a0:54:4e:95:97:c9:f8:89:da:45:c1:d4:a3:00:
- 25:f4:1f:13:ab:b7:a3:85:58:69:c2:30:ad:d8:15:8a:2d:e3:
- c9:cd:81:5a:f8:73:23:5a:a7:7c:05:f3:fd:22:3b:0e:d1:06:
- c4:db:36:4c:73:04:8e:e5:b0:22:e4:c5:f3:2e:a5:d9:23:e3:
- b8:4e:4a:20:a7:6e:02:24:9f:22:60:67:7b:8b:1d:72:09:c5:
- 31:5c:e9:79:9f:80:47:3d:ad:a1:0b:07:14:3d:47:ff:03:69:
- 1a:0c:0b:44:e7:63:25:a7:7f:b2:c9:b8:76:84:ed:23:f6:7d:
- 07:ab:45:7e:d3:df:b3:bf:e9:8a:b6:cd:a8:a2:67:2b:52:d5:
- b7:65:f0:39:4c:63:a0:91:79:93:52:0f:54:dd:83:bb:9f:d1:
- 8f:a7:53:73:c3:cb:ff:30:ec:7c:04:b8:d8:44:1f:93:5f:71:
- 09:22:b7:6e:3e:ea:1c:03:4e:9d:1a:20:61:fb:81:37:ec:5e:
- fc:0a:45:ab:d7:e7:17:55:d0:a0:ea:60:9b:a6:f6:e3:8c:5b:
- 29:c2:06:60:14:9d:2d:97:4c:a9:93:15:9d:61:c4:01:5f:48:
- d6:58:bd:56:31:12:4e:11:c8:21:e0:b3:11:91:65:db:b4:a6:
- 88:38:ce:55
-SHA1 Fingerprint=5F:43:E5:B1:BF:F8:78:8C:AC:1C:C7:CA:4A:9A:C6:22:2B:CC:34:C6
diff --git a/luni/src/main/files/cacerts/35105088.0 b/luni/src/main/files/cacerts/35105088.0
deleted file mode 100644
index 3728c3b..0000000
--- a/luni/src/main/files/cacerts/35105088.0
+++ /dev/null
@@ -1,123 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCB
-iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
-cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV
-BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAw
-MjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNV
-BAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
-aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2Vy
-dGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
-AoICAQCAEmUXNg7D2wiz0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B
-3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2jY0K2dvKpOyuR+OJv0OwWIJAJPuLodMkY
-tJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFnRghRy4YUVD+8M/5+bJz/
-Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O+T23LLb2
-VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT
-79uq/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6
-c0Plfg6lZrEpfDKEY1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmT
-Yo61Zs8liM2EuLE/pDkP2QKe6xJMlXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97l
-c6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8yexDJtC/QV9AqURE9JnnV4ee
-UB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+eLf8ZxXhyVeE
-Hg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd
-BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8G
-A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPF
-Up/L+M+ZBn8b2kMVn54CVVeWFPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KO
-VWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ7l8wXEskEVX/JJpuXior7gtNn3/3
-ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQEg9zKC7F4iRO/Fjs
-8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM8WcR
-iQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYze
-Sf7dNXGiFSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZ
-XHlKYC6SQK5MNyosycdiyA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/
-qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9cJ2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRB
-VXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGwsAvgnEzDHNb842m1R0aB
-L6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gxQ+6IHdfG
-jjxDah2nGN59PRbxYvnKkKj9
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 01:fd:6d:30:fc:a3:ca:51:a8:1b:bc:64:0e:35:03:2d
- Signature Algorithm: sha384WithRSAEncryption
- Issuer: C=US, ST=New Jersey, L=Jersey City, O=The USERTRUST Network, CN=USERTrust RSA Certification Authority
- Validity
- Not Before: Feb 1 00:00:00 2010 GMT
- Not After : Jan 18 23:59:59 2038 GMT
- Subject: C=US, ST=New Jersey, L=Jersey City, O=The USERTRUST Network, CN=USERTrust RSA Certification Authority
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:80:12:65:17:36:0e:c3:db:08:b3:d0:ac:57:0d:
- 76:ed:cd:27:d3:4c:ad:50:83:61:e2:aa:20:4d:09:
- 2d:64:09:dc:ce:89:9f:cc:3d:a9:ec:f6:cf:c1:dc:
- f1:d3:b1:d6:7b:37:28:11:2b:47:da:39:c6:bc:3a:
- 19:b4:5f:a6:bd:7d:9d:a3:63:42:b6:76:f2:a9:3b:
- 2b:91:f8:e2:6f:d0:ec:16:20:90:09:3e:e2:e8:74:
- c9:18:b4:91:d4:62:64:db:7f:a3:06:f1:88:18:6a:
- 90:22:3c:bc:fe:13:f0:87:14:7b:f6:e4:1f:8e:d4:
- e4:51:c6:11:67:46:08:51:cb:86:14:54:3f:bc:33:
- fe:7e:6c:9c:ff:16:9d:18:bd:51:8e:35:a6:a7:66:
- c8:72:67:db:21:66:b1:d4:9b:78:03:c0:50:3a:e8:
- cc:f0:dc:bc:9e:4c:fe:af:05:96:35:1f:57:5a:b7:
- ff:ce:f9:3d:b7:2c:b6:f6:54:dd:c8:e7:12:3a:4d:
- ae:4c:8a:b7:5c:9a:b4:b7:20:3d:ca:7f:22:34:ae:
- 7e:3b:68:66:01:44:e7:01:4e:46:53:9b:33:60:f7:
- 94:be:53:37:90:73:43:f3:32:c3:53:ef:db:aa:fe:
- 74:4e:69:c7:6b:8c:60:93:de:c4:c7:0c:df:e1:32:
- ae:cc:93:3b:51:78:95:67:8b:ee:3d:56:fe:0c:d0:
- 69:0f:1b:0f:f3:25:26:6b:33:6d:f7:6e:47:fa:73:
- 43:e5:7e:0e:a5:66:b1:29:7c:32:84:63:55:89:c4:
- 0d:c1:93:54:30:19:13:ac:d3:7d:37:a7:eb:5d:3a:
- 6c:35:5c:db:41:d7:12:da:a9:49:0b:df:d8:80:8a:
- 09:93:62:8e:b5:66:cf:25:88:cd:84:b8:b1:3f:a4:
- 39:0f:d9:02:9e:eb:12:4c:95:7c:f3:6b:05:a9:5e:
- 16:83:cc:b8:67:e2:e8:13:9d:cc:5b:82:d3:4c:b3:
- ed:5b:ff:de:e5:73:ac:23:3b:2d:00:bf:35:55:74:
- 09:49:d8:49:58:1a:7f:92:36:e6:51:92:0e:f3:26:
- 7d:1c:4d:17:bc:c9:ec:43:26:d0:bf:41:5f:40:a9:
- 44:44:f4:99:e7:57:87:9e:50:1f:57:54:a8:3e:fd:
- 74:63:2f:b1:50:65:09:e6:58:42:2e:43:1a:4c:b4:
- f0:25:47:59:fa:04:1e:93:d4:26:46:4a:50:81:b2:
- de:be:78:b7:fc:67:15:e1:c9:57:84:1e:0f:63:d6:
- e9:62:ba:d6:5f:55:2e:ea:5c:c6:28:08:04:25:39:
- b8:0e:2b:a9:f2:4c:97:1c:07:3f:0d:52:f5:ed:ef:
- 2f:82:0f
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 53:79:BF:5A:AA:2B:4A:CF:54:80:E1:D8:9B:C0:9D:F2:B2:03:66:CB
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- Signature Algorithm: sha384WithRSAEncryption
- 5c:d4:7c:0d:cf:f7:01:7d:41:99:65:0c:73:c5:52:9f:cb:f8:
- cf:99:06:7f:1b:da:43:15:9f:9e:02:55:57:96:14:f1:52:3c:
- 27:87:94:28:ed:1f:3a:01:37:a2:76:fc:53:50:c0:84:9b:c6:
- 6b:4e:ba:8c:21:4f:a2:8e:55:62:91:f3:69:15:d8:bc:88:e3:
- c4:aa:0b:fd:ef:a8:e9:4b:55:2a:06:20:6d:55:78:29:19:ee:
- 5f:30:5c:4b:24:11:55:ff:24:9a:6e:5e:2a:2b:ee:0b:4d:9f:
- 7f:f7:01:38:94:14:95:43:07:09:fb:60:a9:ee:1c:ab:12:8c:
- a0:9a:5e:a7:98:6a:59:6d:8b:3f:08:fb:c8:d1:45:af:18:15:
- 64:90:12:0f:73:28:2e:c5:e2:24:4e:fc:58:ec:f0:f4:45:fe:
- 22:b3:eb:2f:8e:d2:d9:45:61:05:c1:97:6f:a8:76:72:8f:8b:
- 8c:36:af:bf:0d:05:ce:71:8d:e6:a6:6f:1f:6c:a6:71:62:c5:
- d8:d0:83:72:0c:f1:67:11:89:0c:9c:13:4c:72:34:df:bc:d5:
- 71:df:aa:71:dd:e1:b9:6c:8c:3c:12:5d:65:da:bd:57:12:b6:
- 43:6b:ff:e5:de:4d:66:11:51:cf:99:ae:ec:17:b6:e8:71:91:
- 8c:de:49:fe:dd:35:71:a2:15:27:94:1c:cf:61:e3:26:bb:6f:
- a3:67:25:21:5d:e6:dd:1d:0b:2e:68:1b:3b:82:af:ec:83:67:
- 85:d4:98:51:74:b1:b9:99:80:89:ff:7f:78:19:5c:79:4a:60:
- 2e:92:40:ae:4c:37:2a:2c:c9:c7:62:c8:0e:5d:f7:36:5b:ca:
- e0:25:25:01:b4:dd:1a:07:9c:77:00:3f:d0:dc:d5:ec:3d:d4:
- fa:bb:3f:cc:85:d6:6f:7f:a9:2d:df:b9:02:f7:f5:97:9a:b5:
- 35:da:c3:67:b0:87:4a:a9:28:9e:23:8e:ff:5c:27:6b:e1:b0:
- 4f:f3:07:ee:00:2e:d4:59:87:cb:52:41:95:ea:f4:47:d7:ee:
- 64:41:55:7c:8d:59:02:95:dd:62:9d:c2:b9:ee:5a:28:74:84:
- a5:9b:b7:90:c7:0c:07:df:f5:89:36:74:32:d6:28:c1:b0:b0:
- 0b:e0:9c:4c:c3:1c:d6:fc:e3:69:b5:47:46:81:2f:a2:82:ab:
- d3:63:44:70:c4:8d:ff:2d:33:ba:ad:8f:7b:b5:70:88:ae:3e:
- 19:cf:40:28:d8:fc:c8:90:bb:5d:99:22:f5:52:e6:58:c5:1f:
- 88:31:43:ee:88:1d:d7:c6:8e:3c:43:6a:1d:a7:18:de:7d:3d:
- 16:f1:62:f9:ca:90:a8:fd
-SHA1 Fingerprint=2B:8F:1B:57:33:0D:BB:A2:D0:7A:6C:51:F7:0E:E9:0D:DA:B9:AD:8E
diff --git a/luni/src/main/files/cacerts/399e7759.0 b/luni/src/main/files/cacerts/399e7759.0
deleted file mode 100644
index e73ab67..0000000
--- a/luni/src/main/files/cacerts/399e7759.0
+++ /dev/null
@@ -1,83 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh
-MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
-QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT
-MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
-b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG
-9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB
-CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97
-nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt
-43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P
-T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4
-gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO
-BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR
-TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw
-DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr
-hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg
-06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF
-PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls
-YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
-CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 08:3b:e0:56:90:42:46:b1:a1:75:6a:c9:59:91:c7:4a
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Global Root CA
- Validity
- Not Before: Nov 10 00:00:00 2006 GMT
- Not After : Nov 10 00:00:00 2031 GMT
- Subject: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Global Root CA
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:e2:3b:e1:11:72:de:a8:a4:d3:a3:57:aa:50:a2:
- 8f:0b:77:90:c9:a2:a5:ee:12:ce:96:5b:01:09:20:
- cc:01:93:a7:4e:30:b7:53:f7:43:c4:69:00:57:9d:
- e2:8d:22:dd:87:06:40:00:81:09:ce:ce:1b:83:bf:
- df:cd:3b:71:46:e2:d6:66:c7:05:b3:76:27:16:8f:
- 7b:9e:1e:95:7d:ee:b7:48:a3:08:da:d6:af:7a:0c:
- 39:06:65:7f:4a:5d:1f:bc:17:f8:ab:be:ee:28:d7:
- 74:7f:7a:78:99:59:85:68:6e:5c:23:32:4b:bf:4e:
- c0:e8:5a:6d:e3:70:bf:77:10:bf:fc:01:f6:85:d9:
- a8:44:10:58:32:a9:75:18:d5:d1:a2:be:47:e2:27:
- 6a:f4:9a:33:f8:49:08:60:8b:d4:5f:b4:3a:84:bf:
- a1:aa:4a:4c:7d:3e:cf:4f:5f:6c:76:5e:a0:4b:37:
- 91:9e:dc:22:e6:6d:ce:14:1a:8e:6a:cb:fe:cd:b3:
- 14:64:17:c7:5b:29:9e:32:bf:f2:ee:fa:d3:0b:42:
- d4:ab:b7:41:32:da:0c:d4:ef:f8:81:d5:bb:8d:58:
- 3f:b5:1b:e8:49:28:a2:70:da:31:04:dd:f7:b2:16:
- f2:4c:0a:4e:07:a8:ed:4a:3d:5e:b5:7f:a3:90:c3:
- af:27
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Key Usage: critical
- Digital Signature, Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- 03:DE:50:35:56:D1:4C:BB:66:F0:A3:E2:1B:1B:C3:97:B2:3D:D1:55
- X509v3 Authority Key Identifier:
- keyid:03:DE:50:35:56:D1:4C:BB:66:F0:A3:E2:1B:1B:C3:97:B2:3D:D1:55
-
- Signature Algorithm: sha1WithRSAEncryption
- cb:9c:37:aa:48:13:12:0a:fa:dd:44:9c:4f:52:b0:f4:df:ae:
- 04:f5:79:79:08:a3:24:18:fc:4b:2b:84:c0:2d:b9:d5:c7:fe:
- f4:c1:1f:58:cb:b8:6d:9c:7a:74:e7:98:29:ab:11:b5:e3:70:
- a0:a1:cd:4c:88:99:93:8c:91:70:e2:ab:0f:1c:be:93:a9:ff:
- 63:d5:e4:07:60:d3:a3:bf:9d:5b:09:f1:d5:8e:e3:53:f4:8e:
- 63:fa:3f:a7:db:b4:66:df:62:66:d6:d1:6e:41:8d:f2:2d:b5:
- ea:77:4a:9f:9d:58:e2:2b:59:c0:40:23:ed:2d:28:82:45:3e:
- 79:54:92:26:98:e0:80:48:a8:37:ef:f0:d6:79:60:16:de:ac:
- e8:0e:cd:6e:ac:44:17:38:2f:49:da:e1:45:3e:2a:b9:36:53:
- cf:3a:50:06:f7:2e:e8:c4:57:49:6c:61:21:18:d5:04:ad:78:
- 3c:2c:3a:80:6b:a7:eb:af:15:14:e9:d8:89:c1:b9:38:6c:e2:
- 91:6c:8a:ff:64:b9:77:25:57:30:c0:1b:24:a3:e1:dc:e9:df:
- 47:7c:b5:b4:24:08:05:30:ec:2d:bd:0b:bf:45:bf:50:b9:a9:
- f3:eb:98:01:12:ad:c8:88:c6:98:34:5f:8d:0a:3c:c6:e9:d5:
- 95:95:6d:de
-SHA1 Fingerprint=A8:98:5D:3A:65:E5:E5:C4:B2:D7:D6:6D:40:C6:DD:2F:B1:9C:54:36
diff --git a/luni/src/main/files/cacerts/3a3b02ce.0 b/luni/src/main/files/cacerts/3a3b02ce.0
deleted file mode 100644
index 4a01f1c..0000000
--- a/luni/src/main/files/cacerts/3a3b02ce.0
+++ /dev/null
@@ -1,84 +0,0 @@
------BEGIN CERTIFICATE-----
-MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCB
-ijELMAkGA1UEBhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHly
-aWdodCAoYykgMjAwNTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl
-ZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQSBDQTAeFw0w
-NTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYDVQQGEwJDSDEQMA4G
-A1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIwIAYD
-VQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBX
-SVNlS2V5IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEAy0+zAJs9Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxR
-VVuuk+g3/ytr6dTqvirdqFEr12bDYVxgAsj1znJ7O7jyTmUIms2kahnBAbtzptf2
-w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbDd50kc3vkDIzh2TbhmYsF
-mQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ/yxViJGg
-4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t9
-4B3RLoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYw
-DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQw
-EAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOx
-SPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vImMMkQyh2I+3QZH4VFvbBsUfk2
-ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4+vg1YFkCExh8
-vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa
-hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZi
-Fj4A4xylNoEYokxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ
-/L7fCg0=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 41:3d:72:c7:f4:6b:1f:81:43:7d:f1:d2:28:54:df:9a
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=CH, O=WISeKey, OU=Copyright (c) 2005, OU=OISTE Foundation Endorsed, CN=OISTE WISeKey Global Root GA CA
- Validity
- Not Before: Dec 11 16:03:44 2005 GMT
- Not After : Dec 11 16:09:51 2037 GMT
- Subject: C=CH, O=WISeKey, OU=Copyright (c) 2005, OU=OISTE Foundation Endorsed, CN=OISTE WISeKey Global Root GA CA
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:cb:4f:b3:00:9b:3d:36:dd:f9:d1:49:6a:6b:10:
- 49:1f:ec:d8:2b:b2:c6:f8:32:81:29:43:95:4c:9a:
- 19:23:21:15:45:de:e3:c8:1c:51:55:5b:ae:93:e8:
- 37:ff:2b:6b:e9:d4:ea:be:2a:dd:a8:51:2b:d7:66:
- c3:61:5c:60:02:c8:f5:ce:72:7b:3b:b8:f2:4e:65:
- 08:9a:cd:a4:6a:19:c1:01:bb:73:a6:d7:f6:c3:dd:
- cd:bc:a4:8b:b5:99:61:b8:01:a2:a3:d4:4d:d4:05:
- 3d:91:ad:f8:b4:08:71:64:af:70:f1:1c:6b:7e:f6:
- c3:77:9d:24:73:7b:e4:0c:8c:e1:d9:36:e1:99:8b:
- 05:99:0b:ed:45:31:09:ca:c2:00:db:f7:72:a0:96:
- aa:95:87:d0:8e:c7:b6:61:73:0d:76:66:8c:dc:1b:
- b4:63:a2:9f:7f:93:13:30:f1:a1:27:db:d9:ff:2c:
- 55:88:91:a0:e0:4f:07:b0:28:56:8c:18:1b:97:44:
- 8e:89:dd:e0:17:6e:e7:2a:ef:8f:39:0a:31:84:82:
- d8:40:14:49:2e:7a:41:e4:a7:fe:e3:64:cc:c1:59:
- 71:4b:2c:21:a7:5b:7d:e0:1d:d1:2e:81:9b:c3:d8:
- 68:f7:bd:96:1b:ac:70:b1:16:14:0b:db:60:b9:26:
- 01:05
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Key Usage:
- Digital Signature, Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- B3:03:7E:AE:36:BC:B0:79:D1:DC:94:26:B6:11:BE:21:B2:69:86:94
- 1.3.6.1.4.1.311.21.1:
- ...
- Signature Algorithm: sha1WithRSAEncryption
- 4b:a1:ff:0b:87:6e:b3:f9:c1:43:b1:48:f3:28:c0:1d:2e:c9:
- 09:41:fa:94:00:1c:a4:a4:ab:49:4f:8f:3d:1e:ef:4d:6f:bd:
- bc:a4:f6:f2:26:30:c9:10:ca:1d:88:fb:74:19:1f:85:45:bd:
- b0:6c:51:f9:36:7e:db:f5:4c:32:3a:41:4f:5b:47:cf:e8:0b:
- 2d:b6:c4:19:9d:74:c5:47:c6:3b:6a:0f:ac:14:db:3c:f4:73:
- 9c:a9:05:df:00:dc:74:78:fa:f8:35:60:59:02:13:18:7c:bc:
- fb:4d:b0:20:6d:43:bb:60:30:7a:67:33:5c:c5:99:d1:f8:2d:
- 39:52:73:fb:8c:aa:97:25:5c:72:d9:08:1e:ab:4e:3c:e3:81:
- 31:9f:03:a6:fb:c0:fe:29:88:55:da:84:d5:50:03:b6:e2:84:
- a3:a6:36:aa:11:3a:01:e1:18:4b:d6:44:68:b3:3d:f9:53:74:
- 84:b3:46:91:46:96:00:b7:80:2c:b6:e1:e3:10:e2:db:a2:e7:
- 28:8f:01:96:62:16:3e:00:e3:1c:a5:36:81:18:a2:4c:52:76:
- c0:11:a3:6e:e6:1d:ba:e3:5a:be:36:53:c5:3e:75:8f:86:69:
- 29:58:53:b5:9c:bb:6f:9f:5c:c5:18:ec:dd:2f:e1:98:c9:fc:
- be:df:0a:0d
-SHA1 Fingerprint=59:22:A1:E1:5A:EA:16:35:21:F8:98:39:6A:46:46:B0:44:1B:0F:A9
diff --git a/luni/src/main/files/cacerts/3ad48a91.0 b/luni/src/main/files/cacerts/3ad48a91.0
deleted file mode 100644
index d4bda9f..0000000
--- a/luni/src/main/files/cacerts/3ad48a91.0
+++ /dev/null
@@ -1,78 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ
-RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
-VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX
-DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y
-ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy
-VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr
-mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr
-IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK
-mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu
-XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy
-dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye
-jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1
-BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3
-DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92
-9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx
-jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0
-Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz
-ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS
-R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 33554617 (0x20000b9)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=IE, O=Baltimore, OU=CyberTrust, CN=Baltimore CyberTrust Root
- Validity
- Not Before: May 12 18:46:00 2000 GMT
- Not After : May 12 23:59:00 2025 GMT
- Subject: C=IE, O=Baltimore, OU=CyberTrust, CN=Baltimore CyberTrust Root
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:a3:04:bb:22:ab:98:3d:57:e8:26:72:9a:b5:79:
- d4:29:e2:e1:e8:95:80:b1:b0:e3:5b:8e:2b:29:9a:
- 64:df:a1:5d:ed:b0:09:05:6d:db:28:2e:ce:62:a2:
- 62:fe:b4:88:da:12:eb:38:eb:21:9d:c0:41:2b:01:
- 52:7b:88:77:d3:1c:8f:c7:ba:b9:88:b5:6a:09:e7:
- 73:e8:11:40:a7:d1:cc:ca:62:8d:2d:e5:8f:0b:a6:
- 50:d2:a8:50:c3:28:ea:f5:ab:25:87:8a:9a:96:1c:
- a9:67:b8:3f:0c:d5:f7:f9:52:13:2f:c2:1b:d5:70:
- 70:f0:8f:c0:12:ca:06:cb:9a:e1:d9:ca:33:7a:77:
- d6:f8:ec:b9:f1:68:44:42:48:13:d2:c0:c2:a4:ae:
- 5e:60:fe:b6:a6:05:fc:b4:dd:07:59:02:d4:59:18:
- 98:63:f5:a5:63:e0:90:0c:7d:5d:b2:06:7a:f3:85:
- ea:eb:d4:03:ae:5e:84:3e:5f:ff:15:ed:69:bc:f9:
- 39:36:72:75:cf:77:52:4d:f3:c9:90:2c:b9:3d:e5:
- c9:23:53:3f:1f:24:98:21:5c:07:99:29:bd:c6:3a:
- ec:e7:6e:86:3a:6b:97:74:63:33:bd:68:18:31:f0:
- 78:8d:76:bf:fc:9e:8e:5d:2a:86:a7:4d:90:dc:27:
- 1a:39
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- E5:9D:59:30:82:47:58:CC:AC:FA:08:54:36:86:7B:3A:B5:04:4D:F0
- X509v3 Basic Constraints: critical
- CA:TRUE, pathlen:3
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- Signature Algorithm: sha1WithRSAEncryption
- 85:0c:5d:8e:e4:6f:51:68:42:05:a0:dd:bb:4f:27:25:84:03:
- bd:f7:64:fd:2d:d7:30:e3:a4:10:17:eb:da:29:29:b6:79:3f:
- 76:f6:19:13:23:b8:10:0a:f9:58:a4:d4:61:70:bd:04:61:6a:
- 12:8a:17:d5:0a:bd:c5:bc:30:7c:d6:e9:0c:25:8d:86:40:4f:
- ec:cc:a3:7e:38:c6:37:11:4f:ed:dd:68:31:8e:4c:d2:b3:01:
- 74:ee:be:75:5e:07:48:1a:7f:70:ff:16:5c:84:c0:79:85:b8:
- 05:fd:7f:be:65:11:a3:0f:c0:02:b4:f8:52:37:39:04:d5:a9:
- 31:7a:18:bf:a0:2a:f4:12:99:f7:a3:45:82:e3:3c:5e:f5:9d:
- 9e:b5:c8:9e:7c:2e:c8:a4:9e:4e:08:14:4b:6d:fd:70:6d:6b:
- 1a:63:bd:64:e6:1f:b7:ce:f0:f2:9f:2e:bb:1b:b7:f2:50:88:
- 73:92:c2:e2:e3:16:8d:9a:32:02:ab:8e:18:dd:e9:10:11:ee:
- 7e:35:ab:90:af:3e:30:94:7a:d0:33:3d:a7:65:0f:f5:fc:8e:
- 9e:62:cf:47:44:2c:01:5d:bb:1d:b5:32:d2:47:d2:38:2e:d0:
- fe:81:dc:32:6a:1e:b5:ee:3c:d5:fc:e7:81:1d:19:c3:24:42:
- ea:63:39:a9
-SHA1 Fingerprint=D4:DE:20:D0:5E:66:FC:53:FE:1A:50:88:2C:78:DB:28:52:CA:E4:74
diff --git a/luni/src/main/files/cacerts/3c58f906.0 b/luni/src/main/files/cacerts/3c58f906.0
deleted file mode 100644
index 4d776ba..0000000
--- a/luni/src/main/files/cacerts/3c58f906.0
+++ /dev/null
@@ -1,87 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
-MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
-IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
-MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
-FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
-bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
-dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
-H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
-uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
-mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
-a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
-E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
-WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
-VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
-Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
-cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
-IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
-AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
-YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
-6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
-Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
-c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
-mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=SE, O=AddTrust AB, OU=AddTrust External TTP Network, CN=AddTrust External CA Root
- Validity
- Not Before: May 30 10:48:38 2000 GMT
- Not After : May 30 10:48:38 2020 GMT
- Subject: C=SE, O=AddTrust AB, OU=AddTrust External TTP Network, CN=AddTrust External CA Root
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:b7:f7:1a:33:e6:f2:00:04:2d:39:e0:4e:5b:ed:
- 1f:bc:6c:0f:cd:b5:fa:23:b6:ce:de:9b:11:33:97:
- a4:29:4c:7d:93:9f:bd:4a:bc:93:ed:03:1a:e3:8f:
- cf:e5:6d:50:5a:d6:97:29:94:5a:80:b0:49:7a:db:
- 2e:95:fd:b8:ca:bf:37:38:2d:1e:3e:91:41:ad:70:
- 56:c7:f0:4f:3f:e8:32:9e:74:ca:c8:90:54:e9:c6:
- 5f:0f:78:9d:9a:40:3c:0e:ac:61:aa:5e:14:8f:9e:
- 87:a1:6a:50:dc:d7:9a:4e:af:05:b3:a6:71:94:9c:
- 71:b3:50:60:0a:c7:13:9d:38:07:86:02:a8:e9:a8:
- 69:26:18:90:ab:4c:b0:4f:23:ab:3a:4f:84:d8:df:
- ce:9f:e1:69:6f:bb:d7:42:d7:6b:44:e4:c7:ad:ee:
- 6d:41:5f:72:5a:71:08:37:b3:79:65:a4:59:a0:94:
- 37:f7:00:2f:0d:c2:92:72:da:d0:38:72:db:14:a8:
- 45:c4:5d:2a:7d:b7:b4:d6:c4:ee:ac:cd:13:44:b7:
- c9:2b:dd:43:00:25:fa:61:b9:69:6a:58:23:11:b7:
- a7:33:8f:56:75:59:f5:cd:29:d7:46:b7:0a:2b:65:
- b6:d3:42:6f:15:b2:b8:7b:fb:ef:e9:5d:53:d5:34:
- 5a:27
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- AD:BD:98:7A:34:B4:26:F7:FA:C4:26:54:EF:03:BD:E0:24:CB:54:1A
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Authority Key Identifier:
- keyid:AD:BD:98:7A:34:B4:26:F7:FA:C4:26:54:EF:03:BD:E0:24:CB:54:1A
- DirName:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
- serial:01
-
- Signature Algorithm: sha1WithRSAEncryption
- b0:9b:e0:85:25:c2:d6:23:e2:0f:96:06:92:9d:41:98:9c:d9:
- 84:79:81:d9:1e:5b:14:07:23:36:65:8f:b0:d8:77:bb:ac:41:
- 6c:47:60:83:51:b0:f9:32:3d:e7:fc:f6:26:13:c7:80:16:a5:
- bf:5a:fc:87:cf:78:79:89:21:9a:e2:4c:07:0a:86:35:bc:f2:
- de:51:c4:d2:96:b7:dc:7e:4e:ee:70:fd:1c:39:eb:0c:02:51:
- 14:2d:8e:bd:16:e0:c1:df:46:75:e7:24:ad:ec:f4:42:b4:85:
- 93:70:10:67:ba:9d:06:35:4a:18:d3:2b:7a:cc:51:42:a1:7a:
- 63:d1:e6:bb:a1:c5:2b:c2:36:be:13:0d:e6:bd:63:7e:79:7b:
- a7:09:0d:40:ab:6a:dd:8f:8a:c3:f6:f6:8c:1a:42:05:51:d4:
- 45:f5:9f:a7:62:21:68:15:20:43:3c:99:e7:7c:bd:24:d8:a9:
- 91:17:73:88:3f:56:1b:31:38:18:b4:71:0f:9a:cd:c8:0e:9e:
- 8e:2e:1b:e1:8c:98:83:cb:1f:31:f1:44:4c:c6:04:73:49:76:
- 60:0f:c7:f8:bd:17:80:6b:2e:e9:cc:4c:0e:5a:9a:79:0f:20:
- 0a:2e:d5:9e:63:26:1e:55:92:94:d8:82:17:5a:7b:d0:bc:c7:
- 8f:4e:86:04
-SHA1 Fingerprint=02:FA:F3:E2:91:43:54:68:60:78:57:69:4D:F5:E4:5B:68:85:18:68
diff --git a/luni/src/main/files/cacerts/3c6676aa.0 b/luni/src/main/files/cacerts/3c6676aa.0
deleted file mode 100644
index 2905a24..0000000
--- a/luni/src/main/files/cacerts/3c6676aa.0
+++ /dev/null
@@ -1,120 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJO
-TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFh
-dCBkZXIgTmVkZXJsYW5kZW4gRVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0y
-MjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5MMR4wHAYDVQQKDBVTdGFhdCBkZXIg
-TmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRlcmxhbmRlbiBFViBS
-b290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkkSzrS
-M4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nC
-UiY4iKTWO0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3d
-Z//BYY1jTw+bbRcwJu+r0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46p
-rfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13l
-pJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gVXJrm0w912fxBmJc+qiXb
-j5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr08C+eKxC
-KFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS
-/ZbV0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0X
-cgOPvZuM5l5Tnrmd74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH
-1vI4gnPah1vlPNOePqc7nvQDs/nxfRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrP
-px9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB
-/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwaivsnuL8wbqg7
-MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI
-eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u
-2dfOWBfoqSmuc0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHS
-v4ilf0X8rLiltTMMgsT7B/Zq5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTC
-wPTxGfARKbalGAKb12NMcIxHowNDXLldRqANb/9Zjr7dn3LDWyvfjFvO5QxGbJKy
-CqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tNf1zuacpzEPuKqf2e
-vTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi5Dp6
-Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIa
-Gl6I6lD4WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeL
-eG9QgkRQP2YGiqtDhFZKDyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8
-FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGyeUN51q1veieQA6TqJIc/2b3Z6fJfUEkc
-7uzXLg==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 10000013 (0x98968d)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=NL, O=Staat der Nederlanden, CN=Staat der Nederlanden EV Root CA
- Validity
- Not Before: Dec 8 11:19:29 2010 GMT
- Not After : Dec 8 11:10:28 2022 GMT
- Subject: C=NL, O=Staat der Nederlanden, CN=Staat der Nederlanden EV Root CA
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:e3:c7:7e:89:f9:24:4b:3a:d2:33:83:35:2c:69:
- ec:dc:09:a4:e3:51:a8:25:2b:79:b8:08:3d:e0:91:
- ba:84:85:c6:85:a4:ca:e6:c9:2e:53:a4:c9:24:1e:
- fd:55:66:71:5d:2c:c5:60:68:04:b7:d9:c2:52:26:
- 38:88:a4:d6:3b:40:a6:c2:cd:3f:cd:98:93:b3:54:
- 14:58:96:55:d5:50:fe:86:ad:a4:63:7f:5c:87:f6:
- 8e:e6:27:92:67:17:92:02:03:2c:dc:d6:66:74:ed:
- dd:67:ff:c1:61:8d:63:4f:0f:9b:6d:17:30:26:ef:
- ab:d2:1f:10:a0:f9:c5:7f:16:69:81:03:47:ed:1e:
- 68:8d:72:a1:4d:b2:26:c6:ba:6c:5f:6d:d6:af:d1:
- b1:13:8e:a9:ad:f3:5e:69:75:26:18:3e:41:2b:21:
- 7f:ee:8b:5d:07:06:9d:43:c4:29:0a:2b:fc:2a:3e:
- 86:cb:3c:83:3a:f9:c9:0d:da:c5:99:e2:bc:78:41:
- 33:76:e1:bf:2f:5d:e5:a4:98:50:0c:15:dd:e0:fa:
- 9c:7f:38:68:d0:b2:a6:7a:a7:d1:31:bd:7e:8a:58:
- 27:43:b3:ba:33:91:d3:a7:98:15:5c:9a:e6:d3:0f:
- 75:d9:fc:41:98:97:3e:aa:25:db:8f:92:2e:b0:7b:
- 0c:5f:f1:63:a9:37:f9:9b:75:69:4c:28:26:25:da:
- d5:f2:12:70:45:55:e3:df:73:5e:37:f5:21:6c:90:
- 8e:35:5a:c9:d3:23:eb:d3:c0:be:78:ac:42:28:58:
- 66:a5:46:6d:70:02:d7:10:f9:4b:54:fc:5d:86:4a:
- 87:cf:7f:ca:45:ac:11:5a:b5:20:51:8d:2f:88:47:
- 97:39:c0:cf:ba:c0:42:01:40:99:48:21:0b:6b:a7:
- d2:fd:96:d5:d1:be:46:9d:49:e0:0b:a6:a0:22:4e:
- 38:d0:c1:3c:30:bc:70:8f:2c:75:cc:d0:c5:8c:51:
- 3b:3d:94:08:64:26:61:7d:b9:c3:65:8f:14:9c:21:
- d0:aa:fd:17:72:03:8f:bd:9b:8c:e6:5e:53:9e:b9:
- 9d:ef:82:bb:e1:bc:e2:72:41:5b:21:94:d3:45:37:
- 94:d1:df:09:39:5d:e7:23:aa:9a:1d:ca:6d:a8:0a:
- 86:85:8a:82:be:42:07:d6:f2:38:82:73:da:87:5b:
- e5:3c:d3:9e:3e:a7:3b:9e:f4:03:b3:f9:f1:7d:13:
- 74:02:ff:bb:a1:e5:fa:00:79:1c:a6:66:41:88:5c:
- 60:57:a6:2e:09:c4:ba:fd:9a:cf:a7:1f:40:c3:bb:
- cc:5a:0a:55:4b:3b:38:76:51:b8:63:8b:84:94:16:
- e6:56:f3
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- FE:AB:00:90:98:9E:24:FC:A9:CC:1A:8A:FB:27:B8:BF:30:6E:A8:3B
- Signature Algorithm: sha256WithRSAEncryption
- cf:77:2c:6e:56:be:4e:b3:b6:84:00:94:ab:47:c9:0d:d2:76:
- c7:86:9f:1d:07:d3:b6:b4:bb:08:78:af:69:d2:0b:49:de:33:
- c5:ac:ad:c2:88:02:7d:06:b7:35:02:c1:60:c9:bf:c4:e8:94:
- de:d4:d3:a9:13:25:5a:fe:6e:a2:ae:7d:05:dc:7d:f3:6c:f0:
- 7e:a6:8d:ee:d9:d7:ce:58:17:e8:a9:29:ae:73:48:87:e7:9b:
- ca:6e:29:a1:64:5f:19:13:f7:ae:06:10:ff:51:c6:9b:4d:55:
- 25:4f:93:99:10:01:53:75:f1:13:ce:c7:a6:41:41:d2:bf:88:
- a5:7f:45:fc:ac:b8:a5:b5:33:0c:82:c4:fb:07:f6:6a:e5:25:
- 84:5f:06:ca:c1:86:39:11:db:58:cd:77:3b:2c:c2:4c:0f:5e:
- 9a:e3:f0:ab:3e:61:1b:50:24:c2:c0:f4:f1:19:f0:11:29:b6:
- a5:18:02:9b:d7:63:4c:70:8c:47:a3:03:43:5c:b9:5d:46:a0:
- 0d:6f:ff:59:8e:be:dd:9f:72:c3:5b:2b:df:8c:5b:ce:e5:0c:
- 46:6c:92:b2:0a:a3:4c:54:42:18:15:12:18:bd:da:fc:ba:74:
- 6e:ff:c1:b6:a0:64:d8:a9:5f:55:ae:9f:5c:6a:76:96:d8:73:
- 67:87:fb:4d:7f:5c:ee:69:ca:73:10:fb:8a:a9:fd:9e:bd:36:
- 38:49:49:87:f4:0e:14:f0:e9:87:b8:3f:a7:4f:7a:5a:8e:79:
- d4:93:e4:bb:68:52:84:ac:6c:e9:f3:98:70:55:72:32:f9:34:
- ab:2b:49:b5:cd:20:62:e4:3a:7a:67:63:ab:96:dc:6d:ae:97:
- ec:fc:9f:76:56:88:2e:66:cf:5b:b6:c9:a4:b0:d7:05:ba:e1:
- 27:2f:93:bb:26:2a:a2:93:b0:1b:f3:8e:be:1d:40:a3:b9:36:
- 8f:3e:82:1a:1a:5e:88:ea:50:f8:59:e2:83:46:29:0b:e3:44:
- 5c:e1:95:b6:69:90:9a:14:6f:97:ae:81:cf:68:ef:99:9a:be:
- b5:e7:e1:7f:f8:fa:13:47:16:4c:cc:6d:08:40:e7:8b:78:6f:
- 50:82:44:50:3f:66:06:8a:ab:43:84:56:4a:0f:20:2d:86:0e:
- f5:d2:db:d2:7a:8a:4b:cd:a5:e8:4e:f1:5e:26:25:01:59:23:
- a0:7e:d2:f6:7e:21:57:d7:27:bc:15:57:4c:a4:46:c1:e0:83:
- 1e:0c:4c:4d:1f:4f:06:19:e2:f9:a8:f4:3a:82:a1:b2:79:43:
- 79:d6:ad:6f:7a:27:90:03:a4:ea:24:87:3f:d9:bd:d9:e9:f2:
- 5f:50:49:1c:ee:ec:d7:2e
-SHA1 Fingerprint=76:E2:7E:C1:4F:DB:82:C1:C0:A6:75:B5:05:BE:3D:29:B4:ED:DB:BB
diff --git a/luni/src/main/files/cacerts/3c860d51.0 b/luni/src/main/files/cacerts/3c860d51.0
deleted file mode 100644
index c71616e..0000000
--- a/luni/src/main/files/cacerts/3c860d51.0
+++ /dev/null
@@ -1,128 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV
-BAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2ln
-biBHb2xkIENBIC0gRzIwHhcNMDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBF
-MQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dpc3NTaWduIEFHMR8wHQYDVQQDExZT
-d2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
-CgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUqt2/8
-76LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+
-bbqBHH5CjCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c
-6bM8K8vzARO/Ws/BtQpgvd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqE
-emA8atufK+ze3gE/bk3lUIbLtK/tREDFylqM2tIrfKjuvqblCqoOpd8FUrdVxyJd
-MmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvRAiTysybUa9oEVeXBCsdt
-MDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuendjIj3o02y
-MszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69y
-FGkOpeUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPi
-aG59je883WX0XaxR7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxM
-gI93e2CaHt+28kgeDrpOVG2Y4OGiGqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCB
-qTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUWyV7
-lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64OfPAeGZe6Drn
-8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov
-L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe6
-45R88a7A3hfm5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczO
-UYrHUDFu4Up+GC9pWbY9ZIEr44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5
-O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOfMke6UiI0HTJ6CVanfCU2qT1L2sCC
-bwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6mGu6uLftIdxf+u+yv
-GPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxpmo/a
-77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCC
-hdiDyyJkvC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid3
-92qgQmwLOM7XdVAyksLfKzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEpp
-Ld6leNcG2mqeSz53OiATIgHQv2ieY2BrNU0LbbqhPcCT4H8js1WtciVORvnSFu+w
-ZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6LqjviOvrv1vA+ACOzB2+htt
-Qc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 13492815561806991280 (0xbb401c43f55e4fb0)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=CH, O=SwissSign AG, CN=SwissSign Gold CA - G2
- Validity
- Not Before: Oct 25 08:30:35 2006 GMT
- Not After : Oct 25 08:30:35 2036 GMT
- Subject: C=CH, O=SwissSign AG, CN=SwissSign Gold CA - G2
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:af:e4:ee:7e:8b:24:0e:12:6e:a9:50:2d:16:44:
- 3b:92:92:5c:ca:b8:5d:84:92:42:13:2a:bc:65:57:
- 82:40:3e:57:24:cd:50:8b:25:2a:b7:6f:fc:ef:a2:
- d0:c0:1f:02:24:4a:13:96:8f:23:13:e6:28:58:00:
- a3:47:c7:06:a7:84:23:2b:bb:bd:96:2b:7f:55:cc:
- 8b:c1:57:1f:0e:62:65:0f:dd:3d:56:8a:73:da:ae:
- 7e:6d:ba:81:1c:7e:42:8c:20:35:d9:43:4d:84:fa:
- 84:db:52:2c:f3:0e:27:77:0b:6b:bf:11:2f:72:78:
- 9f:2e:d8:3e:e6:18:37:5a:2a:72:f9:da:62:90:92:
- 95:ca:1f:9c:e9:b3:3c:2b:cb:f3:01:13:bf:5a:cf:
- c1:b5:0a:60:bd:dd:b5:99:64:53:b8:a0:96:b3:6f:
- e2:26:77:91:8c:e0:62:10:02:9f:34:0f:a4:d5:92:
- 33:51:de:be:8d:ba:84:7a:60:3c:6a:db:9f:2b:ec:
- de:de:01:3f:6e:4d:e5:50:86:cb:b4:af:ed:44:40:
- c5:ca:5a:8c:da:d2:2b:7c:a8:ee:be:a6:e5:0a:aa:
- 0e:a5:df:05:52:b7:55:c7:22:5d:32:6a:97:97:63:
- 13:db:c9:db:79:36:7b:85:3a:4a:c5:52:89:f9:24:
- e7:9d:77:a9:82:ff:55:1c:a5:71:69:2b:d1:02:24:
- f2:b3:26:d4:6b:da:04:55:e5:c1:0a:c7:6d:30:37:
- 90:2a:e4:9e:14:33:5e:16:17:55:c5:5b:b5:cb:34:
- 89:92:f1:9d:26:8f:a1:07:d4:c6:b2:78:50:db:0c:
- 0c:0b:7c:0b:8c:41:d7:b9:e9:dd:8c:88:f7:a3:4d:
- b2:32:cc:d8:17:da:cd:b7:ce:66:9d:d4:fd:5e:ff:
- bd:97:3e:29:75:e7:7e:a7:62:58:af:25:34:a5:41:
- c7:3d:bc:0d:50:ca:03:03:0f:08:5a:1f:95:73:78:
- 62:bf:af:72:14:69:0e:a5:e5:03:0e:78:8e:26:28:
- 42:f0:07:0b:62:20:10:67:39:46:fa:a9:03:cc:04:
- 38:7a:66:ef:20:83:b5:8c:4a:56:8e:91:00:fc:8e:
- 5c:82:de:88:a0:c3:e2:68:6e:7d:8d:ef:3c:dd:65:
- f4:5d:ac:51:ef:24:80:ae:aa:56:97:6f:f9:ad:7d:
- da:61:3f:98:77:3c:a5:91:b6:1c:8c:26:da:65:a2:
- 09:6d:c1:e2:54:e3:b9:ca:4c:4c:80:8f:77:7b:60:
- 9a:1e:df:b6:f2:48:1e:0e:ba:4e:54:6d:98:e0:e1:
- a2:1a:a2:77:50:cf:c4:63:92:ec:47:19:9d:eb:e6:
- 6b:ce:c1
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- 5B:25:7B:96:A4:65:51:7E:B8:39:F3:C0:78:66:5E:E8:3A:E7:F0:EE
- X509v3 Authority Key Identifier:
- keyid:5B:25:7B:96:A4:65:51:7E:B8:39:F3:C0:78:66:5E:E8:3A:E7:F0:EE
-
- X509v3 Certificate Policies:
- Policy: 2.16.756.1.89.1.2.1.1
- CPS: http://repository.swisssign.com/
-
- Signature Algorithm: sha1WithRSAEncryption
- 27:ba:e3:94:7c:f1:ae:c0:de:17:e6:e5:d8:d5:f5:54:b0:83:
- f4:bb:cd:5e:05:7b:4f:9f:75:66:af:3c:e8:56:7e:fc:72:78:
- 38:03:d9:2b:62:1b:00:b9:f8:e9:60:cd:cc:ce:51:8a:c7:50:
- 31:6e:e1:4a:7e:18:2f:69:59:b6:3d:64:81:2b:e3:83:84:e6:
- 22:87:8e:7d:e0:ee:02:99:61:b8:1e:f4:b8:2b:88:12:16:84:
- c2:31:93:38:96:31:a6:b9:3b:53:3f:c3:24:93:56:5b:69:92:
- ec:c5:c1:bb:38:00:e3:ec:17:a9:b8:dc:c7:7c:01:83:9f:32:
- 47:ba:52:22:34:1d:32:7a:09:56:a7:7c:25:36:a9:3d:4b:da:
- c0:82:6f:0a:bb:12:c8:87:4b:27:11:f9:1e:2d:c7:93:3f:9e:
- db:5f:26:6b:52:d9:2e:8a:f1:14:c6:44:8d:15:a9:b7:bf:bd:
- de:a6:1a:ee:ae:2d:fb:48:77:17:fe:bb:ec:af:18:f5:2a:51:
- f0:39:84:97:95:6c:6e:1b:c3:2b:c4:74:60:79:25:b0:0a:27:
- df:df:5e:d2:39:cf:45:7d:42:4b:df:b3:2c:1e:c5:c6:5d:ca:
- 55:3a:a0:9c:69:9a:8f:da:ef:b2:b0:3c:9f:87:6c:12:2b:65:
- 70:15:52:31:1a:24:cf:6f:31:23:50:1f:8c:4f:8f:23:c3:74:
- 41:63:1c:55:a8:14:dd:3e:e0:51:50:cf:f1:1b:30:56:0e:92:
- b0:82:85:d8:83:cb:22:64:bc:2d:b8:25:d5:54:a2:b8:06:ea:
- ad:92:a4:24:a0:c1:86:b5:4a:13:6a:47:cf:2e:0b:56:95:54:
- cb:ce:9a:db:6a:b4:a6:b2:db:41:08:86:27:77:f7:6a:a0:42:
- 6c:0b:38:ce:d7:75:50:32:92:c2:df:2b:30:22:48:d0:d5:41:
- 38:25:5d:a4:e9:5d:9f:c6:94:75:d0:45:fd:30:97:43:8f:90:
- ab:0a:c7:86:73:60:4a:69:2d:de:a5:78:d7:06:da:6a:9e:4b:
- 3e:77:3a:20:13:22:01:d0:bf:68:9e:63:60:6b:35:4d:0b:6d:
- ba:a1:3d:c0:93:e0:7f:23:b3:55:ad:72:25:4e:46:f9:d2:16:
- ef:b0:64:c1:01:9e:e9:ca:a0:6a:98:0e:cf:d8:60:f2:2f:49:
- b8:e4:42:e1:38:35:16:f4:c8:6e:4f:f7:81:56:e8:ba:a3:be:
- 23:af:ae:fd:6f:03:e0:02:3b:30:76:fa:1b:6d:41:cf:01:b1:
- e9:b8:c9:66:f4:db:26:f3:3a:a4:74:f2:49:24:5b:c9:b0:d0:
- 57:c1:fa:3e:7a:e1:97:c9
-SHA1 Fingerprint=D8:C5:38:8A:B7:30:1B:1B:6E:D4:7A:E6:45:25:3A:6F:9F:1A:27:61
diff --git a/luni/src/main/files/cacerts/3c9a4d3b.0 b/luni/src/main/files/cacerts/3c9a4d3b.0
deleted file mode 100644
index c6e312c..0000000
--- a/luni/src/main/files/cacerts/3c9a4d3b.0
+++ /dev/null
@@ -1,152 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UE
-AwwJQUNDVlJBSVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQsw
-CQYDVQQGEwJFUzAeFw0xMTA1MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQ
-BgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwHUEtJQUNDVjENMAsGA1UECgwEQUND
-VjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCb
-qau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gMjmoY
-HtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWo
-G2ioPej0RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpA
-lHPrzg5XPAOBOp0KoVdDaaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhr
-IA8wKFSVf+DuzgpmndFALW4ir50awQUZ0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/
-0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDGWuzndN9wrqODJerWx5eH
-k6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs78yM2x/47
-4KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMO
-m3WR5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpa
-cXpkatcnYGMN285J9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPl
-uUsXQA+xtrn13k/c4LOsOxFwYIRKQ26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYI
-KwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRwOi8vd3d3LmFjY3YuZXMvZmls
-ZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEuY3J0MB8GCCsG
-AQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2
-VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeT
-VfZW6oHlNsyMHj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIG
-CCsGAQUFBwICMIIBFB6CARAAQQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUA
-cgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBhAO0AegAgAGQAZQAgAGwAYQAgAEEA
-QwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUAYwBuAG8AbABvAGcA
-7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBjAHQA
-cgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAA
-QwBQAFMAIABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUA
-czAwBggrBgEFBQcCARYkaHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2Mu
-aHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRt
-aW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2MV9kZXIuY3JsMA4GA1Ud
-DwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZIhvcNAQEF
-BQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdp
-D70ER9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gU
-JyCpZET/LtZ1qmxNYEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+m
-AM/EKXMRNt6GGT6d7hmKG9Ww7Y49nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepD
-vV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJTS+xJlsndQAJxGJ3KQhfnlms
-tn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3sCPdK6jT2iWH
-7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h
-I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szA
-h1xA2syVP1XgNce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xF
-d3+YJ5oyXSrjhO7FmGYvliAd3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2H
-pPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3pEfbRD0tVNEYqi4Y7
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 6828503384748696800 (0x5ec3b7a6437fa4e0)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: CN=ACCVRAIZ1, OU=PKIACCV, O=ACCV, C=ES
- Validity
- Not Before: May 5 09:37:37 2011 GMT
- Not After : Dec 31 09:37:37 2030 GMT
- Subject: CN=ACCVRAIZ1, OU=PKIACCV, O=ACCV, C=ES
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:9b:a9:ab:bf:61:4a:97:af:2f:97:66:9a:74:5f:
- d0:d9:96:fd:cf:e2:e4:66:ef:1f:1f:47:33:c2:44:
- a3:df:9a:de:1f:b5:54:dd:15:7c:69:35:11:6f:bb:
- c8:0c:8e:6a:18:1e:d8:8f:d9:16:bc:10:48:36:5c:
- f0:63:b3:90:5a:5c:24:37:d7:a3:d6:cb:09:71:b9:
- f1:01:72:84:b0:7d:db:4d:80:cd:fc:d3:6f:c9:f8:
- da:b6:0e:82:d2:45:85:a8:1b:68:a8:3d:e8:f4:44:
- 6c:bd:a1:c2:cb:03:be:8c:3e:13:00:84:df:4a:48:
- c0:e3:22:0a:e8:e9:37:a7:18:4c:b1:09:0d:23:56:
- 7f:04:4d:d9:17:84:18:a5:c8:da:40:94:73:eb:ce:
- 0e:57:3c:03:81:3a:9d:0a:a1:57:43:69:ac:57:6d:
- 79:90:78:e5:b5:b4:3b:d8:bc:4c:8d:28:a1:a7:a3:
- a7:ba:02:4e:25:d1:2a:ae:ed:ae:03:22:b8:6b:20:
- 0f:30:28:54:95:7f:e0:ee:ce:0a:66:9d:d1:40:2d:
- 6e:22:af:9d:1a:c1:05:19:d2:6f:c0:f2:9f:f8:7b:
- b3:02:42:fb:50:a9:1d:2d:93:0f:23:ab:c6:c1:0f:
- 92:ff:d0:a2:15:f5:53:09:71:1c:ff:45:13:84:e6:
- 26:5e:f8:e0:88:1c:0a:fc:16:b6:a8:73:06:b8:f0:
- 63:84:02:a0:c6:5a:ec:e7:74:df:70:ae:a3:83:25:
- ea:d6:c7:97:87:93:a7:c6:8a:8a:33:97:60:37:10:
- 3e:97:3e:6e:29:15:d6:a1:0f:d1:88:2c:12:9f:6f:
- aa:a4:c6:42:eb:41:a2:e3:95:43:d3:01:85:6d:8e:
- bb:3b:f3:23:36:c7:fe:3b:e0:a1:25:07:48:ab:c9:
- 89:74:ff:08:8f:80:bf:c0:96:65:f3:ee:ec:4b:68:
- bd:9d:88:c3:31:b3:40:f1:e8:cf:f6:38:bb:9c:e4:
- d1:7f:d4:e5:58:9b:7c:fa:d4:f3:0e:9b:75:91:e4:
- ba:52:2e:19:7e:d1:f5:cd:5a:19:fc:ba:06:f6:fb:
- 52:a8:4b:99:04:dd:f8:f9:b4:8b:50:a3:4e:62:89:
- f0:87:24:fa:83:42:c1:87:fa:d5:2d:29:2a:5a:71:
- 7a:64:6a:d7:27:60:63:0d:db:ce:49:f5:8d:1f:90:
- 89:32:17:f8:73:43:b8:d2:5a:93:86:61:d6:e1:75:
- 0a:ea:79:66:76:88:4f:71:eb:04:25:d6:0a:5a:7a:
- 93:e5:b9:4b:17:40:0f:b1:b6:b9:f5:de:4f:dc:e0:
- b3:ac:3b:11:70:60:84:4a:43:6e:99:20:c0:29:71:
- 0a:c0:65
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- Authority Information Access:
- CA Issuers - URI:http://www.accv.es/fileadmin/Archivos/certificados/raizaccv1.crt
- OCSP - URI:http://ocsp.accv.es
-
- X509v3 Subject Key Identifier:
- D2:87:B4:E3:DF:37:27:93:55:F6:56:EA:81:E5:36:CC:8C:1E:3F:BD
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Authority Key Identifier:
- keyid:D2:87:B4:E3:DF:37:27:93:55:F6:56:EA:81:E5:36:CC:8C:1E:3F:BD
-
- X509v3 Certificate Policies:
- Policy: X509v3 Any Policy
- User Notice:
- Explicit Text:
- CPS: http://www.accv.es/legislacion_c.htm
-
- X509v3 CRL Distribution Points:
-
- Full Name:
- URI:http://www.accv.es/fileadmin/Archivos/certificados/raizaccv1_der.crl
-
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Alternative Name:
- email:accv@accv.es
- Signature Algorithm: sha1WithRSAEncryption
- 97:31:02:9f:e7:fd:43:67:48:44:14:e4:29:87:ed:4c:28:66:
- d0:8f:35:da:4d:61:b7:4a:97:4d:b5:db:90:e0:05:2e:0e:c6:
- 79:d0:f2:97:69:0f:bd:04:47:d9:be:db:b5:29:da:9b:d9:ae:
- a9:99:d5:d3:3c:30:93:f5:8d:a1:a8:fc:06:8d:44:f4:ca:16:
- 95:7c:33:dc:62:8b:a8:37:f8:27:d8:09:2d:1b:ef:c8:14:27:
- 20:a9:64:44:ff:2e:d6:75:aa:6c:4d:60:40:19:49:43:54:63:
- da:e2:cc:ba:66:e5:4f:44:7a:5b:d9:6a:81:2b:40:d5:7f:f9:
- 01:27:58:2c:c8:ed:48:91:7c:3f:a6:00:cf:c4:29:73:11:36:
- de:86:19:3e:9d:ee:19:8a:1b:d5:b0:ed:8e:3d:9c:2a:c0:0d:
- d8:3d:66:e3:3c:0d:bd:d5:94:5c:e2:e2:a7:35:1b:04:00:f6:
- 3f:5a:8d:ea:43:bd:5f:89:1d:a9:c1:b0:cc:99:e2:4d:00:0a:
- da:c9:27:5b:e7:13:90:5c:e4:f5:33:a2:55:6d:dc:e0:09:4d:
- 2f:b1:26:5b:27:75:00:09:c4:62:77:29:08:5f:9e:59:ac:b6:
- 7e:ad:9f:54:30:22:03:c1:1e:71:64:fe:f9:38:0a:96:18:dd:
- 02:14:ac:23:cb:06:1c:1e:a4:7d:8d:0d:de:27:41:e8:ad:da:
- 15:b7:b0:23:dd:2b:a8:d3:da:25:87:ed:e8:55:44:4d:88:f4:
- 36:7e:84:9a:78:ac:f7:0e:56:49:0e:d6:33:25:d6:84:50:42:
- 6c:20:12:1d:2a:d5:be:bc:f2:70:81:a4:70:60:be:05:b5:9b:
- 9e:04:44:be:61:23:ac:e9:a5:24:8c:11:80:94:5a:a2:a2:b9:
- 49:d2:c1:dc:d1:a7:ed:31:11:2c:9e:19:a6:ee:e1:55:e1:c0:
- ea:cf:0d:84:e4:17:b7:a2:7c:a5:de:55:25:06:ee:cc:c0:87:
- 5c:40:da:cc:95:3f:55:e0:35:c7:b8:84:be:b4:5d:cd:7a:83:
- 01:72:ee:87:e6:5f:1d:ae:b5:85:c6:26:df:e6:c1:9a:e9:1e:
- 02:47:9f:2a:a8:6d:a9:5b:cf:ec:45:77:7f:98:27:9a:32:5d:
- 2a:e3:84:ee:c5:98:66:2f:96:20:1d:dd:d8:c3:27:d7:b0:f9:
- fe:d9:7d:cd:d0:9f:8f:0b:14:58:51:9f:2f:8b:c3:38:2d:de:
- e8:8f:d6:8d:87:a4:f5:56:43:16:99:2c:f4:a4:56:b4:34:b8:
- 61:37:c9:c2:58:80:1b:a0:97:a1:fc:59:8d:e9:11:f6:d1:0f:
- 4b:55:34:46:2a:8b:86:3b
-SHA1 Fingerprint=93:05:7A:88:15:C6:4F:CE:88:2F:FA:91:16:52:28:78:BC:53:64:17
diff --git a/luni/src/main/files/cacerts/3d441de8.0 b/luni/src/main/files/cacerts/3d441de8.0
deleted file mode 100644
index d8c9824..0000000
--- a/luni/src/main/files/cacerts/3d441de8.0
+++ /dev/null
@@ -1,125 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJO
-TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFh
-dCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oX
-DTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMCTkwxHjAcBgNVBAoMFVN0YWF0IGRl
-ciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5lZGVybGFuZGVuIFJv
-b3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ5291
-qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8Sp
-uOUfiUtnvWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPU
-Z5uW6M7XxgpT0GtJlvOjCwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvE
-pMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiile7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp
-5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCROME4HYYEhLoaJXhena/M
-UGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpICT0ugpTN
-GmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy
-5V6548r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv
-6q012iDTiIJh8BIitrzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEK
-eN5KzlW/HdXZt1bv8Hb/C3m1r737qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6
-B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMBAAGjgZcwgZQwDwYDVR0TAQH/
-BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcCARYxaHR0cDov
-L3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV
-HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqG
-SIb3DQEBCwUAA4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLyS
-CZa59sCrI2AGeYwRTlHSeYAz+51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen
-5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwjf/ST7ZwaUb7dRUG/kSS0H4zpX897
-IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaNkqbG9AclVMwWVxJK
-gnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfkCpYL
-+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxL
-vJxxcypFURmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkm
-bEgeqmiSBeGCc1qb3AdbCG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvk
-N1trSt8sV4pAWja63XVECDdCcAz+3F4hoKOKwJCcaNpQ5kUQR3i2TtJlycM33+FC
-Y7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoVIPVVYpbtbZNQvOSqeK3Z
-ywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm66+KAQ==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 10000012 (0x98968c)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=NL, O=Staat der Nederlanden, CN=Staat der Nederlanden Root CA - G2
- Validity
- Not Before: Mar 26 11:18:17 2008 GMT
- Not After : Mar 25 11:03:10 2020 GMT
- Subject: C=NL, O=Staat der Nederlanden, CN=Staat der Nederlanden Root CA - G2
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:c5:59:e7:6f:75:aa:3e:4b:9c:b5:b8:ac:9e:0b:
- e4:f9:d9:ca:ab:5d:8f:b5:39:10:82:d7:af:51:e0:
- 3b:e1:00:48:6a:cf:da:e1:06:43:11:99:aa:14:25:
- 12:ad:22:e8:00:6d:43:c4:a9:b8:e5:1f:89:4b:67:
- bd:61:48:ef:fd:d2:e0:60:88:e5:b9:18:60:28:c3:
- 77:2b:ad:b0:37:aa:37:de:64:59:2a:46:57:e4:4b:
- b9:f8:37:7c:d5:36:e7:80:c1:b6:f3:d4:67:9b:96:
- e8:ce:d7:c6:0a:53:d0:6b:49:96:f3:a3:0b:05:77:
- 48:f7:25:e5:70:ac:30:14:20:25:e3:7f:75:5a:e5:
- 48:f8:4e:7b:03:07:04:fa:82:61:87:6e:f0:3b:c4:
- a4:c7:d0:f5:74:3e:a5:5d:1a:08:f2:9b:25:d2:f6:
- ac:04:26:3e:55:3a:62:28:a5:7b:b2:30:af:f8:37:
- c2:d1:ba:d6:38:fd:f4:ef:49:30:37:99:26:21:48:
- 85:01:a9:e5:16:e7:dc:90:55:df:0f:e8:38:cd:99:
- 37:21:4f:5d:f5:22:6f:6a:c5:12:16:60:17:55:f2:
- 65:66:a6:a7:30:91:38:c1:38:1d:86:04:84:ba:1a:
- 25:78:5e:9d:af:cc:50:60:d6:13:87:52:ed:63:1f:
- 6d:65:7d:c2:15:18:74:ca:e1:7e:64:29:8c:72:d8:
- 16:13:7d:0b:49:4a:f1:28:1b:20:74:6b:c5:3d:dd:
- b0:aa:48:09:3d:2e:82:94:cd:1a:65:d9:2b:88:9a:
- 99:bc:18:7e:9f:ee:7d:66:7c:3e:bd:94:b8:81:ce:
- cd:98:30:78:c1:6f:67:d0:be:5f:e0:68:ed:de:e2:
- b1:c9:2c:59:78:92:aa:df:2b:60:63:f2:e5:5e:b9:
- e3:ca:fa:7f:50:86:3e:a2:34:18:0c:09:68:28:11:
- 1c:e4:e1:b9:5c:3e:47:ba:32:3f:18:cc:5b:84:f5:
- f3:6b:74:c4:72:74:e1:e3:8b:a0:4a:bd:8d:66:2f:
- ea:ad:35:da:20:d3:88:82:61:f0:12:22:b6:bc:d0:
- d5:a4:ec:af:54:88:25:24:3c:a7:6d:b1:72:29:3f:
- 3e:57:a6:7f:55:af:6e:26:c6:fe:e7:cc:40:5c:51:
- 44:81:0a:78:de:4a:ce:55:bf:1d:d5:d9:b7:56:ef:
- f0:76:ff:0b:79:b5:af:bd:fb:a9:69:91:46:97:68:
- 80:14:36:1d:b3:7f:bb:29:98:36:a5:20:fa:82:60:
- 62:33:a4:ec:d6:ba:07:a7:6e:c5:cf:14:a6:e7:d6:
- 92:34:d8:81:f5:fc:1d:5d:aa:5c:1e:f6:a3:4d:3b:
- b8:f7:39
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Certificate Policies:
- Policy: X509v3 Any Policy
- CPS: http://www.pkioverheid.nl/policies/root-policy-G2
-
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- 91:68:32:87:15:1D:89:E2:B5:F1:AC:36:28:34:8D:0B:7C:62:88:EB
- Signature Algorithm: sha256WithRSAEncryption
- a8:41:4a:67:2a:92:81:82:50:6e:e1:d7:d8:b3:39:3b:f3:02:
- 15:09:50:51:ef:2d:bd:24:7b:88:86:3b:f9:b4:bc:92:09:96:
- b9:f6:c0:ab:23:60:06:79:8c:11:4e:51:d2:79:80:33:fb:9d:
- 48:be:ec:41:43:81:1f:7e:47:40:1c:e5:7a:08:ca:aa:8b:75:
- ad:14:c4:c2:e8:66:3c:82:07:a7:e6:27:82:5b:18:e6:0f:6e:
- d9:50:3e:8a:42:18:29:c6:b4:56:fc:56:10:a0:05:17:bd:0c:
- 23:7f:f4:93:ed:9c:1a:51:be:dd:45:41:bf:91:24:b4:1f:8c:
- e9:5f:cf:7b:21:99:9f:95:9f:39:3a:46:1c:6c:f9:cd:7b:9c:
- 90:cd:28:a9:c7:a9:55:bb:ac:62:34:62:35:13:4b:14:3a:55:
- 83:b9:86:8d:92:a6:c6:f4:07:25:54:cc:16:57:12:4a:82:78:
- c8:14:d9:17:82:26:2d:5d:20:1f:79:ae:fe:d4:70:16:16:95:
- 83:d8:35:39:ff:52:5d:75:1c:16:c5:13:55:cf:47:cc:75:65:
- 52:4a:de:f0:b0:a7:e4:0a:96:0b:fb:ad:c2:e2:25:84:b2:dd:
- e4:bd:7e:59:6c:9b:f0:f0:d8:e7:ca:f2:e9:97:38:7e:89:be:
- cc:fb:39:17:61:3f:72:db:3a:91:d8:65:01:19:1d:ad:50:a4:
- 57:0a:7c:4b:bc:9c:71:73:2a:45:51:19:85:cc:8e:fd:47:a7:
- 74:95:1d:a8:d1:af:4e:17:b1:69:26:c2:aa:78:57:5b:c5:4d:
- a7:e5:9e:05:17:94:ca:b2:5f:a0:49:18:8d:34:e9:26:6c:48:
- 1e:aa:68:92:05:e1:82:73:5a:9b:dc:07:5b:08:6d:7d:9d:d7:
- 8d:21:d9:fc:14:20:aa:c2:45:df:3f:e7:00:b2:51:e4:c2:f8:
- 05:b9:79:1a:8c:34:f3:9e:5b:e4:37:5b:6b:4a:df:2c:57:8a:
- 40:5a:36:ba:dd:75:44:08:37:42:70:0c:fe:dc:5e:21:a0:a3:
- 8a:c0:90:9c:68:da:50:e6:45:10:47:78:b6:4e:d2:65:c9:c3:
- 37:df:e1:42:63:b0:57:37:45:2d:7b:8a:9c:bf:05:ea:65:55:
- 33:f7:39:10:c5:28:2a:21:7a:1b:8a:c4:24:f9:3f:15:c8:9a:
- 15:20:f5:55:62:96:ed:6d:93:50:bc:e4:aa:78:ad:d9:cb:0a:
- 65:87:a6:66:c1:c4:81:a3:77:3a:58:1e:0b:ee:83:8b:9d:1e:
- d2:52:a4:cc:1d:6f:b0:98:6d:94:31:b5:f8:71:0a:dc:b9:fc:
- 7d:32:60:e6:eb:af:8a:01
-SHA1 Fingerprint=59:AF:82:79:91:86:C7:B4:75:07:CB:CF:03:57:46:EB:04:DD:B7:16
diff --git a/luni/src/main/files/cacerts/3e7271e8.0 b/luni/src/main/files/cacerts/3e7271e8.0
deleted file mode 100644
index 91dd4f9..0000000
--- a/luni/src/main/files/cacerts/3e7271e8.0
+++ /dev/null
@@ -1,82 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChML
-RW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBp
-bmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5
-IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQxNzUwNTFaFw0yOTA3
-MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3
-LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp
-YWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG
-A1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq
-K0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOLGp18EzoOH1u3Hs/lJBQe
-sYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSrhRSGlVuX
-MlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVT
-XTzWnLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/
-HoZdenoVve8AjhUiVBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH
-4QIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV
-HQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJKoZIhvcNAQEFBQADggEBADub
-j1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPyT/4xmf3IDExo
-U8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf
-zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5b
-u/8j72gZyxKTJ1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+
-bYQLCIt+jerXmCHG8+c8eS9enNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/Er
-fF6adulZkMV8gzURZVE=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 946069240 (0x3863def8)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: O=Entrust.net, OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.), OU=(c) 1999 Entrust.net Limited, CN=Entrust.net Certification Authority (2048)
- Validity
- Not Before: Dec 24 17:50:51 1999 GMT
- Not After : Jul 24 14:15:12 2029 GMT
- Subject: O=Entrust.net, OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.), OU=(c) 1999 Entrust.net Limited, CN=Entrust.net Certification Authority (2048)
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:ad:4d:4b:a9:12:86:b2:ea:a3:20:07:15:16:64:
- 2a:2b:4b:d1:bf:0b:4a:4d:8e:ed:80:76:a5:67:b7:
- 78:40:c0:73:42:c8:68:c0:db:53:2b:dd:5e:b8:76:
- 98:35:93:8b:1a:9d:7c:13:3a:0e:1f:5b:b7:1e:cf:
- e5:24:14:1e:b1:81:a9:8d:7d:b8:cc:6b:4b:03:f1:
- 02:0c:dc:ab:a5:40:24:00:7f:74:94:a1:9d:08:29:
- b3:88:0b:f5:87:77:9d:55:cd:e4:c3:7e:d7:6a:64:
- ab:85:14:86:95:5b:97:32:50:6f:3d:c8:ba:66:0c:
- e3:fc:bd:b8:49:c1:76:89:49:19:fd:c0:a8:bd:89:
- a3:67:2f:c6:9f:bc:71:19:60:b8:2d:e9:2c:c9:90:
- 76:66:7b:94:e2:af:78:d6:65:53:5d:3c:d6:9c:b2:
- cf:29:03:f9:2f:a4:50:b2:d4:48:ce:05:32:55:8a:
- fd:b2:64:4c:0e:e4:98:07:75:db:7f:df:b9:08:55:
- 60:85:30:29:f9:7b:48:a4:69:86:e3:35:3f:1e:86:
- 5d:7a:7a:15:bd:ef:00:8e:15:22:54:17:00:90:26:
- 93:bc:0e:49:68:91:bf:f8:47:d3:9d:95:42:c1:0e:
- 4d:df:6f:26:cf:c3:18:21:62:66:43:70:d6:d5:c0:
- 07:e1
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- 55:E4:81:D1:11:80:BE:D8:89:B9:08:A3:31:F9:A1:24:09:16:B9:70
- Signature Algorithm: sha1WithRSAEncryption
- 3b:9b:8f:56:9b:30:e7:53:99:7c:7a:79:a7:4d:97:d7:19:95:
- 90:fb:06:1f:ca:33:7c:46:63:8f:96:66:24:fa:40:1b:21:27:
- ca:e6:72:73:f2:4f:fe:31:99:fd:c8:0c:4c:68:53:c6:80:82:
- 13:98:fa:b6:ad:da:5d:3d:f1:ce:6e:f6:15:11:94:82:0c:ee:
- 3f:95:af:11:ab:0f:d7:2f:de:1f:03:8f:57:2c:1e:c9:bb:9a:
- 1a:44:95:eb:18:4f:a6:1f:cd:7d:57:10:2f:9b:04:09:5a:84:
- b5:6e:d8:1d:3a:e1:d6:9e:d1:6c:79:5e:79:1c:14:c5:e3:d0:
- 4c:93:3b:65:3c:ed:df:3d:be:a6:e5:95:1a:c3:b5:19:c3:bd:
- 5e:5b:bb:ff:23:ef:68:19:cb:12:93:27:5c:03:2d:6f:30:d0:
- 1e:b6:1a:ac:de:5a:f7:d1:aa:a8:27:a6:fe:79:81:c4:79:99:
- 33:57:ba:12:b0:a9:e0:42:6c:93:ca:56:de:fe:6d:84:0b:08:
- 8b:7e:8d:ea:d7:98:21:c6:f3:e7:3c:79:2f:5e:9c:d1:4c:15:
- 8d:e1:ec:22:37:cc:9a:43:0b:97:dc:80:90:8d:b3:67:9b:6f:
- 48:08:15:56:cf:bf:f1:2b:7c:5e:9a:76:e9:59:90:c5:7c:83:
- 35:11:65:51
-SHA1 Fingerprint=50:30:06:09:1D:97:D4:F5:AE:39:F7:CB:E7:92:7D:7D:65:2D:34:31
diff --git a/luni/src/main/files/cacerts/40dc992e.0 b/luni/src/main/files/cacerts/40dc992e.0
deleted file mode 100644
index 847cec6..0000000
--- a/luni/src/main/files/cacerts/40dc992e.0
+++ /dev/null
@@ -1,93 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1Ix
-RDBCBgNVBAoTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1
-dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1p
-YyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIFJvb3RDQSAyMDExMB4XDTExMTIw
-NjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYTAkdSMUQwQgYDVQQK
-EztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIENl
-cnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl
-c2VhcmNoIEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEB
-BQADggEPADCCAQoCggEBAKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPz
-dYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJ
-fel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa71HFK9+WXesyHgLacEns
-bgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u8yBRQlqD
-75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSP
-FEDH3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNV
-HRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp
-5dgTBCPuQSUwRwYDVR0eBEAwPqA8MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQu
-b3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQub3JnMA0GCSqGSIb3DQEBBQUA
-A4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVtXdMiKahsog2p
-6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8
-TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7
-dIsXRSZMFpGD/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8Acys
-Nnq/onN694/BtZqhFLKPM58N7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXI
-l7WdmplNsDz4SgCbZN2fOUvRJ9e4
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 0 (0x0)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=GR, O=Hellenic Academic and Research Institutions Cert. Authority, CN=Hellenic Academic and Research Institutions RootCA 2011
- Validity
- Not Before: Dec 6 13:49:52 2011 GMT
- Not After : Dec 1 13:49:52 2031 GMT
- Subject: C=GR, O=Hellenic Academic and Research Institutions Cert. Authority, CN=Hellenic Academic and Research Institutions RootCA 2011
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:a9:53:00:e3:2e:a6:f6:8e:fa:60:d8:2d:95:3e:
- f8:2c:2a:54:4e:cd:b9:84:61:94:58:4f:8f:3d:8b:
- e4:43:f3:75:89:8d:51:e4:c3:37:d2:8a:88:4d:79:
- 1e:b7:12:dd:43:78:4a:8a:92:e6:d7:48:d5:0f:a4:
- 3a:29:44:35:b8:07:f6:68:1d:55:cd:38:51:f0:8c:
- 24:31:85:af:83:c9:7d:e9:77:af:ed:1a:7b:9d:17:
- f9:b3:9d:38:50:0f:a6:5a:79:91:80:af:37:ae:a6:
- d3:31:fb:b5:26:09:9d:3c:5a:ef:51:c5:2b:df:96:
- 5d:eb:32:1e:02:da:70:49:ec:6e:0c:c8:9a:37:8d:
- f7:f1:36:60:4b:26:2c:82:9e:d0:78:f3:0d:0f:63:
- a4:51:30:e1:f9:2b:27:12:07:d8:ea:bd:18:62:98:
- b0:59:37:7d:be:ee:f3:20:51:42:5a:83:ef:93:ba:
- 69:15:f1:62:9d:9f:99:39:82:a1:b7:74:2e:8b:d4:
- c5:0b:7b:2f:f0:c8:0a:da:3d:79:0a:9a:93:1c:a5:
- 28:72:73:91:43:9a:a7:d1:4d:85:84:b9:a9:74:8f:
- 14:40:c7:dc:de:ac:41:64:6c:b4:19:9b:02:63:6d:
- 24:64:8f:44:b2:25:ea:ce:5d:74:0c:63:32:5c:8d:
- 87:e5
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- A6:91:42:FD:13:61:4A:23:9E:08:A4:29:E5:D8:13:04:23:EE:41:25
- X509v3 Name Constraints:
- Permitted:
- DNS:.gr
- DNS:.eu
- DNS:.edu
- DNS:.org
- email:.gr
- email:.eu
- email:.edu
- email:.org
-
- Signature Algorithm: sha1WithRSAEncryption
- 1f:ef:79:41:e1:7b:6e:3f:b2:8c:86:37:42:4a:4e:1c:37:1e:
- 8d:66:ba:24:81:c9:4f:12:0f:21:c0:03:97:86:25:6d:5d:d3:
- 22:29:a8:6c:a2:0d:a9:eb:3d:06:5b:99:3a:c7:cc:c3:9a:34:
- 7f:ab:0e:c8:4e:1c:e1:fa:e4:dc:cd:0d:be:bf:24:fe:6c:e7:
- 6b:c2:0d:c8:06:9e:4e:8d:61:28:a6:6a:fd:e5:f6:62:ea:18:
- 3c:4e:a0:53:9d:b2:3a:9c:eb:a5:9c:91:16:b6:4d:82:e0:0c:
- 05:48:a9:6c:f5:cc:f8:cb:9d:49:b4:f0:02:a5:fd:70:03:ed:
- 8a:21:a5:ae:13:86:49:c3:33:73:be:87:3b:74:8b:17:45:26:
- 4c:16:91:83:fe:67:7d:cd:4d:63:67:fa:f3:03:12:96:78:06:
- 8d:b1:67:ed:8e:3f:be:9f:4f:02:f5:b3:09:2f:f3:4c:87:df:
- 2a:cb:95:7c:01:cc:ac:36:7a:bf:a2:73:7a:f7:8f:c1:b5:9a:
- a1:14:b2:8f:33:9f:0d:ef:22:dc:66:7b:84:bd:45:17:06:3d:
- 3c:ca:b9:77:34:8f:ca:ea:cf:3f:31:3e:e3:88:e3:80:49:25:
- c8:97:b5:9d:9a:99:4d:b0:3c:f8:4a:00:9b:64:dd:9f:39:4b:
- d1:27:d7:b8
-SHA1 Fingerprint=FE:45:65:9B:79:03:5B:98:A1:61:B5:51:2E:AC:DA:58:09:48:22:4D
diff --git a/luni/src/main/files/cacerts/418595b9.0 b/luni/src/main/files/cacerts/418595b9.0
deleted file mode 100644
index 7f9eca2..0000000
--- a/luni/src/main/files/cacerts/418595b9.0
+++ /dev/null
@@ -1,87 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRS
-MRgwFgYDVQQHDA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJp
-bGltc2VsIHZlIFRla25vbG9qaWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSw
-VEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ryb25payB2ZSBLcmlwdG9sb2ppIEFy
-YcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNVBAsMGkthbXUgU2Vy
-dGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUgS8O2
-ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAe
-Fw0wNzA4MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIx
-GDAWBgNVBAcMD0dlYnplIC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmls
-aW1zZWwgdmUgVGVrbm9sb2ppayBBcmHFn3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBU
-QUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZlIEtyaXB0b2xvamkgQXJh
-xZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2FtdSBTZXJ0
-aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7Zr
-IFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIB
-IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4h
-gb46ezzb8R1Sf1n68yJMlaCQvEhOEav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yK
-O7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1xnnRFDDtG1hba+818qEhTsXO
-fJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR6Oqeyjh1jmKw
-lZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL
-hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQID
-AQABo0IwQDAdBgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/
-BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmP
-NOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4N5EY3ATIZJkrGG2AA1nJrvhY0D7t
-wyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLTy9LQQfMmNkqblWwM
-7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYhLBOh
-gLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5n
-oN+J1q2MdqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUs
-yZyQ2uypQjyttgI=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 17 (0x11)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=TR, L=Gebze - Kocaeli, O=T\xC3\xBCrkiye Bilimsel ve Teknolojik Ara\xC5\x9Ft\xC4\xB1rma Kurumu - T\xC3\x9CB\xC4\xB0TAK, OU=Ulusal Elektronik ve Kriptoloji Ara\xC5\x9Ft\xC4\xB1rma Enstit\xC3\xBCs\xC3\xBC - UEKAE, OU=Kamu Sertifikasyon Merkezi, CN=T\xC3\x9CB\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xC4\xB1c\xC4\xB1s\xC4\xB1 - S\xC3\xBCr\xC3\xBCm 3
- Validity
- Not Before: Aug 24 11:37:07 2007 GMT
- Not After : Aug 21 11:37:07 2017 GMT
- Subject: C=TR, L=Gebze - Kocaeli, O=T\xC3\xBCrkiye Bilimsel ve Teknolojik Ara\xC5\x9Ft\xC4\xB1rma Kurumu - T\xC3\x9CB\xC4\xB0TAK, OU=Ulusal Elektronik ve Kriptoloji Ara\xC5\x9Ft\xC4\xB1rma Enstit\xC3\xBCs\xC3\xBC - UEKAE, OU=Kamu Sertifikasyon Merkezi, CN=T\xC3\x9CB\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xC4\xB1c\xC4\xB1s\xC4\xB1 - S\xC3\xBCr\xC3\xBCm 3
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:8a:6d:4b:ff:10:88:3a:c3:f6:7e:94:e8:ea:20:
- 64:70:ae:21:81:be:3a:7b:3c:db:f1:1d:52:7f:59:
- fa:f3:22:4c:95:a0:90:bc:48:4e:11:ab:fb:b7:b5:
- 8d:7a:83:28:8c:26:46:d8:4e:95:40:87:61:9f:c5:
- 9e:6d:81:87:57:6c:8a:3b:b4:66:ea:cc:40:fc:e3:
- aa:6c:b2:cb:01:db:32:bf:d2:eb:85:cf:a1:0d:55:
- c3:5b:38:57:70:b8:75:c6:79:d1:14:30:ed:1b:58:
- 5b:6b:ef:35:f2:a1:21:4e:c5:ce:7c:99:5f:6c:b9:
- b8:22:93:50:a7:cd:4c:70:6a:be:6a:05:7f:13:9c:
- 2b:1e:ea:fe:47:ce:04:a5:6f:ac:93:2e:7c:2b:9f:
- 9e:79:13:91:e8:ea:9e:ca:38:75:8e:62:b0:95:93:
- 2a:e5:df:e9:5e:97:6e:20:5f:5f:84:7a:44:39:19:
- 40:1c:ba:55:2b:fb:30:b2:81:ef:84:e3:dc:ec:98:
- 38:39:03:85:08:a9:54:03:05:29:f0:c9:8f:8b:ea:
- 0b:86:65:19:11:d3:e9:09:23:de:68:93:03:c9:36:
- 1c:21:6e:ce:8c:66:f1:99:30:d8:d7:b3:c3:1d:f8:
- 81:2e:a8:bd:82:0b:66:fe:82:cb:e1:e0:1a:82:c3:
- 40:81
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- BD:88:87:C9:8F:F6:A4:0A:0B:AA:EB:C5:FE:91:23:9D:AB:4A:8A:32
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- Signature Algorithm: sha1WithRSAEncryption
- 1d:7c:fa:49:8f:34:e9:b7:26:92:16:9a:05:74:e7:4b:d0:6d:
- 39:6c:c3:26:f6:ce:b8:31:bc:c4:df:bc:2a:f8:37:91:18:dc:
- 04:c8:64:99:2b:18:6d:80:03:59:c9:ae:f8:58:d0:3e:ed:c3:
- 23:9f:69:3c:86:38:1c:9e:ef:da:27:78:d1:84:37:71:8a:3c:
- 4b:39:cf:7e:45:06:d6:2d:d8:8a:4d:78:12:d6:ad:c2:d3:cb:
- d2:d0:41:f3:26:36:4a:9b:95:6c:0c:ee:e5:d1:43:27:66:c1:
- 88:f7:7a:b3:20:6c:ea:b0:69:2b:c7:20:e8:0c:03:c4:41:05:
- 99:e2:3f:e4:6b:f8:a0:86:81:c7:84:c6:1f:d5:4b:81:12:b2:
- 16:21:2c:13:a1:80:b2:5e:0c:4a:13:9e:20:d8:62:40:ab:90:
- ea:64:4a:2f:ac:0d:01:12:79:45:a8:2f:87:19:68:c8:e2:85:
- c7:30:b2:75:f9:38:3f:b2:c0:93:b4:6b:e2:03:44:ce:67:a0:
- df:89:d6:ad:8c:76:a3:13:c3:94:61:2b:6b:d9:6c:c1:07:0a:
- 22:07:85:6c:85:24:46:a9:be:3f:8b:78:84:82:7e:24:0c:9d:
- fd:81:37:e3:25:a8:ed:36:4e:95:2c:c9:9c:90:da:ec:a9:42:
- 3c:ad:b6:02
-SHA1 Fingerprint=1B:4B:39:61:26:27:6B:64:91:A2:68:6D:D7:02:43:21:2D:1F:1D:96
diff --git a/luni/src/main/files/cacerts/450c6e38.0 b/luni/src/main/files/cacerts/450c6e38.0
deleted file mode 100644
index 87affbd..0000000
--- a/luni/src/main/files/cacerts/450c6e38.0
+++ /dev/null
@@ -1,128 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIF2TCCA8GgAwIBAgIQHp4o6Ejy5e/DfEoeWhhntjANBgkqhkiG9w0BAQsFADBk
-MQswCQYDVQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0
-YWwgQ2VydGlmaWNhdGUgU2VydmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3Qg
-Q0EgMjAeFw0xMTA2MjQwODM4MTRaFw0zMTA2MjUwNzM4MTRaMGQxCzAJBgNVBAYT
-AmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGlnaXRhbCBDZXJ0aWZp
-Y2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAyMIICIjAN
-BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAlUJOhJ1R5tMJ6HJaI2nbeHCOFvEr
-jw0DzpPMLgAIe6szjPTpQOYXTKueuEcUMncy3SgM3hhLX3af+Dk7/E6J2HzFZ++r
-0rk0X2s682Q2zsKwzxNoysjL67XiPS4h3+os1OD5cJZM/2pYmLcX5BtS5X4HAB1f
-2uY+lQS3aYg5oUFgJWFLlTloYhyxCwWJwDaCFCE/rtuh/bxvHGCGtlOUSbkrRsVP
-ACu/obvLP+DHVxxX6NZp+MEkUp2IVd3Chy50I9AU/SpHWrumnf2U5NGKpV+GY3aF
-y6//SSj8gO1MedK75MDvAe5QQQg1I3ArqRa0jG6F6bYRzzHdUyYb3y1aSgJA/MTA
-tukxGggo5WDDH8SQjhBiYEQN7Aq+VRhxLKX0srwVYv8c474d2h5Xszx+zYIdkeNL
-6yxSNLCK/RJOlrDrcH+eOfdmQrGrrFLadkBXeyq96G4DsguAhYidDMfCd7Camlf0
-uPoTXGiTOmekl9AbmbeGMktg2M7v0Ax/lZ9vh0+Hio5fCHyqW/xavqGRn1V9TrAL
-acywlKinh/LTSlDcX3KwFnUey7QYYpqwpzmqm59m2I2mbJYV4+by+PGDYmy7Velh
-k6M99bFXi08jsJvllGov34zflVEpYKELKeRcVVi3qPyZ7iVNTA6z00yPhOgpD/0Q
-VAKFyPnlw4vP5w8CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0hBBYw
-FDASBgdghXQBUwIBBgdghXQBUwIBMBIGA1UdEwEB/wQIMAYBAf8CAQcwHQYDVR0O
-BBYEFE0mICKJS9PVpAqhb97iEoHF8TwuMB8GA1UdIwQYMBaAFE0mICKJS9PVpAqh
-b97iEoHF8TwuMA0GCSqGSIb3DQEBCwUAA4ICAQAyCrKkG8t9voJXiblqf/P0wS4R
-fbgZPnm3qKhyN2abGu2sEzsOv2LwnN+ee6FTSA5BesogpxcbtnjsQJHzQq0Qw1zv
-/2BZf82Fo4s9SBwlAjxnffUy6S8w5X2lejjQ82YqZh6NM4OKb3xuqFp1mrjX2lhI
-REeoTPpMSQpKwhI3qEAMw8jh0FcNlzKVxzqfl9NX+Ave5XLzo9v/tdhZsnPdTSpx
-srpJ9csc1fV5yJmz/MFMdOO0vSk3FQQoHt5FRnDsr7p4DooqzgB53MBfGWcsa0vv
-aGgLQ+OswWIJ76bdZWGgr4RVSJFSHMYlkSrQwSIjYVmvRRGFHQEkNI/Ps/8XciAT
-woCqISxxOQ7Qj1zB09GOInJGTB2Wrk9xseEFKZZZ9LuedT3PDTcNYtsmjGOpI99n
-Bjx8Oto0QuFmtEYE3saWmA9LSHokMnWRn6z3aOkquVVlzl1h0ydw2Df+n7mvoC5W
-t6NlUe07qxS/TFED6F+KBZvuim6c779o+sjaC+NCydAXFJy3SuCvkychVSa1ZC+N
-8f+mQAWFBVzKBxlcCxMoTFh/wqXvRdpg065lYZ1Tg3TCrvJcwhbtkj6EPnNgiLx2
-9CzP0H1907he0ZESEOnN3col49XtmS++dYFLJPlFRpTJKSFTnCZFqhMX5OfNeOI5
-wSsSnqaeG8XmDtkx2Q==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 1e:9e:28:e8:48:f2:e5:ef:c3:7c:4a:1e:5a:18:67:b6
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=ch, O=Swisscom, OU=Digital Certificate Services, CN=Swisscom Root CA 2
- Validity
- Not Before: Jun 24 08:38:14 2011 GMT
- Not After : Jun 25 07:38:14 2031 GMT
- Subject: C=ch, O=Swisscom, OU=Digital Certificate Services, CN=Swisscom Root CA 2
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:95:42:4e:84:9d:51:e6:d3:09:e8:72:5a:23:69:
- db:78:70:8e:16:f1:2b:8f:0d:03:ce:93:cc:2e:00:
- 08:7b:ab:33:8c:f4:e9:40:e6:17:4c:ab:9e:b8:47:
- 14:32:77:32:dd:28:0c:de:18:4b:5f:76:9f:f8:39:
- 3b:fc:4e:89:d8:7c:c5:67:ef:ab:d2:b9:34:5f:6b:
- 3a:f3:64:36:ce:c2:b0:cf:13:68:ca:c8:cb:eb:b5:
- e2:3d:2e:21:df:ea:2c:d4:e0:f9:70:96:4c:ff:6a:
- 58:98:b7:17:e4:1b:52:e5:7e:07:00:1d:5f:da:e6:
- 3e:95:04:b7:69:88:39:a1:41:60:25:61:4b:95:39:
- 68:62:1c:b1:0b:05:89:c0:36:82:14:21:3f:ae:db:
- a1:fd:bc:6f:1c:60:86:b6:53:94:49:b9:2b:46:c5:
- 4f:00:2b:bf:a1:bb:cb:3f:e0:c7:57:1c:57:e8:d6:
- 69:f8:c1:24:52:9d:88:55:dd:c2:87:2e:74:23:d0:
- 14:fd:2a:47:5a:bb:a6:9d:fd:94:e4:d1:8a:a5:5f:
- 86:63:76:85:cb:af:ff:49:28:fc:80:ed:4c:79:d2:
- bb:e4:c0:ef:01:ee:50:41:08:35:23:70:2b:a9:16:
- b4:8c:6e:85:e9:b6:11:cf:31:dd:53:26:1b:df:2d:
- 5a:4a:02:40:fc:c4:c0:b6:e9:31:1a:08:28:e5:60:
- c3:1f:c4:90:8e:10:62:60:44:0d:ec:0a:be:55:18:
- 71:2c:a5:f4:b2:bc:15:62:ff:1c:e3:be:1d:da:1e:
- 57:b3:3c:7e:cd:82:1d:91:e3:4b:eb:2c:52:34:b0:
- 8a:fd:12:4e:96:b0:eb:70:7f:9e:39:f7:66:42:b1:
- ab:ac:52:da:76:40:57:7b:2a:bd:e8:6e:03:b2:0b:
- 80:85:88:9d:0c:c7:c2:77:b0:9a:9a:57:f4:b8:fa:
- 13:5c:68:93:3a:67:a4:97:d0:1b:99:b7:86:32:4b:
- 60:d8:ce:ef:d0:0c:7f:95:9f:6f:87:4f:87:8a:8e:
- 5f:08:7c:aa:5b:fc:5a:be:a1:91:9f:55:7d:4e:b0:
- 0b:69:cc:b0:94:a8:a7:87:f2:d3:4a:50:dc:5f:72:
- b0:16:75:1e:cb:b4:18:62:9a:b0:a7:39:aa:9b:9f:
- 66:d8:8d:a6:6c:96:15:e3:e6:f2:f8:f1:83:62:6c:
- bb:55:e9:61:93:a3:3d:f5:b1:57:8b:4f:23:b0:9b:
- e5:94:6a:2f:df:8c:df:95:51:29:60:a1:0b:29:e4:
- 5c:55:58:b7:a8:fc:99:ee:25:4d:4c:0e:b3:d3:4c:
- 8f:84:e8:29:0f:fd:10:54:02:85:c8:f9:e5:c3:8b:
- cf:e7:0f
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Key Usage: critical
- Digital Signature, Certificate Sign, CRL Sign
- X509v3 Policy Mappings:
- 2.16.756.1.83.2.1:2.16.756.1.83.2.1
- X509v3 Basic Constraints: critical
- CA:TRUE, pathlen:7
- X509v3 Subject Key Identifier:
- 4D:26:20:22:89:4B:D3:D5:A4:0A:A1:6F:DE:E2:12:81:C5:F1:3C:2E
- X509v3 Authority Key Identifier:
- keyid:4D:26:20:22:89:4B:D3:D5:A4:0A:A1:6F:DE:E2:12:81:C5:F1:3C:2E
-
- Signature Algorithm: sha256WithRSAEncryption
- 32:0a:b2:a4:1b:cb:7d:be:82:57:89:b9:6a:7f:f3:f4:c1:2e:
- 11:7d:b8:19:3e:79:b7:a8:a8:72:37:66:9b:1a:ed:ac:13:3b:
- 0e:bf:62:f0:9c:df:9e:7b:a1:53:48:0e:41:7a:ca:20:a7:17:
- 1b:b6:78:ec:40:91:f3:42:ad:10:c3:5c:ef:ff:60:59:7f:cd:
- 85:a3:8b:3d:48:1c:25:02:3c:67:7d:f5:32:e9:2f:30:e5:7d:
- a5:7a:38:d0:f3:66:2a:66:1e:8d:33:83:8a:6f:7c:6e:a8:5a:
- 75:9a:b8:d7:da:58:48:44:47:a8:4c:fa:4c:49:0a:4a:c2:12:
- 37:a8:40:0c:c3:c8:e1:d0:57:0d:97:32:95:c7:3a:9f:97:d3:
- 57:f8:0b:de:e5:72:f3:a3:db:ff:b5:d8:59:b2:73:dd:4d:2a:
- 71:b2:ba:49:f5:cb:1c:d5:f5:79:c8:99:b3:fc:c1:4c:74:e3:
- b4:bd:29:37:15:04:28:1e:de:45:46:70:ec:af:ba:78:0e:8a:
- 2a:ce:00:79:dc:c0:5f:19:67:2c:6b:4b:ef:68:68:0b:43:e3:
- ac:c1:62:09:ef:a6:dd:65:61:a0:af:84:55:48:91:52:1c:c6:
- 25:91:2a:d0:c1:22:23:61:59:af:45:11:85:1d:01:24:34:8f:
- cf:b3:ff:17:72:20:13:c2:80:aa:21:2c:71:39:0e:d0:8f:5c:
- c1:d3:d1:8e:22:72:46:4c:1d:96:ae:4f:71:b1:e1:05:29:96:
- 59:f4:bb:9e:75:3d:cf:0d:37:0d:62:db:26:8c:63:a9:23:df:
- 67:06:3c:7c:3a:da:34:42:e1:66:b4:46:04:de:c6:96:98:0f:
- 4b:48:7a:24:32:75:91:9f:ac:f7:68:e9:2a:b9:55:65:ce:5d:
- 61:d3:27:70:d8:37:fe:9f:b9:af:a0:2e:56:b7:a3:65:51:ed:
- 3b:ab:14:bf:4c:51:03:e8:5f:8a:05:9b:ee:8a:6e:9c:ef:bf:
- 68:fa:c8:da:0b:e3:42:c9:d0:17:14:9c:b7:4a:e0:af:93:27:
- 21:55:26:b5:64:2f:8d:f1:ff:a6:40:05:85:05:5c:ca:07:19:
- 5c:0b:13:28:4c:58:7f:c2:a5:ef:45:da:60:d3:ae:65:61:9d:
- 53:83:74:c2:ae:f2:5c:c2:16:ed:92:3e:84:3e:73:60:88:bc:
- 76:f4:2c:cf:d0:7d:7d:d3:b8:5e:d1:91:12:10:e9:cd:dd:ca:
- 25:e3:d5:ed:99:2f:be:75:81:4b:24:f9:45:46:94:c9:29:21:
- 53:9c:26:45:aa:13:17:e4:e7:cd:78:e2:39:c1:2b:12:9e:a6:
- 9e:1b:c5:e6:0e:d9:31:d9
-SHA1 Fingerprint=77:47:4F:C6:30:E4:0F:4C:47:64:3F:84:BA:B8:C6:95:4A:8A:41:EC
diff --git a/luni/src/main/files/cacerts/455f1b52.0 b/luni/src/main/files/cacerts/455f1b52.0
deleted file mode 100644
index f1d0471..0000000
--- a/luni/src/main/files/cacerts/455f1b52.0
+++ /dev/null
@@ -1,82 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMC
-VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50
-cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3Qs
-IEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVz
-dCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwHhcNMDkwNzA3MTcy
-NTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUVu
-dHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwt
-dGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0
-aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmlj
-YXRpb24gQXV0aG9yaXR5IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
-AoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP/vaCeb9zYQYKpSfYs1/T
-RU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXzHHfV1IWN
-cCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hW
-wcKUs/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1
-U1+cPvQXLOZprE4yTGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0
-jaWvYkxN4FisZDQSA/i2jZRjJKRxAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAP
-BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ60B7vfec7aVHUbI2fkBJmqzAN
-BgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5ZiXMRrEPR9RP/
-jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ
-Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v
-1fN2D807iDginWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4R
-nAuknZoh8/CbCzB428Hch0P+vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmH
-VHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xOe4pIb4tF9g==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1246989352 (0x4a538c28)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, O=Entrust, Inc., OU=See www.entrust.net/legal-terms, OU=(c) 2009 Entrust, Inc. - for authorized use only, CN=Entrust Root Certification Authority - G2
- Validity
- Not Before: Jul 7 17:25:54 2009 GMT
- Not After : Dec 7 17:55:54 2030 GMT
- Subject: C=US, O=Entrust, Inc., OU=See www.entrust.net/legal-terms, OU=(c) 2009 Entrust, Inc. - for authorized use only, CN=Entrust Root Certification Authority - G2
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:ba:84:b6:72:db:9e:0c:6b:e2:99:e9:30:01:a7:
- 76:ea:32:b8:95:41:1a:c9:da:61:4e:58:72:cf:fe:
- f6:82:79:bf:73:61:06:0a:a5:27:d8:b3:5f:d3:45:
- 4e:1c:72:d6:4e:32:f2:72:8a:0f:f7:83:19:d0:6a:
- 80:80:00:45:1e:b0:c7:e7:9a:bf:12:57:27:1c:a3:
- 68:2f:0a:87:bd:6a:6b:0e:5e:65:f3:1c:77:d5:d4:
- 85:8d:70:21:b4:b3:32:e7:8b:a2:d5:86:39:02:b1:
- b8:d2:47:ce:e4:c9:49:c4:3b:a7:de:fb:54:7d:57:
- be:f0:e8:6e:c2:79:b2:3a:0b:55:e2:50:98:16:32:
- 13:5c:2f:78:56:c1:c2:94:b3:f2:5a:e4:27:9a:9f:
- 24:d7:c6:ec:d0:9b:25:82:e3:cc:c2:c4:45:c5:8c:
- 97:7a:06:6b:2a:11:9f:a9:0a:6e:48:3b:6f:db:d4:
- 11:19:42:f7:8f:07:bf:f5:53:5f:9c:3e:f4:17:2c:
- e6:69:ac:4e:32:4c:62:77:ea:b7:e8:e5:bb:34:bc:
- 19:8b:ae:9c:51:e7:b7:7e:b5:53:b1:33:22:e5:6d:
- cf:70:3c:1a:fa:e2:9b:67:b6:83:f4:8d:a5:af:62:
- 4c:4d:e0:58:ac:64:34:12:03:f8:b6:8d:94:63:24:
- a4:71
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- 6A:72:26:7A:D0:1E:EF:7D:E7:3B:69:51:D4:6C:8D:9F:90:12:66:AB
- Signature Algorithm: sha256WithRSAEncryption
- 79:9f:1d:96:c6:b6:79:3f:22:8d:87:d3:87:03:04:60:6a:6b:
- 9a:2e:59:89:73:11:ac:43:d1:f5:13:ff:8d:39:2b:c0:f2:bd:
- 4f:70:8c:a9:2f:ea:17:c4:0b:54:9e:d4:1b:96:98:33:3c:a8:
- ad:62:a2:00:76:ab:59:69:6e:06:1d:7e:c4:b9:44:8d:98:af:
- 12:d4:61:db:0a:19:46:47:f3:eb:f7:63:c1:40:05:40:a5:d2:
- b7:f4:b5:9a:36:bf:a9:88:76:88:04:55:04:2b:9c:87:7f:1a:
- 37:3c:7e:2d:a5:1a:d8:d4:89:5e:ca:bd:ac:3d:6c:d8:6d:af:
- d5:f3:76:0f:cd:3b:88:38:22:9d:6c:93:9a:c4:3d:bf:82:1b:
- 65:3f:a6:0f:5d:aa:fc:e5:b2:15:ca:b5:ad:c6:bc:3d:d0:84:
- e8:ea:06:72:b0:4d:39:32:78:bf:3e:11:9c:0b:a4:9d:9a:21:
- f3:f0:9b:0b:30:78:db:c1:dc:87:43:fe:bc:63:9a:ca:c5:c2:
- 1c:c9:c7:8d:ff:3b:12:58:08:e6:b6:3d:ec:7a:2c:4e:fb:83:
- 96:ce:0c:3c:69:87:54:73:a4:73:c2:93:ff:51:10:ac:15:54:
- 01:d8:fc:05:b1:89:a1:7f:74:83:9a:49:d7:dc:4e:7b:8a:48:
- 6f:8b:45:f6
-SHA1 Fingerprint=8C:F4:27:FD:79:0C:3A:D1:66:06:8D:E8:1E:57:EF:BB:93:22:72:D4
diff --git a/luni/src/main/files/cacerts/48a195d8.0 b/luni/src/main/files/cacerts/48a195d8.0
deleted file mode 100644
index 46530f1..0000000
--- a/luni/src/main/files/cacerts/48a195d8.0
+++ /dev/null
@@ -1,125 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4
-MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6
-ZW5wZS5jb20wHhcNMDcxMjEzMTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYD
-VQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5j
-b20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ03rKDx6sp4boFmVq
-scIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAKClaO
-xdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6H
-LmYRY2xU+zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFX
-uaOKmMPsOzTFlUFpfnXCPCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQD
-yCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxTOTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+
-JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbKF7jJeodWLBoBHmy+E60Q
-rLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK0GqfvEyN
-BjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8L
-hij+0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIB
-QFqNeb+Lz0vPqhbBleStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+
-HMh3/1uaD7euBUbl8agW7EekFwIDAQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2lu
-Zm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+SVpFTlBFIFMuQS4gLSBDSUYg
-QTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBGNjIgUzgxQzBB
-BgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx
-MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
-AQYwHQYDVR0OBBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUA
-A4ICAQB4pgwWSp9MiDrAyw6lFn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWb
-laQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbgakEyrkgPH7UIBzg/YsfqikuFgba56
-awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8qhT/AQKM6WfxZSzwo
-JNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Csg1lw
-LDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCT
-VyvehQP5aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGk
-LhObNA5me0mrZJfQRsN5nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJb
-UjWumDqtujWTI6cfSN01RpiyEGjkpTHCClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/
-QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZoQ0iy2+tzJOeRf1SktoA+
-naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1ZWrOZyGls
-QyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- b0:b7:5a:16:48:5f:bf:e1:cb:f5:8b:d7:19:e6:7d
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=ES, O=IZENPE S.A., CN=Izenpe.com
- Validity
- Not Before: Dec 13 13:08:28 2007 GMT
- Not After : Dec 13 08:27:25 2037 GMT
- Subject: C=ES, O=IZENPE S.A., CN=Izenpe.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:c9:d3:7a:ca:0f:1e:ac:a7:86:e8:16:65:6a:b1:
- c2:1b:45:32:71:95:d9:fe:10:5b:cc:af:e7:a5:79:
- 01:8f:89:c3:ca:f2:55:71:f7:77:be:77:94:f3:72:
- a4:2c:44:d8:9e:92:9b:14:3a:a1:e7:24:90:0a:0a:
- 56:8e:c5:d8:26:94:e1:d9:48:e1:2d:3e:da:0a:72:
- dd:a3:99:15:da:81:a2:87:f4:7b:6e:26:77:89:58:
- ad:d6:eb:0c:b2:41:7a:73:6e:6d:db:7a:78:41:e9:
- 08:88:12:7e:87:2e:66:11:63:6c:54:fb:3c:9d:72:
- c0:bc:2e:ff:c2:b7:dd:0d:76:e3:3a:d7:f7:b4:68:
- be:a2:f5:e3:81:6e:c1:46:6f:5d:8d:e0:4d:c6:54:
- 55:89:1a:33:31:0a:b1:57:b9:a3:8a:98:c3:ec:3b:
- 34:c5:95:41:69:7e:75:c2:3c:20:c5:61:ba:51:47:
- a0:20:90:93:a1:90:4b:f3:4e:7c:85:45:54:9a:d1:
- 05:26:41:b0:b5:4d:1d:33:be:c4:03:c8:25:7c:c1:
- 70:db:3b:f4:09:2d:54:27:48:ac:2f:e1:c4:ac:3e:
- c8:cb:92:4c:53:39:37:23:ec:d3:01:f9:e0:09:44:
- 4d:4d:64:c0:e1:0d:5a:87:22:bc:ad:1b:a3:fe:26:
- b5:15:f3:a7:fc:84:19:e9:ec:a1:88:b4:44:69:84:
- 83:f3:89:d1:74:06:a9:cc:0b:d6:c2:de:27:85:50:
- 26:ca:17:b8:c9:7a:87:56:2c:1a:01:1e:6c:be:13:
- ad:10:ac:b5:24:f5:38:91:a1:d6:4b:da:f1:bb:d2:
- de:47:b5:f1:bc:81:f6:59:6b:cf:19:53:e9:8d:15:
- cb:4a:cb:a9:6f:44:e5:1b:41:cf:e1:86:a7:ca:d0:
- 6a:9f:bc:4c:8d:06:33:5a:a2:85:e5:90:35:a0:62:
- 5c:16:4e:f0:e3:a2:fa:03:1a:b4:2c:71:b3:58:2c:
- de:7b:0b:db:1a:0f:eb:de:21:1f:06:77:06:03:b0:
- c9:ef:99:fc:c0:b9:4f:0b:86:28:fe:d2:b9:ea:e3:
- da:a5:c3:47:69:12:e0:db:f0:f6:19:8b:ed:7b:70:
- d7:02:d6:ed:87:18:28:2c:04:24:4c:77:e4:48:8a:
- 1a:c6:3b:9a:d4:0f:ca:fa:75:d2:01:40:5a:8d:79:
- bf:8b:cf:4b:cf:aa:16:c1:95:e4:ad:4c:8a:3e:17:
- 91:d4:b1:62:e5:82:e5:80:04:a4:03:7e:8d:bf:da:
- 7f:a2:0f:97:4f:0c:d3:0d:fb:d7:d1:e5:72:7e:1c:
- c8:77:ff:5b:9a:0f:b7:ae:05:46:e5:f1:a8:16:ec:
- 47:a4:17
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Alternative Name:
- email:info@izenpe.com, DirName:/O=IZENPE S.A. - CIF A01337260-RMerc.Vitoria-Gasteiz T1055 F62 S8/street=Avda del Mediterraneo Etorbidea 14 - 01010 Vitoria-Gasteiz
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- 1D:1C:65:0E:A8:F2:25:7B:B4:91:CF:E4:B1:B1:E6:BD:55:74:6C:05
- Signature Algorithm: sha256WithRSAEncryption
- 78:a6:0c:16:4a:9f:4c:88:3a:c0:cb:0e:a5:16:7d:9f:b9:48:
- 5f:18:8f:0d:62:36:f6:cd:19:6b:ac:ab:d5:f6:91:7d:ae:71:
- f3:3f:b3:0e:78:85:9b:95:a4:27:21:47:42:4a:7c:48:3a:f5:
- 45:7c:b3:0c:8e:51:78:ac:95:13:de:c6:fd:7d:b8:1a:90:4c:
- ab:92:03:c7:ed:42:01:ce:0f:d8:b1:fa:a2:92:e1:60:6d:ae:
- 7a:6b:09:aa:c6:29:ee:68:49:67:30:80:24:7a:31:16:39:5b:
- 7e:f1:1c:2e:dd:6c:09:ad:f2:31:c1:82:4e:b9:bb:f9:be:bf:
- 2a:85:3f:c0:40:a3:3a:59:fc:59:4b:3c:28:24:db:b4:15:75:
- ae:0d:88:ba:2e:73:c0:bd:58:87:e5:42:f2:eb:5e:ee:1e:30:
- 22:99:cb:37:d1:c4:21:6c:81:ec:be:6d:26:e6:1c:e4:42:20:
- 9e:47:b0:ac:83:59:70:2c:35:d6:af:36:34:b4:cd:3b:f8:32:
- a8:ef:e3:78:89:fb:8d:45:2c:da:9c:b8:7e:40:1c:61:e7:3e:
- a2:92:2c:4b:f2:cd:fa:98:b6:29:ff:f3:f2:7b:a9:1f:2e:a0:
- 93:57:2b:de:85:03:f9:69:37:cb:9e:78:6a:05:b4:c5:31:78:
- 89:ec:7a:a7:85:e1:b9:7b:3c:de:be:1e:79:84:ce:9f:70:0e:
- 59:c2:35:2e:90:2a:31:d9:e4:45:7a:41:a4:2e:13:9b:34:0e:
- 66:7b:49:ab:64:97:d0:46:c3:79:9d:72:50:63:a6:98:5b:06:
- bd:48:6d:d8:39:83:70:e8:35:f0:05:d1:aa:bc:e3:db:c8:02:
- ea:7c:fd:82:da:c2:5b:52:35:ae:98:3a:ad:ba:35:93:23:a7:
- 1f:48:dd:35:46:98:b2:10:68:e4:a5:31:c2:0a:58:2e:19:81:
- 10:c9:50:75:fc:ea:5a:16:ce:11:d7:ee:ef:50:88:2d:61:ff:
- 3f:42:73:05:94:43:d5:8e:3c:4e:01:3a:19:a5:1f:46:4e:77:
- d0:5d:e5:81:22:21:87:fe:94:7d:84:d8:93:ad:d6:68:43:48:
- b2:db:eb:73:24:e7:91:7f:54:a4:b6:80:3e:9d:a3:3c:4c:72:
- c2:57:c4:a0:d4:cc:38:27:ce:d5:06:9e:a2:48:d9:e9:9f:ce:
- 82:70:36:93:9a:3b:df:96:21:e3:59:b7:0c:da:91:37:f0:fd:
- 59:5a:b3:99:c8:69:6c:43:26:01:35:63:60:55:89:03:3a:75:
- d8:ba:4a:d9:54:ff:ee:de:80:d8:2d:d1:38:d5:5e:2d:0b:98:
- 7d:3e:6c:db:fc:26:88:c7
-SHA1 Fingerprint=2F:78:3D:25:52:18:A7:4A:65:39:71:B5:2C:A2:9C:45:15:6F:E9:19
diff --git a/luni/src/main/files/cacerts/4be590e0.0 b/luni/src/main/files/cacerts/4be590e0.0
deleted file mode 100644
index 788aff7..0000000
--- a/luni/src/main/files/cacerts/4be590e0.0
+++ /dev/null
@@ -1,120 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBN
-MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVu
-VHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcN
-MzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0
-MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwggIi
-MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTyP4o7
-ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGy
-RBb06tD6Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlS
-bdsHyo+1W/CD80/HLaXIrcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF
-/YTLNiCBWS2ab21ISGHKTN9T0a9SvESfqy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R
-3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoSmJxZZoY+rfGwyj4GD3vw
-EUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFnol57plzy
-9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9V
-GxyhLrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ
-2fjXctscvG29ZV/viDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsV
-WaFHVCkugyhfHMKiq3IXAAaOReyL4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gD
-W/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
-BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMwDQYJKoZIhvcN
-AQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj
-t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHV
-DRDtfULAj+7AmgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9
-TaDKQGXSc3z1i9kKlT/YPyNtGtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8G
-lwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFtm6/n6J91eEyrRjuazr8FGF1NFTwW
-mhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMxNRF4eKLg6TCMf4Df
-WN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4Mhn5
-+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJ
-tshquDDIajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhA
-GaQdp/lLQzfcaFpPz+vCZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv
-8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ3Wl9af0AVqW3rLatt8o+Ae+c
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 0a:01:42:80:00:00:01:45:23:cf:46:7c:00:00:00:02
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, O=IdenTrust, CN=IdenTrust Public Sector Root CA 1
- Validity
- Not Before: Jan 16 17:53:32 2014 GMT
- Not After : Jan 16 17:53:32 2034 GMT
- Subject: C=US, O=IdenTrust, CN=IdenTrust Public Sector Root CA 1
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:b6:22:94:fc:a4:48:af:e8:47:6b:0a:fb:27:76:
- e4:f2:3f:8a:3b:7a:4a:2c:31:2a:8c:8d:b0:a9:c3:
- 31:6b:a8:77:76:84:26:b6:ac:81:42:0d:08:eb:55:
- 58:bb:7a:f8:bc:65:7d:f2:a0:6d:8b:a8:47:e9:62:
- 76:1e:11:ee:08:14:d1:b2:44:16:f4:ea:d0:fa:1e:
- 2f:5e:db:cb:73:41:ae:bc:00:b0:4a:2b:40:b2:ac:
- e1:3b:4b:c2:2d:9d:e4:a1:9b:ec:1a:3a:1e:f0:08:
- b3:d0:e4:24:35:07:9f:9c:b4:c9:52:6d:db:07:ca:
- 8f:b5:5b:f0:83:f3:4f:c7:2d:a5:c8:ad:cb:95:20:
- a4:31:28:57:58:5a:e4:8d:1b:9a:ab:9e:0d:0c:f2:
- 0a:33:39:22:39:0a:97:2e:f3:53:77:b9:44:45:fd:
- 84:cb:36:20:81:59:2d:9a:6f:6d:48:48:61:ca:4c:
- df:53:d1:af:52:bc:44:9f:ab:2f:6b:83:72:ef:75:
- 80:da:06:33:1b:5d:c8:da:63:c6:4d:cd:ac:66:31:
- cd:d1:de:3e:87:10:36:e1:b9:a4:7a:ef:60:50:b2:
- cb:ca:a6:56:e0:37:af:ab:34:13:39:25:e8:39:66:
- e4:98:7a:aa:12:98:9c:59:66:86:3e:ad:f1:b0:ca:
- 3e:06:0f:7b:f0:11:4b:37:a0:44:6d:7b:cb:a8:8c:
- 71:f4:d5:b5:91:36:cc:f0:15:c6:2b:de:51:17:b1:
- 97:4c:50:3d:b1:95:59:7c:05:7d:2d:21:d5:00:bf:
- 01:67:a2:5e:7b:a6:5c:f2:f7:22:f1:90:0d:93:db:
- aa:44:51:66:cc:7d:76:03:eb:6a:a8:2a:38:19:97:
- 76:0d:6b:8a:61:f9:bc:f6:ee:76:fd:70:2b:dd:29:
- 3c:f8:0a:1e:5b:42:1c:8b:56:2f:55:1b:1c:a1:2e:
- b5:c7:16:e6:f8:aa:3c:92:8e:69:b6:01:c1:b5:86:
- 9d:89:0f:0b:38:94:54:e8:ea:dc:9e:3d:25:bc:53:
- 26:ed:d5:ab:39:aa:c5:40:4c:54:ab:b2:b4:d9:d9:
- f8:d7:72:db:1c:bc:6d:bd:65:5f:ef:88:35:2a:66:
- 2f:ee:f6:b3:65:f0:33:8d:7c:98:41:69:46:0f:43:
- 1c:69:fa:9b:b5:d0:61:6a:cd:ca:4b:d9:4c:90:46:
- ab:15:59:a1:47:54:29:2e:83:28:5f:1c:c2:a2:ab:
- 72:17:00:06:8e:45:ec:8b:e2:33:3d:7f:da:19:44:
- e4:62:72:c3:df:22:c6:f2:56:d4:dd:5f:95:72:ed:
- 6d:5f:f7:48:03:5b:fd:c5:2a:a0:f6:73:23:84:10:
- 1b:01:e7
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- E3:71:E0:9E:D8:A7:42:D9:DB:71:91:6B:94:93:EB:C3:A3:D1:14:A3
- Signature Algorithm: sha256WithRSAEncryption
- 47:fa:dd:0a:b0:11:91:38:ad:4d:5d:f7:e5:0e:97:54:19:82:
- 48:87:54:8c:aa:64:99:d8:5a:fe:88:01:c5:58:a5:99:b1:23:
- 54:23:b7:6a:1d:20:57:e5:01:62:41:17:d3:09:db:75:cb:6e:
- 54:90:75:fe:1a:9f:81:0a:c2:dd:d7:f7:09:d0:5b:72:15:e4:
- 1e:09:6a:3d:33:f3:21:9a:e6:15:7e:ad:51:d5:0d:10:ed:7d:
- 42:c0:8f:ee:c0:9a:08:d5:41:d6:5c:0e:21:69:6e:80:61:0e:
- 15:c0:b8:cf:c5:49:12:52:cc:be:3a:cc:d4:2e:38:05:de:35:
- fd:1f:6f:b8:80:68:98:3d:4d:a0:ca:40:65:d2:73:7c:f5:8b:
- d9:0a:95:3f:d8:3f:23:6d:1a:d1:2a:24:19:d9:85:b3:17:ef:
- 78:6e:a9:58:d1:23:d3:c7:13:ed:72:25:7f:5d:b1:73:70:d0:
- 7f:06:97:09:84:29:80:61:1d:fa:5e:ff:73:ac:a0:e3:89:b8:
- 1c:71:15:c6:de:31:7f:12:dc:e1:6d:9b:af:e7:e8:9f:75:78:
- 4c:ab:46:3b:9a:ce:bf:05:18:5d:4d:15:3c:16:9a:19:50:04:
- 9a:b2:9a:6f:65:8b:52:5f:3c:58:04:28:25:c0:66:61:31:7e:
- b9:e0:75:b9:1a:a8:81:d6:72:17:b3:c5:03:31:35:11:78:78:
- a2:e0:e9:30:8c:7f:80:df:58:df:3c:ba:27:96:e2:80:34:6d:
- e3:98:d3:64:27:ac:48:7e:28:77:5c:c6:25:61:25:f8:85:0c:
- 65:fa:c4:32:2f:a5:98:05:e4:f8:0b:67:16:16:c6:82:b8:32:
- 19:f9:f9:b9:79:dc:1f:cd:eb:af:ab:0e:dd:1b:db:45:e4:7a:
- e7:02:e2:95:5d:fc:69:f0:53:69:61:95:75:79:0b:5e:55:e6:
- 38:1c:94:a9:59:33:9e:c8:71:74:79:7f:51:89:b6:c8:6a:b8:
- 30:c8:6a:38:c3:6e:9e:e1:37:16:ea:05:62:4c:5b:12:47:ed:
- a7:b4:b3:58:56:c7:49:f3:7f:12:68:09:31:71:f0:6d:f8:4e:
- 47:fb:d6:85:ee:c5:58:40:19:a4:1d:a7:f9:4b:43:37:dc:68:
- 5a:4f:cf:eb:c2:64:74:de:b4:15:d9:f4:54:54:1a:2f:1c:d7:
- 97:71:54:90:8e:d9:20:9d:53:2b:7f:ab:8f:e2:ea:30:bc:50:
- 37:ef:f1:47:b5:7d:7c:2c:04:ec:68:9d:b4:49:44:10:f4:72:
- 4b:1c:64:e7:fc:e6:6b:90:dd:69:7d:69:fd:00:56:a5:b7:ac:
- b6:ad:b7:ca:3e:01:ef:9c
-SHA1 Fingerprint=BA:29:41:60:77:98:3F:F4:F3:EF:F2:31:05:3B:2E:EA:6D:4D:45:FD
diff --git a/luni/src/main/files/cacerts/4d654d1d.0 b/luni/src/main/files/cacerts/4d654d1d.0
deleted file mode 100644
index 737193b..0000000
--- a/luni/src/main/files/cacerts/4d654d1d.0
+++ /dev/null
@@ -1,49 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYD
-VQQKEw9HVEUgQ29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNv
-bHV0aW9ucywgSW5jLjEjMCEGA1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJv
-b3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEzMjM1OTAwWjB1MQswCQYDVQQGEwJV
-UzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQLEx5HVEUgQ3liZXJU
-cnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0IEds
-b2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrH
-iM3dFw4usJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTS
-r41tiGeA5u2ylc9yMcqlHHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X4
-04Wqk2kmhXBIgD8SFcd5tB8FLztimQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAG3r
-GwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMWM4ETCJ57NE7fQMh017l9
-3PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OFNMQkpw0P
-lZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 1 (0x0)
- Serial Number: 421 (0x1a5)
- Signature Algorithm: md5WithRSAEncryption
- Issuer: C=US, O=GTE Corporation, OU=GTE CyberTrust Solutions, Inc., CN=GTE CyberTrust Global Root
- Validity
- Not Before: Aug 13 00:29:00 1998 GMT
- Not After : Aug 13 23:59:00 2018 GMT
- Subject: C=US, O=GTE Corporation, OU=GTE CyberTrust Solutions, Inc., CN=GTE CyberTrust Global Root
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (1024 bit)
- Modulus:
- 00:95:0f:a0:b6:f0:50:9c:e8:7a:c7:88:cd:dd:17:
- 0e:2e:b0:94:d0:1b:3d:0e:f6:94:c0:8a:94:c7:06:
- c8:90:97:c8:b8:64:1a:7a:7e:6c:3c:53:e1:37:28:
- 73:60:7f:b2:97:53:07:9f:53:f9:6d:58:94:d2:af:
- 8d:6d:88:67:80:e6:ed:b2:95:cf:72:31:ca:a5:1c:
- 72:ba:5c:02:e7:64:42:e7:f9:a9:2c:d6:3a:0d:ac:
- 8d:42:aa:24:01:39:e6:9c:3f:01:85:57:0d:58:87:
- 45:f8:d3:85:aa:93:69:26:85:70:48:80:3f:12:15:
- c7:79:b4:1f:05:2f:3b:62:99
- Exponent: 65537 (0x10001)
- Signature Algorithm: md5WithRSAEncryption
- 6d:eb:1b:09:e9:5e:d9:51:db:67:22:61:a4:2a:3c:48:77:e3:
- a0:7c:a6:de:73:a2:14:03:85:3d:fb:ab:0e:30:c5:83:16:33:
- 81:13:08:9e:7b:34:4e:df:40:c8:74:d7:b9:7d:dc:f4:76:55:
- 7d:9b:63:54:18:e9:f0:ea:f3:5c:b1:d9:8b:42:1e:b9:c0:95:
- 4e:ba:fa:d5:e2:7c:f5:68:61:bf:8e:ec:05:97:5f:5b:b0:d7:
- a3:85:34:c4:24:a7:0d:0f:95:93:ef:cb:94:d8:9e:1f:9d:5c:
- 85:6d:c7:aa:ae:4f:1f:22:b5:cd:95:ad:ba:a7:cc:f9:ab:0b:
- 7a:7f
-SHA1 Fingerprint=97:81:79:50:D8:1C:96:70:CC:34:D8:09:CF:79:44:31:36:7E:F4:74
diff --git a/luni/src/main/files/cacerts/4e18c148.0 b/luni/src/main/files/cacerts/4e18c148.0
deleted file mode 100644
index 23828ec..0000000
--- a/luni/src/main/files/cacerts/4e18c148.0
+++ /dev/null
@@ -1,79 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEc
-MBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2Vj
-IFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENB
-IDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5MjM1OTAwWjBxMQswCQYDVQQGEwJE
-RTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxl
-U2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290
-IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEU
-ha88EOQ5bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhC
-QN/Po7qCWWqSG6wcmtoIKyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1Mjwr
-rFDa1sPeg5TKqAyZMg4ISFZbavva4VhYAUlfckE8FQYBjl2tqriTtM2e66foai1S
-NNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aKSe5TBY8ZTNXeWHmb0moc
-QqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTVjlsB9WoH
-txa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAP
-BgNVHRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOC
-AQEAlGRZrTlk5ynrE/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756Abrsp
-tJh6sTtU6zkXR34ajgv8HzFZMQSyzhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpa
-IzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8rZ7/gFnkm0W09juwzTkZmDLl
-6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4Gdyd1Lx+4ivn+
-xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU
-Cm26OWMohpLzGITY+9HPBVZkVw==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 38 (0x26)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=DE, O=Deutsche Telekom AG, OU=T-TeleSec Trust Center, CN=Deutsche Telekom Root CA 2
- Validity
- Not Before: Jul 9 12:11:00 1999 GMT
- Not After : Jul 9 23:59:00 2019 GMT
- Subject: C=DE, O=Deutsche Telekom AG, OU=T-TeleSec Trust Center, CN=Deutsche Telekom Root CA 2
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:ab:0b:a3:35:e0:8b:29:14:b1:14:85:af:3c:10:
- e4:39:6f:35:5d:4a:ae:dd:ea:61:8d:95:49:f4:6f:
- 64:a3:1a:60:66:a4:a9:40:22:84:d9:d4:a5:e5:78:
- 93:0e:68:01:ad:b9:4d:5c:3a:ce:d3:b8:a8:42:40:
- df:cf:a3:ba:82:59:6a:92:1b:ac:1c:9a:da:08:2b:
- 25:27:f9:69:23:47:f1:e0:eb:2c:7a:9b:f5:13:02:
- d0:7e:34:7c:c2:9e:3c:00:59:ab:f5:da:0c:f5:32:
- 3c:2b:ac:50:da:d6:c3:de:83:94:ca:a8:0c:99:32:
- 0e:08:48:56:5b:6a:fb:da:e1:58:58:01:49:5f:72:
- 41:3c:15:06:01:8e:5d:ad:aa:b8:93:b4:cd:9e:eb:
- a7:e8:6a:2d:52:34:db:3a:ef:5c:75:51:da:db:f3:
- 31:f9:ee:71:98:32:c4:54:15:44:0c:f9:9b:55:ed:
- ad:df:18:08:a0:a3:86:8a:49:ee:53:05:8f:19:4c:
- d5:de:58:79:9b:d2:6a:1c:42:ab:c5:d5:a7:cf:68:
- 0f:96:e4:e1:61:98:76:61:c8:91:7c:d6:3e:00:e2:
- 91:50:87:e1:9d:0a:e6:ad:97:d2:1d:c6:3a:7d:cb:
- bc:da:03:34:d5:8e:5b:01:f5:6a:07:b7:16:b6:6e:
- 4a:7f
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 31:C3:79:1B:BA:F5:53:D7:17:E0:89:7A:2D:17:6C:0A:B3:2B:9D:33
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:5
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- Signature Algorithm: sha1WithRSAEncryption
- 94:64:59:ad:39:64:e7:29:eb:13:fe:5a:c3:8b:13:57:c8:04:
- 24:f0:74:77:c0:60:e3:67:fb:e9:89:a6:83:bf:96:82:7c:6e:
- d4:c3:3d:ef:9e:80:6e:bb:29:b4:98:7a:b1:3b:54:eb:39:17:
- 47:7e:1a:8e:0b:fc:1f:31:59:31:04:b2:ce:17:f3:2c:c7:62:
- 36:55:e2:22:d8:89:55:b4:98:48:aa:64:fa:d6:1c:36:d8:44:
- 78:5a:5a:23:3a:57:97:f5:7a:30:4f:ae:9f:6a:4c:4b:2b:8e:
- a0:03:e3:3e:e0:a9:d4:d2:7b:d2:b3:a8:e2:72:3c:ad:9e:ff:
- 80:59:e4:9b:45:b4:f6:3b:b0:cd:39:19:98:32:e5:ea:21:61:
- 90:e4:31:21:8e:34:b1:f7:2f:35:4a:85:10:da:e7:8a:37:21:
- be:59:63:e0:f2:85:88:31:53:d4:54:14:85:70:79:f4:2e:06:
- 77:27:75:2f:1f:b8:8a:f9:fe:c5:ba:d8:36:e4:83:ec:e7:65:
- b7:bf:63:5a:f3:46:af:81:94:37:d4:41:8c:d6:23:d6:1e:cf:
- f5:68:1b:44:63:a2:5a:ba:a7:35:59:a1:e5:70:05:9b:0e:23:
- 57:99:94:0a:6d:ba:39:63:28:86:92:f3:18:84:d8:fb:d1:cf:
- 05:56:64:57
-SHA1 Fingerprint=85:A4:08:C0:9C:19:3E:5D:51:58:7D:CD:D6:13:30:FD:8C:DE:37:BF
diff --git a/luni/src/main/files/cacerts/4fbd6bfa.0 b/luni/src/main/files/cacerts/4fbd6bfa.0
deleted file mode 100644
index b3c8590..0000000
--- a/luni/src/main/files/cacerts/4fbd6bfa.0
+++ /dev/null
@@ -1,91 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCB
-kzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug
-Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho
-dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZBgNVBAMTElVUTiAtIERBVEFDb3Jw
-IFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBaMIGTMQswCQYDVQQG
-EwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYD
-VQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cu
-dXNlcnRydXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjAN
-BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6
-E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ysraP6LnD43m77VkIVni5c7yPeIbkFdicZ
-D0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlowHDyUwDAXlCCpVZvNvlK
-4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA9P4yPykq
-lXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulW
-bfXv33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQAB
-o4GrMIGoMAsGA1UdDwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRT
-MtGzz3/64PGgXYVOktKeRR20TzA9BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3Js
-LnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dDLmNybDAqBgNVHSUEIzAhBggr
-BgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3DQEBBQUAA4IB
-AQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft
-Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyj
-j98C5OBxOvG0I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVH
-KWss5nbZqSl9Mt3JNjy9rjXxEZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv
-2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwPDPafepE39peC4N1xaf92P2BNPM/3
-mfnGV/TJVTl4uix5yaaIK/QI
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 44:be:0c:8b:50:00:21:b4:11:d3:2a:68:06:a9:ad:69
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=US, ST=UT, L=Salt Lake City, O=The USERTRUST Network, OU=http://www.usertrust.com, CN=UTN - DATACorp SGC
- Validity
- Not Before: Jun 24 18:57:21 1999 GMT
- Not After : Jun 24 19:06:30 2019 GMT
- Subject: C=US, ST=UT, L=Salt Lake City, O=The USERTRUST Network, OU=http://www.usertrust.com, CN=UTN - DATACorp SGC
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:df:ee:58:10:a2:2b:6e:55:c4:8e:bf:2e:46:09:
- e7:e0:08:0f:2e:2b:7a:13:94:1b:bd:f6:b6:80:8e:
- 65:05:93:00:1e:bc:af:e2:0f:8e:19:0d:12:47:ec:
- ac:ad:a3:fa:2e:70:f8:de:6e:fb:56:42:15:9e:2e:
- 5c:ef:23:de:21:b9:05:76:27:19:0f:4f:d6:c3:9c:
- b4:be:94:19:63:f2:a6:11:0a:eb:53:48:9c:be:f2:
- 29:3b:16:e8:1a:a0:4c:a6:c9:f4:18:59:68:c0:70:
- f2:53:00:c0:5e:50:82:a5:56:6f:36:f9:4a:e0:44:
- 86:a0:4d:4e:d6:47:6e:49:4a:cb:67:d7:a6:c4:05:
- b9:8e:1e:f4:fc:ff:cd:e7:36:e0:9c:05:6c:b2:33:
- 22:15:d0:b4:e0:cc:17:c0:b2:c0:f4:fe:32:3f:29:
- 2a:95:7b:d8:f2:a7:4e:0f:54:7c:a1:0d:80:b3:09:
- 03:c1:ff:5c:dd:5e:9a:3e:bc:ae:bc:47:8a:6a:ae:
- 71:ca:1f:b1:2a:b8:5f:42:05:0b:ec:46:30:d1:72:
- 0b:ca:e9:56:6d:f5:ef:df:78:be:61:ba:b2:a5:ae:
- 04:4c:bc:a8:ac:69:15:97:bd:ef:eb:b4:8c:bf:35:
- f8:d4:c3:d1:28:0e:5c:3a:9f:70:18:33:20:77:c4:
- a2:af
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Key Usage:
- Digital Signature, Non Repudiation, Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- 53:32:D1:B3:CF:7F:FA:E0:F1:A0:5D:85:4E:92:D2:9E:45:1D:B4:4F
- X509v3 CRL Distribution Points:
-
- Full Name:
- URI:http://crl.usertrust.com/UTN-DATACorpSGC.crl
-
- X509v3 Extended Key Usage:
- TLS Web Server Authentication, Microsoft Server Gated Crypto, Netscape Server Gated Crypto
- Signature Algorithm: sha1WithRSAEncryption
- 27:35:97:00:8a:8b:28:bd:c6:33:30:1e:29:fc:e2:f7:d5:98:
- d4:40:bb:60:ca:bf:ab:17:2c:09:36:7f:50:fa:41:dc:ae:96:
- 3a:0a:23:3e:89:59:c9:a3:07:ed:1b:37:ad:fc:7c:be:51:49:
- 5a:de:3a:0a:54:08:16:45:c2:99:b1:87:cd:8c:68:e0:69:03:
- e9:c4:4e:98:b2:3b:8c:16:b3:0e:a0:0c:98:50:9b:93:a9:70:
- 09:c8:2c:a3:8f:df:02:e4:e0:71:3a:f1:b4:23:72:a0:aa:01:
- df:df:98:3e:14:50:a0:31:26:bd:28:e9:5a:30:26:75:f9:7b:
- 60:1c:8d:f3:cd:50:26:6d:04:27:9a:df:d5:0d:45:47:29:6b:
- 2c:e6:76:d9:a9:29:7d:32:dd:c9:36:3c:bd:ae:35:f1:11:9e:
- 1d:bb:90:3f:12:47:4e:8e:d7:7e:0f:62:73:1d:52:26:38:1c:
- 18:49:fd:30:74:9a:c4:e5:22:2f:d8:c0:8d:ed:91:7a:4c:00:
- 8f:72:7f:5d:da:dd:1b:8b:45:6b:e7:dd:69:97:a8:c5:56:4c:
- 0f:0c:f6:9f:7a:91:37:f6:97:82:e0:dd:71:69:ff:76:3f:60:
- 4d:3c:cf:f7:99:f9:c6:57:f4:c9:55:39:78:ba:2c:79:c9:a6:
- 88:2b:f4:08
-SHA1 Fingerprint=58:11:9F:0E:12:82:87:EA:50:FD:D9:87:45:6F:4F:78:DC:FA:D6:D4
diff --git a/luni/src/main/files/cacerts/5046c355.0 b/luni/src/main/files/cacerts/5046c355.0
deleted file mode 100644
index 229de34..0000000
--- a/luni/src/main/files/cacerts/5046c355.0
+++ /dev/null
@@ -1,128 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UE
-BhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWdu
-IFNpbHZlciBDQSAtIEcyMB4XDTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0Nlow
-RzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMY
-U3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
-MIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644N0Mv
-Fz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7br
-YT7QbNHm+/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieF
-nbAVlDLaYQ1HTWBCrpJH6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH
-6ATK72oxh9TAtvmUcXtnZLi2kUpCe2UuMGoM9ZDulebyzYLs2aFK7PayS+VFheZt
-eJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5hqAaEuSh6XzjZG6k4sIN/
-c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5FZGkECwJ
-MoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRH
-HTBsROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTf
-jNFusB3hB48IHpmccelM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb6
-5i/4z3GcRm25xBWNOHkDRUjvxF3XCO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOB
-rDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU
-F6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRBtjpbO8tFnb0c
-wpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0
-cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIB
-AHPGgeAn0i0P4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShp
-WJHckRE1qTodvBqlYJ7YH39FkWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9
-xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L3XWgwF15kIwb4FDm3jH+mHtwX6WQ
-2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx/uNncqCxv1yL5PqZ
-IseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFaDGi8
-aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2X
-em1ZqSqPe97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQR
-dAtq/gsD/KNVV4n+SsuuWxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/
-OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJDIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+
-hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ubDgEj8Z+7fNzcbBGXJbLy
-tGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 5700383053117599563 (0x4f1bd42f54bb2f4b)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=CH, O=SwissSign AG, CN=SwissSign Silver CA - G2
- Validity
- Not Before: Oct 25 08:32:46 2006 GMT
- Not After : Oct 25 08:32:46 2036 GMT
- Subject: C=CH, O=SwissSign AG, CN=SwissSign Silver CA - G2
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:c4:f1:87:7f:d3:78:31:f7:38:c9:f8:c3:99:43:
- bc:c7:f7:bc:37:e7:4e:71:ba:4b:8f:a5:73:1d:5c:
- 6e:98:ae:03:57:ae:38:37:43:2f:17:3d:1f:c8:ce:
- 68:10:c1:78:ae:19:03:2b:10:fa:2c:79:83:f6:e8:
- b9:68:b9:55:f2:04:44:a7:39:f9:fc:04:8b:1e:f1:
- a2:4d:27:f9:61:7b:ba:b7:e5:a2:13:b6:eb:61:3e:
- d0:6c:d1:e6:fb:fa:5e:ed:1d:b4:9e:a0:35:5b:a1:
- 92:cb:f0:49:92:fe:85:0a:05:3e:e6:d9:0b:e2:4f:
- bb:dc:95:37:fc:91:e9:32:35:22:d1:1f:3a:4e:27:
- 85:9d:b0:15:94:32:da:61:0d:47:4d:60:42:ae:92:
- 47:e8:83:5a:50:58:e9:8a:8b:b9:5d:a1:dc:dd:99:
- 4a:1f:36:67:bb:48:e4:83:b6:37:eb:48:3a:af:0f:
- 67:8f:17:07:e8:04:ca:ef:6a:31:87:d4:c0:b6:f9:
- 94:71:7b:67:64:b8:b6:91:4a:42:7b:65:2e:30:6a:
- 0c:f5:90:ee:95:e6:f2:cd:82:ec:d9:a1:4a:ec:f6:
- b2:4b:e5:45:85:e6:6d:78:93:04:2e:9c:82:6d:36:
- a9:c4:31:64:1f:86:83:0b:2a:f4:35:0a:78:c9:55:
- cf:41:b0:47:e9:30:9f:99:be:61:a8:06:84:b9:28:
- 7a:5f:38:d9:1b:a9:38:b0:83:7f:73:c1:c3:3b:48:
- 2a:82:0f:21:9b:b8:cc:a8:35:c3:84:1b:83:b3:3e:
- be:a4:95:69:01:3a:89:00:78:04:d9:c9:f4:99:19:
- ab:56:7e:5b:8b:86:39:15:91:a4:10:2c:09:32:80:
- 60:b3:93:c0:2a:b6:18:0b:9d:7e:8d:49:f2:10:4a:
- 7f:f9:d5:46:2f:19:92:a3:99:a7:26:ac:bb:8c:3c:
- e6:0e:bc:47:07:dc:73:51:f1:70:64:2f:08:f9:b4:
- 47:1d:30:6c:44:ea:29:37:85:92:68:66:bc:83:38:
- fe:7b:39:2e:d3:50:f0:1f:fb:5e:60:b6:a9:a6:fa:
- 27:41:f1:9b:18:72:f2:f5:84:74:4a:c9:67:c4:54:
- ae:48:64:df:8c:d1:6e:b0:1d:e1:07:8f:08:1e:99:
- 9c:71:e9:4c:d8:a5:f7:47:12:1f:74:d1:51:9e:86:
- f3:c2:a2:23:40:0b:73:db:4b:a6:e7:73:06:8c:c1:
- a0:e9:c1:59:ac:46:fa:e6:2f:f8:cf:71:9c:46:6d:
- b9:c4:15:8d:38:79:03:45:48:ef:c4:5d:d7:08:ee:
- 87:39:22:86:b2:0d:0f:58:43:f7:71:a9:48:2e:fd:
- ea:d6:1f
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- 17:A0:CD:C1:E4:41:B6:3A:5B:3B:CB:45:9D:BD:1C:C2:98:FA:86:58
- X509v3 Authority Key Identifier:
- keyid:17:A0:CD:C1:E4:41:B6:3A:5B:3B:CB:45:9D:BD:1C:C2:98:FA:86:58
-
- X509v3 Certificate Policies:
- Policy: 2.16.756.1.89.1.3.1.1
- CPS: http://repository.swisssign.com/
-
- Signature Algorithm: sha1WithRSAEncryption
- 73:c6:81:e0:27:d2:2d:0f:e0:95:30:e2:9a:41:7f:50:2c:5f:
- 5f:62:61:a9:86:6a:69:18:0c:74:49:d6:5d:84:ea:41:52:18:
- 6f:58:ad:50:56:20:6a:c6:bd:28:69:58:91:dc:91:11:35:a9:
- 3a:1d:bc:1a:a5:60:9e:d8:1f:7f:45:91:69:d9:7e:bb:78:72:
- c1:06:0f:2a:ce:8f:85:70:61:ac:a0:cd:0b:b8:39:29:56:84:
- 32:4e:86:bb:3d:c4:2a:d9:d7:1f:72:ee:fe:51:a1:22:41:b1:
- 71:02:63:1a:82:b0:62:ab:5e:57:12:1f:df:cb:dd:75:a0:c0:
- 5d:79:90:8c:1b:e0:50:e6:de:31:fe:98:7b:70:5f:a5:90:d8:
- ad:f8:02:b6:6f:d3:60:dd:40:4b:22:c5:3d:ad:3a:7a:9f:1a:
- 1a:47:91:79:33:ba:82:dc:32:69:03:96:6e:1f:4b:f0:71:fe:
- e3:67:72:a0:b1:bf:5c:8b:e4:fa:99:22:c7:84:b9:1b:8d:23:
- 97:3f:ed:25:e0:cf:65:bb:f5:61:04:ef:dd:1e:b2:5a:41:22:
- 5a:a1:9f:5d:2c:e8:5b:c9:6d:a9:0c:0c:78:aa:60:c6:56:8f:
- 01:5a:0c:68:bc:69:19:79:c4:1f:7e:97:05:bf:c5:e9:24:51:
- 5e:d4:d5:4b:53:ed:d9:23:5a:36:03:65:a3:c1:03:ad:41:30:
- f3:46:1b:85:90:af:65:b5:d5:b1:e4:16:5b:78:75:1d:97:7a:
- 6d:59:a9:2a:8f:7b:de:c3:87:89:10:99:49:73:78:c8:3d:bd:
- 51:35:74:2a:d5:f1:7e:69:1b:2a:bb:3b:bd:25:b8:9a:5a:3d:
- 72:61:90:66:87:ee:0c:d6:4d:d4:11:74:0b:6a:fe:0b:03:fc:
- a3:55:57:89:fe:4a:cb:ae:5b:17:05:c8:f2:8d:23:31:53:38:
- d2:2d:6a:3f:82:b9:8d:08:6a:f7:5e:41:74:6e:c3:11:7e:07:
- ac:29:60:91:3f:38:ca:57:10:0d:bd:30:2f:c7:a5:e6:41:a0:
- da:ae:05:87:9a:a0:a4:65:6c:4c:09:0c:89:ba:b8:d3:b9:c0:
- 93:8a:30:fa:8d:e5:9a:6b:15:01:4e:67:aa:da:62:56:3e:84:
- 08:66:d2:c4:36:7d:a7:3e:10:fc:88:e0:d4:80:e5:00:bd:aa:
- f3:4e:06:a3:7a:6a:f9:62:72:e3:09:4f:eb:9b:0e:01:23:f1:
- 9f:bb:7c:dc:dc:6c:11:97:25:b2:f2:b4:63:14:d2:06:2a:67:
- 8c:83:f5:ce:ea:07:d8:9a:6a:1e:ec:e4:0a:bb:2a:4c:eb:09:
- 60:39:ce:ca:62:d8:2e:6e
-SHA1 Fingerprint=9B:AA:E5:9F:56:EE:21:CB:43:5A:BE:25:93:DF:A7:F0:40:D1:1D:CB
diff --git a/luni/src/main/files/cacerts/524d9b43.0 b/luni/src/main/files/cacerts/524d9b43.0
deleted file mode 100644
index 0fa8453..0000000
--- a/luni/src/main/files/cacerts/524d9b43.0
+++ /dev/null
@@ -1,88 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCB
-vTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
-ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJp
-U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MTgwNgYDVQQDEy9W
-ZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe
-Fw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJVUzEX
-MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0
-IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9y
-IGF1dGhvcml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNh
-bCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj1mCOkdeQmIN65lgZOIzF
-9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGPMiJhgsWH
-H26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+H
-LL729fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN
-/BMReYTtXlT2NJ8IAfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPT
-rJ9VAMf2CGqUuV/c4DPxhGD5WycRtPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1Ud
-EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0GCCsGAQUFBwEMBGEwX6FdoFsw
-WTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrUSBgs
-exkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
-DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4
-sAPmLGd75JR3Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+
-seQxIcaBlVZaDrHC1LGmWazxY8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz
-4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTxP/jgdFcrGJ2BtMQo2pSXpXDrrB2+
-BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+PwGZsY6rp2aQW9IHR
-lRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4mJO3
-7M2CYfE45k+XmCpajQ==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 40:1a:c4:64:21:b3:13:21:03:0e:bb:e4:12:1a:c5:1d
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2008 VeriSign, Inc. - For authorized use only, CN=VeriSign Universal Root Certification Authority
- Validity
- Not Before: Apr 2 00:00:00 2008 GMT
- Not After : Dec 1 23:59:59 2037 GMT
- Subject: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2008 VeriSign, Inc. - For authorized use only, CN=VeriSign Universal Root Certification Authority
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c7:61:37:5e:b1:01:34:db:62:d7:15:9b:ff:58:
- 5a:8c:23:23:d6:60:8e:91:d7:90:98:83:7a:e6:58:
- 19:38:8c:c5:f6:e5:64:85:b4:a2:71:fb:ed:bd:b9:
- da:cd:4d:00:b4:c8:2d:73:a5:c7:69:71:95:1f:39:
- 3c:b2:44:07:9c:e8:0e:fa:4d:4a:c4:21:df:29:61:
- 8f:32:22:61:82:c5:87:1f:6e:8c:7c:5f:16:20:51:
- 44:d1:70:4f:57:ea:e3:1c:e3:cc:79:ee:58:d8:0e:
- c2:b3:45:93:c0:2c:e7:9a:17:2b:7b:00:37:7a:41:
- 33:78:e1:33:e2:f3:10:1a:7f:87:2c:be:f6:f5:f7:
- 42:e2:e5:bf:87:62:89:5f:00:4b:df:c5:dd:e4:75:
- 44:32:41:3a:1e:71:6e:69:cb:0b:75:46:08:d1:ca:
- d2:2b:95:d0:cf:fb:b9:40:6b:64:8c:57:4d:fc:13:
- 11:79:84:ed:5e:54:f6:34:9f:08:01:f3:10:25:06:
- 17:4a:da:f1:1d:7a:66:6b:98:60:66:a4:d9:ef:d2:
- 2e:82:f1:f0:ef:09:ea:44:c9:15:6a:e2:03:6e:33:
- d3:ac:9f:55:00:c7:f6:08:6a:94:b9:5f:dc:e0:33:
- f1:84:60:f9:5b:27:11:b4:fc:16:f2:bb:56:6a:80:
- 25:8d
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- 1.3.6.1.5.5.7.1.12:
- 0_.].[0Y0W0U..image/gif0!0.0...+..............k...j.H.,{..0%.#http://logo.verisign.com/vslogo.gif
- X509v3 Subject Key Identifier:
- B6:77:FA:69:48:47:9F:53:12:D5:C2:EA:07:32:76:07:D1:97:07:19
- Signature Algorithm: sha256WithRSAEncryption
- 4a:f8:f8:b0:03:e6:2c:67:7b:e4:94:77:63:cc:6e:4c:f9:7d:
- 0e:0d:dc:c8:b9:35:b9:70:4f:63:fa:24:fa:6c:83:8c:47:9d:
- 3b:63:f3:9a:f9:76:32:95:91:b1:77:bc:ac:9a:be:b1:e4:31:
- 21:c6:81:95:56:5a:0e:b1:c2:d4:b1:a6:59:ac:f1:63:cb:b8:
- 4c:1d:59:90:4a:ef:90:16:28:1f:5a:ae:10:fb:81:50:38:0c:
- 6c:cc:f1:3d:c3:f5:63:e3:b3:e3:21:c9:24:39:e9:fd:15:66:
- 46:f4:1b:11:d0:4d:73:a3:7d:46:f9:3d:ed:a8:5f:62:d4:f1:
- 3f:f8:e0:74:57:2b:18:9d:81:b4:c4:28:da:94:97:a5:70:eb:
- ac:1d:be:07:11:f0:d5:db:dd:e5:8c:f0:d5:32:b0:83:e6:57:
- e2:8f:bf:be:a1:aa:bf:3d:1d:b5:d4:38:ea:d7:b0:5c:3a:4f:
- 6a:3f:8f:c0:66:6c:63:aa:e9:d9:a4:16:f4:81:d1:95:14:0e:
- 7d:cd:95:34:d9:d2:8f:70:73:81:7b:9c:7e:bd:98:61:d8:45:
- 87:98:90:c5:eb:86:30:c6:35:bf:f0:ff:c3:55:88:83:4b:ef:
- 05:92:06:71:f2:b8:98:93:b7:ec:cd:82:61:f1:38:e6:4f:97:
- 98:2a:5a:8d
-SHA1 Fingerprint=36:79:CA:35:66:87:72:30:4D:30:A5:FB:87:3B:0F:A7:7B:B7:0D:54
diff --git a/luni/src/main/files/cacerts/52b525c7.0 b/luni/src/main/files/cacerts/52b525c7.0
deleted file mode 100644
index 98adef0..0000000
--- a/luni/src/main/files/cacerts/52b525c7.0
+++ /dev/null
@@ -1,120 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQEL
-BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc
-BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00
-MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
-aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEgRzMwggIiMA0GCSqG
-SIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakEPBtV
-wedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWe
-rNrwU8lmPNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF341
-68Xfuw6cwI2H44g4hWf6Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh
-4Pw5qlPafX7PGglTvF0FBM+hSo+LdoINofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXp
-UhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/lg6AnhF4EwfWQvTA9xO+o
-abw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV7qJZjqlc
-3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/G
-KubX9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSt
-hfbZxbGL0eUQMk1fiyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KO
-Tk0k+17kBL5yG6YnLUlamXrXXAkgt3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOt
-zCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
-BjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZIhvcNAQELBQAD
-ggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC
-MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2
-cDMT/uFPpiN3GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUN
-qXsCHKnQO18LwIE6PWThv6ctTr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5
-YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP+V04ikkwj+3x6xn0dxoxGE1nVGwv
-b2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh3jRJjehZrJ3ydlo2
-8hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fawx/k
-NSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNj
-ZgKAvQU6O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhp
-q1467HxpvMc7hU6eFbm0FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFt
-nh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOVhMJKzRwuJIczYOXD
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 78:58:5f:2e:ad:2c:19:4b:e3:37:07:35:34:13:28:b5:96:d4:65:93
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=BM, O=QuoVadis Limited, CN=QuoVadis Root CA 1 G3
- Validity
- Not Before: Jan 12 17:27:44 2012 GMT
- Not After : Jan 12 17:27:44 2042 GMT
- Subject: C=BM, O=QuoVadis Limited, CN=QuoVadis Root CA 1 G3
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:a0:be:50:10:8e:e9:f2:6c:40:b4:04:9c:85:b9:
- 31:ca:dc:2d:e4:11:a9:04:3c:1b:55:c1:e7:58:30:
- 1d:24:b4:c3:ef:85:de:8c:2c:e1:c1:3d:df:82:e6:
- 4f:ad:47:87:6c:ec:5b:49:c1:4a:d5:bb:8f:ec:87:
- ac:7f:82:9a:86:ec:3d:03:99:52:01:d2:35:9e:ac:
- da:f0:53:c9:66:3c:d4:ac:02:01:da:24:d3:3b:a8:
- 02:46:af:a4:1c:e3:f8:73:58:76:b7:f6:0e:90:0d:
- b5:f0:cf:cc:fa:f9:c6:4c:e5:c3:86:30:0a:8d:17:
- 7e:35:eb:c5:df:bb:0e:9c:c0:8d:87:e3:88:38:85:
- 67:fa:3e:c7:ab:e0:13:9c:05:18:98:cf:93:f5:b1:
- 92:b4:fc:23:d3:cf:d5:c4:27:49:e0:9e:3c:9b:08:
- a3:8b:5d:2a:21:e0:fc:39:aa:53:da:7d:7e:cf:1a:
- 09:53:bc:5d:05:04:cf:a1:4a:8f:8b:76:82:0d:a1:
- f8:d2:c7:14:77:5b:90:36:07:81:9b:3e:06:fa:52:
- 5e:63:c5:a6:00:fe:a5:e9:52:1b:52:b5:92:39:72:
- 03:09:62:bd:b0:60:16:6e:a6:dd:25:c2:03:66:dd:
- f3:04:d1:40:e2:4e:8b:86:f4:6f:e5:83:a0:27:84:
- 5e:04:c1:f5:90:bd:30:3d:c4:ef:a8:69:bc:38:9b:
- a4:a4:96:d1:62:da:69:c0:01:96:ae:cb:c4:51:34:
- ea:0c:aa:ff:21:8e:59:8f:4a:5c:e4:61:9a:a7:d2:
- e9:2a:78:8d:51:3d:3a:15:ee:a2:59:8e:a9:5c:de:
- c5:f9:90:22:e5:88:45:71:dd:91:99:6c:7a:9f:3d:
- 3d:98:7c:5e:f6:be:16:68:a0:5e:ae:0b:23:fc:5a:
- 0f:aa:22:76:2d:c9:a1:10:1d:e4:d3:44:23:90:88:
- 9f:c6:2a:e6:d7:f5:9a:b3:58:1e:2f:30:89:08:1b:
- 54:a2:b5:98:23:ec:08:77:1c:95:5d:61:d1:cb:89:
- 9c:5f:a2:4a:91:9a:ef:21:aa:49:16:08:a8:bd:61:
- 28:31:c9:74:ad:85:f6:d9:c5:b1:8b:d1:e5:10:32:
- 4d:5f:8b:20:3a:3c:49:1f:33:85:59:0d:db:cb:09:
- 75:43:69:73:fb:6b:71:7d:f0:df:c4:4c:7d:c6:a3:
- 2e:c8:95:79:cb:73:a2:8e:4e:4d:24:fb:5e:e4:04:
- be:72:1b:a6:27:2d:49:5a:99:7a:d7:5c:09:20:b7:
- 7f:94:b9:4f:f1:0d:1c:5e:88:42:1b:11:b7:e7:91:
- db:9e:6c:f4:6a:df:8c:06:98:03:ad:cc:28:ef:a5:
- 47:f3:53
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- A3:97:D6:F3:5E:A2:10:E1:AB:45:9F:3C:17:64:3C:EE:01:70:9C:CC
- Signature Algorithm: sha256WithRSAEncryption
- 18:fa:5b:75:fc:3e:7a:c7:5f:77:c7:ca:df:cf:5f:c3:12:c4:
- 40:5d:d4:32:aa:b8:6a:d7:d5:15:15:46:98:23:a5:e6:90:5b:
- 18:99:4c:e3:ad:42:a3:82:31:36:88:cd:e9:fb:c4:04:96:48:
- 8b:01:c7:8d:01:cf:5b:33:06:96:46:66:74:1d:4f:ed:c1:b6:
- b9:b4:0d:61:cc:63:7e:d7:2e:77:8c:96:1c:2a:23:68:6b:85:
- 57:76:70:33:13:fe:e1:4f:a6:23:77:18:fa:1a:8c:e8:bd:65:
- c9:cf:3f:f4:c9:17:dc:eb:c7:bc:c0:04:2e:2d:46:2f:69:66:
- c3:1b:8f:fe:ec:3e:d3:ca:94:bf:76:0a:25:0d:a9:7b:02:1c:
- a9:d0:3b:5f:0b:c0:81:3a:3d:64:e1:bf:a7:2d:4e:bd:4d:c4:
- d8:29:c6:22:18:d0:c5:ac:72:02:82:3f:aa:3a:a2:3a:22:97:
- 31:dd:08:63:c3:75:14:b9:60:28:2d:5b:68:e0:16:a9:66:82:
- 23:51:f5:eb:53:d8:31:9b:7b:e9:b7:9d:4b:eb:88:16:cf:f9:
- 5d:38:8a:49:30:8f:ed:f1:eb:19:f4:77:1a:31:18:4d:67:54:
- 6c:2f:6f:65:f9:db:3d:ec:21:ec:5e:f4:f4:8b:ca:60:65:54:
- d1:71:64:f4:f9:a6:a3:81:33:36:33:71:f0:a4:78:5f:4e:ad:
- 83:21:de:34:49:8d:e8:59:ac:9d:f2:76:5a:36:f2:13:f4:af:
- e0:09:c7:61:2a:6c:f7:e0:9d:ae:bb:86:4a:28:6f:2e:ee:b4:
- 79:cd:90:33:c3:b3:76:fa:f5:f0:6c:9d:01:90:fa:9e:90:f6:
- 9c:72:cf:47:da:c3:1f:e4:35:20:53:f2:54:d1:df:61:83:a6:
- 02:e2:25:38:de:85:32:2d:5e:73:90:52:5d:42:c4:ce:3d:4b:
- e1:f9:19:84:1d:d5:a2:50:cc:41:fb:41:14:c3:bd:d6:c9:5a:
- a3:63:66:02:80:bd:05:3a:3b:47:9c:ec:00:26:4c:f5:88:51:
- bf:a8:23:7f:18:07:b0:0b:ed:8b:26:a1:64:d3:61:4a:eb:5c:
- 9f:de:b3:af:67:03:b3:1f:dd:6d:5d:69:68:69:ab:5e:3a:ec:
- 7c:69:bc:c7:3b:85:4e:9e:15:b9:b4:15:4f:c3:95:7a:58:d7:
- c9:6c:e9:6c:b9:f3:29:63:5e:b4:2c:f0:2d:3d:ed:5a:65:e0:
- a9:5b:40:c2:48:99:81:6d:9e:1f:06:2a:3c:12:b4:8b:0f:9b:
- a2:24:f0:a6:8d:d6:7a:e0:4b:b6:64:96:63:95:84:c2:4a:cd:
- 1c:2e:24:87:33:60:e5:c3
-SHA1 Fingerprint=1B:8E:EA:57:96:29:1A:C9:39:EA:B8:0A:81:1A:73:73:C0:93:79:67
diff --git a/luni/src/main/files/cacerts/56b8a0b6.0 b/luni/src/main/files/cacerts/56b8a0b6.0
deleted file mode 100644
index d82bc227..0000000
--- a/luni/src/main/files/cacerts/56b8a0b6.0
+++ /dev/null
@@ -1,82 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2VMOc
-UktUUlVTVCBFbGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sx
-c8SxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xS
-S1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kg
-SGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwHhcNMDUxMTA3MTAwNzU3
-WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBFbGVrdHJv
-bmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJU
-UjEPMA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSw
-bGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWe
-LiAoYykgS2FzxLFtIDIwMDUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
-AQCpNn7DkUNMwxmYCMjHWHtPFoylzkkBH3MOrHUTpvqeLCDe2JAOCtFp0if7qnef
-J1Il4std2NiDUBd9irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKIx+XlZEdh
-R3n9wFHxwZnn3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJ
-Qv2gQrSdiVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGX
-JHpsmxcPbe9TmJEr5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1p
-zpwACPI2/z7woQ8arBT9pmAPAgMBAAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Zz58S
-Fq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8GA1UdEwEB/wQFMAMBAf8wDQYJ
-KoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/nttRbj2hWyfIvwq
-ECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWolKMiVW4XSf/SKfE4
-Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbcoCb6dxriJNoaN+BnrdFz
-gw2lGh1uEpJ+hGIAF728JRhX8tepb1mIvDS3LoV4nZbcFMMsilKbloxSZj2GFotH
-uFEJjOp9zYhys2AzsfAKRO8P9Qk3iCQOLGsgOqL6EfJANZxEaGM7rDNvY7wsu/LS
-y3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9Rnuk5UrbnBEI=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: CN=T\xC3\x9CRKTRUST Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xC4\xB1c\xC4\xB1s\xC4\xB1, C=TR, L=Ankara, O=T\xC3\x9CRKTRUST Bilgi \xC4\xB0leti\xC5\x9Fim ve Bili\xC5\x9Fim G\xC3\xBCvenli\xC4\x9Fi Hizmetleri A.\xC5\x9E. (c) Kas\xC4\xB1m 2005
- Validity
- Not Before: Nov 7 10:07:57 2005 GMT
- Not After : Sep 16 10:07:57 2015 GMT
- Subject: CN=T\xC3\x9CRKTRUST Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xC4\xB1c\xC4\xB1s\xC4\xB1, C=TR, L=Ankara, O=T\xC3\x9CRKTRUST Bilgi \xC4\xB0leti\xC5\x9Fim ve Bili\xC5\x9Fim G\xC3\xBCvenli\xC4\x9Fi Hizmetleri A.\xC5\x9E. (c) Kas\xC4\xB1m 2005
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:a9:36:7e:c3:91:43:4c:c3:19:98:08:c8:c7:58:
- 7b:4f:16:8c:a5:ce:49:01:1f:73:0e:ac:75:13:a6:
- fa:9e:2c:20:de:d8:90:0e:0a:d1:69:d2:27:fb:aa:
- 77:9f:27:52:25:e2:cb:5d:d8:d8:83:50:17:7d:8a:
- b5:82:3f:04:8e:b4:d5:f0:49:a7:64:b7:1e:2e:5f:
- 20:9c:50:75:4f:af:e1:b5:41:14:f4:98:92:88:c7:
- e5:e5:64:47:61:47:79:fd:c0:51:f1:c1:99:e7:dc:
- ce:6a:fb:af:b5:01:30:dc:46:1c:ef:8a:ec:95:ef:
- dc:ff:af:10:1c:eb:9d:d8:b0:aa:6a:85:18:0d:17:
- c9:3e:bf:f1:9b:d0:09:89:42:fd:a0:42:b4:9d:89:
- 51:55:29:cf:1b:70:bc:84:54:ad:c1:13:1f:98:f4:
- 2e:76:60:8b:5d:3f:9a:ad:ca:0c:bf:a7:56:5b:8f:
- 77:b8:d5:9e:79:49:92:3f:e0:f1:97:24:7a:6c:9b:
- 17:0f:6d:ef:53:98:91:2b:e4:0f:be:59:79:07:78:
- bb:97:95:f4:9f:69:d4:58:87:0a:a9:e3:cc:b6:58:
- 19:9f:26:21:b1:c4:59:8d:b2:41:75:c0:ad:69:ce:
- 9c:00:08:f2:36:ff:3e:f0:a1:0f:1a:ac:14:fd:a6:
- 60:0f
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- D9:37:B3:4E:05:FD:D9:CF:9F:12:16:AE:B6:89:2F:EB:25:3A:88:1C
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- Signature Algorithm: sha1WithRSAEncryption
- 72:60:96:b7:c9:dc:d8:29:5e:23:85:5f:b2:b3:2d:76:fb:88:
- d7:17:fe:7b:6d:45:b8:f6:85:6c:9f:22:fc:2a:10:22:ec:aa:
- b9:30:f6:ab:58:d6:39:10:31:99:29:00:bd:89:66:41:fb:74:
- de:91:c1:18:0b:9f:b5:61:cb:9d:3a:be:f5:a8:94:a3:22:55:
- 6e:17:49:ff:d2:29:f1:38:26:5d:ef:a5:aa:3a:f9:71:7b:e6:
- da:58:1d:d3:74:c2:01:fa:3e:69:58:5f:ad:cb:68:be:14:2e:
- 9b:6c:c0:b6:dc:a0:26:fa:77:1a:e2:24:da:1a:37:e0:67:ad:
- d1:73:83:0d:a5:1a:1d:6e:12:92:7e:84:62:00:17:bd:bc:25:
- 18:57:f2:d7:a9:6f:59:88:bc:34:b7:2e:85:78:9d:96:dc:14:
- c3:2c:8a:52:9b:96:8c:52:66:3d:86:16:8b:47:b8:51:09:8c:
- ea:7d:cd:88:72:b3:60:33:b1:f0:0a:44:ef:0f:f5:09:37:88:
- 24:0e:2c:6b:20:3a:a2:fa:11:f2:40:35:9c:44:68:63:3b:ac:
- 33:6f:63:bc:2c:bb:f2:d2:cb:76:7d:7d:88:d8:1d:c8:05:1d:
- 6e:bc:94:a9:66:8c:77:71:c7:fa:91:fa:2f:51:9e:e9:39:52:
- b6:e7:04:42
-SHA1 Fingerprint=B4:35:D4:E1:11:9D:1C:66:90:A7:49:EB:B3:94:BD:63:7B:A7:82:B7
diff --git a/luni/src/main/files/cacerts/57692373.0 b/luni/src/main/files/cacerts/57692373.0
deleted file mode 100644
index 29f9199..0000000
--- a/luni/src/main/files/cacerts/57692373.0
+++ /dev/null
@@ -1,81 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEW
-MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFs
-IENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQG
-EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3Qg
-R2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDvPE1A
-PRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/NTL8
-Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hL
-TytCOb1kLUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL
-5mkWRxHCJ1kDs6ZgwiFAVvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7
-S4wMcoKK+xfNAGw6EzywhIdLFnopsk/bHdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe
-2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
-FHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNHK266ZUap
-EBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6td
-EPx7srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv
-/NgdRN3ggX+d6YvhZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywN
-A0ZF66D0f0hExghAzN4bcLUprbqLOzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0
-abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkCx1YAzUm5s2x7UwQa4qjJqhIF
-I8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqFH4z1Ir+rzoPz
-4iIprn2DQKi6bA==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA 2
- Validity
- Not Before: Mar 4 05:00:00 2004 GMT
- Not After : Mar 4 05:00:00 2019 GMT
- Subject: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA 2
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:ef:3c:4d:40:3d:10:df:3b:53:00:e1:67:fe:94:
- 60:15:3e:85:88:f1:89:0d:90:c8:28:23:99:05:e8:
- 2b:20:9d:c6:f3:60:46:d8:c1:b2:d5:8c:31:d9:dc:
- 20:79:24:81:bf:35:32:fc:63:69:db:b1:2a:6b:ee:
- 21:58:f2:08:e9:78:cb:6f:cb:fc:16:52:c8:91:c4:
- ff:3d:73:de:b1:3e:a7:c2:7d:66:c1:f5:7e:52:24:
- 1a:e2:d5:67:91:d0:82:10:d7:78:4b:4f:2b:42:39:
- bd:64:2d:40:a0:b0:10:d3:38:48:46:88:a1:0c:bb:
- 3a:33:2a:62:98:fb:00:9d:13:59:7f:6f:3b:72:aa:
- ee:a6:0f:86:f9:05:61:ea:67:7f:0c:37:96:8b:e6:
- 69:16:47:11:c2:27:59:03:b3:a6:60:c2:21:40:56:
- fa:a0:c7:7d:3a:13:e3:ec:57:c7:b3:d6:ae:9d:89:
- 80:f7:01:e7:2c:f6:96:2b:13:0d:79:2c:d9:c0:e4:
- 86:7b:4b:8c:0c:72:82:8a:fb:17:cd:00:6c:3a:13:
- 3c:b0:84:87:4b:16:7a:29:b2:4f:db:1d:d4:0b:f3:
- 66:37:bd:d8:f6:57:bb:5e:24:7a:b8:3c:8b:b9:fa:
- 92:1a:1a:84:9e:d8:74:8f:aa:1b:7f:5e:f4:fe:45:
- 22:21
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- 71:38:36:F2:02:31:53:47:2B:6E:BA:65:46:A9:10:15:58:20:05:09
- X509v3 Authority Key Identifier:
- keyid:71:38:36:F2:02:31:53:47:2B:6E:BA:65:46:A9:10:15:58:20:05:09
-
- X509v3 Key Usage: critical
- Digital Signature, Certificate Sign, CRL Sign
- Signature Algorithm: sha1WithRSAEncryption
- 03:f7:b5:2b:ab:5d:10:fc:7b:b2:b2:5e:ac:9b:0e:7e:53:78:
- 59:3e:42:04:fe:75:a3:ad:ac:81:4e:d7:02:8b:5e:c4:2d:c8:
- 52:76:c7:2c:1f:fc:81:32:98:d1:4b:c6:92:93:33:35:31:2f:
- fc:d8:1d:44:dd:e0:81:7f:9d:e9:8b:e1:64:91:62:0b:39:08:
- 8c:ac:74:9d:59:d9:7a:59:52:97:11:b9:16:7b:6f:45:d3:96:
- d9:31:7d:02:36:0f:9c:3b:6e:cf:2c:0d:03:46:45:eb:a0:f4:
- 7f:48:44:c6:08:40:cc:de:1b:70:b5:29:ad:ba:8b:3b:34:65:
- 75:1b:71:21:1d:2c:14:0a:b0:96:95:b8:d6:ea:f2:65:fb:29:
- ba:4f:ea:91:93:74:69:b6:f2:ff:e1:1a:d0:0c:d1:76:85:cb:
- 8a:25:bd:97:5e:2c:6f:15:99:26:e7:b6:29:ff:22:ec:c9:02:
- c7:56:00:cd:49:b9:b3:6c:7b:53:04:1a:e2:a8:c9:aa:12:05:
- 23:c2:ce:e7:bb:04:02:cc:c0:47:a2:e4:c4:29:2f:5b:45:57:
- 89:51:ee:3c:eb:52:08:ff:07:35:1e:9f:35:6a:47:4a:56:98:
- d1:5a:85:1f:8c:f5:22:bf:ab:ce:83:f3:e2:22:29:ae:7d:83:
- 40:a8:ba:6c
-SHA1 Fingerprint=A9:E9:78:08:14:37:58:88:F2:05:19:B0:6D:2B:0D:2B:60:16:90:7D
diff --git a/luni/src/main/files/cacerts/58a44af1.0 b/luni/src/main/files/cacerts/58a44af1.0
deleted file mode 100644
index b673980..0000000
--- a/luni/src/main/files/cacerts/58a44af1.0
+++ /dev/null
@@ -1,87 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYT
-AkZSMQ8wDQYDVQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQ
-TS9TR0ROMQ4wDAYDVQQLEwVEQ1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG
-9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMB4XDTAyMTIxMzE0MjkyM1oXDTIw
-MTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQIEwZGcmFuY2UxDjAM
-BgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NTSTEO
-MAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2
-LmZyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaI
-s9z4iPf930Pfeo2aSVz2TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2
-xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCWSo7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4
-u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYyHF2fYPepraX/z9E0+X1b
-F8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNdfrGoRpAx
-Vs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGd
-PDPQtQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNV
-HSAEDjAMMAoGCCqBegF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAx
-NjAfBgNVHSMEGDAWgBSjBS8YYFDCiQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUF
-AAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RKq89toB9RlPhJy3Q2FLwV3duJ
-L92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3QMZsyK10XZZOY
-YLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg
-Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2a
-NjSaTFR+FwNIlQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R
-0982gaEbeC9xs/FZTEYYKKuF0mBWWg==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 245102874772 (0x3911451094)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=FR, ST=France, L=Paris, O=PM/SGDN, OU=DCSSI, CN=IGC/A/emailAddress=igca@sgdn.pm.gouv.fr
- Validity
- Not Before: Dec 13 14:29:23 2002 GMT
- Not After : Oct 17 14:29:22 2020 GMT
- Subject: C=FR, ST=France, L=Paris, O=PM/SGDN, OU=DCSSI, CN=IGC/A/emailAddress=igca@sgdn.pm.gouv.fr
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:b2:1f:d1:d0:62:c5:33:3b:c0:04:86:88:b3:dc:
- f8:88:f7:fd:df:43:df:7a:8d:9a:49:5c:f6:4e:aa:
- cc:1c:b9:a1:eb:27:89:f2:46:e9:3b:4a:71:d5:1d:
- 8e:2d:cf:e6:ad:ab:63:50:c7:54:0b:6e:12:c9:90:
- 36:c6:d8:2f:da:91:aa:68:c5:72:fe:17:0a:b2:17:
- 7e:79:b5:32:88:70:ca:70:c0:96:4a:8e:e4:55:cd:
- 1d:27:94:bf:ce:72:2a:ec:5c:f9:73:20:fe:bd:f7:
- 2e:89:67:b8:bb:47:73:12:f7:d1:35:69:3a:f2:0a:
- b9:ae:ff:46:42:46:a2:bf:a1:85:1a:f9:bf:e4:ff:
- 49:85:f7:a3:70:86:32:1c:5d:9f:60:f7:a9:ad:a5:
- ff:cf:d1:34:f9:7d:5b:17:c6:dc:d6:0e:28:6b:c2:
- dd:f1:f5:33:68:9d:4e:fc:87:7c:36:12:d6:a3:80:
- e8:43:0d:55:61:94:ea:64:37:47:ea:77:ca:d0:b2:
- 58:05:c3:5d:7e:b1:a8:46:90:31:56:ce:70:2a:96:
- b2:30:b8:77:e6:79:c0:bd:29:3b:fd:94:77:4c:bd:
- 20:cd:41:25:e0:2e:c7:1b:bb:ee:a4:04:41:d2:5d:
- ad:12:6a:8a:9b:47:fb:c9:dd:46:40:e1:9d:3c:33:
- d0:b5
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage:
- Non Repudiation, Certificate Sign, CRL Sign
- X509v3 Certificate Policies:
- Policy: 1.2.250.1.121.1.1.1
-
- X509v3 Subject Key Identifier:
- A3:05:2F:18:60:50:C2:89:0A:DD:2B:21:4F:FF:8E:4E:A8:30:31:36
- X509v3 Authority Key Identifier:
- keyid:A3:05:2F:18:60:50:C2:89:0A:DD:2B:21:4F:FF:8E:4E:A8:30:31:36
-
- Signature Algorithm: sha1WithRSAEncryption
- 05:dc:26:d8:fa:77:15:44:68:fc:2f:66:3a:74:e0:5d:e4:29:
- ff:06:07:13:84:4a:ab:cf:6d:a0:1f:51:94:f8:49:cb:74:36:
- 14:bc:15:dd:db:89:2f:dd:8f:a0:5d:7c:f5:12:eb:9f:9e:38:
- a4:47:cc:b3:96:d9:be:9c:25:ab:03:7e:33:0f:95:81:0d:fd:
- 16:e0:88:be:37:f0:6c:5d:d0:31:9b:32:2b:5d:17:65:93:98:
- 60:bc:6e:8f:b1:a8:3c:1e:d9:1c:f3:a9:26:42:f9:64:1d:c2:
- e7:92:f6:f4:1e:5a:aa:19:52:5d:af:e8:a2:f7:60:a0:f6:8d:
- f0:89:f5:6e:e0:0a:05:01:95:c9:8b:20:0a:ba:5a:fc:9a:2c:
- 3c:bd:c3:b7:c9:5d:78:25:05:3f:56:14:9b:0c:da:fb:3a:48:
- fe:97:69:5e:ca:10:86:f7:4e:96:04:08:4d:ec:b0:be:5d:dc:
- 3b:8e:4f:c1:fd:9a:36:34:9a:4c:54:7e:17:03:48:95:08:11:
- 1c:07:6f:85:08:7e:5d:4d:c4:9d:db:fb:ae:ce:b2:d1:b3:b8:
- 83:6c:1d:b2:b3:79:f1:d8:70:99:7e:f0:13:02:ce:5e:dd:51:
- d3:df:36:81:a1:1b:78:2f:71:b3:f1:59:4c:46:18:28:ab:85:
- d2:60:56:5a
-SHA1 Fingerprint=60:D6:89:74:B5:C2:65:9E:8A:0F:C1:88:7C:88:D2:46:69:1B:18:2C
diff --git a/luni/src/main/files/cacerts/594f1775.0 b/luni/src/main/files/cacerts/594f1775.0
deleted file mode 100644
index a34822a..0000000
--- a/luni/src/main/files/cacerts/594f1775.0
+++ /dev/null
@@ -1,72 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
-UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy
-dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1
-MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx
-dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B
-AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f
-BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A
-cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC
-AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ
-MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm
-aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw
-ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj
-IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF
-MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
-A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
-7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh
-1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 903804111 (0x35def4cf)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=US, O=Equifax, OU=Equifax Secure Certificate Authority
- Validity
- Not Before: Aug 22 16:41:51 1998 GMT
- Not After : Aug 22 16:41:51 2018 GMT
- Subject: C=US, O=Equifax, OU=Equifax Secure Certificate Authority
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (1024 bit)
- Modulus:
- 00:c1:5d:b1:58:67:08:62:ee:a0:9a:2d:1f:08:6d:
- 91:14:68:98:0a:1e:fe:da:04:6f:13:84:62:21:c3:
- d1:7c:ce:9f:05:e0:b8:01:f0:4e:34:ec:e2:8a:95:
- 04:64:ac:f1:6b:53:5f:05:b3:cb:67:80:bf:42:02:
- 8e:fe:dd:01:09:ec:e1:00:14:4f:fc:fb:f0:0c:dd:
- 43:ba:5b:2b:e1:1f:80:70:99:15:57:93:16:f1:0f:
- 97:6a:b7:c2:68:23:1c:cc:4d:59:30:ac:51:1e:3b:
- af:2b:d6:ee:63:45:7b:c5:d9:5f:50:d2:e3:50:0f:
- 3a:88:e7:bf:14:fd:e0:c7:b9
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 CRL Distribution Points:
-
- Full Name:
- DirName: C = US, O = Equifax, OU = Equifax Secure Certificate Authority, CN = CRL1
-
- X509v3 Private Key Usage Period:
- Not After: Aug 22 16:41:51 2018 GMT
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- X509v3 Authority Key Identifier:
- keyid:48:E6:68:F9:2B:D2:B2:95:D7:47:D8:23:20:10:4F:33:98:90:9F:D4
-
- X509v3 Subject Key Identifier:
- 48:E6:68:F9:2B:D2:B2:95:D7:47:D8:23:20:10:4F:33:98:90:9F:D4
- X509v3 Basic Constraints:
- CA:TRUE
- 1.2.840.113533.7.65.0:
- 0...V3.0c....
- Signature Algorithm: sha1WithRSAEncryption
- 58:ce:29:ea:fc:f7:de:b5:ce:02:b9:17:b5:85:d1:b9:e3:e0:
- 95:cc:25:31:0d:00:a6:92:6e:7f:b6:92:63:9e:50:95:d1:9a:
- 6f:e4:11:de:63:85:6e:98:ee:a8:ff:5a:c8:d3:55:b2:66:71:
- 57:de:c0:21:eb:3d:2a:a7:23:49:01:04:86:42:7b:fc:ee:7f:
- a2:16:52:b5:67:67:d3:40:db:3b:26:58:b2:28:77:3d:ae:14:
- 77:61:d6:fa:2a:66:27:a0:0d:fa:a7:73:5c:ea:70:f1:94:21:
- 65:44:5f:fa:fc:ef:29:68:a9:a2:87:79:ef:79:ef:4f:ac:07:
- 77:38
-SHA1 Fingerprint=D2:32:09:AD:23:D3:14:23:21:74:E4:0D:7F:9D:62:13:97:86:63:3A
diff --git a/luni/src/main/files/cacerts/5a250ea7.0 b/luni/src/main/files/cacerts/5a250ea7.0
deleted file mode 100644
index 4561d51..0000000
--- a/luni/src/main/files/cacerts/5a250ea7.0
+++ /dev/null
@@ -1,120 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFdDCCA1ygAwIBAgIEAJiiOTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJO
-TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFh
-dCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQSAtIEczMB4XDTEzMTExNDExMjg0MloX
-DTI4MTExMzIzMDAwMFowWjELMAkGA1UEBhMCTkwxHjAcBgNVBAoMFVN0YWF0IGRl
-ciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5lZGVybGFuZGVuIFJv
-b3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL4yolQP
-cPssXFnrbMSkUeiFKrPMSjTysF/zDsccPVMeiAho2G89rcKezIJnByeHaHE6n3WW
-IkYFsO2tx1ueKt6c/DrGlaf1F2cY5y9JCAxcz+bMNO14+1Cx3Gsy8KL+tjzk7FqX
-xz8ecAgwoNzFs21v0IJyEavSgWhZghe3eJJg+szeP4TrjTgzkApyI/o1zCZxMdFy
-KJLZWyNtZrVtB0LrpjPOktvA9mxjeM3KTj215VKb8b475lRgsGYeCasH/lSJEULR
-9yS6YHgamPfJEf0WwTUaVHXvQ9Plrk7O53vDxk5hUUurmkVLoR9BvUhTFXFkC4az
-5S6+zqQbwSmEorXLCCN2QyIkHxcE1G6cxvx/K2Ya7Irl1s9N9WMJtxU51nus6+N8
-6U78dULI7ViVDAZCopz35HCz33JvWjdAidiFpNfxC95DGdRKWCyMijmev4SH8RY7
-Ngzp07TKbBlBUgmhHbBqv4LvcFEhMtwFdozL92TkA1CvjJFnq8Xy7ljY3r735zHP
-bMk7ccHViLVlvMDoFxcHErVc0qsgk7TmgoNwNsXNo42ti+yjwUOH5kPiNL6VizXt
-BznaqB16nzaeErAMZRKQFWDZJkBE41ZgpRDUajz9QdwOWke275dhdU/Z/seyHdTt
-XUmzqWrLZoQT1Vyg3N9udwbRcXXIV2+vD3dbAgMBAAGjQjBAMA8GA1UdEwEB/wQF
-MAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRUrfrHkleuyjWcLhL75Lpd
-INyUVzANBgkqhkiG9w0BAQsFAAOCAgEAMJmdBTLIXg47mAE6iqTnB/d6+Oea31BD
-U5cqPco8R5gu4RV78ZLzYdqQJRZlwJ9UXQ4DO1t3ApyEtg2YXzTdO2PCwyiBwpwp
-LiniyMMB8jPqKqrMCQj3ZWfGzd/TtiunvczRDnBfuCPRy5FOCvTIeuXZYzbB1N/8
-Ipf3YF3qKS9Ysr1YvY2WTxB1v0h7PVGHoTx0IsL8B3+A3MSs/mrBcDCw6Y5p4ixp
-gZQJut3+TcCDjJRYwEYgr5wfAvg1VUkvRtTA8KCWAg8zxXHzniN9lLf9OtMJgwYh
-/WA9rjLA0u6NpvDntIJ8CsxwyXmA+P5M9zWEGYox+wrZ13+b8KKaa8MFSu1BYBQw
-0aoRQm7TIwIEC8Zl3d1Sd9qBa7Ko+gE4uZbqKmxnl4mUnrzhVNXkanjvSr0rmj1A
-fsbAddJu+2gw7OyLnflJNZoaLNmzlTnVHpL3prllL+U9bTpITAjc5CgSKL59NVzq
-4BZ+Extq1z7XnvwtdbLBFNUjA9tbbws+eC8N3jONFrdI54OagQ97wUNNVQQXOEpR
-1VmiiXTTn74eS9fGbbeIJG9gkaSChVtWQbzQRKtqE77RLFi3EjNYsjdj3BP1lB0/
-QFH1T/U67cjF68IeHRaVesd+QnGTbksVtzDfqu1XhUisHWrdOWnk4Xl4vs4Fv6EM
-94B7IWcnMFk=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 10003001 (0x98a239)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=NL, O=Staat der Nederlanden, CN=Staat der Nederlanden Root CA - G3
- Validity
- Not Before: Nov 14 11:28:42 2013 GMT
- Not After : Nov 13 23:00:00 2028 GMT
- Subject: C=NL, O=Staat der Nederlanden, CN=Staat der Nederlanden Root CA - G3
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:be:32:a2:54:0f:70:fb:2c:5c:59:eb:6c:c4:a4:
- 51:e8:85:2a:b3:cc:4a:34:f2:b0:5f:f3:0e:c7:1c:
- 3d:53:1e:88:08:68:d8:6f:3d:ad:c2:9e:cc:82:67:
- 07:27:87:68:71:3a:9f:75:96:22:46:05:b0:ed:ad:
- c7:5b:9e:2a:de:9c:fc:3a:c6:95:a7:f5:17:67:18:
- e7:2f:49:08:0c:5c:cf:e6:cc:34:ed:78:fb:50:b1:
- dc:6b:32:f0:a2:fe:b6:3c:e4:ec:5a:97:c7:3f:1e:
- 70:08:30:a0:dc:c5:b3:6d:6f:d0:82:72:11:ab:d2:
- 81:68:59:82:17:b7:78:92:60:fa:cc:de:3f:84:eb:
- 8d:38:33:90:0a:72:23:fa:35:cc:26:71:31:d1:72:
- 28:92:d9:5b:23:6d:66:b5:6d:07:42:eb:a6:33:ce:
- 92:db:c0:f6:6c:63:78:cd:ca:4e:3d:b5:e5:52:9b:
- f1:be:3b:e6:54:60:b0:66:1e:09:ab:07:fe:54:89:
- 11:42:d1:f7:24:ba:60:78:1a:98:f7:c9:11:fd:16:
- c1:35:1a:54:75:ef:43:d3:e5:ae:4e:ce:e7:7b:c3:
- c6:4e:61:51:4b:ab:9a:45:4b:a1:1f:41:bd:48:53:
- 15:71:64:0b:86:b3:e5:2e:be:ce:a4:1b:c1:29:84:
- a2:b5:cb:08:23:76:43:22:24:1f:17:04:d4:6e:9c:
- c6:fc:7f:2b:66:1a:ec:8a:e5:d6:cf:4d:f5:63:09:
- b7:15:39:d6:7b:ac:eb:e3:7c:e9:4e:fc:75:42:c8:
- ed:58:95:0c:06:42:a2:9c:f7:e4:70:b3:df:72:6f:
- 5a:37:40:89:d8:85:a4:d7:f1:0b:de:43:19:d4:4a:
- 58:2c:8c:8a:39:9e:bf:84:87:f1:16:3b:36:0c:e9:
- d3:b4:ca:6c:19:41:52:09:a1:1d:b0:6a:bf:82:ef:
- 70:51:21:32:dc:05:76:8c:cb:f7:64:e4:03:50:af:
- 8c:91:67:ab:c5:f2:ee:58:d8:de:be:f7:e7:31:cf:
- 6c:c9:3b:71:c1:d5:88:b5:65:bc:c0:e8:17:17:07:
- 12:b5:5c:d2:ab:20:93:b4:e6:82:83:70:36:c5:cd:
- a3:8d:ad:8b:ec:a3:c1:43:87:e6:43:e2:34:be:95:
- 8b:35:ed:07:39:da:a8:1d:7a:9f:36:9e:12:b0:0c:
- 65:12:90:15:60:d9:26:40:44:e3:56:60:a5:10:d4:
- 6a:3c:fd:41:dc:0e:5a:47:b6:ef:97:61:75:4f:d9:
- fe:c7:b2:1d:d4:ed:5d:49:b3:a9:6a:cb:66:84:13:
- d5:5c:a0:dc:df:6e:77:06:d1:71:75:c8:57:6f:af:
- 0f:77:5b
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- 54:AD:FA:C7:92:57:AE:CA:35:9C:2E:12:FB:E4:BA:5D:20:DC:94:57
- Signature Algorithm: sha256WithRSAEncryption
- 30:99:9d:05:32:c8:5e:0e:3b:98:01:3a:8a:a4:e7:07:f7:7a:
- f8:e7:9a:df:50:43:53:97:2a:3d:ca:3c:47:98:2e:e1:15:7b:
- f1:92:f3:61:da:90:25:16:65:c0:9f:54:5d:0e:03:3b:5b:77:
- 02:9c:84:b6:0d:98:5f:34:dd:3b:63:c2:c3:28:81:c2:9c:29:
- 2e:29:e2:c8:c3:01:f2:33:ea:2a:aa:cc:09:08:f7:65:67:c6:
- cd:df:d3:b6:2b:a7:bd:cc:d1:0e:70:5f:b8:23:d1:cb:91:4e:
- 0a:f4:c8:7a:e5:d9:63:36:c1:d4:df:fc:22:97:f7:60:5d:ea:
- 29:2f:58:b2:bd:58:bd:8d:96:4f:10:75:bf:48:7b:3d:51:87:
- a1:3c:74:22:c2:fc:07:7f:80:dc:c4:ac:fe:6a:c1:70:30:b0:
- e9:8e:69:e2:2c:69:81:94:09:ba:dd:fe:4d:c0:83:8c:94:58:
- c0:46:20:af:9c:1f:02:f8:35:55:49:2f:46:d4:c0:f0:a0:96:
- 02:0f:33:c5:71:f3:9e:23:7d:94:b7:fd:3a:d3:09:83:06:21:
- fd:60:3d:ae:32:c0:d2:ee:8d:a6:f0:e7:b4:82:7c:0a:cc:70:
- c9:79:80:f8:fe:4c:f7:35:84:19:8a:31:fb:0a:d9:d7:7f:9b:
- f0:a2:9a:6b:c3:05:4a:ed:41:60:14:30:d1:aa:11:42:6e:d3:
- 23:02:04:0b:c6:65:dd:dd:52:77:da:81:6b:b2:a8:fa:01:38:
- b9:96:ea:2a:6c:67:97:89:94:9e:bc:e1:54:d5:e4:6a:78:ef:
- 4a:bd:2b:9a:3d:40:7e:c6:c0:75:d2:6e:fb:68:30:ec:ec:8b:
- 9d:f9:49:35:9a:1a:2c:d9:b3:95:39:d5:1e:92:f7:a6:b9:65:
- 2f:e5:3d:6d:3a:48:4c:08:dc:e4:28:12:28:be:7d:35:5c:ea:
- e0:16:7e:13:1b:6a:d7:3e:d7:9e:fc:2d:75:b2:c1:14:d5:23:
- 03:db:5b:6f:0b:3e:78:2f:0d:de:33:8d:16:b7:48:e7:83:9a:
- 81:0f:7b:c1:43:4d:55:04:17:38:4a:51:d5:59:a2:89:74:d3:
- 9f:be:1e:4b:d7:c6:6d:b7:88:24:6f:60:91:a4:82:85:5b:56:
- 41:bc:d0:44:ab:6a:13:be:d1:2c:58:b7:12:33:58:b2:37:63:
- dc:13:f5:94:1d:3f:40:51:f5:4f:f5:3a:ed:c8:c5:eb:c2:1e:
- 1d:16:95:7a:c7:7e:42:71:93:6e:4b:15:b7:30:df:aa:ed:57:
- 85:48:ac:1d:6a:dd:39:69:e4:e1:79:78:be:ce:05:bf:a1:0c:
- f7:80:7b:21:67:27:30:59
-SHA1 Fingerprint=D8:EB:6B:41:51:92:59:E0:F3:E7:85:00:C0:3D:B6:88:97:C9:EE:FC
diff --git a/luni/src/main/files/cacerts/5a3f0ff8.0 b/luni/src/main/files/cacerts/5a3f0ff8.0
deleted file mode 100644
index 0c27347..0000000
--- a/luni/src/main/files/cacerts/5a3f0ff8.0
+++ /dev/null
@@ -1,88 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCB
-gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
-A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV
-BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEyMDEwMDAw
-MDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl
-YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P
-RE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3
-UcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI
-2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8
-Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp
-+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+
-DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O
-nKVIrLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW
-/zAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6g
-PKA6hjhodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9u
-QXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOCAQEAPpiem/Yb6dc5t3iuHXIY
-SdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CPOGEIqB6BCsAv
-IC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/
-RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4
-zJVSk/BwJVmcIGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5dd
-BA6+C4OmF4O5MBKgxTMVBbkN+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IB
-ZQ==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 4e:81:2d:8a:82:65:e0:0b:02:ee:3e:35:02:46:e5:3d
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=GB, ST=Greater Manchester, L=Salford, O=COMODO CA Limited, CN=COMODO Certification Authority
- Validity
- Not Before: Dec 1 00:00:00 2006 GMT
- Not After : Dec 31 23:59:59 2029 GMT
- Subject: C=GB, ST=Greater Manchester, L=Salford, O=COMODO CA Limited, CN=COMODO Certification Authority
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:d0:40:8b:8b:72:e3:91:1b:f7:51:c1:1b:54:04:
- 98:d3:a9:bf:c1:e6:8a:5d:3b:87:fb:bb:88:ce:0d:
- e3:2f:3f:06:96:f0:a2:29:50:99:ae:db:3b:a1:57:
- b0:74:51:71:cd:ed:42:91:4d:41:fe:a9:c8:d8:6a:
- 86:77:44:bb:59:66:97:50:5e:b4:d4:2c:70:44:cf:
- da:37:95:42:69:3c:30:c4:71:b3:52:f0:21:4d:a1:
- d8:ba:39:7c:1c:9e:a3:24:9d:f2:83:16:98:aa:16:
- 7c:43:9b:15:5b:b7:ae:34:91:fe:d4:62:26:18:46:
- 9a:3f:eb:c1:f9:f1:90:57:eb:ac:7a:0d:8b:db:72:
- 30:6a:66:d5:e0:46:a3:70:dc:68:d9:ff:04:48:89:
- 77:de:b5:e9:fb:67:6d:41:e9:bc:39:bd:32:d9:62:
- 02:f1:b1:a8:3d:6e:37:9c:e2:2f:e2:d3:a2:26:8b:
- c6:b8:55:43:88:e1:23:3e:a5:d2:24:39:6a:47:ab:
- 00:d4:a1:b3:a9:25:fe:0d:3f:a7:1d:ba:d3:51:c1:
- 0b:a4:da:ac:38:ef:55:50:24:05:65:46:93:34:4f:
- 2d:8d:ad:c6:d4:21:19:d2:8e:ca:05:61:71:07:73:
- 47:e5:8a:19:12:bd:04:4d:ce:4e:9c:a5:48:ac:bb:
- 26:f7
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 0B:58:E5:8B:C6:4C:15:37:A4:40:A9:30:A9:21:BE:47:36:5A:56:FF
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 CRL Distribution Points:
-
- Full Name:
- URI:http://crl.comodoca.com/COMODOCertificationAuthority.crl
-
- Signature Algorithm: sha1WithRSAEncryption
- 3e:98:9e:9b:f6:1b:e9:d7:39:b7:78:ae:1d:72:18:49:d3:87:
- e4:43:82:eb:3f:c9:aa:f5:a8:b5:ef:55:7c:21:52:65:f9:d5:
- 0d:e1:6c:f4:3e:8c:93:73:91:2e:02:c4:4e:07:71:6f:c0:8f:
- 38:61:08:a8:1e:81:0a:c0:2f:20:2f:41:8b:91:dc:48:45:bc:
- f1:c6:de:ba:76:6b:33:c8:00:2d:31:46:4c:ed:e7:9d:cf:88:
- 94:ff:33:c0:56:e8:24:86:26:b8:d8:38:38:df:2a:6b:dd:12:
- cc:c7:3f:47:17:4c:a2:c2:06:96:09:d6:db:fe:3f:3c:46:41:
- df:58:e2:56:0f:3c:3b:c1:1c:93:35:d9:38:52:ac:ee:c8:ec:
- 2e:30:4e:94:35:b4:24:1f:4b:78:69:da:f2:02:38:cc:95:52:
- 93:f0:70:25:59:9c:20:67:c4:ee:f9:8b:57:61:f4:92:76:7d:
- 3f:84:8d:55:b7:e8:e5:ac:d5:f1:f5:19:56:a6:5a:fb:90:1c:
- af:93:eb:e5:1c:d4:67:97:5d:04:0e:be:0b:83:a6:17:83:b9:
- 30:12:a0:c5:33:15:05:b9:0d:fb:c7:05:76:e3:d8:4a:8d:fc:
- 34:17:a3:c6:21:28:be:30:45:31:1e:c7:78:be:58:61:38:ac:
- 3b:e2:01:65
-SHA1 Fingerprint=66:31:BF:9E:F7:4F:9E:B6:C9:D5:A6:0C:BA:6A:BE:D1:F7:BD:EF:7B
diff --git a/luni/src/main/files/cacerts/5cf9d536.0 b/luni/src/main/files/cacerts/5cf9d536.0
deleted file mode 100644
index 2232561..0000000
--- a/luni/src/main/files/cacerts/5cf9d536.0
+++ /dev/null
@@ -1,105 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJC
-TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0
-aWZpY2F0aW9uIEF1dGhvcml0eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0
-aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAzMTkxODMzMzNaFw0yMTAzMTcxODMz
-MzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUw
-IwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVR
-dW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG
-9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Yp
-li4kVEAkOPcahdxYTMukJ0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2D
-rOpm2RgbaIr1VxqYuvXtdj182d6UajtLF8HVj71lODqV0D1VNk7feVcxKh7YWWVJ
-WCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeLYzcS19Dsw3sgQUSj7cug
-F+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWenAScOospU
-xbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCC
-Ak4wPQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVv
-dmFkaXNvZmZzaG9yZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREw
-ggENMIIBCQYJKwYBBAG+WAABMIH7MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNl
-IG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBh
-c3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFy
-ZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh
-Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYI
-KwYBBQUHAgEWFmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3T
-KbkGGew5Oanwl4Rqy+/fMIGuBgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rq
-y+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1p
-dGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYD
-VQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6tlCL
-MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSk
-fnIYj9lofFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf8
-7C9TqnN7Az10buYWnuulLsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1R
-cHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2xgI4JVrmcGmD+XcHXetwReNDWXcG31a0y
-mQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi5upZIof4l/UO/erMkqQW
-xFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi5nrQNiOK
-SnQ2+Q==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 985026699 (0x3ab6508b)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=BM, O=QuoVadis Limited, OU=Root Certification Authority, CN=QuoVadis Root Certification Authority
- Validity
- Not Before: Mar 19 18:33:33 2001 GMT
- Not After : Mar 17 18:33:33 2021 GMT
- Subject: C=BM, O=QuoVadis Limited, OU=Root Certification Authority, CN=QuoVadis Root Certification Authority
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:bf:61:b5:95:53:ba:57:fc:fa:f2:67:0b:3a:1a:
- df:11:80:64:95:b4:d1:bc:cd:7a:cf:f6:29:96:2e:
- 24:54:40:24:38:f7:1a:85:dc:58:4c:cb:a4:27:42:
- 97:d0:9f:83:8a:c3:e4:06:03:5b:00:a5:51:1e:70:
- 04:74:e2:c1:d4:3a:ab:d7:ad:3b:07:18:05:8e:fd:
- 83:ac:ea:66:d9:18:1b:68:8a:f5:57:1a:98:ba:f5:
- ed:76:3d:7c:d9:de:94:6a:3b:4b:17:c1:d5:8f:bd:
- 65:38:3a:95:d0:3d:55:36:4e:df:79:57:31:2a:1e:
- d8:59:65:49:58:20:98:7e:ab:5f:7e:9f:e9:d6:4d:
- ec:83:74:a9:c7:6c:d8:ee:29:4a:85:2a:06:14:f9:
- 54:e6:d3:da:65:07:8b:63:37:12:d7:d0:ec:c3:7b:
- 20:41:44:a3:ed:cb:a0:17:e1:71:65:ce:1d:66:31:
- f7:76:01:19:c8:7d:03:58:b6:95:49:1d:a6:12:26:
- e8:c6:0c:76:e0:e3:66:cb:ea:5d:a6:26:ee:e5:cc:
- 5f:bd:67:a7:01:27:0e:a2:ca:54:c5:b1:7a:95:1d:
- 71:1e:4a:29:8a:03:dc:6a:45:c1:a4:19:5e:6f:36:
- cd:c3:a2:b0:b7:fe:5c:38:e2:52:bc:f8:44:43:e6:
- 90:bb
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- Authority Information Access:
- OCSP - URI:https://ocsp.quovadisoffshore.com
-
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Certificate Policies:
- Policy: 1.3.6.1.4.1.8024.0.1
- User Notice:
- Explicit Text: Reliance on the QuoVadis Root Certificate by any party assumes acceptance of the then applicable standard terms and conditions of use, certification practices, and the QuoVadis Certificate Policy.
- CPS: http://www.quovadis.bm
-
- X509v3 Subject Key Identifier:
- 8B:4B:6D:ED:D3:29:B9:06:19:EC:39:39:A9:F0:97:84:6A:CB:EF:DF
- X509v3 Authority Key Identifier:
- keyid:8B:4B:6D:ED:D3:29:B9:06:19:EC:39:39:A9:F0:97:84:6A:CB:EF:DF
- DirName:/C=BM/O=QuoVadis Limited/OU=Root Certification Authority/CN=QuoVadis Root Certification Authority
- serial:3A:B6:50:8B
-
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- Signature Algorithm: sha1WithRSAEncryption
- 8a:d4:14:b5:fe:f4:9a:92:a7:19:d4:a4:7e:72:18:8f:d9:68:
- 7c:52:24:dd:67:6f:39:7a:c4:aa:5e:3d:e2:58:b0:4d:70:98:
- 84:61:e8:1b:e3:69:18:0e:ce:fb:47:50:a0:4e:ff:f0:24:1f:
- bd:b2:ce:f5:27:fc:ec:2f:53:aa:73:7b:03:3d:74:6e:e6:16:
- 9e:eb:a5:2e:c4:bf:56:27:50:2b:62:ba:be:4b:1c:3c:55:5c:
- 41:1d:24:be:82:20:47:5d:d5:44:7e:7a:16:68:df:7d:4d:51:
- 70:78:57:1d:33:1e:fd:02:99:9c:0c:cd:0a:05:4f:c7:bb:8e:
- a4:75:fa:4a:6d:b1:80:8e:09:56:b9:9c:1a:60:fe:5d:c1:d7:
- 7a:dc:11:78:d0:d6:5d:c1:b7:d5:ad:32:99:03:3a:8a:cc:54:
- 25:39:31:81:7b:13:22:51:ba:46:6c:a1:bb:9e:fa:04:6c:49:
- 26:74:8f:d2:73:eb:cc:30:a2:e6:ea:59:22:87:f8:97:f5:0e:
- fd:ea:cc:92:a4:16:c4:52:18:ea:21:ce:b1:f1:e6:84:81:e5:
- ba:a9:86:28:f2:43:5a:5d:12:9d:ac:1e:d9:a8:e5:0a:6a:a7:
- 7f:a0:87:29:cf:f2:89:4d:d4:ec:c5:e2:e6:7a:d0:36:23:8a:
- 4a:74:36:f9
-SHA1 Fingerprint=DE:3F:40:BD:50:93:D3:9B:6C:60:F6:DA:BC:07:62:01:00:89:76:C9
diff --git a/luni/src/main/files/cacerts/5e4e69e7.0 b/luni/src/main/files/cacerts/5e4e69e7.0
deleted file mode 100644
index 43b6bda..0000000
--- a/luni/src/main/files/cacerts/5e4e69e7.0
+++ /dev/null
@@ -1,61 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjEL
-MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
-ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2ln
-biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp
-U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
-aXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjELMAkG
-A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJp
-U2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwg
-SW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2ln
-biBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5
-IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8Utpkmw4tXNherJI9/gHm
-GUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGzrl0Bp3ve
-fLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUw
-AwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJ
-aW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYj
-aHR0cDovL2xvZ28udmVyaXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMW
-kf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMDA2gAMGUCMGYhDBgmYFo4e1ZC
-4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIxAJw9SDkjOVga
-FRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 2f:80:fe:23:8c:0e:22:0f:48:67:12:28:91:87:ac:b3
- Signature Algorithm: ecdsa-with-SHA384
- Issuer: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2007 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G4
- Validity
- Not Before: Nov 5 00:00:00 2007 GMT
- Not After : Jan 18 23:59:59 2038 GMT
- Subject: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2007 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G4
- Subject Public Key Info:
- Public Key Algorithm: id-ecPublicKey
- Public-Key: (384 bit)
- pub:
- 04:a7:56:7a:7c:52:da:64:9b:0e:2d:5c:d8:5e:ac:
- 92:3d:fe:01:e6:19:4a:3d:14:03:4b:fa:60:27:20:
- d9:83:89:69:fa:54:c6:9a:18:5e:55:2a:64:de:06:
- f6:8d:4a:3b:ad:10:3c:65:3d:90:88:04:89:e0:30:
- 61:b3:ae:5d:01:a7:7b:de:7c:b2:be:ca:65:61:00:
- 86:ae:da:8f:7b:d0:89:ad:4d:1d:59:9a:41:b1:bc:
- 47:80:dc:9e:62:c3:f9
- ASN1 OID: secp384r1
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- 1.3.6.1.5.5.7.1.12:
- 0_.].[0Y0W0U..image/gif0!0.0...+..............k...j.H.,{..0%.#http://logo.verisign.com/vslogo.gif
- X509v3 Subject Key Identifier:
- B3:16:91:FD:EE:A6:6E:E4:B5:2E:49:8F:87:78:81:80:EC:E5:B1:B5
- Signature Algorithm: ecdsa-with-SHA384
- 30:65:02:30:66:21:0c:18:26:60:5a:38:7b:56:42:e0:a7:fc:
- 36:84:51:91:20:2c:76:4d:43:3d:c4:1d:84:23:d0:ac:d6:7c:
- 35:06:ce:cd:69:bd:90:0d:db:6c:48:42:1d:0e:aa:42:02:31:
- 00:9c:3d:48:39:23:39:58:1a:15:12:59:6a:9e:ef:d5:59:b2:
- 1d:52:2c:99:71:cd:c7:29:df:1b:2a:61:7b:71:d1:de:f3:c0:
- e5:0d:3a:4a:aa:2d:a7:d8:86:2a:dd:2e:10
-SHA1 Fingerprint=22:D5:D8:DF:8F:02:31:D1:8D:F7:9D:B7:CF:8A:2D:64:C9:3F:6C:3A
diff --git a/luni/src/main/files/cacerts/5f47b495.0 b/luni/src/main/files/cacerts/5f47b495.0
deleted file mode 100644
index 87cd715..0000000
--- a/luni/src/main/files/cacerts/5f47b495.0
+++ /dev/null
@@ -1,124 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UE
-BhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8w
-MzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290
-IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDkyMjExMjIwMlowazELMAkGA1UEBhMC
-SVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1
-ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENB
-MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNv
-UTufClrJwkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX
-4ay8IMKx4INRimlNAJZaby/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9
-KK3giq0itFZljoZUj5NDKd45RnijMCO6zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/
-gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1fYVEiVRvjRuPjPdA1Yprb
-rxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2oxgkg4YQ
-51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2F
-be8lEfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxe
-KF+w6D9Fz8+vm2/7hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4F
-v6MGn8i1zeQf1xcGDXqVdFUNaBr8EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbn
-fpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5jF66CyCU3nuDuP/jVo23Eek7
-jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLYiDrIn3hm7Ynz
-ezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt
-ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAL
-e3KHwGCmSUyIWOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70
-jsNjLiNmsGe+b7bAEzlgqqI0JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDz
-WochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKxK3JCaKygvU5a2hi/a5iB0P2avl4V
-SM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+Xlff1ANATIGk0k9j
-pwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC4yyX
-X04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+Ok
-fcvHlXHo2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7R
-K4X9p2jIugErsWx0Hbhzlefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btU
-ZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXemOR/qnuOf0GZvBeyqdn6/axag67XH/JJU
-LysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9vwGYT7JZVEc+NHt4bVaT
-LnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 6271844772424770508 (0x570a119742c4e3cc)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=IT, L=Milan, O=Actalis S.p.A./03358520967, CN=Actalis Authentication Root CA
- Validity
- Not Before: Sep 22 11:22:02 2011 GMT
- Not After : Sep 22 11:22:02 2030 GMT
- Subject: C=IT, L=Milan, O=Actalis S.p.A./03358520967, CN=Actalis Authentication Root CA
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:a7:c6:c4:a5:29:a4:2c:ef:e5:18:c5:b0:50:a3:
- 6f:51:3b:9f:0a:5a:c9:c2:48:38:0a:c2:1c:a0:18:
- 7f:91:b5:87:b9:40:3f:dd:1d:68:1f:08:83:d5:2d:
- 1e:88:a0:f8:8f:56:8f:6d:99:02:92:90:16:d5:5f:
- 08:6c:89:d7:e1:ac:bc:20:c2:b1:e0:83:51:8a:69:
- 4d:00:96:5a:6f:2f:c0:44:7e:a3:0e:e4:91:cd:58:
- ee:dc:fb:c7:1e:45:47:dd:27:b9:08:01:9f:a6:21:
- 1d:f5:41:2d:2f:4c:fd:28:ad:e0:8a:ad:22:b4:56:
- 65:8e:86:54:8f:93:43:29:de:39:46:78:a3:30:23:
- ba:cd:f0:7d:13:57:c0:5d:d2:83:6b:48:4c:c4:ab:
- 9f:80:5a:5b:3a:bd:c9:a7:22:3f:80:27:33:5b:0e:
- b7:8a:0c:5d:07:37:08:cb:6c:d2:7a:47:22:44:35:
- c5:cc:cc:2e:8e:dd:2a:ed:b7:7d:66:0d:5f:61:51:
- 22:55:1b:e3:46:e3:e3:3d:d0:35:62:9a:db:af:14:
- c8:5b:a1:cc:89:1b:e1:30:26:fc:a0:9b:1f:81:a7:
- 47:1f:04:eb:a3:39:92:06:9f:99:d3:bf:d3:ea:4f:
- 50:9c:19:fe:96:87:1e:3c:65:f6:a3:18:24:83:86:
- 10:e7:54:3e:a8:3a:76:24:4f:81:21:c5:e3:0f:02:
- f8:93:94:47:20:bb:fe:d4:0e:d3:68:b9:dd:c4:7a:
- 84:82:e3:53:54:79:dd:db:9c:d2:f2:07:9b:2e:b6:
- bc:3e:ed:85:6d:ef:25:11:f2:97:1a:42:61:f7:4a:
- 97:e8:8b:b1:10:07:fa:65:81:b2:a2:39:cf:f7:3c:
- ff:18:fb:c6:f1:5a:8b:59:e2:02:ac:7b:92:d0:4e:
- 14:4f:59:45:f6:0c:5e:28:5f:b0:e8:3f:45:cf:cf:
- af:9b:6f:fb:84:d3:77:5a:95:6f:ac:94:84:9e:ee:
- bc:c0:4a:8f:4a:93:f8:44:21:e2:31:45:61:50:4e:
- 10:d8:e3:35:7c:4c:19:b4:de:05:bf:a3:06:9f:c8:
- b5:cd:e4:1f:d7:17:06:0d:7a:95:74:55:0d:68:1a:
- fc:10:1b:62:64:9d:6d:e0:95:a0:c3:94:07:57:0d:
- 14:e6:bd:05:fb:b8:9f:e6:df:8b:e2:c6:e7:7e:96:
- f6:53:c5:80:34:50:28:58:f0:12:50:71:17:30:ba:
- e6:78:63:bc:f4:b2:ad:9b:2b:b2:fe:e1:39:8c:5e:
- ba:0b:20:94:de:7b:83:b8:ff:e3:56:8d:b7:11:e9:
- 3b:8c:f2:b1:c1:5d:9d:a4:0b:4c:2b:d9:b2:18:f5:
- b5:9f:4b
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 52:D8:88:3A:C8:9F:78:66:ED:89:F3:7B:38:70:94:C9:02:02:36:D0
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Authority Key Identifier:
- keyid:52:D8:88:3A:C8:9F:78:66:ED:89:F3:7B:38:70:94:C9:02:02:36:D0
-
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 0b:7b:72:87:c0:60:a6:49:4c:88:58:e6:1d:88:f7:14:64:48:
- a6:d8:58:0a:0e:4f:13:35:df:35:1d:d4:ed:06:31:c8:81:3e:
- 6a:d5:dd:3b:1a:32:ee:90:3d:11:d2:2e:f4:8e:c3:63:2e:23:
- 66:b0:67:be:6f:b6:c0:13:39:60:aa:a2:34:25:93:75:52:de:
- a7:9d:ad:0e:87:89:52:71:6a:16:3c:19:1d:83:f8:9a:29:65:
- be:f4:3f:9a:d9:f0:f3:5a:87:21:71:80:4d:cb:e0:38:9b:3f:
- bb:fa:e0:30:4d:cf:86:d3:65:10:19:18:d1:97:02:b1:2b:72:
- 42:68:ac:a0:bd:4e:5a:da:18:bf:6b:98:81:d0:fd:9a:be:5e:
- 15:48:cd:11:15:b9:c0:29:5c:b4:e8:88:f7:3e:36:ae:b7:62:
- fd:1e:62:de:70:78:10:1c:48:5b:da:bc:a4:38:ba:67:ed:55:
- 3e:5e:57:df:d4:03:40:4c:81:a4:d2:4f:63:a7:09:42:09:14:
- fc:00:a9:c2:80:73:4f:2e:c0:40:d9:11:7b:48:ea:7a:02:c0:
- d3:eb:28:01:26:58:74:c1:c0:73:22:6d:93:95:fd:39:7d:bb:
- 2a:e3:f6:82:e3:2c:97:5f:4e:1f:91:94:fa:fe:2c:a3:d8:76:
- 1a:b8:4d:b2:38:4f:9b:fa:1d:48:60:79:26:e2:f3:fd:a9:d0:
- 9a:e8:70:8f:49:7a:d6:e5:bd:0a:0e:db:2d:f3:8d:bf:eb:e3:
- a4:7d:cb:c7:95:71:e8:da:a3:7c:c5:c2:f8:74:92:04:1b:86:
- ac:a4:22:53:40:b6:ac:fe:4c:76:cf:fb:94:32:c0:35:9f:76:
- 3f:6e:e5:90:6e:a0:a6:26:a2:b8:2c:be:d1:2b:85:fd:a7:68:
- c8:ba:01:2b:b1:6c:74:1d:b8:73:95:e7:ee:b7:c7:25:f0:00:
- 4c:00:b2:7e:b6:0b:8b:1c:f3:c0:50:9e:25:b9:e0:08:de:36:
- 66:ff:37:a5:d1:bb:54:64:2c:c9:27:b5:4b:92:7e:65:ff:d3:
- 2d:e1:b9:4e:bc:7f:a4:41:21:90:41:77:a6:39:1f:ea:9e:e3:
- 9f:d0:66:6f:05:ec:aa:76:7e:bf:6b:16:a0:eb:b5:c7:fc:92:
- 54:2f:2b:11:27:25:37:78:4c:51:6a:b0:f3:cc:58:5d:14:f1:
- 6a:48:15:ff:c2:07:b6:b1:8d:0f:8e:5c:50:46:b3:3d:bf:01:
- 98:4f:b2:59:54:47:3e:34:7b:78:6d:56:93:2e:73:ea:66:28:
- 78:cd:1d:14:bf:a0:8f:2f:2e:b8:2e:8e:f2:14:8a:cc:e9:b5:
- 7c:fb:6c:9d:0c:a5:e1:96
-SHA1 Fingerprint=F3:73:B3:87:06:5A:28:84:8A:F2:F3:4A:CE:19:2B:DD:C7:8E:9C:AC
diff --git a/luni/src/main/files/cacerts/60afe812.0 b/luni/src/main/files/cacerts/60afe812.0
deleted file mode 100644
index f673145..0000000
--- a/luni/src/main/files/cacerts/60afe812.0
+++ /dev/null
@@ -1,81 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQG
-EwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3
-MDUGA1UECwwuVGFuw7pzw610dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNl
-cnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBBcmFueSAoQ2xhc3MgR29sZCkgRsWR
-dGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgxMjA2MTUwODIxWjCB
-pzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxOZXRM
-b2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlm
-aWNhdGlvbiBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNz
-IEdvbGQpIEbFkXRhbsO6c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEAxCRec75LbRTDofTjl5Bu0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrT
-lF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw/HpYzY6b7cNGbIRwXdrz
-AZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAkH3B5r9s5
-VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRG
-ILdwfzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2
-BJtr+UBdADTHLpl1neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAG
-AQH/AgEEMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2M
-U9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwWqZw8UQCgwBEIBaeZ5m8BiFRh
-bvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTtaYtOUZcTh5m2C
-+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC
-bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2F
-uLjbvrW5KfnaNwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2
-XjG4Kvte9nHfRCaexOYNkbQudZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 80544274841616 (0x49412ce40010)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=HU, L=Budapest, O=NetLock Kft., OU=Tan\xC3\xBAs\xC3\xADtv\xC3\xA1nykiad\xC3\xB3k (Certification Services), CN=NetLock Arany (Class Gold) F\xC5\x91tan\xC3\xBAs\xC3\xADtv\xC3\xA1ny
- Validity
- Not Before: Dec 11 15:08:21 2008 GMT
- Not After : Dec 6 15:08:21 2028 GMT
- Subject: C=HU, L=Budapest, O=NetLock Kft., OU=Tan\xC3\xBAs\xC3\xADtv\xC3\xA1nykiad\xC3\xB3k (Certification Services), CN=NetLock Arany (Class Gold) F\xC5\x91tan\xC3\xBAs\xC3\xADtv\xC3\xA1ny
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c4:24:5e:73:be:4b:6d:14:c3:a1:f4:e3:97:90:
- 6e:d2:30:45:1e:3c:ee:67:d9:64:e0:1a:8a:7f:ca:
- 30:ca:83:e3:20:c1:e3:f4:3a:d3:94:5f:1a:7c:5b:
- 6d:bf:30:4f:84:27:f6:9f:1f:49:bc:c6:99:0a:90:
- f2:0f:f5:7f:43:84:37:63:51:8b:7a:a5:70:fc:7a:
- 58:cd:8e:9b:ed:c3:46:6c:84:70:5d:da:f3:01:90:
- 23:fc:4e:30:a9:7e:e1:27:63:e7:ed:64:3c:a0:b8:
- c9:33:63:fe:16:90:ff:b0:b8:fd:d7:a8:c0:c0:94:
- 43:0b:b6:d5:59:a6:9e:56:d0:24:1f:70:79:af:db:
- 39:54:0d:65:75:d9:15:41:94:01:af:5e:ec:f6:8d:
- f1:ff:ad:64:fe:20:9a:d7:5c:eb:fe:a6:1f:08:64:
- a3:8b:76:55:ad:1e:3b:28:60:2e:87:25:e8:aa:af:
- 1f:c6:64:46:20:b7:70:7f:3c:de:48:db:96:53:b7:
- 39:77:e4:1a:e2:c7:16:84:76:97:5b:2f:bb:19:15:
- 85:f8:69:85:f5:99:a7:a9:f2:34:a7:a9:b6:a6:03:
- fc:6f:86:3d:54:7c:76:04:9b:6b:f9:40:5d:00:34:
- c7:2e:99:75:9d:e5:88:03:aa:4d:f8:03:d2:42:76:
- c0:1b
- Exponent: 43147 (0xa88b)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE, pathlen:4
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- CC:FA:67:93:F0:B6:B8:D0:A5:C0:1E:F3:53:FD:8C:53:DF:83:D7:96
- Signature Algorithm: sha256WithRSAEncryption
- ab:7f:ee:1c:16:a9:9c:3c:51:00:a0:c0:11:08:05:a7:99:e6:
- 6f:01:88:54:61:6e:f1:b9:18:ad:4a:ad:fe:81:40:23:94:2f:
- fb:75:7c:2f:28:4b:62:24:81:82:0b:f5:61:f1:1c:6e:b8:61:
- 38:eb:81:fa:62:a1:3b:5a:62:d3:94:65:c4:e1:e6:6d:82:f8:
- 2f:25:70:b2:21:26:c1:72:51:1f:8c:2c:c3:84:90:c3:5a:8f:
- ba:cf:f4:a7:65:a5:eb:98:d1:fb:05:b2:46:75:15:23:6a:6f:
- 85:63:30:80:f0:d5:9e:1f:29:1c:c2:6c:b0:50:59:5d:90:5b:
- 3b:a8:0d:30:cf:bf:7d:7f:ce:f1:9d:83:bd:c9:46:6e:20:a6:
- f9:61:51:ba:21:2f:7b:be:a5:15:63:a1:d4:95:87:f1:9e:b9:
- f3:89:f3:3d:85:b8:b8:db:be:b5:b9:29:f9:da:37:05:00:49:
- 94:03:84:44:e7:bf:43:31:cf:75:8b:25:d1:f4:a6:64:f5:92:
- f6:ab:05:eb:3d:e9:a5:0b:36:62:da:cc:06:5f:36:8b:b6:5e:
- 31:b8:2a:fb:5e:f6:71:df:44:26:9e:c4:e6:0d:91:b4:2e:75:
- 95:80:51:6a:4b:30:a6:b0:62:a1:93:f1:9b:d8:ce:c4:63:75:
- 3f:59:47:b1
-SHA1 Fingerprint=06:08:3F:59:3F:15:A1:04:A0:69:A4:6B:A9:03:D0:06:B7:97:09:91
diff --git a/luni/src/main/files/cacerts/63a2c897.0 b/luni/src/main/files/cacerts/63a2c897.0
deleted file mode 100644
index 46f7b14..0000000
--- a/luni/src/main/files/cacerts/63a2c897.0
+++ /dev/null
@@ -1,119 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAw
-NzEUMBIGA1UECgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJv
-b3QgQ0EgdjEwHhcNMDcxMDE4MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYD
-VQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwWVGVsaWFTb25lcmEgUm9vdCBDQSB2
-MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+6yfwIaPzaSZVfp3F
-VRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA3GV1
-7CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+X
-Z75Ljo1kB1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+
-/jXh7VB7qTCNGdMJjmhnXb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs
-81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxHoLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkm
-dtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3F0fUTPHSiXk+TT2YqGHe
-Oh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJoWjiUIMu
-sDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4
-pgd7gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fs
-slESl1MpWtTwEhDcTwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQ
-arMCpgKIv7NHfirZ1fpoeDVNAgMBAAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYD
-VR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qWDNXr+nuqF+gTEjANBgkqhkiG
-9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNmzqjMDfz1mgbl
-dxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx
-0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1Tj
-TQpgcmLNkQfWpb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBed
-Y2gea+zDTYa4EzAvXUYNR0PVG6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7
-Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpcc41teyWRyu5FrgZLAMzTsVlQ2jqI
-OylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOTJsjrDNYmiLbAJM+7
-vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2qReW
-t88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcn
-HL/EVlP6Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVx
-SK236thZiNSQvxaz2emsWWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 95:be:16:a0:f7:2e:46:f1:7b:39:82:72:fa:8b:cd:96
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: O=TeliaSonera, CN=TeliaSonera Root CA v1
- Validity
- Not Before: Oct 18 12:00:50 2007 GMT
- Not After : Oct 18 12:00:50 2032 GMT
- Subject: O=TeliaSonera, CN=TeliaSonera Root CA v1
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:c2:be:eb:27:f0:21:a3:f3:69:26:55:7e:9d:c5:
- 55:16:91:5c:fd:ef:21:bf:53:80:7a:2d:d2:91:8c:
- 63:31:f0:ec:24:f0:c3:a5:d2:72:7c:10:6d:f4:37:
- b7:e5:e6:7c:79:ea:8c:b5:82:8b:ae:48:b6:ac:00:
- dc:65:75:ec:2a:4d:5f:c1:87:f5:20:65:2b:81:a8:
- 47:3e:89:23:95:30:16:90:7f:e8:57:07:48:e7:19:
- ae:bf:45:67:b1:37:1b:06:2a:fe:de:f9:ac:7d:83:
- fb:5e:ba:e4:8f:97:67:be:4b:8e:8d:64:07:57:38:
- 55:69:34:36:3d:13:48:ef:4f:e2:d3:66:1e:a4:cf:
- 1a:b7:5e:36:33:d4:b4:06:bd:18:01:fd:77:84:50:
- 00:45:f5:8c:5d:e8:23:bc:7e:fe:35:e1:ed:50:7b:
- a9:30:8d:19:d3:09:8e:68:67:5d:bf:3c:97:18:53:
- bb:29:62:c5:ca:5e:72:c1:c7:96:d4:db:2d:a0:b4:
- 1f:69:03:ec:ea:e2:50:f1:0c:3c:f0:ac:f3:53:2d:
- f0:1c:f5:ed:6c:39:39:73:80:16:c8:52:b0:23:cd:
- e0:3e:dc:dd:3c:47:a0:bb:35:8a:e2:98:68:8b:be:
- e5:bf:72:ee:d2:fa:a5:ed:12:ed:fc:98:18:a9:26:
- 76:dc:28:4b:10:20:1c:d3:7f:16:77:2d:ed:6f:80:
- f7:49:bb:53:05:bb:5d:68:c7:d4:c8:75:16:3f:89:
- 5a:8b:f7:17:47:d4:4c:f1:d2:89:79:3e:4d:3d:98:
- a8:61:de:3a:1e:d2:f8:5e:03:e0:c1:c9:1c:8c:d3:
- 8d:4d:d3:95:36:b3:37:5f:63:63:9b:33:14:f0:2d:
- 26:6b:53:7c:89:8c:32:c2:6e:ec:3d:21:00:39:c9:
- a1:68:e2:50:83:2e:b0:3a:2b:f3:36:a0:ac:2f:e4:
- 6f:61:c2:51:09:39:3e:8b:53:b9:bb:67:da:dc:53:
- b9:76:59:36:9d:43:e5:20:e0:3d:32:60:85:22:51:
- b7:c7:33:bb:dd:15:2f:a4:78:a6:07:7b:81:46:36:
- 04:86:dd:79:35:c7:95:2c:3b:b0:a3:17:35:e5:73:
- 1f:b4:5c:59:ef:da:ea:10:65:7b:7a:d0:7f:9f:b3:
- b4:2a:37:3b:70:8b:9b:5b:b9:2b:b7:ec:b2:51:12:
- 97:53:29:5a:d4:f0:12:10:dc:4f:02:bb:12:92:2f:
- 62:d4:3f:69:43:7c:0d:d6:fc:58:75:01:88:9d:58:
- 16:4b:de:ba:90:ff:47:01:89:06:6a:f6:5f:b2:90:
- 6a:b3:02:a6:02:88:bf:b3:47:7e:2a:d9:d5:fa:68:
- 78:35:4d
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- F0:8F:59:38:00:B3:F5:8F:9A:96:0C:D5:EB:FA:7B:AA:17:E8:13:12
- Signature Algorithm: sha1WithRSAEncryption
- be:e4:5c:62:4e:24:f4:0c:08:ff:f0:d3:0c:68:e4:93:49:22:
- 3f:44:27:6f:bb:6d:de:83:66:ce:a8:cc:0d:fc:f5:9a:06:e5:
- 77:14:91:eb:9d:41:7b:99:2a:84:e5:ff:fc:21:c1:5d:f0:e4:
- 1f:57:b7:75:a9:a1:5f:02:26:ff:d7:c7:f7:4e:de:4f:f8:f7:
- 1c:46:c0:7a:4f:40:2c:22:35:f0:19:b1:d0:6b:67:2c:b0:a8:
- e0:c0:40:37:35:f6:84:5c:5c:e3:af:42:78:fe:a7:c9:0d:50:
- ea:0d:84:76:f6:51:ef:83:53:c6:7a:ff:0e:56:49:2e:8f:7a:
- d6:0c:e6:27:54:e3:4d:0a:60:72:62:cd:91:07:d6:a5:bf:c8:
- 99:6b:ed:c4:19:e6:ab:4c:11:38:c5:6f:31:e2:6e:49:c8:3f:
- 76:80:26:03:26:29:e0:36:f6:f6:20:53:e3:17:70:34:17:9d:
- 63:68:1e:6b:ec:c3:4d:86:b8:13:30:2f:5d:46:0d:47:43:d5:
- 1b:aa:59:0e:b9:5c:8d:06:48:ad:74:87:5f:c7:fc:31:54:41:
- 13:e2:c7:21:0e:9e:e0:1e:0d:e1:c0:7b:43:85:90:c5:8a:58:
- c6:65:0a:78:57:f2:c6:23:0f:01:d9:20:4b:de:0f:fb:92:85:
- 75:2a:5c:73:8d:6d:7b:25:91:ca:ee:45:ae:06:4b:00:cc:d3:
- b1:59:50:da:3a:88:3b:29:43:46:5e:97:2b:54:ce:53:6f:8d:
- 4a:e7:96:fa:bf:71:0e:42:8b:7c:fd:28:a0:d0:48:ca:da:c4:
- 81:4c:bb:a2:73:93:26:c8:eb:0c:d6:26:88:b6:c0:24:cf:bb:
- bd:5b:eb:75:7d:e9:08:8e:86:33:2c:79:77:09:69:a5:89:fc:
- b3:70:90:87:76:8f:d3:22:bb:42:ce:bd:73:0b:20:26:2a:d0:
- 9b:3d:70:1e:24:6c:cd:87:76:a9:17:96:b7:cf:0d:92:fb:8e:
- 18:a9:98:49:d1:9e:fe:60:44:72:21:b9:19:ed:c2:f5:31:f1:
- 39:48:88:90:24:75:54:16:ad:ce:f4:f8:69:14:64:39:fb:a3:
- b8:ba:70:40:c7:27:1c:bf:c4:56:53:fa:63:65:d0:f3:1c:0e:
- 16:f5:6b:86:58:4d:18:d4:e4:0d:8e:a5:9d:5b:91:dc:76:24:
- 50:3f:c6:2a:fb:d9:b7:9c:b5:d6:e6:d0:d9:e8:19:8b:15:71:
- 48:ad:b7:ea:d8:59:88:d4:90:bf:16:b3:d9:e9:ac:59:61:54:
- c8:1c:ba:ca:c1:ca:e1:b9:20:4c:8f:3a:93:89:a5:a0:cc:bf:
- d3:f6:75:a4:75:96:6d:56
-SHA1 Fingerprint=43:13:BB:96:F1:D5:86:9B:C1:4E:6A:92:F6:CF:F6:34:69:87:82:37
diff --git a/luni/src/main/files/cacerts/6645de82.0 b/luni/src/main/files/cacerts/6645de82.0
deleted file mode 100644
index 4b1ee7b..0000000
--- a/luni/src/main/files/cacerts/6645de82.0
+++ /dev/null
@@ -1,82 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEJjCCAw6gAwIBAgIGfaHyZeyKMA0GCSqGSIb3DQEBCwUAMIGxMQswCQYDVQQG
-EwJUUjEPMA0GA1UEBwwGQW5rYXJhMU0wSwYDVQQKDERUw5xSS1RSVVNUIEJpbGdp
-IMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBB
-LsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBFbGVrdHJvbmlrIFNlcnRpZmlrYSBI
-aXptZXQgU2HEn2xhecSxY8Sxc8SxIEg2MB4XDTEzMTIxODA5MDQxMFoXDTIzMTIx
-NjA5MDQxMFowgbExCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExTTBLBgNV
-BAoMRFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBCaWxpxZ9pbSBHw7x2
-ZW5sacSfaSBIaXptZXRsZXJpIEEuxZ4uMUIwQAYDVQQDDDlUw5xSS1RSVVNUIEVs
-ZWt0cm9uaWsgU2VydGlmaWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLEgSDYwggEi
-MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCdsGjW6L0UlqMACprx9MfMkU1x
-eHe59yEmFXNRFpQJRwXiM/VomjX/3EsvMsew7eKC5W/a2uqsxgbPJQ1BgfbBOCK9
-+bGlprMBvD9QFyv26WZV1DOzXPhDIHiTVRZwGTLmiddk671IUP320EEDwnS3/faA
-z1vFq6TWlRKb55cTMgPp1KtDWxbtMyJkKbbSk60vbNg9tvYdDjTu0n2pVQ8g9P0p
-u5FbHH3GQjhtQiht1AH7zYiXSX6484P4tZgvsycLSF5W506jM7NE1qXyGJTtHB6p
-lVxiSvgNZ1GpryHV+DKdeboaX+UEVU0TRv/yz3THGmNtwx8XEsMeED5gCLMxAgMB
-AAGjQjBAMB0GA1UdDgQWBBTdVRcT9qzoSCHK77Wv0QAy7Z6MtTAOBgNVHQ8BAf8E
-BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAb1gNl0Oq
-FlQ+v6nfkkU/hQu7VtMMUszIv3ZnXuaqs6fvuay0EBQNdH49ba3RfdCaqaXKGDsC
-QC4qnFAUi/5XfldcEQlLNkVS9z2sFP1E34uXI9TDwe7UU5X+LEr+DXCqu4svLcsy
-o4LyVN/Y8t3XSHLuSqMplsNEzm61kod2pLv0kmzOLBQJZo6NrRa1xxsJYTvjIKID
-gI6tflEATseWhvtDmHd9KMeP2Cpu54Rvl0EpABZeTeIT6lnAY2c6RPuY/ATTMHKm
-9ocJV612ph1jmv3XZch4gyt1O6VbuA1df74jrlZVlFjvH4GMKrLN5ptjnhi85WsG
-tAuYSyher4hYyw==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 138134509972618 (0x7da1f265ec8a)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=TR, L=Ankara, O=T\xC3\x9CRKTRUST Bilgi \xC4\xB0leti\xC5\x9Fim ve Bili\xC5\x9Fim G\xC3\xBCvenli\xC4\x9Fi Hizmetleri A.\xC5\x9E., CN=T\xC3\x9CRKTRUST Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xC4\xB1c\xC4\xB1s\xC4\xB1 H6
- Validity
- Not Before: Dec 18 09:04:10 2013 GMT
- Not After : Dec 16 09:04:10 2023 GMT
- Subject: C=TR, L=Ankara, O=T\xC3\x9CRKTRUST Bilgi \xC4\xB0leti\xC5\x9Fim ve Bili\xC5\x9Fim G\xC3\xBCvenli\xC4\x9Fi Hizmetleri A.\xC5\x9E., CN=T\xC3\x9CRKTRUST Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xC4\xB1c\xC4\xB1s\xC4\xB1 H6
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:9d:b0:68:d6:e8:bd:14:96:a3:00:0a:9a:f1:f4:
- c7:cc:91:4d:71:78:77:b9:f7:21:26:15:73:51:16:
- 94:09:47:05:e2:33:f5:68:9a:35:ff:dc:4b:2f:32:
- c7:b0:ed:e2:82:e5:6f:da:da:ea:ac:c6:06:cf:25:
- 0d:41:81:f6:c1:38:22:bd:f9:b1:a5:a6:b3:01:bc:
- 3f:50:17:2b:f6:e9:66:55:d4:33:b3:5c:f8:43:20:
- 78:93:55:16:70:19:32:e6:89:d7:64:eb:bd:48:50:
- fd:f6:d0:41:03:c2:74:b7:fd:f6:80:cf:5b:c5:ab:
- a4:d6:95:12:9b:e7:97:13:32:03:e9:d4:ab:43:5b:
- 16:ed:33:22:64:29:b6:d2:93:ad:2f:6c:d8:3d:b6:
- f6:1d:0e:34:ee:d2:7d:a9:55:0f:20:f4:fd:29:bb:
- 91:5b:1c:7d:c6:42:38:6d:42:28:6d:d4:01:fb:cd:
- 88:97:49:7e:b8:f3:83:f8:b5:98:2f:b3:27:0b:48:
- 5e:56:e7:4e:a3:33:b3:44:d6:a5:f2:18:94:ed:1c:
- 1e:a9:95:5c:62:4a:f8:0d:67:51:a9:af:21:d5:f8:
- 32:9d:79:ba:1a:5f:e5:04:55:4d:13:46:ff:f2:cf:
- 74:c7:1a:63:6d:c3:1f:17:12:c3:1e:10:3e:60:08:
- b3:31
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- DD:55:17:13:F6:AC:E8:48:21:CA:EF:B5:AF:D1:00:32:ED:9E:8C:B5
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- Signature Algorithm: sha256WithRSAEncryption
- 6f:58:0d:97:43:aa:16:54:3e:bf:a9:df:92:45:3f:85:0b:bb:
- 56:d3:0c:52:cc:c8:bf:76:67:5e:e6:aa:b3:a7:ef:b9:ac:b4:
- 10:14:0d:74:7e:3d:6d:ad:d1:7d:d0:9a:a9:a5:ca:18:3b:02:
- 40:2e:2a:9c:50:14:8b:fe:57:7e:57:5c:11:09:4b:36:45:52:
- f7:3d:ac:14:fd:44:df:8b:97:23:d4:c3:c1:ee:d4:53:95:fe:
- 2c:4a:fe:0d:70:aa:bb:8b:2f:2d:cb:32:a3:82:f2:54:df:d8:
- f2:dd:d7:48:72:ee:4a:a3:29:96:c3:44:ce:6e:b5:92:87:76:
- a4:bb:f4:92:6c:ce:2c:14:09:66:8e:8d:ad:16:b5:c7:1b:09:
- 61:3b:e3:20:a2:03:80:8e:ad:7e:51:00:4e:c7:96:86:fb:43:
- 98:77:7d:28:c7:8f:d8:2a:6e:e7:84:6f:97:41:29:00:16:5e:
- 4d:e2:13:ea:59:c0:63:67:3a:44:fb:98:fc:04:d3:30:72:a6:
- f6:87:09:57:ad:76:a6:1d:63:9a:fd:d7:65:c8:78:83:2b:75:
- 3b:a5:5b:b8:0d:5d:7f:be:23:ae:56:55:94:58:ef:1f:81:8c:
- 2a:b2:cd:e6:9b:63:9e:18:bc:e5:6b:06:b4:0b:98:4b:28:5e:
- af:88:58:cb
-SHA1 Fingerprint=8A:5C:8C:EE:A5:03:E6:05:56:BA:D8:1B:D4:F6:C9:B0:ED:E5:2F:E0
diff --git a/luni/src/main/files/cacerts/67495436.0 b/luni/src/main/files/cacerts/67495436.0
deleted file mode 100644
index 23a6ebe..0000000
--- a/luni/src/main/files/cacerts/67495436.0
+++ /dev/null
@@ -1,83 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCB
-rjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
-Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
-MDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNV
-BAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0wODA0MDIwMDAwMDBa
-Fw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3Rl
-LCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9u
-MTgwNgYDVQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXpl
-ZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEcz
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsr8nLPvb2FvdeHsbnndm
-gcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2AtP0LMqmsywCPLLEHd5N/8
-YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC+BsUa0Lf
-b1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS9
-9irY7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2S
-zhkGcuYMXDhpxwTWvGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUk
-OQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV
-HQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJKoZIhvcNAQELBQADggEBABpA
-2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweKA3rD6z8KLFIW
-oCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu
-t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7c
-KUGRIjxpp7sC8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fM
-m7v/OeZWYdMKp8RcTGB7BXcmer/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZu
-MdRAGmI0Nj81Aa6sY6A=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 60:01:97:b7:46:a7:ea:b4:b4:9a:d6:4b:2f:f7:90:fb
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2008 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA - G3
- Validity
- Not Before: Apr 2 00:00:00 2008 GMT
- Not After : Dec 1 23:59:59 2037 GMT
- Subject: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2008 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA - G3
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:b2:bf:27:2c:fb:db:d8:5b:dd:78:7b:1b:9e:77:
- 66:81:cb:3e:bc:7c:ae:f3:a6:27:9a:34:a3:68:31:
- 71:38:33:62:e4:f3:71:66:79:b1:a9:65:a3:a5:8b:
- d5:8f:60:2d:3f:42:cc:aa:6b:32:c0:23:cb:2c:41:
- dd:e4:df:fc:61:9c:e2:73:b2:22:95:11:43:18:5f:
- c4:b6:1f:57:6c:0a:05:58:22:c8:36:4c:3a:7c:a5:
- d1:cf:86:af:88:a7:44:02:13:74:71:73:0a:42:59:
- 02:f8:1b:14:6b:42:df:6f:5f:ba:6b:82:a2:9d:5b:
- e7:4a:bd:1e:01:72:db:4b:74:e8:3b:7f:7f:7d:1f:
- 04:b4:26:9b:e0:b4:5a:ac:47:3d:55:b8:d7:b0:26:
- 52:28:01:31:40:66:d8:d9:24:bd:f6:2a:d8:ec:21:
- 49:5c:9b:f6:7a:e9:7f:55:35:7e:96:6b:8d:93:93:
- 27:cb:92:bb:ea:ac:40:c0:9f:c2:f8:80:cf:5d:f4:
- 5a:dc:ce:74:86:a6:3e:6c:0b:53:ca:bd:92:ce:19:
- 06:72:e6:0c:5c:38:69:c7:04:d6:bc:6c:ce:5b:f6:
- f7:68:9c:dc:25:15:48:88:a1:e9:a9:f8:98:9c:e0:
- f3:d5:31:28:61:11:6c:67:96:8d:39:99:cb:c2:45:
- 24:39
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- AD:6C:AA:94:60:9C:ED:E4:FF:FA:3E:0A:74:2B:63:03:F7:B6:59:BF
- Signature Algorithm: sha256WithRSAEncryption
- 1a:40:d8:95:65:ac:09:92:89:c6:39:f4:10:e5:a9:0e:66:53:
- 5d:78:de:fa:24:91:bb:e7:44:51:df:c6:16:34:0a:ef:6a:44:
- 51:ea:2b:07:8a:03:7a:c3:eb:3f:0a:2c:52:16:a0:2b:43:b9:
- 25:90:3f:70:a9:33:25:6d:45:1a:28:3b:27:cf:aa:c3:29:42:
- 1b:df:3b:4c:c0:33:34:5b:41:88:bf:6b:2b:65:af:28:ef:b2:
- f5:c3:aa:66:ce:7b:56:ee:b7:c8:cb:67:c1:c9:9c:1a:18:b8:
- c4:c3:49:03:f1:60:0e:50:cd:46:c5:f3:77:79:f7:b6:15:e0:
- 38:db:c7:2f:28:a0:0c:3f:77:26:74:d9:25:12:da:31:da:1a:
- 1e:dc:29:41:91:22:3c:69:a7:bb:02:f2:b6:5c:27:03:89:f4:
- 06:ea:9b:e4:72:82:e3:a1:09:c1:e9:00:19:d3:3e:d4:70:6b:
- ba:71:a6:aa:58:ae:f4:bb:e9:6c:b6:ef:87:cc:9b:bb:ff:39:
- e6:56:61:d3:0a:a7:c4:5c:4c:60:7b:05:77:26:7a:bf:d8:07:
- 52:2c:62:f7:70:63:d9:39:bc:6f:1c:c2:79:dc:76:29:af:ce:
- c5:2c:64:04:5e:88:36:6e:31:d4:40:1a:62:34:36:3f:35:01:
- ae:ac:63:a0
-SHA1 Fingerprint=F1:8B:53:8D:1B:E9:03:B6:A6:F0:56:43:5B:17:15:89:CA:F3:6B:F2
diff --git a/luni/src/main/files/cacerts/69105f4f.0 b/luni/src/main/files/cacerts/69105f4f.0
deleted file mode 100644
index a9364ac..0000000
--- a/luni/src/main/files/cacerts/69105f4f.0
+++ /dev/null
@@ -1,83 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl
-MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
-b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
-cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi
-MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c
-JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP
-mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+
-wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4
-VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/
-AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB
-AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
-BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun
-pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC
-dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf
-fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm
-NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx
-H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
-+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 0c:e7:e0:e5:17:d8:46:fe:8f:e5:60:fc:1b:f0:30:39
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Assured ID Root CA
- Validity
- Not Before: Nov 10 00:00:00 2006 GMT
- Not After : Nov 10 00:00:00 2031 GMT
- Subject: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Assured ID Root CA
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:ad:0e:15:ce:e4:43:80:5c:b1:87:f3:b7:60:f9:
- 71:12:a5:ae:dc:26:94:88:aa:f4:ce:f5:20:39:28:
- 58:60:0c:f8:80:da:a9:15:95:32:61:3c:b5:b1:28:
- 84:8a:8a:dc:9f:0a:0c:83:17:7a:8f:90:ac:8a:e7:
- 79:53:5c:31:84:2a:f6:0f:98:32:36:76:cc:de:dd:
- 3c:a8:a2:ef:6a:fb:21:f2:52:61:df:9f:20:d7:1f:
- e2:b1:d9:fe:18:64:d2:12:5b:5f:f9:58:18:35:bc:
- 47:cd:a1:36:f9:6b:7f:d4:b0:38:3e:c1:1b:c3:8c:
- 33:d9:d8:2f:18:fe:28:0f:b3:a7:83:d6:c3:6e:44:
- c0:61:35:96:16:fe:59:9c:8b:76:6d:d7:f1:a2:4b:
- 0d:2b:ff:0b:72:da:9e:60:d0:8e:90:35:c6:78:55:
- 87:20:a1:cf:e5:6d:0a:c8:49:7c:31:98:33:6c:22:
- e9:87:d0:32:5a:a2:ba:13:82:11:ed:39:17:9d:99:
- 3a:72:a1:e6:fa:a4:d9:d5:17:31:75:ae:85:7d:22:
- ae:3f:01:46:86:f6:28:79:c8:b1:da:e4:57:17:c4:
- 7e:1c:0e:b0:b4:92:a6:56:b3:bd:b2:97:ed:aa:a7:
- f0:b7:c5:a8:3f:95:16:d0:ff:a1:96:eb:08:5f:18:
- 77:4f
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Key Usage: critical
- Digital Signature, Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- 45:EB:A2:AF:F4:92:CB:82:31:2D:51:8B:A7:A7:21:9D:F3:6D:C8:0F
- X509v3 Authority Key Identifier:
- keyid:45:EB:A2:AF:F4:92:CB:82:31:2D:51:8B:A7:A7:21:9D:F3:6D:C8:0F
-
- Signature Algorithm: sha1WithRSAEncryption
- a2:0e:bc:df:e2:ed:f0:e3:72:73:7a:64:94:bf:f7:72:66:d8:
- 32:e4:42:75:62:ae:87:eb:f2:d5:d9:de:56:b3:9f:cc:ce:14:
- 28:b9:0d:97:60:5c:12:4c:58:e4:d3:3d:83:49:45:58:97:35:
- 69:1a:a8:47:ea:56:c6:79:ab:12:d8:67:81:84:df:7f:09:3c:
- 94:e6:b8:26:2c:20:bd:3d:b3:28:89:f7:5f:ff:22:e2:97:84:
- 1f:e9:65:ef:87:e0:df:c1:67:49:b3:5d:eb:b2:09:2a:eb:26:
- ed:78:be:7d:3f:2b:f3:b7:26:35:6d:5f:89:01:b6:49:5b:9f:
- 01:05:9b:ab:3d:25:c1:cc:b6:7f:c2:f1:6f:86:c6:fa:64:68:
- eb:81:2d:94:eb:42:b7:fa:8c:1e:dd:62:f1:be:50:67:b7:6c:
- bd:f3:f1:1f:6b:0c:36:07:16:7f:37:7c:a9:5b:6d:7a:f1:12:
- 46:60:83:d7:27:04:be:4b:ce:97:be:c3:67:2a:68:11:df:80:
- e7:0c:33:66:bf:13:0d:14:6e:f3:7f:1f:63:10:1e:fa:8d:1b:
- 25:6d:6c:8f:a5:b7:61:01:b1:d2:a3:26:a1:10:71:9d:ad:e2:
- c3:f9:c3:99:51:b7:2b:07:08:ce:2e:e6:50:b2:a7:fa:0a:45:
- 2f:a2:f0:f2
-SHA1 Fingerprint=05:63:B8:63:0D:62:D7:5A:BB:C8:AB:1E:4B:DF:B5:A8:99:B2:4D:43
diff --git a/luni/src/main/files/cacerts/6e8bf996.0 b/luni/src/main/files/cacerts/6e8bf996.0
deleted file mode 100644
index d39b2a2..0000000
--- a/luni/src/main/files/cacerts/6e8bf996.0
+++ /dev/null
@@ -1,72 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBM
-MRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBD
-QTAeFw0wMjA2MTExMDQ2MzlaFw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBM
-MRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBD
-QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6xwS7TT3zNJc4YPk/E
-jG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdLkKWo
-ePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GI
-ULdtlkIJ89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapu
-Ob7kky/ZR6By6/qmW6/KUz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUg
-AKpoC6EahQGcxEZjgoi2IrHu/qpGWX7PNSzVttpd90gzFFS269lvzs2I1qsb2pY7
-HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEA
-uI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+GXYkHAQa
-TOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTg
-xSvgGrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1q
-CjqTE5s7FCMTY5w/0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5x
-O/fIR/RpbxXyEV6DHpx8Uq79AtoSqFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs
-6GAqm4VKQPNriiTsBhYscw==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 65568 (0x10020)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=PL, O=Unizeto Sp. z o.o., CN=Certum CA
- Validity
- Not Before: Jun 11 10:46:39 2002 GMT
- Not After : Jun 11 10:46:39 2027 GMT
- Subject: C=PL, O=Unizeto Sp. z o.o., CN=Certum CA
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:ce:b1:c1:2e:d3:4f:7c:cd:25:ce:18:3e:4f:c4:
- 8c:6f:80:6a:73:c8:5b:51:f8:9b:d2:dc:bb:00:5c:
- b1:a0:fc:75:03:ee:81:f0:88:ee:23:52:e9:e6:15:
- 33:8d:ac:2d:09:c5:76:f9:2b:39:80:89:e4:97:4b:
- 90:a5:a8:78:f8:73:43:7b:a4:61:b0:d8:58:cc:e1:
- 6c:66:7e:9c:f3:09:5e:55:63:84:d5:a8:ef:f3:b1:
- 2e:30:68:b3:c4:3c:d8:ac:6e:8d:99:5a:90:4e:34:
- dc:36:9a:8f:81:88:50:b7:6d:96:42:09:f3:d7:95:
- 83:0d:41:4b:b0:6a:6b:f8:fc:0f:7e:62:9f:67:c4:
- ed:26:5f:10:26:0f:08:4f:f0:a4:57:28:ce:8f:b8:
- ed:45:f6:6e:ee:25:5d:aa:6e:39:be:e4:93:2f:d9:
- 47:a0:72:eb:fa:a6:5b:af:ca:53:3f:e2:0e:c6:96:
- 56:11:6e:f7:e9:66:a9:26:d8:7f:95:53:ed:0a:85:
- 88:ba:4f:29:a5:42:8c:5e:b6:fc:85:20:00:aa:68:
- 0b:a1:1a:85:01:9c:c4:46:63:82:88:b6:22:b1:ee:
- fe:aa:46:59:7e:cf:35:2c:d5:b6:da:5d:f7:48:33:
- 14:54:b6:eb:d9:6f:ce:cd:88:d6:ab:1b:da:96:3b:
- 1d:59
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- Signature Algorithm: sha1WithRSAEncryption
- b8:8d:ce:ef:e7:14:ba:cf:ee:b0:44:92:6c:b4:39:3e:a2:84:
- 6e:ad:b8:21:77:d2:d4:77:82:87:e6:20:41:81:ee:e2:f8:11:
- b7:63:d1:17:37:be:19:76:24:1c:04:1a:4c:eb:3d:aa:67:6f:
- 2d:d4:cd:fe:65:31:70:c5:1b:a6:02:0a:ba:60:7b:6d:58:c2:
- 9a:49:fe:63:32:0b:6b:e3:3a:c0:ac:ab:3b:b0:e8:d3:09:51:
- 8c:10:83:c6:34:e0:c5:2b:e0:1a:b6:60:14:27:6c:32:77:8c:
- bc:b2:72:98:cf:cd:cc:3f:b9:c8:24:42:14:d6:57:fc:e6:26:
- 43:a9:1d:e5:80:90:ce:03:54:28:3e:f7:3f:d3:f8:4d:ed:6a:
- 0a:3a:93:13:9b:3b:14:23:13:63:9c:3f:d1:87:27:79:e5:4c:
- 51:e3:01:ad:85:5d:1a:3b:b1:d5:73:10:a4:d3:f2:bc:6e:64:
- f5:5a:56:90:a8:c7:0e:4c:74:0f:2e:71:3b:f7:c8:47:f4:69:
- 6f:15:f2:11:5e:83:1e:9c:7c:52:ae:fd:02:da:12:a8:59:67:
- 18:db:bc:70:dd:9b:b1:69:ed:80:ce:89:40:48:6a:0e:35:ca:
- 29:66:15:21:94:2c:e8:60:2a:9b:85:4a:40:f3:6b:8a:24:ec:
- 06:16:2c:73
-SHA1 Fingerprint=62:52:DC:40:F7:11:43:A2:2F:DE:9E:F7:34:8E:06:42:51:B1:81:18
diff --git a/luni/src/main/files/cacerts/6fcc125d.0 b/luni/src/main/files/cacerts/6fcc125d.0
deleted file mode 100644
index 60564f3..0000000
--- a/luni/src/main/files/cacerts/6fcc125d.0
+++ /dev/null
@@ -1,80 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBr
-MQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRl
-cm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv
-bW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2WhcNMjIwNjI0MDAxNjEyWjBrMQsw
-CQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5h
-dGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1l
-cmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h
-2mCxlCfLF9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4E
-lpF7sDPwsRROEW+1QK8bRaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdV
-ZqW1LS7YgFmypw23RuwhY/81q6UCzyr0TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq
-299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI/k4+oKsGGelT84ATB+0t
-vz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzsGHxBvfaL
-dXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD
-AgEGMB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUF
-AAOCAQEAX/FBfXxcCLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcR
-zCSs00Rsca4BIGsDoo8Ytyk6feUWYFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3
-LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pzzkWKsKZJ/0x9nXGIxHYdkFsd
-7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBuYQa7FkKMcPcw
-++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt
-398znM/jra6O1I7mT1GvFpLgXPYHDw==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 13:86:35:4d:1d:3f:06:f2:c1:f9:65:05:d5:90:1c:62
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=US, O=VISA, OU=Visa International Service Association, CN=Visa eCommerce Root
- Validity
- Not Before: Jun 26 02:18:36 2002 GMT
- Not After : Jun 24 00:16:12 2022 GMT
- Subject: C=US, O=VISA, OU=Visa International Service Association, CN=Visa eCommerce Root
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:af:57:de:56:1e:6e:a1:da:60:b1:94:27:cb:17:
- db:07:3f:80:85:4f:c8:9c:b6:d0:f4:6f:4f:cf:99:
- d8:e1:db:c2:48:5c:3a:ac:39:33:c7:1f:6a:8b:26:
- 3d:2b:35:f5:48:b1:91:c1:02:4e:04:96:91:7b:b0:
- 33:f0:b1:14:4e:11:6f:b5:40:af:1b:45:a5:4a:ef:
- 7e:b6:ac:f2:a0:1f:58:3f:12:46:60:3c:8d:a1:e0:
- 7d:cf:57:3e:33:1e:fb:47:f1:aa:15:97:07:55:66:
- a5:b5:2d:2e:d8:80:59:b2:a7:0d:b7:46:ec:21:63:
- ff:35:ab:a5:02:cf:2a:f4:4c:fe:7b:f5:94:5d:84:
- 4d:a8:f2:60:8f:db:0e:25:3c:9f:73:71:cf:94:df:
- 4a:ea:db:df:72:38:8c:f3:96:bd:f1:17:bc:d2:ba:
- 3b:45:5a:c6:a7:f6:c6:17:8b:01:9d:fc:19:a8:2a:
- 83:16:b8:3a:48:fe:4e:3e:a0:ab:06:19:e9:53:f3:
- 80:13:07:ed:2d:bf:3f:0a:3c:55:20:39:2c:2c:00:
- 69:74:95:4a:bc:20:b2:a9:79:e5:18:89:91:a8:dc:
- 1c:4d:ef:bb:7e:37:0b:5d:fe:39:a5:88:52:8c:00:
- 6c:ec:18:7c:41:bd:f6:8b:75:77:ba:60:9d:84:e7:
- fe:2d
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- 15:38:83:0F:3F:2C:3F:70:33:1E:CD:46:FE:07:8C:20:E0:D7:C3:B7
- Signature Algorithm: sha1WithRSAEncryption
- 5f:f1:41:7d:7c:5c:08:b9:2b:e0:d5:92:47:fa:67:5c:a5:13:
- c3:03:21:9b:2b:4c:89:46:cf:59:4d:c9:fe:a5:40:b6:63:cd:
- dd:71:28:95:67:11:cc:24:ac:d3:44:6c:71:ae:01:20:6b:03:
- a2:8f:18:b7:29:3a:7d:e5:16:60:53:78:3c:c0:af:15:83:f7:
- 8f:52:33:24:bd:64:93:97:ee:8b:f7:db:18:a8:6d:71:b3:f7:
- 2c:17:d0:74:25:69:f7:fe:6b:3c:94:be:4d:4b:41:8c:4e:e2:
- 73:d0:e3:90:22:73:43:cd:f3:ef:ea:73:ce:45:8a:b0:a6:49:
- ff:4c:7d:9d:71:88:c4:76:1d:90:5b:1d:ee:fd:cc:f7:ee:fd:
- 60:a5:b1:7a:16:71:d1:16:d0:7c:12:3c:6c:69:97:db:ae:5f:
- 39:9a:70:2f:05:3c:19:46:04:99:20:36:d0:60:6e:61:06:bb:
- 16:42:8c:70:f7:30:fb:e0:db:66:a3:00:01:bd:e6:2c:da:91:
- 5f:a0:46:8b:4d:6a:9c:3d:3d:dd:05:46:fe:76:bf:a0:0a:3c:
- e4:00:e6:27:b7:ff:84:2d:de:ba:22:27:96:10:71:eb:22:ed:
- df:df:33:9c:cf:e3:ad:ae:8e:d4:8e:e6:4f:51:af:16:92:e0:
- 5c:f6:07:0f
-SHA1 Fingerprint=70:17:9B:86:8C:00:A4:FA:60:91:52:22:3F:9F:3E:32:BD:E0:05:62
diff --git a/luni/src/main/files/cacerts/72f369af.0 b/luni/src/main/files/cacerts/72f369af.0
deleted file mode 100644
index d6f0746..0000000
--- a/luni/src/main/files/cacerts/72f369af.0
+++ /dev/null
@@ -1,77 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDUzCCAjugAwIBAgIBATANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEd
-MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3Mg
-Q2xhc3MgMiBDQSAxMB4XDTA2MTAxMzEwMjUwOVoXDTE2MTAxMzEwMjUwOVowSzEL
-MAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MR0wGwYD
-VQQDDBRCdXlwYXNzIENsYXNzIDIgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBAIs8B0XY9t/mx8q6jUPFR42wWsE425KEHK8T1A9vNkYgxC7McXA0
-ojTTNy7Y3Tp3L8DrKehc0rWpkTSHIln+zNvnma+WwajHQN2lFYxuyHyXA8vmIPLX
-l18xoS830r7uvqmtqEyeIWZDO6i88wmjONVZJMHCR3axiFyCO7srpgTXjAePzdVB
-HfCuuCkslFJgNJQ72uA40Z0zPhX0kzLFANq1KWYOOngPIVJfAuWSeyXTkh4vFZ2B
-5J2O6O+JzhRMVB0cgRJNcKi+EAUXfh/RuFdV7c27UsKwHnjCTTZoy1YmwVLBvXb3
-WNVyfh9EdrsAiR0WnVE1703CVu9r4Iw7DekCAwEAAaNCMEAwDwYDVR0TAQH/BAUw
-AwEB/zAdBgNVHQ4EFgQUP42aWYv8e3uco684sDntkHGA1sgwDgYDVR0PAQH/BAQD
-AgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAVGn4TirnoB6NLJzKyQJHyIdFkhb5jatLP
-gcIV1Xp+DCmsNx4cfHZSldq1fyOhKXdlyTKdqC5Wq2B2zha0jX94wNWZUYN/Xtm+
-DKhQ7SLHrQVMdvvt7h5HZPb3J31cKA9FxVxiXqaakZG3Uxcu3K1gnZZkOb1naLKu
-BctN518fV4bVIJwo+28TOPX2EZL2fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHs
-h7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5wwDX3OaJdZtB7WZ+oRxKaJyOk
-LY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=NO, O=Buypass AS-983163327, CN=Buypass Class 2 CA 1
- Validity
- Not Before: Oct 13 10:25:09 2006 GMT
- Not After : Oct 13 10:25:09 2016 GMT
- Subject: C=NO, O=Buypass AS-983163327, CN=Buypass Class 2 CA 1
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:8b:3c:07:45:d8:f6:df:e6:c7:ca:ba:8d:43:c5:
- 47:8d:b0:5a:c1:38:db:92:84:1c:af:13:d4:0f:6f:
- 36:46:20:c4:2e:cc:71:70:34:a2:34:d3:37:2e:d8:
- dd:3a:77:2f:c0:eb:29:e8:5c:d2:b5:a9:91:34:87:
- 22:59:fe:cc:db:e7:99:af:96:c1:a8:c7:40:dd:a5:
- 15:8c:6e:c8:7c:97:03:cb:e6:20:f2:d7:97:5f:31:
- a1:2f:37:d2:be:ee:be:a9:ad:a8:4c:9e:21:66:43:
- 3b:a8:bc:f3:09:a3:38:d5:59:24:c1:c2:47:76:b1:
- 88:5c:82:3b:bb:2b:a6:04:d7:8c:07:8f:cd:d5:41:
- 1d:f0:ae:b8:29:2c:94:52:60:34:94:3b:da:e0:38:
- d1:9d:33:3e:15:f4:93:32:c5:00:da:b5:29:66:0e:
- 3a:78:0f:21:52:5f:02:e5:92:7b:25:d3:92:1e:2f:
- 15:9d:81:e4:9d:8e:e8:ef:89:ce:14:4c:54:1d:1c:
- 81:12:4d:70:a8:be:10:05:17:7e:1f:d1:b8:57:55:
- ed:cd:bb:52:c2:b0:1e:78:c2:4d:36:68:cb:56:26:
- c1:52:c1:bd:76:f7:58:d5:72:7e:1f:44:76:bb:00:
- 89:1d:16:9d:51:35:ef:4d:c2:56:ef:6b:e0:8c:3b:
- 0d:e9
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- 3F:8D:9A:59:8B:FC:7B:7B:9C:A3:AF:38:B0:39:ED:90:71:80:D6:C8
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- Signature Algorithm: sha1WithRSAEncryption
- 15:1a:7e:13:8a:b9:e8:07:a3:4b:27:32:b2:40:91:f2:21:d1:
- 64:85:be:63:6a:d2:cf:81:c2:15:d5:7a:7e:0c:29:ac:37:1e:
- 1c:7c:76:52:95:da:b5:7f:23:a1:29:77:65:c9:32:9d:a8:2e:
- 56:ab:60:76:ce:16:b4:8d:7f:78:c0:d5:99:51:83:7f:5e:d9:
- be:0c:a8:50:ed:22:c7:ad:05:4c:76:fb:ed:ee:1e:47:64:f6:
- f7:27:7d:5c:28:0f:45:c5:5c:62:5e:a6:9a:91:91:b7:53:17:
- 2e:dc:ad:60:9d:96:64:39:bd:67:68:b2:ae:05:cb:4d:e7:5f:
- 1f:57:86:d5:20:9c:28:fb:6f:13:38:f5:f6:11:92:f6:7d:99:
- 5e:1f:0c:e8:ab:44:24:29:72:40:3d:36:52:af:8c:58:90:73:
- c1:ec:61:2c:79:a1:ec:87:b5:3f:da:4d:d9:21:00:30:de:90:
- da:0e:d3:1a:48:a9:3e:85:0b:14:8b:8c:bc:41:9e:6a:f7:0e:
- 70:c0:35:f7:39:a2:5d:66:d0:7b:59:9f:a8:47:12:9a:27:23:
- a4:2d:8e:27:83:92:20:a1:d7:15:7f:f1:2e:18:ee:f4:48:7f:
- 2f:7f:f1:a1:18:b5:a1:0b:94:a0:62:20:32:9c:1d:f6:d4:ef:
- bf:4c:88:68
-SHA1 Fingerprint=A0:A1:AB:90:C9:FC:84:7B:3B:12:61:E8:97:7D:5F:D3:22:61:D3:CC
diff --git a/luni/src/main/files/cacerts/75680d2e.0 b/luni/src/main/files/cacerts/75680d2e.0
deleted file mode 100644
index 59329ba..0000000
--- a/luni/src/main/files/cacerts/75680d2e.0
+++ /dev/null
@@ -1,90 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb
-MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
-GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmlj
-YXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezEL
-MAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
-BwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNVBAMM
-GEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQua
-BtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe
-3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4
-YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZR
-rOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cm
-ez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQU
-oBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
-MAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v
-QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29t
-b2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG9w0BAQUF
-AAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q
-GE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
-Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2
-G9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsi
-l2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3
-smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=GB, ST=Greater Manchester, L=Salford, O=Comodo CA Limited, CN=AAA Certificate Services
- Validity
- Not Before: Jan 1 00:00:00 2004 GMT
- Not After : Dec 31 23:59:59 2028 GMT
- Subject: C=GB, ST=Greater Manchester, L=Salford, O=Comodo CA Limited, CN=AAA Certificate Services
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:be:40:9d:f4:6e:e1:ea:76:87:1c:4d:45:44:8e:
- be:46:c8:83:06:9d:c1:2a:fe:18:1f:8e:e4:02:fa:
- f3:ab:5d:50:8a:16:31:0b:9a:06:d0:c5:70:22:cd:
- 49:2d:54:63:cc:b6:6e:68:46:0b:53:ea:cb:4c:24:
- c0:bc:72:4e:ea:f1:15:ae:f4:54:9a:12:0a:c3:7a:
- b2:33:60:e2:da:89:55:f3:22:58:f3:de:dc:cf:ef:
- 83:86:a2:8c:94:4f:9f:68:f2:98:90:46:84:27:c7:
- 76:bf:e3:cc:35:2c:8b:5e:07:64:65:82:c0:48:b0:
- a8:91:f9:61:9f:76:20:50:a8:91:c7:66:b5:eb:78:
- 62:03:56:f0:8a:1a:13:ea:31:a3:1e:a0:99:fd:38:
- f6:f6:27:32:58:6f:07:f5:6b:b8:fb:14:2b:af:b7:
- aa:cc:d6:63:5f:73:8c:da:05:99:a8:38:a8:cb:17:
- 78:36:51:ac:e9:9e:f4:78:3a:8d:cf:0f:d9:42:e2:
- 98:0c:ab:2f:9f:0e:01:de:ef:9f:99:49:f1:2d:df:
- ac:74:4d:1b:98:b5:47:c5:e5:29:d1:f9:90:18:c7:
- 62:9c:be:83:c7:26:7b:3e:8a:25:c7:c0:dd:9d:e6:
- 35:68:10:20:9d:8f:d8:de:d2:c3:84:9c:0d:5e:e8:
- 2f:c9
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- A0:11:0A:23:3E:96:F1:07:EC:E2:AF:29:EF:82:A5:7F:D0:30:A4:B4
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 CRL Distribution Points:
-
- Full Name:
- URI:http://crl.comodoca.com/AAACertificateServices.crl
-
- Full Name:
- URI:http://crl.comodo.net/AAACertificateServices.crl
-
- Signature Algorithm: sha1WithRSAEncryption
- 08:56:fc:02:f0:9b:e8:ff:a4:fa:d6:7b:c6:44:80:ce:4f:c4:
- c5:f6:00:58:cc:a6:b6:bc:14:49:68:04:76:e8:e6:ee:5d:ec:
- 02:0f:60:d6:8d:50:18:4f:26:4e:01:e3:e6:b0:a5:ee:bf:bc:
- 74:54:41:bf:fd:fc:12:b8:c7:4f:5a:f4:89:60:05:7f:60:b7:
- 05:4a:f3:f6:f1:c2:bf:c4:b9:74:86:b6:2d:7d:6b:cc:d2:f3:
- 46:dd:2f:c6:e0:6a:c3:c3:34:03:2c:7d:96:dd:5a:c2:0e:a7:
- 0a:99:c1:05:8b:ab:0c:2f:f3:5c:3a:cf:6c:37:55:09:87:de:
- 53:40:6c:58:ef:fc:b6:ab:65:6e:04:f6:1b:dc:3c:e0:5a:15:
- c6:9e:d9:f1:59:48:30:21:65:03:6c:ec:e9:21:73:ec:9b:03:
- a1:e0:37:ad:a0:15:18:8f:fa:ba:02:ce:a7:2c:a9:10:13:2c:
- d4:e5:08:26:ab:22:97:60:f8:90:5e:74:d4:a2:9a:53:bd:f2:
- a9:68:e0:a2:6e:c2:d7:6c:b1:a3:0f:9e:bf:eb:68:e7:56:f2:
- ae:f2:e3:2b:38:3a:09:81:b5:6b:85:d7:be:2d:ed:3f:1a:b7:
- b2:63:e2:f5:62:2c:82:d4:6a:00:41:50:f1:39:83:9f:95:e9:
- 36:96:98:6e
-SHA1 Fingerprint=D1:EB:23:A4:6D:17:D6:8F:D9:25:64:C2:F1:F1:60:17:64:D8:E3:49
diff --git a/luni/src/main/files/cacerts/7651b327.0 b/luni/src/main/files/cacerts/7651b327.0
deleted file mode 100644
index 29d7a10..0000000
--- a/luni/src/main/files/cacerts/7651b327.0
+++ /dev/null
@@ -1,49 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICPDCCAaUCEDyRMcsf9tAbDpq40ES/Er4wDQYJKoZIhvcNAQEFBQAwXzELMAkG
-A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
-cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
-MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
-BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt
-YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
-ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE
-BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is
-I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G
-CSqGSIb3DQEBBQUAA4GBABByUqkFFBkyCEHwxWsKzH4PIRnN5GfcX6kb5sroc50i
-2JhucwNhkcV8sEVAbkSdjbCxlnRhLQ2pRdKkkirWmnWXbj9T/UWZYB2oK0z5XqcJ
-2HUw19JlYD1n1khVdWk/kfVIC0dpImmClr7JyDiGSnoscxlIaU5rfGW/D/xwzoiQ
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 1 (0x0)
- Serial Number:
- 3c:91:31:cb:1f:f6:d0:1b:0e:9a:b8:d0:44:bf:12:be
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=US, O=VeriSign, Inc., OU=Class 3 Public Primary Certification Authority
- Validity
- Not Before: Jan 29 00:00:00 1996 GMT
- Not After : Aug 2 23:59:59 2028 GMT
- Subject: C=US, O=VeriSign, Inc., OU=Class 3 Public Primary Certification Authority
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (1024 bit)
- Modulus:
- 00:c9:5c:59:9e:f2:1b:8a:01:14:b4:10:df:04:40:
- db:e3:57:af:6a:45:40:8f:84:0c:0b:d1:33:d9:d9:
- 11:cf:ee:02:58:1f:25:f7:2a:a8:44:05:aa:ec:03:
- 1f:78:7f:9e:93:b9:9a:00:aa:23:7d:d6:ac:85:a2:
- 63:45:c7:72:27:cc:f4:4c:c6:75:71:d2:39:ef:4f:
- 42:f0:75:df:0a:90:c6:8e:20:6f:98:0f:f8:ac:23:
- 5f:70:29:36:a4:c9:86:e7:b1:9a:20:cb:53:a5:85:
- e7:3d:be:7d:9a:fe:24:45:33:dc:76:15:ed:0f:a2:
- 71:64:4c:65:2e:81:68:45:a7
- Exponent: 65537 (0x10001)
- Signature Algorithm: sha1WithRSAEncryption
- 10:72:52:a9:05:14:19:32:08:41:f0:c5:6b:0a:cc:7e:0f:21:
- 19:cd:e4:67:dc:5f:a9:1b:e6:ca:e8:73:9d:22:d8:98:6e:73:
- 03:61:91:c5:7c:b0:45:40:6e:44:9d:8d:b0:b1:96:74:61:2d:
- 0d:a9:45:d2:a4:92:2a:d6:9a:75:97:6e:3f:53:fd:45:99:60:
- 1d:a8:2b:4c:f9:5e:a7:09:d8:75:30:d7:d2:65:60:3d:67:d6:
- 48:55:75:69:3f:91:f5:48:0b:47:69:22:69:82:96:be:c9:c8:
- 38:86:4a:7a:2c:73:19:48:69:4e:6b:7c:65:bf:0f:fc:70:ce:
- 88:90
-SHA1 Fingerprint=A1:DB:63:93:91:6F:17:E4:18:55:09:40:04:15:C7:02:40:B0:AE:6B
diff --git a/luni/src/main/files/cacerts/76579174.0 b/luni/src/main/files/cacerts/76579174.0
deleted file mode 100644
index 9672db2..0000000
--- a/luni/src/main/files/cacerts/76579174.0
+++ /dev/null
@@ -1,92 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCB
-gjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEk
-MCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRY
-UmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQxMTAxMTcx
-NDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3
-dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2Vy
-dmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB
-dXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS6
-38eMpSe2OAtp87ZOqCwuIR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCP
-KZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMxfoArtYzAQDsRhtDLooY2YKTVMIJt2W7Q
-DxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FEzG+gSqmUsE3a56k0enI4
-qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqsAxcZZPRa
-JSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNVi
-PvryxS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0P
-BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASs
-jVy16bYbMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0
-eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQEwDQYJKoZIhvcNAQEFBQAD
-ggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc/Kh4ZzXxHfAR
-vbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt
-qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLa
-IR9NmXmd4c8nnxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSy
-i6mx5O+aGtA9aZnuqCij4Tyz8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQ
-O+7ETPTsJ3xCwnR8gooJybQDJbw=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 50:94:6c:ec:18:ea:d5:9c:4d:d5:97:ef:75:8f:a0:ad
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=US, OU=www.xrampsecurity.com, O=XRamp Security Services Inc, CN=XRamp Global Certification Authority
- Validity
- Not Before: Nov 1 17:14:04 2004 GMT
- Not After : Jan 1 05:37:19 2035 GMT
- Subject: C=US, OU=www.xrampsecurity.com, O=XRamp Security Services Inc, CN=XRamp Global Certification Authority
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:98:24:1e:bd:15:b4:ba:df:c7:8c:a5:27:b6:38:
- 0b:69:f3:b6:4e:a8:2c:2e:21:1d:5c:44:df:21:5d:
- 7e:23:74:fe:5e:7e:b4:4a:b7:a6:ad:1f:ae:e0:06:
- 16:e2:9b:5b:d9:67:74:6b:5d:80:8f:29:9d:86:1b:
- d9:9c:0d:98:6d:76:10:28:58:e4:65:b0:7f:4a:98:
- 79:9f:e0:c3:31:7e:80:2b:b5:8c:c0:40:3b:11:86:
- d0:cb:a2:86:36:60:a4:d5:30:82:6d:d9:6e:d0:0f:
- 12:04:33:97:5f:4f:61:5a:f0:e4:f9:91:ab:e7:1d:
- 3b:bc:e8:cf:f4:6b:2d:34:7c:e2:48:61:1c:8e:f3:
- 61:44:cc:6f:a0:4a:a9:94:b0:4d:da:e7:a9:34:7a:
- 72:38:a8:41:cc:3c:94:11:7d:eb:c8:a6:8c:b7:86:
- cb:ca:33:3b:d9:3d:37:8b:fb:7a:3e:86:2c:e7:73:
- d7:0a:57:ac:64:9b:19:eb:f4:0f:04:08:8a:ac:03:
- 17:19:64:f4:5a:25:22:8d:34:2c:b2:f6:68:1d:12:
- 6d:d3:8a:1e:14:da:c4:8f:a6:e2:23:85:d5:7a:0d:
- bd:6a:e0:e9:ec:ec:17:bb:42:1b:67:aa:25:ed:45:
- 83:21:fc:c1:c9:7c:d5:62:3e:fa:f2:c5:2d:d3:fd:
- d4:65
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- 1.3.6.1.4.1.311.20.2:
- ...C.A
- X509v3 Key Usage:
- Digital Signature, Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- C6:4F:A2:3D:06:63:84:09:9C:CE:62:E4:04:AC:8D:5C:B5:E9:B6:1B
- X509v3 CRL Distribution Points:
-
- Full Name:
- URI:http://crl.xrampsecurity.com/XGCA.crl
-
- 1.3.6.1.4.1.311.21.1:
- ...
- Signature Algorithm: sha1WithRSAEncryption
- 91:15:39:03:01:1b:67:fb:4a:1c:f9:0a:60:5b:a1:da:4d:97:
- 62:f9:24:53:27:d7:82:64:4e:90:2e:c3:49:1b:2b:9a:dc:fc:
- a8:78:67:35:f1:1d:f0:11:bd:b7:48:e3:10:f6:0d:df:3f:d2:
- c9:b6:aa:55:a4:48:ba:02:db:de:59:2e:15:5b:3b:9d:16:7d:
- 47:d7:37:ea:5f:4d:76:12:36:bb:1f:d7:a1:81:04:46:20:a3:
- 2c:6d:a9:9e:01:7e:3f:29:ce:00:93:df:fd:c9:92:73:89:89:
- 64:9e:e7:2b:e4:1c:91:2c:d2:b9:ce:7d:ce:6f:31:99:d3:e6:
- be:d2:1e:90:f0:09:14:79:5c:23:ab:4d:d2:da:21:1f:4d:99:
- 79:9d:e1:cf:27:9f:10:9b:1c:88:0d:b0:8a:64:41:31:b8:0e:
- 6c:90:24:a4:9b:5c:71:8f:ba:bb:7e:1c:1b:db:6a:80:0f:21:
- bc:e9:db:a6:b7:40:f4:b2:8b:a9:b1:e4:ef:9a:1a:d0:3d:69:
- 99:ee:a8:28:a3:e1:3c:b3:f0:b2:11:9c:cf:7c:40:e6:dd:e7:
- 43:7d:a2:d8:3a:b5:a9:8d:f2:34:99:c4:d4:10:e1:06:fd:09:
- 84:10:3b:ee:c4:4c:f4:ec:27:7c:42:c2:74:7c:82:8a:09:c9:
- b4:03:25:bc
-SHA1 Fingerprint=B8:01:86:D1:EB:9C:86:A5:41:04:CF:30:54:F3:4C:52:B7:E5:58:C6
diff --git a/luni/src/main/files/cacerts/7672ac4b.0 b/luni/src/main/files/cacerts/7672ac4b.0
deleted file mode 100644
index 46d1bf6..0000000
--- a/luni/src/main/files/cacerts/7672ac4b.0
+++ /dev/null
@@ -1,123 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjET
-MBEGA1UEChMKQ2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAk
-BgNVBAMMHUNlcnRpbm9taXMgLSBBdXRvcml0w6kgUmFjaW5lMB4XDTA4MDkxNzA4
-Mjg1OVoXDTI4MDkxNzA4Mjg1OVowYzELMAkGA1UEBhMCRlIxEzARBgNVBAoTCkNl
-cnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMSYwJAYDVQQDDB1DZXJ0
-aW5vbWlzIC0gQXV0b3JpdMOpIFJhY2luZTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
-ADCCAgoCggIBAJ2Fn4bT46/HsmtuM+Cet0I0VZ35gb5j2CN2DpdUzZlMGvE5x4jY
-F1AMnmHawE5V3udauHpOd4cN5bjr+p5eex7Ezyh0x5P1FMYiKAT5kcOrJ3NqDi5N
-8y4oH3DfVS9O7cdxbwlyLu3VMpfQ8Vh30WC8Tl7bmoT2R2FFK/ZQpn9qcSdIhDWe
-rP5pqZ56XjUl+rSnSTV3lqc2W+HN3yNw2F1MpQiD8aYkOBOo7C+ooWfHpi2GR+6K
-/OybDnT0K0kCe5B1jPyZOQE51kqJ5Z52qz6WKDgmi92NjMD2AR5vpTESOH2VwnHu
-7XSu5DaiQ3XV8QCb4uTXzEIDS3h65X27uK4uIJPT5GHfceF2Z5c/tt9qc1pkIuVC
-28+BA5PY9OMQ4HL2AHCs8MF6DwV/zzRpRbWT5BnbUhYjBYkOjUjkJW+zeL9i9Qf6
-lSTClrLooyPCXQP8w9PlfMl1I9f09bze5N/NgL+RiH2nE7Q5uiy6vdFrzPOlKO1E
-nn1So2+WLhl+HPNbxxaOu2B9d2ZHVIIAEWBsMsGoOBvrbpgT1u449fCfDu/+MYHB
-0iSVL1N6aaLwD4ZFjliCK0wi1F6g530mJ0jfJUaNSih8hp75mxpZuWW/Bd22Ql09
-5gBIgl4g9xGC3srYn+Y3RyYe63j3YcNBZFgCQfna4NH4+ej9Uji29YnfAgMBAAGj
-WzBZMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQN
-jLZh2kS40RR9w759XkjwzspqsDAXBgNVHSAEEDAOMAwGCiqBegFWAgIAAQEwDQYJ
-KoZIhvcNAQEFBQADggIBACQ+YAZ+He86PtvqrxyaLAEL9MW12Ukx9F1BjYkMTv9s
-ov3/4gbIOZ/xWqndIlgVqIrTseYyCYIDbNc/CMf4uboAbbnW/FIyXaR/pDGUu7ZM
-OH8oMDX/nyNTt7buFHAAQCvaR6s0fl6nVjBhK4tDrP22iCj1a7Y+YEq6QpA0Z43q
-619FVDsXrIvkxmUP7tCMXWY5zjKn2BCXwH40nJ+U8/aGH88bc62UeYdocMMzpXDn
-2NU4lG9jeeu/Cg4I58UvD0KgKxRA/yHgBcUn4YQRE7rWhh1BCxMjidPJC+iKunqj
-o3M3NYB9Ergzd0A4wPpeMNLytqOx1qKVl4GbUu1pTP+A5FPbVFsDbVRfsbjvJL1v
-nxHDx2TCDyhihWZeGnuyt++uNckZM6i4J9szVb9o4XVIRFb7zdNIu0eJOqxp9YDG
-5ERQL1TEqkPFMTFYvZbF6nVsmnWxTfj3l/+WFvKXTej28xH5On2KOG4Ey+HTRRWq
-pdEdnV1j6CTmNhTih60bWfVEm/vXd3wfAXBioSAaosUaKPQhA+4u2cGA6rnZgtZb
-dsLLO7XSAPCjDuGtbkD326C00EauFddEwk01+dIL8hf2rGbVJLJP0RyZwG71fet0
-BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/vgt2Fl43N+bYdJeimUV5
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=FR, O=Certinomis, OU=0002 433998903, CN=Certinomis - Autorit\xC3\xA9 Racine
- Validity
- Not Before: Sep 17 08:28:59 2008 GMT
- Not After : Sep 17 08:28:59 2028 GMT
- Subject: C=FR, O=Certinomis, OU=0002 433998903, CN=Certinomis - Autorit\xC3\xA9 Racine
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:9d:85:9f:86:d3:e3:af:c7:b2:6b:6e:33:e0:9e:
- b7:42:34:55:9d:f9:81:be:63:d8:23:76:0e:97:54:
- cd:99:4c:1a:f1:39:c7:88:d8:17:50:0c:9e:61:da:
- c0:4e:55:de:e7:5a:b8:7a:4e:77:87:0d:e5:b8:eb:
- fa:9e:5e:7b:1e:c4:cf:28:74:c7:93:f5:14:c6:22:
- 28:04:f9:91:c3:ab:27:73:6a:0e:2e:4d:f3:2e:28:
- 1f:70:df:55:2f:4e:ed:c7:71:6f:09:72:2e:ed:d5:
- 32:97:d0:f1:58:77:d1:60:bc:4e:5e:db:9a:84:f6:
- 47:61:45:2b:f6:50:a6:7f:6a:71:27:48:84:35:9e:
- ac:fe:69:a9:9e:7a:5e:35:25:fa:b4:a7:49:35:77:
- 96:a7:36:5b:e1:cd:df:23:70:d8:5d:4c:a5:08:83:
- f1:a6:24:38:13:a8:ec:2f:a8:a1:67:c7:a6:2d:86:
- 47:ee:8a:fc:ec:9b:0e:74:f4:2b:49:02:7b:90:75:
- 8c:fc:99:39:01:39:d6:4a:89:e5:9e:76:ab:3e:96:
- 28:38:26:8b:dd:8d:8c:c0:f6:01:1e:6f:a5:31:12:
- 38:7d:95:c2:71:ee:ed:74:ae:e4:36:a2:43:75:d5:
- f1:00:9b:e2:e4:d7:cc:42:03:4b:78:7a:e5:7d:bb:
- b8:ae:2e:20:93:d3:e4:61:df:71:e1:76:67:97:3f:
- b6:df:6a:73:5a:64:22:e5:42:db:cf:81:03:93:d8:
- f4:e3:10:e0:72:f6:00:70:ac:f0:c1:7a:0f:05:7f:
- cf:34:69:45:b5:93:e4:19:db:52:16:23:05:89:0e:
- 8d:48:e4:25:6f:b3:78:bf:62:f5:07:fa:95:24:c2:
- 96:b2:e8:a3:23:c2:5d:03:fc:c3:d3:e5:7c:c9:75:
- 23:d7:f4:f5:bc:de:e4:df:cd:80:bf:91:88:7d:a7:
- 13:b4:39:ba:2c:ba:bd:d1:6b:cc:f3:a5:28:ed:44:
- 9e:7d:52:a3:6f:96:2e:19:7e:1c:f3:5b:c7:16:8e:
- bb:60:7d:77:66:47:54:82:00:11:60:6c:32:c1:a8:
- 38:1b:eb:6e:98:13:d6:ee:38:f5:f0:9f:0e:ef:fe:
- 31:81:c1:d2:24:95:2f:53:7a:69:a2:f0:0f:86:45:
- 8e:58:82:2b:4c:22:d4:5e:a0:e7:7d:26:27:48:df:
- 25:46:8d:4a:28:7c:86:9e:f9:9b:1a:59:b9:65:bf:
- 05:dd:b6:42:5d:3d:e6:00:48:82:5e:20:f7:11:82:
- de:ca:d8:9f:e6:37:47:26:1e:eb:78:f7:61:c3:41:
- 64:58:02:41:f9:da:e0:d1:f8:f9:e8:fd:52:38:b6:
- f5:89:df
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- 0D:8C:B6:61:DA:44:B8:D1:14:7D:C3:BE:7D:5E:48:F0:CE:CA:6A:B0
- X509v3 Certificate Policies:
- Policy: 1.2.250.1.86.2.2.0.1.1
-
- Signature Algorithm: sha1WithRSAEncryption
- 24:3e:60:06:7e:1d:ef:3a:3e:db:ea:af:1c:9a:2c:01:0b:f4:
- c5:b5:d9:49:31:f4:5d:41:8d:89:0c:4e:ff:6c:a2:fd:ff:e2:
- 06:c8:39:9f:f1:5a:a9:dd:22:58:15:a8:8a:d3:b1:e6:32:09:
- 82:03:6c:d7:3f:08:c7:f8:b9:ba:00:6d:b9:d6:fc:52:32:5d:
- a4:7f:a4:31:94:bb:b6:4c:38:7f:28:30:35:ff:9f:23:53:b7:
- b6:ee:14:70:00:40:2b:da:47:ab:34:7e:5e:a7:56:30:61:2b:
- 8b:43:ac:fd:b6:88:28:f5:6b:b6:3e:60:4a:ba:42:90:34:67:
- 8d:ea:eb:5f:45:54:3b:17:ac:8b:e4:c6:65:0f:ee:d0:8c:5d:
- 66:39:ce:32:a7:d8:10:97:c0:7e:34:9c:9f:94:f3:f6:86:1f:
- cf:1b:73:ad:94:79:87:68:70:c3:33:a5:70:e7:d8:d5:38:94:
- 6f:63:79:eb:bf:0a:0e:08:e7:c5:2f:0f:42:a0:2b:14:40:ff:
- 21:e0:05:c5:27:e1:84:11:13:ba:d6:86:1d:41:0b:13:23:89:
- d3:c9:0b:e8:8a:ba:7a:a3:a3:73:37:35:80:7d:12:b8:33:77:
- 40:38:c0:fa:5e:30:d2:f2:b6:a3:b1:d6:a2:95:97:81:9b:52:
- ed:69:4c:ff:80:e4:53:db:54:5b:03:6d:54:5f:b1:b8:ef:24:
- bd:6f:9f:11:c3:c7:64:c2:0f:28:62:85:66:5e:1a:7b:b2:b7:
- ef:ae:35:c9:19:33:a8:b8:27:db:33:55:bf:68:e1:75:48:44:
- 56:fb:cd:d3:48:bb:47:89:3a:ac:69:f5:80:c6:e4:44:50:2f:
- 54:c4:aa:43:c5:31:31:58:bd:96:c5:ea:75:6c:9a:75:b1:4d:
- f8:f7:97:ff:96:16:f2:97:4d:e8:f6:f3:11:f9:3a:7d:8a:38:
- 6e:04:cb:e1:d3:45:15:aa:a5:d1:1d:9d:5d:63:e8:24:e6:36:
- 14:e2:87:ad:1b:59:f5:44:9b:fb:d7:77:7c:1f:01:70:62:a1:
- 20:1a:a2:c5:1a:28:f4:21:03:ee:2e:d9:c1:80:ea:b9:d9:82:
- d6:5b:76:c2:cb:3b:b5:d2:00:f0:a3:0e:e1:ad:6e:40:f7:db:
- a0:b4:d0:46:ae:15:d7:44:c2:4d:35:f9:d2:0b:f2:17:f6:ac:
- 66:d5:24:b2:4f:d1:1c:99:c0:6e:f5:7d:eb:74:04:b8:f9:4d:
- 77:09:d7:b4:cf:07:30:09:f1:b8:00:56:d9:17:16:16:0a:2b:
- 86:df:8f:01:19:1a:e5:bb:82:63:ff:be:0b:76:16:5e:37:37:
- e6:d8:74:97:a2:99:45:79
-SHA1 Fingerprint=2E:14:DA:EC:28:F0:FA:1E:8E:38:9A:4E:AB:EB:26:C0:0A:D3:83:C3
diff --git a/luni/src/main/files/cacerts/7999be0d.0 b/luni/src/main/files/cacerts/7999be0d.0
deleted file mode 100644
index 077c03b..0000000
--- a/luni/src/main/files/cacerts/7999be0d.0
+++ /dev/null
@@ -1,78 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT
-MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
-YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG
-EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg
-R2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9
-9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq
-fnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv
-iS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU
-1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+
-bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW
-MPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA
-ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l
-uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn
-Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS
-tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF
-PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un
-hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV
-5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 144470 (0x23456)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
- Validity
- Not Before: May 21 04:00:00 2002 GMT
- Not After : May 21 04:00:00 2022 GMT
- Subject: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:da:cc:18:63:30:fd:f4:17:23:1a:56:7e:5b:df:
- 3c:6c:38:e4:71:b7:78:91:d4:bc:a1:d8:4c:f8:a8:
- 43:b6:03:e9:4d:21:07:08:88:da:58:2f:66:39:29:
- bd:05:78:8b:9d:38:e8:05:b7:6a:7e:71:a4:e6:c4:
- 60:a6:b0:ef:80:e4:89:28:0f:9e:25:d6:ed:83:f3:
- ad:a6:91:c7:98:c9:42:18:35:14:9d:ad:98:46:92:
- 2e:4f:ca:f1:87:43:c1:16:95:57:2d:50:ef:89:2d:
- 80:7a:57:ad:f2:ee:5f:6b:d2:00:8d:b9:14:f8:14:
- 15:35:d9:c0:46:a3:7b:72:c8:91:bf:c9:55:2b:cd:
- d0:97:3e:9c:26:64:cc:df:ce:83:19:71:ca:4e:e6:
- d4:d5:7b:a9:19:cd:55:de:c8:ec:d2:5e:38:53:e5:
- 5c:4f:8c:2d:fe:50:23:36:fc:66:e6:cb:8e:a4:39:
- 19:00:b7:95:02:39:91:0b:0e:fe:38:2e:d1:1d:05:
- 9a:f6:4d:3e:6f:0f:07:1d:af:2c:1e:8f:60:39:e2:
- fa:36:53:13:39:d4:5e:26:2b:db:3d:a8:14:bd:32:
- eb:18:03:28:52:04:71:e5:ab:33:3d:e1:38:bb:07:
- 36:84:62:9c:79:ea:16:30:f4:5f:c0:2b:e8:71:6b:
- e4:f9
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
- X509v3 Authority Key Identifier:
- keyid:C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
-
- Signature Algorithm: sha1WithRSAEncryption
- 35:e3:29:6a:e5:2f:5d:54:8e:29:50:94:9f:99:1a:14:e4:8f:
- 78:2a:62:94:a2:27:67:9e:d0:cf:1a:5e:47:e9:c1:b2:a4:cf:
- dd:41:1a:05:4e:9b:4b:ee:4a:6f:55:52:b3:24:a1:37:0a:eb:
- 64:76:2a:2e:2c:f3:fd:3b:75:90:bf:fa:71:d8:c7:3d:37:d2:
- b5:05:95:62:b9:a6:de:89:3d:36:7b:38:77:48:97:ac:a6:20:
- 8f:2e:a6:c9:0c:c2:b2:99:45:00:c7:ce:11:51:22:22:e0:a5:
- ea:b6:15:48:09:64:ea:5e:4f:74:f7:05:3e:c7:8a:52:0c:db:
- 15:b4:bd:6d:9b:e5:c6:b1:54:68:a9:e3:69:90:b6:9a:a5:0f:
- b8:b9:3f:20:7d:ae:4a:b5:b8:9c:e4:1d:b6:ab:e6:94:a5:c1:
- c7:83:ad:db:f5:27:87:0e:04:6c:d5:ff:dd:a0:5d:ed:87:52:
- b7:2b:15:02:ae:39:a6:6a:74:e9:da:c4:e7:bc:4d:34:1e:a9:
- 5c:4d:33:5f:92:09:2f:88:66:5d:77:97:c7:1d:76:13:a9:d5:
- e5:f1:16:09:11:35:d5:ac:db:24:71:70:2c:98:56:0b:d9:17:
- b4:d1:e3:51:2b:5e:75:e8:d5:d0:dc:4f:34:ed:c2:05:66:80:
- a1:cb:e6:33
-SHA1 Fingerprint=DE:28:F4:A4:FF:E5:B9:2F:A3:C5:03:D1:A3:49:A7:F9:96:2A:82:12
diff --git a/luni/src/main/files/cacerts/7a819ef2.0 b/luni/src/main/files/cacerts/7a819ef2.0
deleted file mode 100644
index 091009f..0000000
--- a/luni/src/main/files/cacerts/7a819ef2.0
+++ /dev/null
@@ -1,126 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x
-GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv
-b3QgQ0EgMjAeFw0wNjExMjQxODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNV
-BAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W
-YWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCa
-GMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6XJxg
-Fyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55J
-WpzmM+Yklvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bB
-rrcCaoF6qUWD4gXmuVbBlDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp
-+ARz8un+XJiM9XOva7R+zdRcAitMOeGylZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1
-ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt66/3FsvbzSUr5R/7mp/i
-Ucw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1JdxnwQ5hYIiz
-PtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og
-/zOhD7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UH
-oycR7hYQe7xFSkyyBNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuI
-yV77zGHcizN300QyNQliBJIWENieJ0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1Ud
-EwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBQahGK8SEwzJQTU7tD2
-A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGUa6FJpEcwRTEL
-MAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT
-ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2f
-BluornFdLwUvZ+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzn
-g/iN/Ae42l9NLmeyhP3ZRPx3UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2Bl
-fF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodmVjB3pjd4M1IQWK4/YY7yarHvGH5K
-WWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK+JDSV6IZUaUtl0Ha
-B0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrWIozc
-hLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPR
-TUIZ3Ph1WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWD
-mbA4CD/pXvk1B+TJYm5Xf6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0Z
-ohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y
-4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8VCLAAVBpQ570su9t+Oza
-8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1289 (0x509)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=BM, O=QuoVadis Limited, CN=QuoVadis Root CA 2
- Validity
- Not Before: Nov 24 18:27:00 2006 GMT
- Not After : Nov 24 18:23:33 2031 GMT
- Subject: C=BM, O=QuoVadis Limited, CN=QuoVadis Root CA 2
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:9a:18:ca:4b:94:0d:00:2d:af:03:29:8a:f0:0f:
- 81:c8:ae:4c:19:85:1d:08:9f:ab:29:44:85:f3:2f:
- 81:ad:32:1e:90:46:bf:a3:86:26:1a:1e:fe:7e:1c:
- 18:3a:5c:9c:60:17:2a:3a:74:83:33:30:7d:61:54:
- 11:cb:ed:ab:e0:e6:d2:a2:7e:f5:6b:6f:18:b7:0a:
- 0b:2d:fd:e9:3e:ef:0a:c6:b3:10:e9:dc:c2:46:17:
- f8:5d:fd:a4:da:ff:9e:49:5a:9c:e6:33:e6:24:96:
- f7:3f:ba:5b:2b:1c:7a:35:c2:d6:67:fe:ab:66:50:
- 8b:6d:28:60:2b:ef:d7:60:c3:c7:93:bc:8d:36:91:
- f3:7f:f8:db:11:13:c4:9c:77:76:c1:ae:b7:02:6a:
- 81:7a:a9:45:83:e2:05:e6:b9:56:c1:94:37:8f:48:
- 71:63:22:ec:17:65:07:95:8a:4b:df:8f:c6:5a:0a:
- e5:b0:e3:5f:5e:6b:11:ab:0c:f9:85:eb:44:e9:f8:
- 04:73:f2:e9:fe:5c:98:8c:f5:73:af:6b:b4:7e:cd:
- d4:5c:02:2b:4c:39:e1:b2:95:95:2d:42:87:d7:d5:
- b3:90:43:b7:6c:13:f1:de:dd:f6:c4:f8:89:3f:d1:
- 75:f5:92:c3:91:d5:8a:88:d0:90:ec:dc:6d:de:89:
- c2:65:71:96:8b:0d:03:fd:9c:bf:5b:16:ac:92:db:
- ea:fe:79:7c:ad:eb:af:f7:16:cb:db:cd:25:2b:e5:
- 1f:fb:9a:9f:e2:51:cc:3a:53:0c:48:e6:0e:bd:c9:
- b4:76:06:52:e6:11:13:85:72:63:03:04:e0:04:36:
- 2b:20:19:02:e8:74:a7:1f:b6:c9:56:66:f0:75:25:
- dc:67:c1:0e:61:60:88:b3:3e:d1:a8:fc:a3:da:1d:
- b0:d1:b1:23:54:df:44:76:6d:ed:41:d8:c1:b2:22:
- b6:53:1c:df:35:1d:dc:a1:77:2a:31:e4:2d:f5:e5:
- e5:db:c8:e0:ff:e5:80:d7:0b:63:a0:ff:33:a1:0f:
- ba:2c:15:15:ea:97:b3:d2:a2:b5:be:f2:8c:96:1e:
- 1a:8f:1d:6c:a4:61:37:b9:86:73:33:d7:97:96:9e:
- 23:7d:82:a4:4c:81:e2:a1:d1:ba:67:5f:95:07:a3:
- 27:11:ee:16:10:7b:bc:45:4a:4c:b2:04:d2:ab:ef:
- d5:fd:0c:51:ce:50:6a:08:31:f9:91:da:0c:8f:64:
- 5c:03:c3:3a:8b:20:3f:6e:8d:67:3d:3a:d6:fe:7d:
- 5b:88:c9:5e:fb:cc:61:dc:8b:33:77:d3:44:32:35:
- 09:62:04:92:16:10:d8:9e:27:47:fb:3b:21:e3:f8:
- eb:1d:5b
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- 1A:84:62:BC:48:4C:33:25:04:D4:EE:D0:F6:03:C4:19:46:D1:94:6B
- X509v3 Authority Key Identifier:
- keyid:1A:84:62:BC:48:4C:33:25:04:D4:EE:D0:F6:03:C4:19:46:D1:94:6B
- DirName:/C=BM/O=QuoVadis Limited/CN=QuoVadis Root CA 2
- serial:05:09
-
- Signature Algorithm: sha1WithRSAEncryption
- 3e:0a:16:4d:9f:06:5b:a8:ae:71:5d:2f:05:2f:67:e6:13:45:
- 83:c4:36:f6:f3:c0:26:0c:0d:b5:47:64:5d:f8:b4:72:c9:46:
- a5:03:18:27:55:89:78:7d:76:ea:96:34:80:17:20:dc:e7:83:
- f8:8d:fc:07:b8:da:5f:4d:2e:67:b2:84:fd:d9:44:fc:77:50:
- 81:e6:7c:b4:c9:0d:0b:72:53:f8:76:07:07:41:47:96:0c:fb:
- e0:82:26:93:55:8c:fe:22:1f:60:65:7c:5f:e7:26:b3:f7:32:
- 90:98:50:d4:37:71:55:f6:92:21:78:f7:95:79:fa:f8:2d:26:
- 87:66:56:30:77:a6:37:78:33:52:10:58:ae:3f:61:8e:f2:6a:
- b1:ef:18:7e:4a:59:63:ca:8d:a2:56:d5:a7:2f:bc:56:1f:cf:
- 39:c1:e2:fb:0a:a8:15:2c:7d:4d:7a:63:c6:6c:97:44:3c:d2:
- 6f:c3:4a:17:0a:f8:90:d2:57:a2:19:51:a5:2d:97:41:da:07:
- 4f:a9:50:da:90:8d:94:46:e1:3e:f0:94:fd:10:00:38:f5:3b:
- e8:40:e1:b4:6e:56:1a:20:cc:6f:58:8d:ed:2e:45:8f:d6:e9:
- 93:3f:e7:b1:2c:df:3a:d6:22:8c:dc:84:bb:22:6f:d0:f8:e4:
- c6:39:e9:04:88:3c:c3:ba:eb:55:7a:6d:80:99:24:f5:6c:01:
- fb:f8:97:b0:94:5b:eb:fd:d2:6f:f1:77:68:0d:35:64:23:ac:
- b8:55:a1:03:d1:4d:42:19:dc:f8:75:59:56:a3:f9:a8:49:79:
- f8:af:0e:b9:11:a0:7c:b7:6a:ed:34:d0:b6:26:62:38:1a:87:
- 0c:f8:e8:fd:2e:d3:90:7f:07:91:2a:1d:d6:7e:5c:85:83:99:
- b0:38:08:3f:e9:5e:f9:35:07:e4:c9:62:6e:57:7f:a7:50:95:
- f7:ba:c8:9b:e6:8e:a2:01:c5:d6:66:bf:79:61:f3:3c:1c:e1:
- b9:82:5c:5d:a0:c3:e9:d8:48:bd:19:a2:11:14:19:6e:b2:86:
- 1b:68:3e:48:37:1a:88:b7:5d:96:5e:9c:c7:ef:27:62:08:e2:
- 91:19:5c:d2:f1:21:dd:ba:17:42:82:97:71:81:53:31:a9:9f:
- f6:7d:62:bf:72:e1:a3:93:1d:cc:8a:26:5a:09:38:d0:ce:d7:
- 0d:80:16:b4:78:a5:3a:87:4c:8d:8a:a5:d5:46:97:f2:2c:10:
- b9:bc:54:22:c0:01:50:69:43:9e:f4:b2:ef:6d:f8:ec:da:f1:
- e3:b1:ef:df:91:8f:54:2a:0b:25:c1:26:19:c4:52:10:05:65:
- d5:82:10:ea:c2:31:cd:2e
-SHA1 Fingerprint=CA:3A:FB:CF:12:40:36:4B:44:B2:16:20:88:80:48:39:19:93:7C:F7
diff --git a/luni/src/main/files/cacerts/7d3cd826.0 b/luni/src/main/files/cacerts/7d3cd826.0
deleted file mode 100644
index f3944f2..0000000
--- a/luni/src/main/files/cacerts/7d3cd826.0
+++ /dev/null
@@ -1,52 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0
-IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz
-BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y
-aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG
-9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAwMjIzM1oXDTE5MDYy
-NjAwMjIzM1owgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y
-azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
-YXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw
-Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl
-cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjmFGWHOjVsQaBalfD
-cnWTq8+epvzzFlLWLU2fNUSoLgRNB0mKOCn1dzfnt6td3zZxFJmP3MKS8edgkpfs
-2Ejcv8ECIMYkpChMMFp2bbFc893enhBxoYjHW5tBbcqwuI4V7q0zK89HBFx1cQqY
-JJgpp0lZpd34t0NiYfPT4tBVPwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFa7AliE
-Zwgs3x/be0kz9dNnnfS0ChCzycUs4pJqcXgn8nCDQtM+z6lU9PHYkhaM0QTLS6vJ
-n0WuPIqpsHEzXcjFV9+vqDWzf4mH6eglkrh/hXqu1rweN1gqZ8mRzyqBPu3GOd/A
-PhmcGcwTTYJBtYze4D1gCCAPRX5ron+jjBXu
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 1 (0x0)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: L=ValiCert Validation Network, O=ValiCert, Inc., OU=ValiCert Class 3 Policy Validation Authority, CN=http://www.valicert.com//emailAddress=info@valicert.com
- Validity
- Not Before: Jun 26 00:22:33 1999 GMT
- Not After : Jun 26 00:22:33 2019 GMT
- Subject: L=ValiCert Validation Network, O=ValiCert, Inc., OU=ValiCert Class 3 Policy Validation Authority, CN=http://www.valicert.com//emailAddress=info@valicert.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (1024 bit)
- Modulus:
- 00:e3:98:51:96:1c:e8:d5:b1:06:81:6a:57:c3:72:
- 75:93:ab:cf:9e:a6:fc:f3:16:52:d6:2d:4d:9f:35:
- 44:a8:2e:04:4d:07:49:8a:38:29:f5:77:37:e7:b7:
- ab:5d:df:36:71:14:99:8f:dc:c2:92:f1:e7:60:92:
- 97:ec:d8:48:dc:bf:c1:02:20:c6:24:a4:28:4c:30:
- 5a:76:6d:b1:5c:f3:dd:de:9e:10:71:a1:88:c7:5b:
- 9b:41:6d:ca:b0:b8:8e:15:ee:ad:33:2b:cf:47:04:
- 5c:75:71:0a:98:24:98:29:a7:49:59:a5:dd:f8:b7:
- 43:62:61:f3:d3:e2:d0:55:3f
- Exponent: 65537 (0x10001)
- Signature Algorithm: sha1WithRSAEncryption
- 56:bb:02:58:84:67:08:2c:df:1f:db:7b:49:33:f5:d3:67:9d:
- f4:b4:0a:10:b3:c9:c5:2c:e2:92:6a:71:78:27:f2:70:83:42:
- d3:3e:cf:a9:54:f4:f1:d8:92:16:8c:d1:04:cb:4b:ab:c9:9f:
- 45:ae:3c:8a:a9:b0:71:33:5d:c8:c5:57:df:af:a8:35:b3:7f:
- 89:87:e9:e8:25:92:b8:7f:85:7a:ae:d6:bc:1e:37:58:2a:67:
- c9:91:cf:2a:81:3e:ed:c6:39:df:c0:3e:19:9c:19:cc:13:4d:
- 82:41:b5:8c:de:e0:3d:60:08:20:0f:45:7e:6b:a2:7f:a3:8c:
- 15:ee
-SHA1 Fingerprint=69:BD:8C:F4:9C:D3:00:FB:59:2E:17:93:CA:55:6A:F3:EC:AA:35:FB
diff --git a/luni/src/main/files/cacerts/7d453d8f.0 b/luni/src/main/files/cacerts/7d453d8f.0
deleted file mode 100644
index 8320018..0000000
--- a/luni/src/main/files/cacerts/7d453d8f.0
+++ /dev/null
@@ -1,75 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
-cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
-LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
-aWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
-VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
-aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
-bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
-IENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
-LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMu6nFL8eB8aHm8b
-N3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1EUGO+i2t
-KmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGu
-kxUccLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBm
-CC+Vk7+qRy+oRpfwEuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJ
-Xwzw3sJ2zq/3avL6QaaiMxTJ5Xpj055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWu
-imi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAERSWwauSCPc/L8my/uRan2Te
-2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5fj267Cz3qWhMe
-DGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
-/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565p
-F4ErWjfJXir0xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGt
-TxzhT5yvDwyd93gN2PQ1VoDat20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 1 (0x0)
- Serial Number:
- 9b:7e:06:49:a3:3e:62:b9:d5:ee:90:48:71:29:ef:57
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 1999 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G3
- Validity
- Not Before: Oct 1 00:00:00 1999 GMT
- Not After : Jul 16 23:59:59 2036 GMT
- Subject: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 1999 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G3
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:cb:ba:9c:52:fc:78:1f:1a:1e:6f:1b:37:73:bd:
- f8:c9:6b:94:12:30:4f:f0:36:47:f5:d0:91:0a:f5:
- 17:c8:a5:61:c1:16:40:4d:fb:8a:61:90:e5:76:20:
- c1:11:06:7d:ab:2c:6e:a6:f5:11:41:8e:fa:2d:ad:
- 2a:61:59:a4:67:26:4c:d0:e8:bc:52:5b:70:20:04:
- 58:d1:7a:c9:a4:69:bc:83:17:64:ad:05:8b:bc:d0:
- 58:ce:8d:8c:f5:eb:f0:42:49:0b:9d:97:27:67:32:
- 6e:e1:ae:93:15:1c:70:bc:20:4d:2f:18:de:92:88:
- e8:6c:85:57:11:1a:e9:7e:e3:26:11:54:a2:45:96:
- 55:83:ca:30:89:e8:dc:d8:a3:ed:2a:80:3f:7f:79:
- 65:57:3e:15:20:66:08:2f:95:93:bf:aa:47:2f:a8:
- 46:97:f0:12:e2:fe:c2:0a:2b:51:e6:76:e6:b7:46:
- b7:e2:0d:a6:cc:a8:c3:4c:59:55:89:e6:e8:53:5c:
- 1c:ea:9d:f0:62:16:0b:a7:c9:5f:0c:f0:de:c2:76:
- ce:af:f7:6a:f2:fa:41:a6:a2:33:14:c9:e5:7a:63:
- d3:9e:62:37:d5:85:65:9e:0e:e6:53:24:74:1b:5e:
- 1d:12:53:5b:c7:2c:e7:83:49:3b:15:ae:8a:68:b9:
- 57:97
- Exponent: 65537 (0x10001)
- Signature Algorithm: sha1WithRSAEncryption
- 11:14:96:c1:ab:92:08:f7:3f:2f:c9:b2:fe:e4:5a:9f:64:de:
- db:21:4f:86:99:34:76:36:57:dd:d0:15:2f:c5:ad:7f:15:1f:
- 37:62:73:3e:d4:e7:5f:ce:17:03:db:35:fa:2b:db:ae:60:09:
- 5f:1e:5f:8f:6e:bb:0b:3d:ea:5a:13:1e:0c:60:6f:b5:c0:b5:
- 23:22:2e:07:0b:cb:a9:74:cb:47:bb:1d:c1:d7:a5:6b:cc:2f:
- d2:42:fd:49:dd:a7:89:cf:53:ba:da:00:5a:28:bf:82:df:f8:
- ba:13:1d:50:86:82:fd:8e:30:8f:29:46:b0:1e:3d:35:da:38:
- 62:16:18:4a:ad:e6:b6:51:6c:de:af:62:eb:01:d0:1e:24:fe:
- 7a:8f:12:1a:12:68:b8:fb:66:99:14:14:45:5c:ae:e7:ae:69:
- 17:81:2b:5a:37:c9:5e:2a:f4:c6:e2:a1:5c:54:9b:a6:54:00:
- cf:f0:f1:c1:c7:98:30:1a:3b:36:16:db:a3:6e:ea:fd:ad:b2:
- c2:da:ef:02:47:13:8a:c0:f1:b3:31:ad:4f:1c:e1:4f:9c:af:
- 0f:0c:9d:f7:78:0d:d8:f4:35:56:80:da:b7:6d:17:8f:9d:1e:
- 81:64:e1:fe:c5:45:ba:ad:6b:b9:0a:7a:4e:4f:4b:84:ee:4b:
- f1:7d:dd:11
-SHA1 Fingerprint=13:2D:0D:45:53:4B:69:97:CD:B2:D5:C3:39:E2:55:76:60:9B:5C:C6
diff --git a/luni/src/main/files/cacerts/81b9768f.0 b/luni/src/main/files/cacerts/81b9768f.0
deleted file mode 100644
index 3593254..0000000
--- a/luni/src/main/files/cacerts/81b9768f.0
+++ /dev/null
@@ -1,84 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs
-MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
-ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL
-MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
-LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug
-RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm
-+9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW
-PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM
-xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB
-Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3
-hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg
-EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF
-MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA
-FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec
-nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z
-eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF
-hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2
-Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
-vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
-+OkuE6N36B9K
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 02:ac:5c:26:6a:0b:40:9b:8f:0b:79:f2:ae:46:25:77
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert High Assurance EV Root CA
- Validity
- Not Before: Nov 10 00:00:00 2006 GMT
- Not After : Nov 10 00:00:00 2031 GMT
- Subject: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert High Assurance EV Root CA
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c6:cc:e5:73:e6:fb:d4:bb:e5:2d:2d:32:a6:df:
- e5:81:3f:c9:cd:25:49:b6:71:2a:c3:d5:94:34:67:
- a2:0a:1c:b0:5f:69:a6:40:b1:c4:b7:b2:8f:d0:98:
- a4:a9:41:59:3a:d3:dc:94:d6:3c:db:74:38:a4:4a:
- cc:4d:25:82:f7:4a:a5:53:12:38:ee:f3:49:6d:71:
- 91:7e:63:b6:ab:a6:5f:c3:a4:84:f8:4f:62:51:be:
- f8:c5:ec:db:38:92:e3:06:e5:08:91:0c:c4:28:41:
- 55:fb:cb:5a:89:15:7e:71:e8:35:bf:4d:72:09:3d:
- be:3a:38:50:5b:77:31:1b:8d:b3:c7:24:45:9a:a7:
- ac:6d:00:14:5a:04:b7:ba:13:eb:51:0a:98:41:41:
- 22:4e:65:61:87:81:41:50:a6:79:5c:89:de:19:4a:
- 57:d5:2e:e6:5d:1c:53:2c:7e:98:cd:1a:06:16:a4:
- 68:73:d0:34:04:13:5c:a1:71:d3:5a:7c:55:db:5e:
- 64:e1:37:87:30:56:04:e5:11:b4:29:80:12:f1:79:
- 39:88:a2:02:11:7c:27:66:b7:88:b7:78:f2:ca:0a:
- a8:38:ab:0a:64:c2:bf:66:5d:95:84:c1:a1:25:1e:
- 87:5d:1a:50:0b:20:12:cc:41:bb:6e:0b:51:38:b8:
- 4b:cb
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Key Usage: critical
- Digital Signature, Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- B1:3E:C3:69:03:F8:BF:47:01:D4:98:26:1A:08:02:EF:63:64:2B:C3
- X509v3 Authority Key Identifier:
- keyid:B1:3E:C3:69:03:F8:BF:47:01:D4:98:26:1A:08:02:EF:63:64:2B:C3
-
- Signature Algorithm: sha1WithRSAEncryption
- 1c:1a:06:97:dc:d7:9c:9f:3c:88:66:06:08:57:21:db:21:47:
- f8:2a:67:aa:bf:18:32:76:40:10:57:c1:8a:f3:7a:d9:11:65:
- 8e:35:fa:9e:fc:45:b5:9e:d9:4c:31:4b:b8:91:e8:43:2c:8e:
- b3:78:ce:db:e3:53:79:71:d6:e5:21:94:01:da:55:87:9a:24:
- 64:f6:8a:66:cc:de:9c:37:cd:a8:34:b1:69:9b:23:c8:9e:78:
- 22:2b:70:43:e3:55:47:31:61:19:ef:58:c5:85:2f:4e:30:f6:
- a0:31:16:23:c8:e7:e2:65:16:33:cb:bf:1a:1b:a0:3d:f8:ca:
- 5e:8b:31:8b:60:08:89:2d:0c:06:5c:52:b7:c4:f9:0a:98:d1:
- 15:5f:9f:12:be:7c:36:63:38:bd:44:a4:7f:e4:26:2b:0a:c4:
- 97:69:0d:e9:8c:e2:c0:10:57:b8:c8:76:12:91:55:f2:48:69:
- d8:bc:2a:02:5b:0f:44:d4:20:31:db:f4:ba:70:26:5d:90:60:
- 9e:bc:4b:17:09:2f:b4:cb:1e:43:68:c9:07:27:c1:d2:5c:f7:
- ea:21:b9:68:12:9c:3c:9c:bf:9e:fc:80:5c:9b:63:cd:ec:47:
- aa:25:27:67:a0:37:f3:00:82:7d:54:d7:a9:f8:e9:2e:13:a3:
- 77:e8:1f:4a
-SHA1 Fingerprint=5F:B7:EE:06:33:E2:59:DB:AD:0C:4C:9A:E6:D3:8F:1A:61:C7:DC:25
diff --git a/luni/src/main/files/cacerts/82223c44.0 b/luni/src/main/files/cacerts/82223c44.0
deleted file mode 100644
index ab5bf83..0000000
--- a/luni/src/main/files/cacerts/82223c44.0
+++ /dev/null
@@ -1,119 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd
-MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg
-Q2xhc3MgMiBSb290IENBMB4XDTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1ow
-TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw
-HgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB
-BQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1g1Lr
-6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPV
-L4O2fuPn9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC91
-1K2GScuVr1QGbNgGE41b/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHx
-MlAQTn/0hpPshNOOvEu/XAFOBz3cFIqUCqTqc/sLUegTBxj6DvEr0VQVfTzh97QZ
-QmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeffawrbD02TTqigzXsu8lkB
-arcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgIzRFo1clr
-Us3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLi
-FRhnBkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRS
-P/TizPJhk9H9Z2vXUq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN
-9SG9dKpN6nIDSdvHXx1iY8f93ZHsM+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxP
-AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMmAd+BikoL1Rpzz
-uvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAU18h
-9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s
-A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3t
-OluwlN5E40EIosHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo
-+fsicdl9sz1Gv7SEr5AcD48Saq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7
-KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYdDnkM/crqJIByw5c/8nerQyIKx+u2
-DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWDLfJ6v9r9jv6ly0Us
-H8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0oyLQ
-I+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK7
-5t98biGCwWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h
-3PFaTWwyI0PurKju7koSCTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPz
-Y11aWOIv4x3kqdbQCtCev9eBCfHJxyYNrJgWVqA=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 2 (0x2)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=NO, O=Buypass AS-983163327, CN=Buypass Class 2 Root CA
- Validity
- Not Before: Oct 26 08:38:03 2010 GMT
- Not After : Oct 26 08:38:03 2040 GMT
- Subject: C=NO, O=Buypass AS-983163327, CN=Buypass Class 2 Root CA
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:d7:c7:5e:f7:c1:07:d4:77:fb:43:21:f4:f4:f5:
- 69:e4:ee:32:01:db:a3:86:1f:e4:59:0d:ba:e7:75:
- 83:52:eb:ea:1c:61:15:48:bb:1d:07:ca:8c:ae:b0:
- dc:96:9d:ea:c3:60:92:86:82:28:73:9c:56:06:ff:
- 4b:64:f0:0c:2a:37:49:b5:e5:cf:0c:7c:ee:f1:4a:
- bb:73:30:65:f3:d5:2f:83:b6:7e:e3:e7:f5:9e:ab:
- 60:f9:d3:f1:9d:92:74:8a:e4:1c:96:ac:5b:80:e9:
- b5:f4:31:87:a3:51:fc:c7:7e:a1:6f:8e:53:77:d4:
- 97:c1:55:33:92:3e:18:2f:75:d4:ad:86:49:cb:95:
- af:54:06:6c:d8:06:13:8d:5b:ff:e1:26:19:59:c0:
- 24:ba:81:71:79:90:44:50:68:24:94:5f:b8:b3:11:
- f1:29:41:61:a3:41:cb:23:36:d5:c1:f1:32:50:10:
- 4e:7f:f4:86:93:ec:84:d3:8e:bc:4b:bf:5c:01:4e:
- 07:3d:dc:14:8a:94:0a:a4:ea:73:fb:0b:51:e8:13:
- 07:18:fa:0e:f1:2b:d1:54:15:7d:3c:e1:f7:b4:19:
- 42:67:62:5e:77:e0:a2:55:ec:b6:d9:69:17:d5:3a:
- af:44:ed:4a:c5:9e:e4:7a:27:7c:e5:75:d7:aa:cb:
- 25:e7:df:6b:0a:db:0f:4d:93:4e:a8:a0:cd:7b:2e:
- f2:59:01:6a:b7:0d:b8:07:81:7e:8b:38:1b:38:e6:
- 0a:57:99:3d:ee:21:e8:a3:f5:0c:16:dd:8b:ec:34:
- 8e:9c:2a:1c:00:15:17:8d:68:83:d2:70:9f:18:08:
- cd:11:68:d5:c9:6b:52:cd:c4:46:8f:dc:b5:f3:d8:
- 57:73:1e:e9:94:39:04:bf:d3:de:38:de:b4:53:ec:
- 69:1c:a2:7e:c4:8f:e4:1b:70:ad:f2:a2:f9:fb:f7:
- 16:64:66:69:9f:49:51:a2:e2:15:18:67:06:4a:7f:
- d5:6c:b5:4d:b3:33:e0:61:eb:5d:be:e9:98:0f:32:
- d7:1d:4b:3c:2e:5a:01:52:91:09:f2:df:ea:8d:d8:
- 06:40:63:aa:11:e4:fe:c3:37:9e:14:52:3f:f4:e2:
- cc:f2:61:93:d1:fd:67:6b:d7:52:ae:bf:68:ab:40:
- 43:a0:57:35:53:78:f0:53:f8:61:42:07:64:c6:d7:
- 6f:9b:4c:38:0d:63:ac:62:af:36:8b:a2:73:0a:0d:
- f5:21:bd:74:aa:4d:ea:72:03:49:db:c7:5f:1d:62:
- 63:c7:fd:dd:91:ec:33:ee:f5:6d:b4:6e:30:68:de:
- c8:d6:26:b0:75:5e:7b:b4:07:20:98:a1:76:32:b8:
- 4d:6c:4f
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- C9:80:77:E0:62:92:82:F5:46:9C:F3:BA:F7:4C:C3:DE:B8:A3:AD:39
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 53:5f:21:f5:ba:b0:3a:52:39:2c:92:b0:6c:00:c9:ef:ce:20:
- ef:06:f2:96:9e:e9:a4:74:7f:7a:16:fc:b7:f5:b6:fb:15:1b:
- 3f:ab:a6:c0:72:5d:10:b1:71:ee:bc:4f:e3:ad:ac:03:6d:2e:
- 71:2e:af:c4:e3:ad:a3:bd:0c:11:a7:b4:ff:4a:b2:7b:10:10:
- 1f:a7:57:41:b2:c0:ae:f4:2c:59:d6:47:10:88:f3:21:51:29:
- 30:ca:60:86:af:46:ab:1d:ed:3a:5b:b0:94:de:44:e3:41:08:
- a2:c1:ec:1d:d6:fd:4f:b6:d6:47:d0:14:0b:ca:e6:ca:b5:7b:
- 77:7e:41:1f:5e:83:c7:b6:8c:39:96:b0:3f:96:81:41:6f:60:
- 90:e2:e8:f9:fb:22:71:d9:7d:b3:3d:46:bf:b4:84:af:90:1c:
- 0f:8f:12:6a:af:ef:ee:1e:7a:ae:02:4a:8a:17:2b:76:fe:ac:
- 54:89:24:2c:4f:3f:b6:b2:a7:4e:8c:a8:91:97:fb:29:c6:7b:
- 5c:2d:b9:cb:66:b6:b7:a8:5b:12:51:85:b5:09:7e:62:78:70:
- fe:a9:6a:60:b6:1d:0e:79:0c:fd:ca:ea:24:80:72:c3:97:3f:
- f2:77:ab:43:22:0a:c7:eb:b6:0c:84:82:2c:80:6b:41:8a:08:
- c0:eb:a5:6b:df:99:12:cb:8a:d5:5e:80:0c:91:e0:26:08:36:
- 48:c5:fa:38:11:35:ff:25:83:2d:f2:7a:bf:da:fd:8e:fe:a5:
- cb:45:2c:1f:c4:88:53:ae:77:0e:d9:9a:76:c5:8e:2c:1d:a3:
- ba:d5:ec:32:ae:c0:aa:ac:f7:d1:7a:4d:eb:d4:07:e2:48:f7:
- 22:8e:b0:a4:9f:6a:ce:8e:b2:b2:60:f4:a3:22:d0:23:eb:94:
- 5a:7a:69:dd:0f:bf:40:57:ac:6b:59:50:d9:a3:99:e1:6e:fe:
- 8d:01:79:27:23:15:de:92:9d:7b:09:4d:5a:e7:4b:48:30:5a:
- 18:e6:0a:6d:e6:8f:e0:d2:bb:e6:df:7c:6e:21:82:c1:68:39:
- 4d:b4:98:58:66:62:cc:4a:90:5e:c3:fa:27:04:b1:79:15:74:
- 99:cc:be:ad:20:de:26:60:1c:eb:56:51:a6:a3:ea:e4:a3:3f:
- a7:ff:61:dc:f1:5a:4d:6c:32:23:43:ee:ac:a8:ee:ee:4a:12:
- 09:3c:5d:71:c2:be:79:fa:c2:87:68:1d:0b:fd:5c:69:cc:06:
- d0:9a:7d:54:99:2a:c9:39:1a:19:af:4b:2a:43:f3:63:5d:5a:
- 58:e2:2f:e3:1d:e4:a9:d6:d0:0a:d0:9e:bf:d7:81:09:f1:c9:
- c7:26:0d:ac:98:16:56:a0
-SHA1 Fingerprint=49:0A:75:74:DE:87:0A:47:FE:58:EE:F6:C7:6B:EB:C6:0B:12:40:99
diff --git a/luni/src/main/files/cacerts/8470719d.0 b/luni/src/main/files/cacerts/8470719d.0
deleted file mode 100644
index 1ff5127..0000000
--- a/luni/src/main/files/cacerts/8470719d.0
+++ /dev/null
@@ -1,82 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6
-MRkwFwYDVQQKExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJp
-dHkgMjA0OCBWMzAeFw0wMTAyMjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAX
-BgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAbBgNVBAsTFFJTQSBTZWN1cml0eSAy
-MDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAt49VcdKA3Xtp
-eafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7Jylg
-/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGl
-wSMiuLgbWhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnh
-AMFRD0xS+ARaqn1y07iHKrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2
-PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP+Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpu
-AWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
-BjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4EFgQUB8NR
-MKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYc
-HnmYv/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/
-Zb5gEydxiKRz44Rj0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+
-f00/FGj1EVDVwfSQpQgdMWD/YIwjVAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVO
-rSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395nzIlQnQFgCi/vcEkllgVsRch
-6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kApKnXwiJPZ9d3
-7CAFYd4=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 0a:01:01:01:00:00:02:7c:00:00:00:0a:00:00:00:02
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: O=RSA Security Inc, OU=RSA Security 2048 V3
- Validity
- Not Before: Feb 22 20:39:23 2001 GMT
- Not After : Feb 22 20:39:23 2026 GMT
- Subject: O=RSA Security Inc, OU=RSA Security 2048 V3
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:b7:8f:55:71:d2:80:dd:7b:69:79:a7:f0:18:50:
- 32:3c:62:67:f6:0a:95:07:dd:e6:1b:f3:9e:d9:d2:
- 41:54:6b:ad:9f:7c:be:19:cd:fb:46:ab:41:68:1e:
- 18:ea:55:c8:2f:91:78:89:28:fb:27:29:60:ff:df:
- 8f:8c:3b:c9:49:9b:b5:a4:94:ce:01:ea:3e:b5:63:
- 7b:7f:26:fd:19:dd:c0:21:bd:84:d1:2d:4f:46:c3:
- 4e:dc:d8:37:39:3b:28:af:cb:9d:1a:ea:2b:af:21:
- a5:c1:23:22:b8:b8:1b:5a:13:87:57:83:d1:f0:20:
- e7:e8:4f:23:42:b0:00:a5:7d:89:e9:e9:61:73:94:
- 98:71:26:bc:2d:6a:e0:f7:4d:f0:f1:b6:2a:38:31:
- 81:0d:29:e1:00:c1:51:0f:4c:52:f8:04:5a:aa:7d:
- 72:d3:b8:87:2a:bb:63:10:03:2a:b3:a1:4f:0d:5a:
- 5e:46:b7:3d:0e:f5:74:ec:99:9f:f9:3d:24:81:88:
- a6:dd:60:54:e8:95:36:3d:c6:09:93:9a:a3:12:80:
- 00:55:99:19:47:bd:d0:a5:7c:c3:ba:fb:1f:f7:f5:
- 0f:f8:ac:b9:b5:f4:37:98:13:18:de:85:5b:b7:0c:
- 82:3b:87:6f:95:39:58:30:da:6e:01:68:17:22:cc:
- c0:0b
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Authority Key Identifier:
- keyid:07:C3:51:30:A4:AA:E9:45:AE:35:24:FA:FF:24:2C:33:D0:B1:9D:8C
-
- X509v3 Subject Key Identifier:
- 07:C3:51:30:A4:AA:E9:45:AE:35:24:FA:FF:24:2C:33:D0:B1:9D:8C
- Signature Algorithm: sha1WithRSAEncryption
- 5f:3e:86:76:6e:b8:35:3c:4e:36:1c:1e:79:98:bf:fd:d5:12:
- 11:79:52:0e:ee:31:89:bc:dd:7f:f9:d1:c6:15:21:e8:8a:01:
- 54:0d:3a:fb:54:b9:d6:63:d4:b1:aa:96:4d:a2:42:4d:d4:53:
- 1f:8b:10:de:7f:65:be:60:13:27:71:88:a4:73:e3:84:63:d1:
- a4:55:e1:50:93:e6:1b:0e:79:d0:67:bc:46:c8:bf:3f:17:0d:
- 95:e6:c6:90:69:de:e7:b4:2f:de:95:7d:d0:12:3f:3d:3e:7f:
- 4d:3f:14:68:f5:11:50:d5:c1:f4:90:a5:08:1d:31:60:ff:60:
- 8c:23:54:0a:af:fe:a1:6e:c5:d1:7a:2a:68:78:cf:1e:82:0a:
- 20:b4:1f:ad:e5:85:b2:6a:68:75:4e:ad:25:37:94:85:be:bd:
- a1:d4:ea:b7:0c:4b:3c:9d:e8:12:00:f0:5f:ac:0d:e1:ac:70:
- 63:73:f7:7f:79:9f:32:25:42:74:05:80:28:bf:bd:c1:24:96:
- 58:15:b1:17:21:e9:89:4b:db:07:88:67:f4:15:ad:70:3e:2f:
- 4d:85:3b:c2:b7:db:fe:98:68:23:89:e1:74:0f:de:f4:c5:84:
- 63:29:1b:cc:cb:07:c9:00:a4:a9:d7:c2:22:4f:67:d7:77:ec:
- 20:05:61:de
-SHA1 Fingerprint=25:01:90:19:CF:FB:D9:99:1C:B7:68:25:74:8D:94:5F:30:93:95:42
diff --git a/luni/src/main/files/cacerts/84cba82f.0 b/luni/src/main/files/cacerts/84cba82f.0
deleted file mode 100644
index a0a0318..0000000
--- a/luni/src/main/files/cacerts/84cba82f.0
+++ /dev/null
@@ -1,77 +0,0 @@
------BEGIN CERTIFICATE-----
-MIID+zCCAuOgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBtzE/MD0GA1UEAww2VMOc
-UktUUlVTVCBFbGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sx
-c8SxMQswCQYDVQQGDAJUUjEPMA0GA1UEBwwGQU5LQVJBMVYwVAYDVQQKDE0oYykg
-MjAwNSBUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8
-dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjAeFw0wNTA1MTMxMDI3MTdaFw0xNTAz
-MjIxMDI3MTdaMIG3MT8wPQYDVQQDDDZUw5xSS1RSVVNUIEVsZWt0cm9uaWsgU2Vy
-dGlmaWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLExCzAJBgNVBAYMAlRSMQ8wDQYD
-VQQHDAZBTktBUkExVjBUBgNVBAoMTShjKSAyMDA1IFTDnFJLVFJVU1QgQmlsZ2kg
-xLBsZXRpxZ9pbSB2ZSBCaWxpxZ9pbSBHw7x2ZW5sacSfaSBIaXptZXRsZXJpIEEu
-xZ4uMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAylIF1mMD2Bxf3dJ7
-XfIMYGFbazt0K3gNfUW9InTojAPBxhEqPZW8qZSwu5GXyGl8hMW0kWxsE2qkVa2k
-heiVfrMArwDCBRj1cJ02i67L5BuBf5OI+2pVu32Fks66WJ/bMsW9Xe8iSi9BB35J
-YbOG7E6mQW6EvAPs9TscyB/C7qju6hJKjRTP8wrgUDn5CDX4EVmt5yLqS8oUBt5C
-urKZ8y1UiBAG6uEaPj1nH/vO+3yC6BFdSsG5FOpU2WabfIl9BJpiyelSPJ6c79L1
-JuTm5Rh8i27fbMx4W09ysstcP4wFjdFMjK2Sx+F4f2VsSQZQLJ4ywtdKxnWKWU51
-b0dewQIDAQABoxAwDjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAV
-9VX/N5aAWSGk/KEVTCD21F/aAyT8z5Aa9CEKmu46sWrv7/hg0Uw2ZkUd82YCdAR7
-kjCo3gp2D++Vbr3JN+YaDayJSFvMgzbC9UZcWYJWtNX+I7TYVBxEq8Sn5RTOPEFh
-fEPmzcSBCYsk+1Ql1haolgxnB2+zUEfjHCQo3SqYpGH+2+oSN7wBGjSFvW5P55Fy
-B0SFHljKVETd96y5y4khctuPwGkplyqjrhgjlxxBKot8KsF8kOipKMDTkcatKIdA
-aLX/7KfS0zgYnNN9aV3wxqUeJBujR/xpB2jn5Jq07Q+hh4cCzofSSE7hvP/L8XKS
-RGQDJereW26fyfJOrN3H
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: CN=T\xC3\x9CRKTRUST Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xC4\xB1c\xC4\xB1s\xC4\xB1, C=TR, L=ANKARA, O=(c) 2005 T\xC3\x9CRKTRUST Bilgi \xC4\xB0leti\xC5\x9Fim ve Bili\xC5\x9Fim G\xC3\xBCvenli\xC4\x9Fi Hizmetleri A.\xC5\x9E.
- Validity
- Not Before: May 13 10:27:17 2005 GMT
- Not After : Mar 22 10:27:17 2015 GMT
- Subject: CN=T\xC3\x9CRKTRUST Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xC4\xB1c\xC4\xB1s\xC4\xB1, C=TR, L=ANKARA, O=(c) 2005 T\xC3\x9CRKTRUST Bilgi \xC4\xB0leti\xC5\x9Fim ve Bili\xC5\x9Fim G\xC3\xBCvenli\xC4\x9Fi Hizmetleri A.\xC5\x9E.
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:ca:52:05:d6:63:03:d8:1c:5f:dd:d2:7b:5d:f2:
- 0c:60:61:5b:6b:3b:74:2b:78:0d:7d:45:bd:22:74:
- e8:8c:03:c1:c6:11:2a:3d:95:bc:a9:94:b0:bb:91:
- 97:c8:69:7c:84:c5:b4:91:6c:6c:13:6a:a4:55:ad:
- a4:85:e8:95:7e:b3:00:af:00:c2:05:18:f5:70:9d:
- 36:8b:ae:cb:e4:1b:81:7f:93:88:fb:6a:55:bb:7d:
- 85:92:ce:ba:58:9f:db:32:c5:bd:5d:ef:22:4a:2f:
- 41:07:7e:49:61:b3:86:ec:4e:a6:41:6e:84:bc:03:
- ec:f5:3b:1c:c8:1f:c2:ee:a8:ee:ea:12:4a:8d:14:
- cf:f3:0a:e0:50:39:f9:08:35:f8:11:59:ad:e7:22:
- ea:4b:ca:14:06:de:42:ba:b2:99:f3:2d:54:88:10:
- 06:ea:e1:1a:3e:3d:67:1f:fb:ce:fb:7c:82:e8:11:
- 5d:4a:c1:b9:14:ea:54:d9:66:9b:7c:89:7d:04:9a:
- 62:c9:e9:52:3c:9e:9c:ef:d2:f5:26:e4:e6:e5:18:
- 7c:8b:6e:df:6c:cc:78:5b:4f:72:b2:cb:5c:3f:8c:
- 05:8d:d1:4c:8c:ad:92:c7:e1:78:7f:65:6c:49:06:
- 50:2c:9e:32:c2:d7:4a:c6:75:8a:59:4e:75:6f:47:
- 5e:c1
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:TRUE
- Signature Algorithm: sha1WithRSAEncryption
- 15:f5:55:ff:37:96:80:59:21:a4:fc:a1:15:4c:20:f6:d4:5f:
- da:03:24:fc:cf:90:1a:f4:21:0a:9a:ee:3a:b1:6a:ef:ef:f8:
- 60:d1:4c:36:66:45:1d:f3:66:02:74:04:7b:92:30:a8:de:0a:
- 76:0f:ef:95:6e:bd:c9:37:e6:1a:0d:ac:89:48:5b:cc:83:36:
- c2:f5:46:5c:59:82:56:b4:d5:fe:23:b4:d8:54:1c:44:ab:c4:
- a7:e5:14:ce:3c:41:61:7c:43:e6:cd:c4:81:09:8b:24:fb:54:
- 25:d6:16:a8:96:0c:67:07:6f:b3:50:47:e3:1c:24:28:dd:2a:
- 98:a4:61:fe:db:ea:12:37:bc:01:1a:34:85:bd:6e:4f:e7:91:
- 72:07:44:85:1e:58:ca:54:44:dd:f7:ac:b9:cb:89:21:72:db:
- 8f:c0:69:29:97:2a:a3:ae:18:23:97:1c:41:2a:8b:7c:2a:c1:
- 7c:90:e8:a9:28:c0:d3:91:c6:ad:28:87:40:68:b5:ff:ec:a7:
- d2:d3:38:18:9c:d3:7d:69:5d:f0:c6:a5:1e:24:1b:a3:47:fc:
- 69:07:68:e7:e4:9a:b4:ed:0f:a1:87:87:02:ce:87:d2:48:4e:
- e1:bc:ff:cb:f1:72:92:44:64:03:25:ea:de:5b:6e:9f:c9:f2:
- 4e:ac:dd:c7
-SHA1 Fingerprint=79:98:A3:08:E1:4D:65:85:E6:C2:1E:15:3A:71:9F:BA:5A:D3:4A:D9
diff --git a/luni/src/main/files/cacerts/85cde254.0 b/luni/src/main/files/cacerts/85cde254.0
deleted file mode 100644
index 08be8a6..0000000
--- a/luni/src/main/files/cacerts/85cde254.0
+++ /dev/null
@@ -1,80 +0,0 @@
------BEGIN CERTIFICATE-----
-MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT
-HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVs
-ZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAw
-MFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
-b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVj
-aG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZp
-Y2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAL3twQP89o/8ArFvW59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMg
-nLRJdzIpVv257IzdIvpy3Cdhl+72WoTsbhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1
-HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNkN3mSwOxGXn/hbVNMYq/N
-Hwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7NfZTD4p7dN
-dloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0
-HZbUJtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO
-BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0G
-CSqGSIb3DQEBCwUAA4IBAQARWfolTwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjU
-sHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx4mcujJUDJi5DnUox9g61DLu3
-4jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUwF5okxBDgBPfg
-8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K
-pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1
-mMpYjn0q7pBZc2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 0 (0x0)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Arizona, L=Scottsdale, O=Starfield Technologies, Inc., CN=Starfield Root Certificate Authority - G2
- Validity
- Not Before: Sep 1 00:00:00 2009 GMT
- Not After : Dec 31 23:59:59 2037 GMT
- Subject: C=US, ST=Arizona, L=Scottsdale, O=Starfield Technologies, Inc., CN=Starfield Root Certificate Authority - G2
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:bd:ed:c1:03:fc:f6:8f:fc:02:b1:6f:5b:9f:48:
- d9:9d:79:e2:a2:b7:03:61:56:18:c3:47:b6:d7:ca:
- 3d:35:2e:89:43:f7:a1:69:9b:de:8a:1a:fd:13:20:
- 9c:b4:49:77:32:29:56:fd:b9:ec:8c:dd:22:fa:72:
- dc:27:61:97:ee:f6:5a:84:ec:6e:19:b9:89:2c:dc:
- 84:5b:d5:74:fb:6b:5f:c5:89:a5:10:52:89:46:55:
- f4:b8:75:1c:e6:7f:e4:54:ae:4b:f8:55:72:57:02:
- 19:f8:17:71:59:eb:1e:28:07:74:c5:9d:48:be:6c:
- b4:f4:a4:b0:f3:64:37:79:92:c0:ec:46:5e:7f:e1:
- 6d:53:4c:62:af:cd:1f:0b:63:bb:3a:9d:fb:fc:79:
- 00:98:61:74:cf:26:82:40:63:f3:b2:72:6a:19:0d:
- 99:ca:d4:0e:75:cc:37:fb:8b:89:c1:59:f1:62:7f:
- 5f:b3:5f:65:30:f8:a7:b7:4d:76:5a:1e:76:5e:34:
- c0:e8:96:56:99:8a:b3:f0:7f:a4:cd:bd:dc:32:31:
- 7c:91:cf:e0:5f:11:f8:6b:aa:49:5c:d1:99:94:d1:
- a2:e3:63:5b:09:76:b5:56:62:e1:4b:74:1d:96:d4:
- 26:d4:08:04:59:d0:98:0e:0e:e6:de:fc:c3:ec:1f:
- 90:f1
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- 7C:0C:32:1F:A7:D9:30:7F:C4:7D:68:A3:62:A8:A1:CE:AB:07:5B:27
- Signature Algorithm: sha256WithRSAEncryption
- 11:59:fa:25:4f:03:6f:94:99:3b:9a:1f:82:85:39:d4:76:05:
- 94:5e:e1:28:93:6d:62:5d:09:c2:a0:a8:d4:b0:75:38:f1:34:
- 6a:9d:e4:9f:8a:86:26:51:e6:2c:d1:c6:2d:6e:95:20:4a:92:
- 01:ec:b8:8a:67:7b:31:e2:67:2e:8c:95:03:26:2e:43:9d:4a:
- 31:f6:0e:b5:0c:bb:b7:e2:37:7f:22:ba:00:a3:0e:7b:52:fb:
- 6b:bb:3b:c4:d3:79:51:4e:cd:90:f4:67:07:19:c8:3c:46:7a:
- 0d:01:7d:c5:58:e7:6d:e6:85:30:17:9a:24:c4:10:e0:04:f7:
- e0:f2:7f:d4:aa:0a:ff:42:1d:37:ed:94:e5:64:59:12:20:77:
- 38:d3:32:3e:38:81:75:96:73:fa:68:8f:b1:cb:ce:1f:c5:ec:
- fa:9c:7e:cf:7e:b1:f1:07:2d:b6:fc:bf:ca:a4:bf:d0:97:05:
- 4a:bc:ea:18:28:02:90:bd:54:78:09:21:71:d3:d1:7d:1d:d9:
- 16:b0:a9:61:3d:d0:0a:00:22:fc:c7:7b:cb:09:64:45:0b:3b:
- 40:81:f7:7d:7c:32:f5:98:ca:58:8e:7d:2a:ee:90:59:73:64:
- f9:36:74:5e:25:a1:f5:66:05:2e:7f:39:15:a9:2a:fb:50:8b:
- 8e:85:69:f4
-SHA1 Fingerprint=B5:1C:06:7C:EE:2B:0C:3D:F8:55:AB:2D:92:F4:FE:39:D4:E7:0F:0E
diff --git a/luni/src/main/files/cacerts/86212b19.0 b/luni/src/main/files/cacerts/86212b19.0
deleted file mode 100644
index ac1ad6b..0000000
--- a/luni/src/main/files/cacerts/86212b19.0
+++ /dev/null
@@ -1,77 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UE
-BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz
-dCBOZXR3b3JraW5nMB4XDTEwMDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDEL
-MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp
-cm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SEHi3y
-YJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbua
-kCNrmreIdIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRL
-QESxG9fhwoXA3hA/Pe24/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp
-6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gbh+0t+nvujArjqWaJGctB+d1ENmHP4ndG
-yH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNVHQ4EFgQUBx/S55zawm6i
-QLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ
-KoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfO
-tDIuUFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzu
-QY0x2+c06lkh1QF612S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZ
-Lgo/bNjR9eUJtGxUAArgFU2HdW23WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4u
-olu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9/ZFvgrG+CJPbFEfxojfHRZ48
-x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 8957382827206547757 (0x7c4f04391cd4992d)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=US, O=AffirmTrust, CN=AffirmTrust Networking
- Validity
- Not Before: Jan 29 14:08:24 2010 GMT
- Not After : Dec 31 14:08:24 2030 GMT
- Subject: C=US, O=AffirmTrust, CN=AffirmTrust Networking
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:b4:84:cc:33:17:2e:6b:94:6c:6b:61:52:a0:eb:
- a3:cf:79:94:4c:e5:94:80:99:cb:55:64:44:65:8f:
- 67:64:e2:06:e3:5c:37:49:f6:2f:9b:84:84:1e:2d:
- f2:60:9d:30:4e:cc:84:85:e2:2c:cf:1e:9e:fe:36:
- ab:33:77:35:44:d8:35:96:1a:3d:36:e8:7a:0e:d8:
- d5:47:a1:6a:69:8b:d9:fc:bb:3a:ae:79:5a:d5:f4:
- d6:71:bb:9a:90:23:6b:9a:b7:88:74:87:0c:1e:5f:
- b9:9e:2d:fa:ab:53:2b:dc:bb:76:3e:93:4c:08:08:
- 8c:1e:a2:23:1c:d4:6a:ad:22:ba:99:01:2e:6d:65:
- cb:be:24:66:55:24:4b:40:44:b1:1b:d7:e1:c2:85:
- c0:de:10:3f:3d:ed:b8:fc:f1:f1:23:53:dc:bf:65:
- 97:6f:d9:f9:40:71:8d:7d:bd:95:d4:ce:be:a0:5e:
- 27:23:de:fd:a6:d0:26:0e:00:29:eb:3c:46:f0:3d:
- 60:bf:3f:50:d2:dc:26:41:51:9e:14:37:42:04:a3:
- 70:57:a8:1b:87:ed:2d:fa:7b:ee:8c:0a:e3:a9:66:
- 89:19:cb:41:f9:dd:44:36:61:cf:e2:77:46:c8:7d:
- f6:f4:92:81:36:fd:db:34:f1:72:7e:f3:0c:16:bd:
- b4:15
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 07:1F:D2:E7:9C:DA:C2:6E:A2:40:B4:B0:7A:50:10:50:74:C4:C8:BD
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- Signature Algorithm: sha1WithRSAEncryption
- 89:57:b2:16:7a:a8:c2:fd:d6:d9:9b:9b:34:c2:9c:b4:32:14:
- 4d:a7:a4:df:ec:be:a7:be:f8:43:db:91:37:ce:b4:32:2e:50:
- 55:1a:35:4e:76:43:71:20:ef:93:77:4e:15:70:2e:87:c3:c1:
- 1d:6d:dc:cb:b5:27:d4:2c:56:d1:52:53:3a:44:d2:73:c8:c4:
- 1b:05:65:5a:62:92:9c:ee:41:8d:31:db:e7:34:ea:59:21:d5:
- 01:7a:d7:64:b8:64:39:cd:c9:ed:af:ed:4b:03:48:a7:a0:99:
- 01:80:dc:65:a3:36:ae:65:59:48:4f:82:4b:c8:65:f1:57:1d:
- e5:59:2e:0a:3f:6c:d8:d1:f5:e5:09:b4:6c:54:00:0a:e0:15:
- 4d:87:75:6d:b7:58:96:5a:dd:6d:d2:00:a0:f4:9b:48:be:c3:
- 37:a4:ba:36:e0:7c:87:85:97:1a:15:a2:de:2e:a2:5b:bd:af:
- 18:f9:90:50:cd:70:59:f8:27:67:47:cb:c7:a0:07:3a:7d:d1:
- 2c:5d:6c:19:3a:66:b5:7d:fd:91:6f:82:b1:be:08:93:db:14:
- 47:f1:a2:37:c7:45:9e:3c:c7:77:af:64:a8:93:df:f6:69:83:
- 82:60:f2:49:42:34:ed:5a:00:54:85:1c:16:36:92:0c:5c:fa:
- a6:ad:bf:db
-SHA1 Fingerprint=29:36:21:02:8B:20:ED:02:F5:66:C5:32:D1:D6:ED:90:9F:45:00:2F
diff --git a/luni/src/main/files/cacerts/87753b0d.0 b/luni/src/main/files/cacerts/87753b0d.0
deleted file mode 100644
index 18405ec..0000000
--- a/luni/src/main/files/cacerts/87753b0d.0
+++ /dev/null
@@ -1,122 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEW
-MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVy
-c2FsIENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYD
-VQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1
-c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
-AQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0DE81
-WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUG
-FF+3Qs17j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdq
-XbboW0W63MOhBW9Wjo8QJqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxL
-se4YuU6W3Nx2/zu+z18DwPw76L5GG//aQMJS9/7jOvdqdzXQ2o3rXhhqMcceujwb
-KNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2WP0+GfPtDCapkzj4T8Fd
-IgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP20gaXT73
-y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRt
-hAAnZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgoc
-QIgfksILAAX/8sgCSqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4
-Lt1ZrtmhN79UNdxzMk+MBB4zsslG8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNV
-HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAfBgNV
-HSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8EBAMCAYYwDQYJ
-KoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z
-dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQ
-L1EuxBRa3ugZ4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgr
-Fg5fNuH8KrUwJM/gYwx7WBr+mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSo
-ag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpqA1Ihn0CoZ1Dy81of398j9tx4TuaY
-T1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpgY+RdM4kX2TGq2tbz
-GDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiPpm8m
-1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJV
-OCiNUW7dFGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH
-6aLcr34YEoP9VhdBLtUpgn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwX
-QMAJKOSLakhT2+zNVVXxxvjpoixMptEmX36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Universal CA 2
- Validity
- Not Before: Mar 4 05:00:00 2004 GMT
- Not After : Mar 4 05:00:00 2029 GMT
- Subject: C=US, O=GeoTrust Inc., CN=GeoTrust Universal CA 2
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:b3:54:52:c1:c9:3e:f2:d9:dc:b1:53:1a:59:29:
- e7:b1:c3:45:28:e5:d7:d1:ed:c5:c5:4b:a1:aa:74:
- 7b:57:af:4a:26:fc:d8:f5:5e:a7:6e:19:db:74:0c:
- 4f:35:5b:32:0b:01:e3:db:eb:7a:77:35:ea:aa:5a:
- e0:d6:e8:a1:57:94:f0:90:a3:74:56:94:44:30:03:
- 1e:5c:4e:2b:85:26:74:82:7a:0c:76:a0:6f:4d:ce:
- 41:2d:a0:15:06:14:5f:b7:42:cd:7b:8f:58:61:34:
- dc:2a:08:f9:2e:c3:01:a6:22:44:1c:4c:07:82:e6:
- 5b:ce:d0:4a:7c:04:d3:19:73:27:f0:aa:98:7f:2e:
- af:4e:eb:87:1e:24:77:6a:5d:b6:e8:5b:45:ba:dc:
- c3:a1:05:6f:56:8e:8f:10:26:a5:49:c3:2e:d7:41:
- 87:22:e0:4f:86:ca:60:b5:ea:a1:63:c0:01:97:10:
- 79:bd:00:3c:12:6d:2b:15:b1:ac:4b:b1:ee:18:b9:
- 4e:96:dc:dc:76:ff:3b:be:cf:5f:03:c0:fc:3b:e8:
- be:46:1b:ff:da:40:c2:52:f7:fe:e3:3a:f7:6a:77:
- 35:d0:da:8d:eb:5e:18:6a:31:c7:1e:ba:3c:1b:28:
- d6:6b:54:c6:aa:5b:d7:a2:2c:1b:19:cc:a2:02:f6:
- 9b:59:bd:37:6b:86:b5:6d:82:ba:d8:ea:c9:56:bc:
- a9:36:58:fd:3e:19:f3:ed:0c:26:a9:93:38:f8:4f:
- c1:5d:22:06:d0:97:ea:e1:ad:c6:55:e0:81:2b:28:
- 83:3a:fa:f4:7b:21:51:00:be:52:38:ce:cd:66:79:
- a8:f4:81:56:e2:d0:83:09:47:51:5b:50:6a:cf:db:
- 48:1a:5d:3e:f7:cb:f6:65:f7:6c:f1:95:f8:02:3b:
- 32:56:82:39:7a:5b:bd:2f:89:1b:bf:a1:b4:e8:ff:
- 7f:8d:8c:df:03:f1:60:4e:58:11:4c:eb:a3:3f:10:
- 2b:83:9a:01:73:d9:94:6d:84:00:27:66:ac:f0:70:
- 40:09:42:92:ad:4f:93:0d:61:09:51:24:d8:92:d5:
- 0b:94:61:b2:87:b2:ed:ff:9a:35:ff:85:54:ca:ed:
- 44:43:ac:1b:3c:16:6b:48:4a:0a:1c:40:88:1f:92:
- c2:0b:00:05:ff:f2:c8:02:4a:a4:aa:a9:cc:99:96:
- 9c:2f:58:e0:7d:e1:be:bb:07:dc:5f:04:72:5c:31:
- 34:c3:ec:5f:2d:e0:3d:64:90:22:e6:d1:ec:b8:2e:
- dd:59:ae:d9:a1:37:bf:54:35:dc:73:32:4f:8c:04:
- 1e:33:b2:c9:46:f1:d8:5c:c8:55:50:c9:68:bd:a8:
- ba:36:09
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- 76:F3:55:E1:FA:A4:36:FB:F0:9F:5C:62:71:ED:3C:F4:47:38:10:2B
- X509v3 Authority Key Identifier:
- keyid:76:F3:55:E1:FA:A4:36:FB:F0:9F:5C:62:71:ED:3C:F4:47:38:10:2B
-
- X509v3 Key Usage: critical
- Digital Signature, Certificate Sign, CRL Sign
- Signature Algorithm: sha1WithRSAEncryption
- 66:c1:c6:23:f3:d9:e0:2e:6e:5f:e8:cf:ae:b0:b0:25:4d:2b:
- f8:3b:58:9b:40:24:37:5a:cb:ab:16:49:ff:b3:75:79:33:a1:
- 2f:6d:70:17:34:91:fe:67:7e:8f:ec:9b:e5:5e:82:a9:55:1f:
- 2f:dc:d4:51:07:12:fe:ac:16:3e:2c:35:c6:63:fc:dc:10:eb:
- 0d:a3:aa:d0:7c:cc:d1:d0:2f:51:2e:c4:14:5a:de:e8:19:e1:
- 3e:c6:cc:a4:29:e7:2e:84:aa:06:30:78:76:54:73:28:98:59:
- 38:e0:00:0d:62:d3:42:7d:21:9f:ae:3d:3a:8c:d5:fa:77:0d:
- 18:2b:16:0e:5f:36:e1:fc:2a:b5:30:24:cf:e0:63:0c:7b:58:
- 1a:fe:99:ba:42:12:b1:91:f4:7c:68:e2:c8:e8:af:2c:ea:c9:
- 7e:ae:bb:2a:3d:0d:15:dc:34:95:b6:18:74:a8:6a:0f:c7:b4:
- f4:13:c4:e4:5b:ed:0a:d2:a4:97:4c:2a:ed:2f:6c:12:89:3d:
- f1:27:70:aa:6a:03:52:21:9f:40:a8:67:50:f2:f3:5a:1f:df:
- df:23:f6:dc:78:4e:e6:98:4f:55:3a:53:e3:ef:f2:f4:9f:c7:
- 7c:d8:58:af:29:22:97:b8:e0:bd:91:2e:b0:76:ec:57:11:cf:
- ef:29:44:f3:e9:85:7a:60:63:e4:5d:33:89:17:d9:31:aa:da:
- d6:f3:18:35:72:cf:87:2b:2f:63:23:84:5d:84:8c:3f:57:a0:
- 88:fc:99:91:28:26:69:99:d4:8f:97:44:be:8e:d5:48:b1:a4:
- 28:29:f1:15:b4:e1:e5:9e:dd:f8:8f:a6:6f:26:d7:09:3c:3a:
- 1c:11:0e:a6:6c:37:f7:ad:44:87:2c:28:c7:d8:74:82:b3:d0:
- 6f:4a:57:bb:35:29:27:a0:8b:e8:21:a7:87:64:36:5d:cc:d8:
- 16:ac:c7:b2:27:40:92:55:38:28:8d:51:6e:dd:14:67:53:6c:
- 71:5c:26:84:4d:75:5a:b6:7e:60:56:a9:4d:ad:fb:9b:1e:97:
- f3:0d:d9:d2:97:54:77:da:3d:12:b7:e0:1e:ef:08:06:ac:f9:
- 85:87:e9:a2:dc:af:7e:18:12:83:fd:56:17:41:2e:d5:29:82:
- 7d:99:f4:31:f6:71:a9:cf:2c:01:27:a5:05:b9:aa:b2:48:4e:
- 2a:ef:9f:93:52:51:95:3c:52:73:8e:56:4c:17:40:c0:09:28:
- e4:8b:6a:48:53:db:ec:cd:55:55:f1:c6:f8:e9:a2:2c:4c:a6:
- d1:26:5f:7e:af:5a:4c:da:1f:a6:f2:1c:2c:7e:ae:02:16:d2:
- 56:d0:2f:57:53:47:e8:92
-SHA1 Fingerprint=37:9A:19:7B:41:85:45:35:0C:A6:03:69:F3:3C:2E:AF:47:4F:20:79
diff --git a/luni/src/main/files/cacerts/882de061.0 b/luni/src/main/files/cacerts/882de061.0
deleted file mode 100644
index e15b2af..0000000
--- a/luni/src/main/files/cacerts/882de061.0
+++ /dev/null
@@ -1,77 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYT
-AlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBD
-QTAeFw0wNjA3MDQxNzIwMDRaFw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJP
-MREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTCC
-ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7IJUqOtdu0KBuqV5Do
-0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHHrfAQ
-UySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5d
-RdY4zTW2ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQ
-OA7+j0xbm0bqQfWwCHTD0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwv
-JoIQ4uNllAoEwF73XVv4EOLQunpL+943AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08C
-AwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAcYwHQYDVR0O
-BBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IBAQA+0hyJ
-LjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecY
-MnQ8SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ
-44gx+FkagQnIl6Z0x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6I
-Jd1hJyMctTEHBDa0GpC9oHRxUIltvBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNw
-i/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7NzTogVZ96edhBiIL5VaZVDADlN
-9u6wWk5JRFRYX0KD
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 35210227249154 (0x200605167002)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=RO, O=certSIGN, OU=certSIGN ROOT CA
- Validity
- Not Before: Jul 4 17:20:04 2006 GMT
- Not After : Jul 4 17:20:04 2031 GMT
- Subject: C=RO, O=certSIGN, OU=certSIGN ROOT CA
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:b7:33:b9:7e:c8:25:4a:8e:b5:db:b4:28:1b:aa:
- 57:90:e8:d1:22:d3:64:ba:d3:93:e8:d4:ac:86:61:
- 40:6a:60:57:68:54:84:4d:bc:6a:54:02:05:ff:df:
- 9b:9a:2a:ae:5d:07:8f:4a:c3:28:7f:ef:fb:2b:fa:
- 79:f1:c7:ad:f0:10:53:24:90:8b:66:c9:a8:88:ab:
- af:5a:a3:00:e9:be:ba:46:ee:5b:73:7b:2c:17:82:
- 81:5e:62:2c:a1:02:65:b3:bd:c5:2b:00:7e:c4:fc:
- 03:33:57:0d:ed:e2:fa:ce:5d:45:d6:38:cd:35:b6:
- b2:c1:d0:9c:81:4a:aa:e4:b2:01:5c:1d:8f:5f:99:
- c4:b1:ad:db:88:21:eb:90:08:82:80:f3:30:a3:43:
- e6:90:82:ae:55:28:49:ed:5b:d7:a9:10:38:0e:fe:
- 8f:4c:5b:9b:46:ea:41:f5:b0:08:74:c3:d0:88:33:
- b6:7c:d7:74:df:dc:84:d1:43:0e:75:39:a1:25:40:
- 28:ea:78:cb:0e:2c:2e:39:9d:8c:8b:6e:16:1c:2f:
- 26:82:10:e2:e3:65:94:0a:04:c0:5e:f7:5d:5b:f8:
- 10:e2:d0:ba:7a:4b:fb:de:37:00:00:1a:5b:28:e3:
- d2:9c:73:3e:32:87:98:a1:c9:51:2f:d7:de:ac:33:
- b3:4f
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Digital Signature, Non Repudiation, Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- E0:8C:9B:DB:25:49:B3:F1:7C:86:D6:B2:42:87:0B:D0:6B:A0:D9:E4
- Signature Algorithm: sha1WithRSAEncryption
- 3e:d2:1c:89:2e:35:fc:f8:75:dd:e6:7f:65:88:f4:72:4c:c9:
- 2c:d7:32:4e:f3:dd:19:79:47:bd:8e:3b:5b:93:0f:50:49:24:
- 13:6b:14:06:72:ef:09:d3:a1:a1:e3:40:84:c9:e7:18:32:74:
- 3c:48:6e:0f:9f:4b:d4:f7:1e:d3:93:86:64:54:97:63:72:50:
- d5:55:cf:fa:20:93:02:a2:9b:c3:23:93:4e:16:55:76:a0:70:
- 79:6d:cd:21:1f:cf:2f:2d:bc:19:e3:88:31:f8:59:1a:81:09:
- c8:97:a6:74:c7:60:c4:5b:cc:57:8e:b2:75:fd:1b:02:09:db:
- 59:6f:72:93:69:f7:31:41:d6:88:38:bf:87:b2:bd:16:79:f9:
- aa:e4:be:88:25:dd:61:27:23:1c:b5:31:07:04:36:b4:1a:90:
- bd:a0:74:71:50:89:6d:bc:14:e3:0f:86:ae:f1:ab:3e:c7:a0:
- 09:cc:a3:48:d1:e0:db:64:e7:92:b5:cf:af:72:43:70:8b:f9:
- c3:84:3c:13:aa:7e:92:9b:57:53:93:fa:70:c2:91:0e:31:f9:
- 9b:67:5d:e9:96:38:5e:5f:b3:73:4e:88:15:67:de:9e:76:10:
- 62:20:be:55:69:95:43:00:39:4d:f6:ee:b0:5a:4e:49:44:54:
- 58:5f:42:83
-SHA1 Fingerprint=FA:B7:EE:36:97:26:62:FB:2D:B0:2A:F6:BF:03:FD:E8:7C:4B:2F:9B
diff --git a/luni/src/main/files/cacerts/895cad1a.0 b/luni/src/main/files/cacerts/895cad1a.0
deleted file mode 100644
index 9c4df89..0000000
--- a/luni/src/main/files/cacerts/895cad1a.0
+++ /dev/null
@@ -1,82 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJD
-TjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2
-MDcwOTE0WhcNMjcwNDE2MDcwOTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMF
-Q05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwggEiMA0GCSqGSIb3DQEBAQUAA4IB
-DwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzDo+/hn7E7SIX1mlwh
-IhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tizVHa6
-dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZO
-V/kbZKKTVrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrC
-GHn2emU1z5DrvTOTn1OrczvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gN
-v7Sg2Ca+I19zN38m5pIEo3/PIKe38zrKy5nLAgMBAAGjczBxMBEGCWCGSAGG+EIB
-AQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscCwQ7vptU7ETAPBgNVHRMB
-Af8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991SlgrHAsEO
-76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnK
-OOK5Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvH
-ugDnuL8BV8F3RTIMO/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7Hgvi
-yJA/qIYM/PmLXoXLT1tLYhFHxUV8BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fL
-buXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2G8kS1sHNzYDzAgE8yGnLRUhj
-2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5mmxE=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1228079105 (0x49330001)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=CN, O=CNNIC, CN=CNNIC ROOT
- Validity
- Not Before: Apr 16 07:09:14 2007 GMT
- Not After : Apr 16 07:09:14 2027 GMT
- Subject: C=CN, O=CNNIC, CN=CNNIC ROOT
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:d3:35:f7:3f:73:77:ad:e8:5b:73:17:c2:d1:6f:
- ed:55:bc:6e:ea:e8:a4:79:b2:6c:c3:a3:ef:e1:9f:
- b1:3b:48:85:f5:9a:5c:21:22:10:2c:c5:82:ce:da:
- e3:9a:6e:37:e1:87:2c:dc:b9:0c:5a:ba:88:55:df:
- fd:aa:db:1f:31:ea:01:f1:df:39:01:c1:13:fd:48:
- 52:21:c4:55:df:da:d8:b3:54:76:ba:74:b1:b7:7d:
- d7:c0:e8:f6:59:c5:4d:c8:bd:ad:1f:14:da:df:58:
- 44:25:32:19:2a:c7:7e:7e:8e:ae:38:b0:30:7b:47:
- 72:09:31:f0:30:db:c3:1b:76:29:bb:69:76:4e:57:
- f9:1b:64:a2:93:56:b7:6f:99:6e:db:0a:04:9c:11:
- e3:80:1f:cb:63:94:10:0a:a9:e1:64:82:31:f9:8c:
- 27:ed:a6:99:00:f6:70:93:18:f8:a1:34:86:a3:dd:
- 7a:c2:18:79:f6:7a:65:35:cf:90:eb:bd:33:93:9f:
- 53:ab:73:3b:e6:9b:34:20:2f:1d:ef:a9:1d:63:1a:
- a0:80:db:03:2f:f9:26:1a:86:d2:8d:bb:a9:be:52:
- 3a:87:67:48:0d:bf:b4:a0:d8:26:be:23:5f:73:37:
- 7f:26:e6:92:04:a3:7f:cf:20:a7:b7:f3:3a:ca:cb:
- 99:cb
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- Netscape Cert Type:
- SSL CA, S/MIME CA, Object Signing CA
- X509v3 Authority Key Identifier:
- keyid:65:F2:31:AD:2A:F7:F7:DD:52:96:0A:C7:02:C1:0E:EF:A6:D5:3B:11
-
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage:
- Digital Signature, Non Repudiation, Key Encipherment, Data Encipherment, Key Agreement, Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- 65:F2:31:AD:2A:F7:F7:DD:52:96:0A:C7:02:C1:0E:EF:A6:D5:3B:11
- Signature Algorithm: sha1WithRSAEncryption
- 4b:35:ee:cc:e4:ae:bf:c3:6e:ad:9f:95:3b:4b:3f:5b:1e:df:
- 57:29:a2:59:ca:38:e2:b9:1a:ff:9e:e6:6e:32:dd:1e:ae:ea:
- 35:b7:f5:93:91:4e:da:42:e1:c3:17:60:50:f2:d1:5c:26:b9:
- 82:b7:ea:6d:e4:9c:84:e7:03:79:17:af:98:3d:94:db:c7:ba:
- 00:e7:b8:bf:01:57:c1:77:45:32:0c:3b:f1:b4:1c:08:b0:fd:
- 51:a0:a1:dd:9a:1d:13:36:9a:6d:b7:c7:3c:b9:e1:c5:d9:17:
- fa:83:d5:3d:15:a0:3c:bb:1e:0b:e2:c8:90:3f:a8:86:0c:fc:
- f9:8b:5e:85:cb:4f:5b:4b:62:11:47:c5:45:7c:05:2f:41:b1:
- 9e:10:69:1b:99:96:e0:55:79:fb:4e:86:99:b8:94:da:86:38:
- 6a:93:a3:e7:cb:6e:e5:df:ea:21:55:89:9c:7d:7d:7f:98:f5:
- 00:89:ee:e3:84:c0:5c:96:b5:c5:46:ea:46:e0:85:55:b6:1b:
- c9:12:d6:c1:cd:cd:80:f3:02:01:3c:c8:69:cb:45:48:63:d8:
- 94:d0:ec:85:0e:3b:4e:11:65:f4:82:8c:a6:3d:ae:2e:22:94:
- 09:c8:5c:ea:3c:81:5d:16:2a:03:97:16:55:09:db:8a:41:82:
- 9e:66:9b:11
-SHA1 Fingerprint=8B:AF:4C:9B:1D:F0:2A:92:F7:DA:12:8E:B9:1B:AC:F4:98:60:4B:6F
diff --git a/luni/src/main/files/cacerts/89c02a45.0 b/luni/src/main/files/cacerts/89c02a45.0
deleted file mode 100644
index f3190b7..0000000
--- a/luni/src/main/files/cacerts/89c02a45.0
+++ /dev/null
@@ -1,54 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTEL
-MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
-BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMT
-IkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwMzA2MDAw
-MDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdy
-ZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09N
-T0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlv
-biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSR
-FtSrYpn1PlILBs5BAH+X4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0J
-cfRK9ChQtP6IHG4/bC8vCVlbpVsLM5niwz2J+Wos77LTBumjQjBAMB0GA1UdDgQW
-BBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
-BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VGFAkK+qDm
-fQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdv
-GDeAU/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 1f:47:af:aa:62:00:70:50:54:4c:01:9e:9b:63:99:2a
- Signature Algorithm: ecdsa-with-SHA384
- Issuer: C=GB, ST=Greater Manchester, L=Salford, O=COMODO CA Limited, CN=COMODO ECC Certification Authority
- Validity
- Not Before: Mar 6 00:00:00 2008 GMT
- Not After : Jan 18 23:59:59 2038 GMT
- Subject: C=GB, ST=Greater Manchester, L=Salford, O=COMODO CA Limited, CN=COMODO ECC Certification Authority
- Subject Public Key Info:
- Public Key Algorithm: id-ecPublicKey
- Public-Key: (384 bit)
- pub:
- 04:03:47:7b:2f:75:c9:82:15:85:fb:75:e4:91:16:
- d4:ab:62:99:f5:3e:52:0b:06:ce:41:00:7f:97:e1:
- 0a:24:3c:1d:01:04:ee:3d:d2:8d:09:97:0c:e0:75:
- e4:fa:fb:77:8a:2a:f5:03:60:4b:36:8b:16:23:16:
- ad:09:71:f4:4a:f4:28:50:b4:fe:88:1c:6e:3f:6c:
- 2f:2f:09:59:5b:a5:5b:0b:33:99:e2:c3:3d:89:f9:
- 6a:2c:ef:b2:d3:06:e9
- ASN1 OID: secp384r1
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 75:71:A7:19:48:19:BC:9D:9D:EA:41:47:DF:94:C4:48:77:99:D3:79
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- Signature Algorithm: ecdsa-with-SHA384
- 30:65:02:31:00:ef:03:5b:7a:ac:b7:78:0a:72:b7:88:df:ff:
- b5:46:14:09:0a:fa:a0:e6:7d:08:c6:1a:87:bd:18:a8:73:bd:
- 26:ca:60:0c:9d:ce:99:9f:cf:5c:0f:30:e1:be:14:31:ea:02:
- 30:14:f4:93:3c:49:a7:33:7a:90:46:47:b3:63:7d:13:9b:4e:
- b7:6f:18:37:80:53:fe:dd:20:e0:35:9a:36:d1:c7:01:b9:e6:
- dc:dd:f3:ff:1d:2c:3a:16:57:d9:92:39:d6
-SHA1 Fingerprint=9F:74:4E:9F:2B:4D:BA:EC:0F:31:2C:50:B6:56:3B:8E:2D:93:C3:11
diff --git a/luni/src/main/files/cacerts/8d6437c3.0 b/luni/src/main/files/cacerts/8d6437c3.0
deleted file mode 100644
index 2097b64..0000000
--- a/luni/src/main/files/cacerts/8d6437c3.0
+++ /dev/null
@@ -1,80 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBl
-MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
-b3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
-cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwggEi
-MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSA
-n61UQbVH35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4Htecc
-biJVMWWXvdMX0h5i89vqbFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9Hp
-EgjAALAcKxHad3A2m67OeYfcgnDmCXRwVWmvo2ifv922ebPynXApVfSr/5Vh88lA
-bx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OPYLfykqGxvYmJHzDNw6Yu
-YjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+RnlTGNAgMB
-AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQW
-BBTOw0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPI
-QW5pJ6d1Ee88hjZv0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I
-0jJmwYrA8y8678Dj1JGG0VDjA9tzd29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4Gni
-lmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAWhsI6yLETcDbYz+70CjTVW0z9
-B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0MjomZmWzwPDCv
-ON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo
-IhNzbM8m9Yop5w==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 0b:93:1c:3a:d6:39:67:ea:67:23:bf:c3:af:9a:f4:4b
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Assured ID Root G2
- Validity
- Not Before: Aug 1 12:00:00 2013 GMT
- Not After : Jan 15 12:00:00 2038 GMT
- Subject: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Assured ID Root G2
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:d9:e7:28:2f:52:3f:36:72:49:88:93:34:f3:f8:
- 6a:1e:31:54:80:9f:ad:54:41:b5:47:df:96:a8:d4:
- af:80:2d:b9:0a:cf:75:fd:89:a5:7d:24:fa:e3:22:
- 0c:2b:bc:95:17:0b:33:bf:19:4d:41:06:90:00:bd:
- 0c:4d:10:fe:07:b5:e7:1c:6e:22:55:31:65:97:bd:
- d3:17:d2:1e:62:f3:db:ea:6c:50:8c:3f:84:0c:96:
- cf:b7:cb:03:e0:ca:6d:a1:14:4c:1b:89:dd:ed:00:
- b0:52:7c:af:91:6c:b1:38:13:d1:e9:12:08:c0:00:
- b0:1c:2b:11:da:77:70:36:9b:ae:ce:79:87:dc:82:
- 70:e6:09:74:70:55:69:af:a3:68:9f:bf:dd:b6:79:
- b3:f2:9d:70:29:55:f4:ab:ff:95:61:f3:c9:40:6f:
- 1d:d1:be:93:bb:d3:88:2a:bb:9d:bf:72:5a:56:71:
- 3b:3f:d4:f3:d1:0a:fe:28:ef:a3:ee:d9:99:af:03:
- d3:8f:60:b7:f2:92:a1:b1:bd:89:89:1f:30:cd:c3:
- a6:2e:62:33:ae:16:02:77:44:5a:e7:81:0a:3c:a7:
- 44:2e:79:b8:3f:04:bc:5c:a0:87:e1:1b:af:51:8e:
- cd:ec:2c:fa:f8:fe:6d:f0:3a:7c:aa:8b:e4:67:95:
- 31:8d
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Digital Signature, Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- CE:C3:4A:B9:99:55:F2:B8:DB:60:BF:A9:7E:BD:56:B5:97:36:A7:D6
- Signature Algorithm: sha256WithRSAEncryption
- ca:a5:55:8c:e3:c8:41:6e:69:27:a7:75:11:ef:3c:86:36:6f:
- d2:9d:c6:78:38:1d:69:96:a2:92:69:2e:38:6c:9b:7d:04:d4:
- 89:a5:b1:31:37:8a:c9:21:cc:ab:6c:cd:8b:1c:9a:d6:bf:48:
- d2:32:66:c1:8a:c0:f3:2f:3a:ef:c0:e3:d4:91:86:d1:50:e3:
- 03:db:73:77:6f:4a:39:53:ed:de:26:c7:b5:7d:af:2b:42:d1:
- 75:62:e3:4a:2b:02:c7:50:4b:e0:69:e2:96:6c:0e:44:66:10:
- 44:8f:ad:05:eb:f8:79:ac:a6:1b:e8:37:34:9d:53:c9:61:aa:
- a2:52:af:4a:70:16:86:c2:3a:c8:b1:13:70:36:d8:cf:ee:f4:
- 0a:34:d5:5b:4c:fd:07:9c:a2:ba:d9:01:72:5c:f3:4d:c1:dd:
- 0e:b1:1c:0d:c4:63:be:ad:f4:14:fb:89:ec:a2:41:0e:4c:cc:
- c8:57:40:d0:6e:03:aa:cd:0c:8e:89:99:99:6c:f0:3c:30:af:
- 38:df:6f:bc:a3:be:29:20:27:ab:74:ff:13:22:78:de:97:52:
- 55:1e:83:b5:54:20:03:ee:ae:c0:4f:56:de:37:cc:c3:7f:aa:
- 04:27:bb:d3:77:b8:62:db:17:7c:9c:28:22:13:73:6c:cf:26:
- f5:8a:29:e7
-SHA1 Fingerprint=A1:4B:48:D9:43:EE:0A:0E:40:90:4F:3C:E0:A4:C0:91:93:51:5D:3F
diff --git a/luni/src/main/files/cacerts/91739615.0 b/luni/src/main/files/cacerts/91739615.0
deleted file mode 100644
index 3549e54..0000000
--- a/luni/src/main/files/cacerts/91739615.0
+++ /dev/null
@@ -1,84 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1
-MQswCQYDVQQGEwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1
-czEoMCYGA1UEAwwfRUUgQ2VydGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYG
-CSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIwMTAxMDMwMTAxMDMwWhgPMjAzMDEy
-MTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlBUyBTZXJ0aWZpdHNl
-ZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRyZSBS
-b290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEB
-AQUAA4IBDwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUy
-euuOF0+W2Ap7kaJjbMeMTC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvO
-bntl8jixwKIy72KyaOBhU8E2lf/slLo2rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIw
-WFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw93X2PaRka9ZP585ArQ/d
-MtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtNP2MbRMNE
-1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYD
-VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/
-zQas8fElyalL1BSZMEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYB
-BQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEF
-BQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+RjxY6hUFaTlrg4wCQiZrxTFGGV
-v9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqMlIpPnTX/dqQG
-E5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u
-uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIW
-iAYLtqZLICjU3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/v
-GVCJYMzpJJUPwssd8m92kMfMdcGWxZ0=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 54:80:f9:a0:73:ed:3f:00:4c:ca:89:d8:e3:71:e6:4a
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=EE, O=AS Sertifitseerimiskeskus, CN=EE Certification Centre Root CA/emailAddress=pki@sk.ee
- Validity
- Not Before: Oct 30 10:10:30 2010 GMT
- Not After : Dec 17 23:59:59 2030 GMT
- Subject: C=EE, O=AS Sertifitseerimiskeskus, CN=EE Certification Centre Root CA/emailAddress=pki@sk.ee
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c8:20:c0:ec:e0:c5:4b:ab:07:78:95:f3:44:ee:
- fb:0b:0c:ff:74:8e:61:bb:b1:62:ea:23:d8:ab:a1:
- 65:32:7a:eb:8e:17:4f:96:d8:0a:7b:91:a2:63:6c:
- c7:8c:4c:2e:79:bf:a9:05:fc:69:5c:95:8d:62:f9:
- b9:70:ed:c3:51:7d:d0:93:e6:6c:eb:30:4b:e1:bc:
- 7d:bf:52:9b:ce:6e:7b:65:f2:38:b1:c0:a2:32:ef:
- 62:b2:68:e0:61:53:c1:36:95:ff:ec:94:ba:36:ae:
- 9c:1c:a7:32:0f:e5:7c:b4:c6:6f:74:fd:7b:18:e8:
- ac:57:ed:06:20:4b:32:30:58:5b:fd:cd:a8:e6:a1:
- fc:70:bc:8e:92:73:db:97:a7:7c:21:ae:3d:c1:f5:
- 48:87:6c:27:bd:9f:25:74:81:55:b0:f7:75:f6:3d:
- a4:64:6b:d6:4f:e7:ce:40:ad:0f:dd:32:d3:bc:8a:
- 12:53:98:c9:89:fb:10:1d:4d:7e:cd:7e:1f:56:0d:
- 21:70:85:f6:20:83:1f:f6:ba:1f:04:8f:ea:77:88:
- 35:c4:ff:ea:4e:a1:8b:4d:3f:63:1b:44:c3:44:d4:
- 25:76:ca:b7:8d:d7:1e:4a:66:64:cd:5c:c5:9c:83:
- e1:c2:08:88:9a:ec:4e:a3:f1:3e:1c:2c:d9:6c:1d:
- a1:4b
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- 12:F2:5A:3E:EA:56:1C:BF:CD:06:AC:F1:F1:25:C9:A9:4B:D4:14:99
- X509v3 Extended Key Usage:
- TLS Web Client Authentication, TLS Web Server Authentication, Code Signing, E-mail Protection, Time Stamping, OCSP Signing
- Signature Algorithm: sha1WithRSAEncryption
- 7b:f6:e4:c0:0d:aa:19:47:b7:4d:57:a3:fe:ad:bb:b1:6a:d5:
- 0f:9e:db:e4:63:c5:8e:a1:50:56:93:96:b8:38:c0:24:22:66:
- bc:53:14:61:95:bf:d0:c7:2a:96:39:3f:7d:28:b3:10:40:21:
- 6a:c4:af:b0:52:77:18:e1:96:d8:56:5d:e3:dd:36:5e:1d:a7:
- 50:54:a0:c5:2a:e4:aa:8c:94:8a:4f:9d:35:ff:76:a4:06:13:
- 91:a2:a2:7d:00:44:3f:55:d3:82:3c:1a:d5:5b:bc:56:4c:22:
- 2e:46:43:8a:24:40:2d:f3:12:b8:3b:70:1a:a4:96:b9:1a:af:
- 87:41:1a:6a:18:0d:06:4f:c7:3e:6e:b9:29:4d:0d:49:89:11:
- 87:32:5b:e6:4b:04:c8:e4:5c:e6:74:73:94:5d:16:98:13:95:
- fe:fb:db:b1:44:e5:3a:70:ac:37:6b:e6:b3:33:72:28:c9:b3:
- 57:a0:f6:02:16:88:06:0b:b6:a6:4b:20:28:d4:de:3d:8b:ad:
- 37:05:53:74:fe:6e:cc:bc:43:17:71:5e:f9:c5:cc:1a:a9:61:
- ee:f7:76:0c:f3:72:f4:72:ad:cf:72:02:36:07:47:cf:ef:19:
- 50:89:60:cc:e9:24:95:0f:c2:cb:1d:f2:6f:76:90:c7:cc:75:
- c1:96:c5:9d
-SHA1 Fingerprint=C9:A8:B9:E7:55:80:5E:58:E3:53:77:A7:25:EB:AF:C3:7B:27:CC:D7
diff --git a/luni/src/main/files/cacerts/9282e51c.0 b/luni/src/main/files/cacerts/9282e51c.0
deleted file mode 100644
index f2a9f94..0000000
--- a/luni/src/main/files/cacerts/9282e51c.0
+++ /dev/null
@@ -1,123 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJD
-TjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9y
-aXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkx
-MjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5j
-aWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJP
-T1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnVBU03
-sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpL
-TIpTUnrD7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5
-/ZOkVIBMUtRSqy5J35DNuF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp
-7hZZLDRJGqgG16iI0gNyejLi6mhNbiyWZXvKWfry4t3uMCz7zEasxGPrb382KzRz
-EpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7xzbh72fROdOXW3NiGUgt
-hxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9fpy25IGvP
-a931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqot
-aK8KgWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNg
-TnYGmE69g60dWIolhdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfV
-PKPtl8MeNPo4+QgO48BdK4PRVmrJtqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hv
-cWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAfBgNVHSMEGDAWgBTj/i39KNAL
-tbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAd
-BgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB
-ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObT
-ej/tUxPQ4i9qecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdL
-jOztUmCypAbqTuv0axn96/Ua4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBS
-ESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sGE5uPhnEFtC+NiWYzKXZUmhH4J/qy
-P5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfXBDrDMlI1Dlb4pd19
-xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjnaH9d
-Ci77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN
-5mydLIhyPDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe
-/v5WOaHIz16eGWRGENoXkbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+Z
-AAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3CekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ
-5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 407555286 (0x184accd6)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=CN, O=China Financial Certification Authority, CN=CFCA EV ROOT
- Validity
- Not Before: Aug 8 03:07:01 2012 GMT
- Not After : Dec 31 03:07:01 2029 GMT
- Subject: C=CN, O=China Financial Certification Authority, CN=CFCA EV ROOT
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:d7:5d:6b:cd:10:3f:1f:05:59:d5:05:4d:37:b1:
- 0e:ec:98:2b:8e:15:1d:fa:93:4b:17:82:21:71:10:
- 52:d7:51:64:70:16:c2:55:69:4d:8e:15:6d:9f:bf:
- 0c:1b:c2:e0:a3:67:d6:0c:ac:cf:22:ae:af:77:54:
- 2a:4b:4c:8a:53:52:7a:c3:ee:2e:de:b3:71:25:c1:
- e9:5d:3d:ee:a1:2f:a3:f7:2a:3c:c9:23:1d:6a:ab:
- 1d:a1:a7:f1:f3:ec:a0:d5:44:cf:15:cf:72:2f:1d:
- 63:97:e8:99:f9:fd:93:a4:54:80:4c:52:d4:52:ab:
- 2e:49:df:90:cd:b8:5f:be:3f:de:a1:ca:4d:20:d4:
- 25:e8:84:29:53:b7:b1:88:1f:ff:fa:da:90:9f:0a:
- a9:2d:41:3f:b1:f1:18:29:ee:16:59:2c:34:49:1a:
- a8:06:d7:a8:88:d2:03:72:7a:32:e2:ea:68:4d:6e:
- 2c:96:65:7b:ca:59:fa:f2:e2:dd:ee:30:2c:fb:cc:
- 46:ac:c4:63:eb:6f:7f:36:2b:34:73:12:94:7f:df:
- cc:26:9e:f1:72:5d:50:65:59:8f:69:b3:87:5e:32:
- 6f:c3:18:8a:b5:95:8f:b0:7a:37:de:5a:45:3b:c7:
- 36:e1:ef:67:d1:39:d3:97:5b:73:62:19:48:2d:87:
- 1c:06:fb:74:98:20:49:73:f0:05:d2:1b:b1:a0:a3:
- b7:1b:70:d3:88:69:b9:5a:d6:38:f4:62:dc:25:8b:
- 78:bf:f8:e8:7e:b8:5c:c9:95:4f:5f:a7:2d:b9:20:
- 6b:cf:6b:dd:f5:0d:f4:82:b7:f4:b2:66:2e:10:28:
- f6:97:5a:7b:96:16:8f:01:19:2d:6c:6e:7f:39:58:
- 06:64:83:01:83:83:c3:4d:92:dd:32:c6:87:a4:37:
- e9:16:ce:aa:2d:68:af:0a:81:65:3a:70:c1:9b:ad:
- 4d:6d:54:ca:2a:2d:4b:85:1b:b3:80:e6:70:45:0d:
- 6b:5e:35:f0:7f:3b:b8:9c:e4:04:70:89:12:25:93:
- da:0a:99:22:60:6a:63:60:4e:76:06:98:4e:bd:83:
- ad:1d:58:8a:25:85:d2:c7:65:1e:2d:8e:c6:df:b6:
- c6:e1:7f:8a:04:21:15:29:74:f0:3e:9c:90:9d:0c:
- 2e:f1:8a:3e:5a:aa:0c:09:1e:c7:d5:3c:a3:ed:97:
- c3:1e:34:fa:38:f9:08:0e:e3:c0:5d:2b:83:d1:56:
- 6a:c9:b6:a8:54:53:2e:78:32:67:3d:82:7f:74:d0:
- fb:e1:b6:05:60:b9:70:db:8e:0b:f9:13:58:6f:71:
- 60:10:52:10:b9:c1:41:09:ef:72:1f:67:31:78:ff:
- 96:05:8d
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Authority Key Identifier:
- keyid:E3:FE:2D:FD:28:D0:0B:B5:BA:B6:A2:C4:BF:06:AA:05:8C:93:FB:2F
-
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- E3:FE:2D:FD:28:D0:0B:B5:BA:B6:A2:C4:BF:06:AA:05:8C:93:FB:2F
- Signature Algorithm: sha256WithRSAEncryption
- 25:c6:ba:6b:eb:87:cb:de:82:39:96:3d:f0:44:a7:6b:84:73:
- 03:de:9d:2b:4f:ba:20:7f:bc:78:b2:cf:97:b0:1b:9c:f3:d7:
- 79:2e:f5:48:b6:d2:fb:17:88:e6:d3:7a:3f:ed:53:13:d0:e2:
- 2f:6a:79:cb:00:23:28:e6:1e:37:57:35:89:84:c2:76:4f:34:
- 36:ad:67:c3:ce:41:06:88:c5:f7:ee:d8:1a:b8:d6:0b:7f:50:
- ff:93:aa:17:4b:8c:ec:ed:52:60:b2:a4:06:ea:4e:eb:f4:6b:
- 19:fd:eb:f5:1a:e0:25:2a:9a:dc:c7:41:36:f7:c8:74:05:84:
- 39:95:39:d6:0b:3b:a4:27:fa:08:d8:5c:1e:f8:04:60:52:11:
- 28:28:03:ff:ef:53:66:00:a5:4a:34:16:66:7c:fd:09:a4:ae:
- 9e:67:1a:6f:41:0b:6b:06:13:9b:8f:86:71:05:b4:2f:8d:89:
- 66:33:29:76:54:9a:11:f8:27:fa:b2:3f:91:e0:ce:0d:1b:f3:
- 30:1a:ad:bf:22:5d:1b:d3:bf:25:05:4d:e1:92:1a:7f:99:9f:
- 3c:44:93:ca:d4:40:49:6c:80:87:d7:04:3a:c3:32:52:35:0e:
- 56:f8:a5:dd:7d:c4:8b:0d:11:1f:53:cb:1e:b2:17:b6:68:77:
- 5a:e0:d4:cb:c8:07:ae:f5:3a:2e:8e:37:b7:d0:01:4b:43:29:
- 77:8c:39:97:8f:82:5a:f8:51:e5:89:a0:18:e7:68:7f:5d:0a:
- 2e:fb:a3:47:0e:3d:a6:23:7a:c6:01:c7:8f:c8:5e:bf:6d:80:
- 56:be:8a:24:ba:33:ea:9f:e1:32:11:9e:f1:d2:4f:80:f6:1b:
- 40:af:38:9e:11:50:79:73:12:12:cd:e6:6c:9d:2c:88:72:3c:
- 30:81:06:91:22:ea:59:ad:da:19:2e:22:c2:8d:b9:8c:87:e0:
- 66:bc:73:23:5f:21:64:63:80:48:f5:a0:3c:18:3d:94:c8:48:
- 41:1d:40:ba:5e:fe:fe:56:39:a1:c8:cf:5e:9e:19:64:46:10:
- da:17:91:b7:05:80:ac:8b:99:92:7d:e7:a2:d8:07:0b:36:27:
- e7:48:79:60:8a:c3:d7:13:5c:f8:72:40:df:4a:cb:cf:99:00:
- 0a:00:0b:11:95:da:56:45:03:88:0a:9f:67:d0:d5:79:b1:a8:
- 8d:40:6d:0d:c2:7a:40:fa:f3:5f:64:47:92:cb:53:b9:bb:59:
- ce:4f:fd:d0:15:53:01:d8:df:eb:d9:e6:76:ef:d0:23:bb:3b:
- a9:79:b3:d5:02:29:cd:89:a3:96:0f:4a:35:e7:4e:42:c0:75:
- cd:07:cf:e6:2c:eb:7b:2e
-SHA1 Fingerprint=E2:B8:29:4B:55:84:AB:6B:58:C2:90:46:6C:AC:3F:B8:39:8F:84:83
diff --git a/luni/src/main/files/cacerts/9339512a.0 b/luni/src/main/files/cacerts/9339512a.0
deleted file mode 100644
index c6dc40c..0000000
--- a/luni/src/main/files/cacerts/9339512a.0
+++ /dev/null
@@ -1,137 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x
-GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv
-b3QgQ0EgMzAeFw0wNjExMjQxOTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNV
-BAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W
-YWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDM
-V0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNggDhoB
-4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUr
-H556VOijKTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd
-8lyyBTNvijbO0BNO/79KDDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9Cabwv
-vWhDFlaJKjdhkf2mrk7AyxRllDdLkgbvBNDInIjbC3uBr7E9KsRlOni27tyAsdLT
-mZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwpp5ijJUMv7/FfJuGITfhe
-btfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8nT8KKdjc
-T5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDt
-WAEXMJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZ
-c6tsgLjoC2SToJyMGf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A
-4iLItLRkT9a6fUg+qGkM17uGcclzuD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYD
-VR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHTBgkrBgEEAb5YAAMwgcUwgZMG
-CCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmljYXRlIGNvbnN0
-aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0
-aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVu
-dC4wLQYIKwYBBQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2Nw
-czALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4G
-A1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4ywLQoUmkRzBFMQswCQYDVQQGEwJC
-TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UEAxMSUXVvVmFkaXMg
-Um9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZVqyM0
-7ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSem
-d1o417+shvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd
-+LJ2w/w4E6oM3kJpK27zPOuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B
-4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadN
-t54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp8kokUvd0/bpO5qgdAm6x
-DYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBCbjPsMZ57
-k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6s
-zHXug/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0j
-Wy10QJLZYxkNc91pvGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeT
-mJlglFwjz1onl14LBQaTNx47aTbrqZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK
-4SVhM7JZG+Ju1zdXtg2pEto=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1478 (0x5c6)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=BM, O=QuoVadis Limited, CN=QuoVadis Root CA 3
- Validity
- Not Before: Nov 24 19:11:23 2006 GMT
- Not After : Nov 24 19:06:44 2031 GMT
- Subject: C=BM, O=QuoVadis Limited, CN=QuoVadis Root CA 3
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:cc:57:42:16:54:9c:e6:98:d3:d3:4d:ee:fe:ed:
- c7:9f:43:39:4a:65:b3:e8:16:88:34:db:0d:59:91:
- 74:cf:92:b8:04:40:ad:02:4b:31:ab:bc:8d:91:68:
- d8:20:0e:1a:01:e2:1a:7b:4e:17:5d:e2:8a:b7:3f:
- 99:1a:cd:eb:61:ab:c2:65:a6:1f:b7:b7:bd:b7:8f:
- fc:fd:70:8f:0b:a0:67:be:01:a2:59:cf:71:e6:0f:
- 29:76:ff:b1:56:79:45:2b:1f:9e:7a:54:e8:a3:29:
- 35:68:a4:01:4f:0f:a4:2e:37:ef:1b:bf:e3:8f:10:
- a8:72:ab:58:57:e7:54:86:c8:c9:f3:5b:da:2c:da:
- 5d:8e:6e:3c:a3:3e:da:fb:82:e5:dd:f2:5c:b2:05:
- 33:6f:8a:36:ce:d0:13:4e:ff:bf:4a:0c:34:4c:a6:
- c3:21:bd:50:04:55:eb:b1:bb:9d:fb:45:1e:64:15:
- de:55:01:8c:02:76:b5:cb:a1:3f:42:69:bc:2f:bd:
- 68:43:16:56:89:2a:37:61:91:fd:a6:ae:4e:c0:cb:
- 14:65:94:37:4b:92:06:ef:04:d0:c8:9c:88:db:0b:
- 7b:81:af:b1:3d:2a:c4:65:3a:78:b6:ee:dc:80:b1:
- d2:d3:99:9c:3a:ee:6b:5a:6b:b3:8d:b7:d5:ce:9c:
- c2:be:a5:4b:2f:16:b1:9e:68:3b:06:6f:ae:7d:9f:
- f8:de:ec:cc:29:a7:98:a3:25:43:2f:ef:f1:5f:26:
- e1:88:4d:f8:5e:6e:d7:d9:14:6e:19:33:69:a7:3b:
- 84:89:93:c4:53:55:13:a1:51:78:40:f8:b8:c9:a2:
- ee:7b:ba:52:42:83:9e:14:ed:05:52:5a:59:56:a7:
- 97:fc:9d:3f:0a:29:d8:dc:4f:91:0e:13:bc:de:95:
- a4:df:8b:99:be:ac:9b:33:88:ef:b5:81:af:1b:c6:
- 22:53:c8:f6:c7:ee:97:14:b0:c5:7c:78:52:c8:f0:
- ce:6e:77:60:84:a6:e9:2a:76:20:ed:58:01:17:30:
- 93:e9:1a:8b:e0:73:63:d9:6a:92:94:49:4e:b4:ad:
- 4a:85:c4:a3:22:30:fc:09:ed:68:22:73:a6:88:0c:
- 55:21:58:c5:e1:3a:9f:2a:dd:ca:e1:90:e0:d9:73:
- ab:6c:80:b8:e8:0b:64:93:a0:9c:8c:19:ff:b3:d2:
- 0c:ec:91:26:87:8a:b3:a2:e1:70:8f:2c:0a:e5:cd:
- 6d:68:51:eb:da:3f:05:7f:8b:32:e6:13:5c:6b:fe:
- 5f:40:e2:22:c8:b4:b4:64:4f:d6:ba:7d:48:3e:a8:
- 69:0c:d7:bb:86:71:c9:73:b8:3f:3b:9d:25:4b:da:
- ff:40:eb
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Certificate Policies:
- Policy: 1.3.6.1.4.1.8024.0.3
- User Notice:
- Explicit Text: Any use of this Certificate constitutes acceptance of the QuoVadis Root CA 3 Certificate Policy / Certification Practice Statement.
- CPS: http://www.quovadisglobal.com/cps
-
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- F2:C0:13:E0:82:43:3E:FB:EE:2F:67:32:96:35:5C:DB:B8:CB:02:D0
- X509v3 Authority Key Identifier:
- keyid:F2:C0:13:E0:82:43:3E:FB:EE:2F:67:32:96:35:5C:DB:B8:CB:02:D0
- DirName:/C=BM/O=QuoVadis Limited/CN=QuoVadis Root CA 3
- serial:05:C6
-
- Signature Algorithm: sha1WithRSAEncryption
- 4f:ad:a0:2c:4c:fa:c0:f2:6f:f7:66:55:ab:23:34:ee:e7:29:
- da:c3:5b:b6:b0:83:d9:d0:d0:e2:21:fb:f3:60:a7:3b:5d:60:
- 53:27:a2:9b:f6:08:22:2a:e7:bf:a0:72:e5:9c:24:6a:31:b1:
- 90:7a:27:db:84:11:89:27:a6:77:5a:38:d7:bf:ac:86:fc:ee:
- 5d:83:bc:06:c6:d1:77:6b:0f:6d:24:2f:4b:7a:6c:a7:07:96:
- ca:e3:84:9f:ad:88:8b:1d:ab:16:8d:5b:66:17:d9:16:f4:8b:
- 80:d2:dd:f8:b2:76:c3:fc:38:13:aa:0c:de:42:69:2b:6e:f3:
- 3c:eb:80:27:db:f5:a6:44:0d:9f:5a:55:59:0b:d5:0d:52:48:
- c5:ae:9f:f2:2f:80:c5:ea:32:50:35:12:97:2e:c1:e1:ff:f1:
- 23:88:51:38:9f:f2:66:56:76:e7:0f:51:97:a5:52:0c:4d:49:
- 51:95:36:3d:bf:a2:4b:0c:10:1d:86:99:4c:aa:f3:72:11:93:
- e4:ea:f6:9b:da:a8:5d:a7:4d:b7:9e:02:ae:73:00:c8:da:23:
- 03:e8:f9:ea:19:74:62:00:94:cb:22:20:be:94:a7:59:b5:82:
- 6a:be:99:79:7a:a9:f2:4a:24:52:f7:74:fd:ba:4e:e6:a8:1d:
- 02:6e:b1:0d:80:44:c1:ae:d3:23:37:5f:bb:85:7c:2b:92:2e:
- e8:7e:a5:8b:dd:99:e1:bf:27:6f:2d:5d:aa:7b:87:fe:0a:dd:
- 4b:fc:8e:f5:26:e4:6e:70:42:6e:33:ec:31:9e:7b:93:c1:e4:
- c9:69:1a:3d:c0:6b:4e:22:6d:ee:ab:58:4d:c6:d0:41:c1:2b:
- ea:4f:12:87:5e:eb:45:d8:6c:f5:98:02:d3:a0:d8:55:8a:06:
- 99:19:a2:a0:77:d1:30:9e:ac:cc:75:ee:83:f5:b0:62:39:cf:
- 6c:57:e2:4c:d2:91:0b:0e:75:28:1b:9a:bf:fd:1a:43:f1:ca:
- 77:fb:3b:8f:61:b8:69:28:16:42:04:5e:70:2a:1c:21:d8:8f:
- e1:bd:23:5b:2d:74:40:92:d9:63:19:0d:73:dd:69:bc:62:47:
- bc:e0:74:2b:b2:eb:7d:be:41:1b:b5:c0:46:c5:a1:22:cb:5f:
- 4e:c1:28:92:de:18:ba:d5:2a:28:bb:11:8b:17:93:98:99:60:
- 94:5c:23:cf:5a:27:97:5e:0b:05:06:93:37:1e:3b:69:36:eb:
- a9:9e:61:1d:8f:32:da:8e:0c:d6:74:3e:7b:09:24:da:01:77:
- 47:c4:3b:cd:34:8c:99:f5:ca:e1:25:61:33:b2:59:1b:e2:6e:
- d7:37:57:b6:0d:a9:12:da
-SHA1 Fingerprint=1F:49:14:F7:D8:74:95:1D:DD:AE:02:C0:BE:FD:3A:2D:82:75:51:85
diff --git a/luni/src/main/files/cacerts/9576d26b.0 b/luni/src/main/files/cacerts/9576d26b.0
deleted file mode 100644
index e77a90c..0000000
--- a/luni/src/main/files/cacerts/9576d26b.0
+++ /dev/null
@@ -1,119 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNV
-BAYTAlNLMRMwEQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMu
-MRkwFwYDVQQDExBDQSBEaXNpZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQy
-MDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sxEzARBgNVBAcTCkJyYXRpc2xhdmEx
-EzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERpc2lnIFJvb3QgUjIw
-ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbCw3Oe
-NcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNH
-PWSb6WiaxswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3I
-x2ymrdMxp7zo5eFm1tL7A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbe
-QTg06ov80egEFGEtQX6sx3dOy1FU+16SGBsEWmjGycT6txOgmLcRK7fWV8x8nhfR
-yyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqVg8NTEQxzHQuyRpDRQjrO
-QG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa5Beny912
-H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJ
-QfYEkoopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUD
-i/ZnWejBBhG93c+AAk9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORs
-nLMOPReisjQS1n6yqEm70XooQL6iFh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1
-rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud
-DwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5uQu0wDQYJKoZI
-hvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM
-tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqf
-GopTpti72TVVsRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkb
-lvdhuDvEK7Z4bLQjb/D907JedR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka
-+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W81k/BfDxujRNt+3vrMNDcTa/F1bal
-TFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjxmHHEt38OFdAlab0i
-nSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01utI3
-gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18Dr
-G5gPcFw0sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3Os
-zMOl6W8KjptlwlCFtaOgUxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8x
-L4ysEr3vQCj8KWefshNPZiTEUxnpHikV7+ZtsH8tZ/3zbBt1RqPlShfppNcL
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 10572350602393338211 (0x92b888dbb08ac163)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=SK, L=Bratislava, O=Disig a.s., CN=CA Disig Root R2
- Validity
- Not Before: Jul 19 09:15:30 2012 GMT
- Not After : Jul 19 09:15:30 2042 GMT
- Subject: C=SK, L=Bratislava, O=Disig a.s., CN=CA Disig Root R2
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:a2:a3:c4:00:09:d6:85:5d:2d:6d:14:f6:c2:c3:
- 73:9e:35:c2:71:55:7e:81:fb:ab:46:50:e0:c1:7c:
- 49:78:e6:ab:79:58:3c:da:ff:7c:1c:9f:d8:97:02:
- 78:3e:6b:41:04:e9:41:bd:be:03:2c:45:f6:2f:64:
- d4:ab:5d:a3:47:3d:64:9b:e9:68:9a:c6:cc:1b:3f:
- ba:be:b2:8b:34:02:2e:98:55:19:fc:8c:6f:aa:5f:
- da:4c:ce:4d:03:21:a3:d8:d2:34:93:56:96:cb:4c:
- 0c:00:16:3c:5f:1a:cd:c8:c7:6c:a6:ad:d3:31:a7:
- bc:e8:e5:e1:66:d6:d2:fb:03:b4:41:65:c9:10:ae:
- 0e:05:63:c6:80:6a:69:30:fd:d2:ee:90:ef:0d:27:
- df:9f:95:73:f4:e1:25:da:6c:16:de:41:38:34:ea:
- 8b:fc:d1:e8:04:14:61:2d:41:7e:ac:c7:77:4e:cb:
- 51:54:fb:5e:92:18:1b:04:5a:68:c6:c9:c4:fa:b7:
- 13:a0:98:b7:11:2b:b7:d6:57:cc:7c:9e:17:d1:cb:
- 25:fe:86:4e:24:2e:56:0c:78:4d:9e:01:12:a6:2b:
- a7:01:65:6e:7c:62:1d:84:84:df:ea:c0:6b:b5:a5:
- 2a:95:83:c3:53:11:0c:73:1d:0b:b2:46:90:d1:42:
- 3a:ce:40:6e:95:ad:ff:c6:94:ad:6e:97:84:8e:7d:
- 6f:9e:8a:80:0d:49:6d:73:e2:7b:92:1e:c3:f3:c1:
- f3:eb:2e:05:6f:d9:1b:cf:37:76:04:c8:b4:5a:e4:
- 17:a7:cb:dd:76:1f:d0:19:76:e8:2c:05:b3:d6:9c:
- 34:d8:96:dc:61:87:91:05:e4:44:08:33:c1:da:b9:
- 08:65:d4:ae:b2:36:0d:eb:ba:38:ba:0c:e5:9b:9e:
- eb:8d:66:dd:99:cf:d6:89:41:f6:04:92:8a:29:29:
- 6d:6b:3a:1c:e7:75:7d:02:71:0e:f3:c0:e7:bd:cb:
- 19:dd:9d:60:b2:c2:66:60:b6:b1:04:ee:c9:e6:86:
- b9:9a:66:40:a8:e7:11:ed:81:45:03:8b:f6:67:59:
- e8:c1:06:11:bd:dd:cf:80:02:4f:65:40:78:5c:47:
- 50:c8:9b:e6:1f:81:7b:e4:44:a8:5b:85:9a:e2:de:
- 5a:d5:c7:f9:3a:44:66:4b:e4:32:54:7c:e4:6c:9c:
- b3:0e:3d:17:a2:b2:34:12:d6:7e:b2:a8:49:bb:d1:
- 7a:28:40:be:a2:16:1f:df:e4:37:1f:11:73:fb:90:
- 0a:65:43:a2:0d:7c:f8:06:01:55:33:7d:b0:0d:b8:
- f4:f5:ae:a5:42:57:7c:36:11:8c:7b:5e:c4:03:9d:
- 8c:79:9d
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- B5:99:F8:AF:B0:94:F5:E3:20:D6:0A:AD:CE:4E:56:A4:2E:6E:42:ED
- Signature Algorithm: sha256WithRSAEncryption
- 26:06:5e:70:e7:65:33:c8:82:6e:d9:9c:17:3a:1b:7a:66:b2:
- 01:f6:78:3b:69:5e:2f:ea:ff:4e:f9:28:c3:98:2a:61:4c:b4:
- 24:12:8a:7d:6d:11:14:f7:9c:b5:ca:e6:bc:9e:27:8e:4c:19:
- c8:a9:bd:7a:c0:d7:36:0e:6d:85:72:6e:a8:c6:a2:6d:f6:fa:
- 73:63:7f:bc:6e:79:08:1c:9d:8a:9f:1a:8a:53:a6:d8:bb:d9:
- 35:55:b1:11:c5:a9:03:b3:56:3b:b9:84:93:22:5e:7e:c1:f6:
- 12:52:8b:ea:2c:67:bc:fe:36:4c:f5:b8:cf:d1:b3:49:92:3b:
- d3:29:0e:99:1b:96:f7:61:b8:3b:c4:2b:b6:78:6c:b4:23:6f:
- f0:fd:d3:b2:5e:75:1f:99:95:a8:ac:f6:da:e1:c5:31:7b:fb:
- d1:46:b3:d2:bc:67:b4:62:54:ba:09:f7:63:b0:93:a2:9a:f9:
- e9:52:2e:8b:60:12:ab:fc:f5:60:56:ef:10:5c:8b:c4:1a:42:
- dc:83:5b:64:0e:cb:b5:bc:d6:4f:c1:7c:3c:6e:8d:13:6d:fb:
- 7b:eb:30:d0:dc:4d:af:c5:d5:b6:a5:4c:5b:71:c9:e8:31:be:
- e8:38:06:48:a1:1a:e2:ea:d2:de:12:39:58:1a:ff:80:0e:82:
- 75:e6:b7:c9:07:6c:0e:ef:ff:38:f1:98:71:c4:b7:7f:0e:15:
- d0:25:69:bd:22:9d:2b:ed:05:f6:46:47:ac:ed:c0:f0:d4:3b:
- e2:ec:ee:96:5b:90:13:4e:1e:56:3a:eb:b0:ef:96:bb:96:23:
- 11:ba:f2:43:86:74:64:95:c8:28:75:df:1d:35:ba:d2:37:83:
- 38:53:38:36:3b:cf:6c:e9:f9:6b:0e:d0:fb:04:e8:4f:77:d7:
- 65:01:78:86:0c:7a:3e:21:62:f1:7f:63:71:0c:c9:9f:44:db:
- a8:27:a2:75:be:6e:81:3e:d7:c0:eb:1b:98:0f:70:5c:34:b2:
- 8a:cc:c0:85:18:eb:6e:7a:b3:f7:5a:a1:07:bf:a9:42:92:f3:
- 60:22:97:e4:14:a1:07:9b:4e:76:c0:8e:7d:fd:a4:25:c7:47:
- ed:ff:1f:73:ac:cc:c3:a5:e9:6f:0a:8e:9b:65:c2:50:85:b5:
- a3:a0:53:12:cc:55:87:61:f3:81:ae:10:46:61:bd:44:21:b8:
- c2:3d:74:cf:7e:24:35:fa:1c:07:0e:9b:3d:22:ca:ef:31:2f:
- 8c:ac:12:bd:ef:40:28:fc:29:67:9f:b2:13:4f:66:24:c4:53:
- 19:e9:1e:29:15:ef:e6:6d:b0:7f:2d:67:fd:f3:6c:1b:75:46:
- a3:e5:4a:17:e9:a4:d7:0b
-SHA1 Fingerprint=B5:61:EB:EA:A4:DE:E4:25:4B:69:1A:98:A5:57:47:C2:34:C7:D9:71
diff --git a/luni/src/main/files/cacerts/95aff9e3.0 b/luni/src/main/files/cacerts/95aff9e3.0
deleted file mode 100644
index a063620..0000000
--- a/luni/src/main/files/cacerts/95aff9e3.0
+++ /dev/null
@@ -1,79 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBM
-MSIwIAYDVQQKExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5D
-ZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBU
-cnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIyMTIwNzM3WhcNMjkxMjMxMTIwNzM3
-WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMg
-Uy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSIw
-IAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0B
-AQEFAAOCAQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rH
-UV+rpDKmYYe2bg+G0jACl/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LM
-TXPb865Px1bVWqeWifrzq2jUI4ZZJ88JJ7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVU
-BBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4fOQtf/WsX+sWn7Et0brM
-kUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0cvW0QM8x
-AcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNV
-HRMBAf8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNV
-HQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15y
-sHhE49wcrwn9I0j6vSrEuVUEtRCjjSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfL
-I9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1mS1FhIrlQgnXdAIv94nYmem8
-J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5ajZt3hrvJBW8qY
-VoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
-03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 279744 (0x444c0)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=PL, O=Unizeto Technologies S.A., OU=Certum Certification Authority, CN=Certum Trusted Network CA
- Validity
- Not Before: Oct 22 12:07:37 2008 GMT
- Not After : Dec 31 12:07:37 2029 GMT
- Subject: C=PL, O=Unizeto Technologies S.A., OU=Certum Certification Authority, CN=Certum Trusted Network CA
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:e3:fb:7d:a3:72:ba:c2:f0:c9:14:87:f5:6b:01:
- 4e:e1:6e:40:07:ba:6d:27:5d:7f:f7:5b:2d:b3:5a:
- c7:51:5f:ab:a4:32:a6:61:87:b6:6e:0f:86:d2:30:
- 02:97:f8:d7:69:57:a1:18:39:5d:6a:64:79:c6:01:
- 59:ac:3c:31:4a:38:7c:d2:04:d2:4b:28:e8:20:5f:
- 3b:07:a2:cc:4d:73:db:f3:ae:4f:c7:56:d5:5a:a7:
- 96:89:fa:f3:ab:68:d4:23:86:59:27:cf:09:27:bc:
- ac:6e:72:83:1c:30:72:df:e0:a2:e9:d2:e1:74:75:
- 19:bd:2a:9e:7b:15:54:04:1b:d7:43:39:ad:55:28:
- c5:e2:1a:bb:f4:c0:e4:ae:38:49:33:cc:76:85:9f:
- 39:45:d2:a4:9e:f2:12:8c:51:f8:7c:e4:2d:7f:f5:
- ac:5f:eb:16:9f:b1:2d:d1:ba:cc:91:42:77:4c:25:
- c9:90:38:6f:db:f0:cc:fb:8e:1e:97:59:3e:d5:60:
- 4e:e6:05:28:ed:49:79:13:4b:ba:48:db:2f:f9:72:
- d3:39:ca:fe:1f:d8:34:72:f5:b4:40:cf:31:01:c3:
- ec:de:11:2d:17:5d:1f:b8:50:d1:5e:19:a7:69:de:
- 07:33:28:ca:50:95:f9:a7:54:cb:54:86:50:45:a9:
- f9:49
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- 08:76:CD:CB:07:FF:24:F6:C5:CD:ED:BB:90:BC:E2:84:37:46:75:F7
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- Signature Algorithm: sha1WithRSAEncryption
- a6:a8:ad:22:ce:01:3d:a6:a3:ff:62:d0:48:9d:8b:5e:72:b0:
- 78:44:e3:dc:1c:af:09:fd:23:48:fa:bd:2a:c4:b9:55:04:b5:
- 10:a3:8d:27:de:0b:82:63:d0:ee:de:0c:37:79:41:5b:22:b2:
- b0:9a:41:5c:a6:70:e0:d4:d0:77:cb:23:d3:00:e0:6c:56:2f:
- e1:69:0d:0d:d9:aa:bf:21:81:50:d9:06:a5:a8:ff:95:37:d0:
- aa:fe:e2:b3:f5:99:2d:45:84:8a:e5:42:09:d7:74:02:2f:f7:
- 89:d8:99:e9:bc:27:d4:47:8d:ba:0d:46:1c:77:cf:14:a4:1c:
- b9:a4:31:c4:9c:28:74:03:34:ff:33:19:26:a5:e9:0d:74:b7:
- 3e:97:c6:76:e8:27:96:a3:66:dd:e1:ae:f2:41:5b:ca:98:56:
- 83:73:70:e4:86:1a:d2:31:41:ba:2f:be:2d:13:5a:76:6f:4e:
- e8:4e:81:0e:3f:5b:03:22:a0:12:be:66:58:11:4a:cb:03:c4:
- b4:2a:2a:2d:96:17:e0:39:54:bc:48:d3:76:27:9d:9a:2d:06:
- a6:c9:ec:39:d2:ab:db:9f:9a:0b:27:02:35:29:b1:40:95:e7:
- f9:e8:9c:55:88:19:46:d6:b7:34:f5:7e:ce:39:9a:d9:38:f1:
- 51:f7:4f:2c
-SHA1 Fingerprint=07:E0:32:E0:20:B7:2C:3F:19:2F:06:28:A2:59:3A:19:A7:0F:06:9E
diff --git a/luni/src/main/files/cacerts/961f5451.0 b/luni/src/main/files/cacerts/961f5451.0
deleted file mode 100644
index 2a61cb0..0000000
--- a/luni/src/main/files/cacerts/961f5451.0
+++ /dev/null
@@ -1,121 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFdjCCA16gAwIBAgIQXmjWEXGUY1BWAGjzPsnFkTANBgkqhkiG9w0BAQUFADBV
-MQswCQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxKjAoBgNV
-BAMTIUNlcnRpZmljYXRpb24gQXV0aG9yaXR5IG9mIFdvU2lnbjAeFw0wOTA4MDgw
-MTAwMDFaFw0zOTA4MDgwMTAwMDFaMFUxCzAJBgNVBAYTAkNOMRowGAYDVQQKExFX
-b1NpZ24gQ0EgTGltaXRlZDEqMCgGA1UEAxMhQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkgb2YgV29TaWduMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvcqN
-rLiRFVaXe2tcesLea9mhsMMQI/qnobLMMfo+2aYpbxY94Gv4uEBf2zmoAHqLoE1U
-fcIiePyOCbiohdfMlZdLdNiefvAA5A6JrkkoRBoQmTIPJYhTpA2zDxIIFgsDcScc
-f+Hb0v1naMQFXQoOXXDX2JegvFNBmpGN9J42Znp+VsGQX+axaCA2pIwkLCxHC1l2
-ZjC1vt7tj/id07sBMOby8w7gLJKA84X5KIq0VC6a7fd2/BVoFutKbOsuEo/Uz/4M
-x1wdC34FMr5esAkqQtXJTpCzWQ27en7N1QhatH/YHGkR+ScPewavVIMYe+HdVHpR
-aG53/Ma/UkpmRqGyZxq7o093oL5d//xWC0Nyd5DKnvnyOfUNqfTq1+ezEC8wQjch
-zDBwyYaYD8xYTYO7feUapTeNtqwylwA6Y3EkHp43xP901DfA4v6IRmAR3Qg/UDar
-uHqklWJqbrDKaiFaafPz+x1wOZXzp26mgYmhiMU7ccqjUu6Du/2gd/Tkb+dC221K
-mYo0SLwX3OSACCK28jHAPwQ+658geda4BmRkAjHXqc1S+4RFaQkAKtxVi8QGRkvA
-Sh0JWzko/amrzgD5LkhLJuYwTKVYyrREgk/nkR4zw7CT/xH8gdLKH3Ep3XZPkiWv
-HYG3Dy+MwwbMLyejSuQOmbp8HkUff6oZRZb9/D0CAwEAAaNCMEAwDgYDVR0PAQH/
-BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOFmzw7R8bNLtwYgFP6H
-EtX2/vs+MA0GCSqGSIb3DQEBBQUAA4ICAQCoy3JAsnbBfnv8rWTjMnvMPLZdRtP1
-LOJwXcgu2AZ9mNELIaCJWSQBnfmvCX0KI4I01fx8cpm5o9dU9OpScA7F9dY74ToJ
-MuYhOZO9sxXqT2r09Ys/L3yNWC7F4TmgPsc9SnOeQHrAK2GpZ8nzJLmzbVUsWh2e
-JXLOC62qx1ViC777Y7NhRCOjy+EaDveaBk3e1CNOIZZbOVtXHS9dCF4Jef98l7VN
-g64N1uajeeAz0JmWAjCnPv/So0M/BVoG6kQC2nz4SNAzqfkHx5Xh9T71XXG68pWp
-dIhhWeO/yloTunK0jF02h+mmxTwTv97QRCbut+wucPrXnbes5cVAWubXbHssw1ab
-R80LzvobtCHXt2a49CUwi1wNuepnsvRtrtWhnk/Yn+knArAdBtaP4/tIEp9/EaEQ
-PkxROpaw0RPxx9gmrjrKkcRpnd8BKWRRb2jaFOwIQZeQjdCygPLPwj2/kWjFgGce
-xGATVdVhmVd8upUPYUk6ynW8yQqTP2cOEvIo4jEbwFcW3wh8GcF+Dx+FHgo2fFt+
-J7x6v+Db9NpSvd4MVHAxkUOVyLzwPt0JfjBkUO1/AaQzZ01oT74V77D2AhGiGxMl
-OtzCWfHjXEa7ZywCRuoeSKbmW9m1vFGikpbbqsY3Iqb+zCB0oy2pLmvLwIIRIbWT
-ee5Ehr7XHuQe+w==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 5e:68:d6:11:71:94:63:50:56:00:68:f3:3e:c9:c5:91
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=CN, O=WoSign CA Limited, CN=Certification Authority of WoSign
- Validity
- Not Before: Aug 8 01:00:01 2009 GMT
- Not After : Aug 8 01:00:01 2039 GMT
- Subject: C=CN, O=WoSign CA Limited, CN=Certification Authority of WoSign
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:bd:ca:8d:ac:b8:91:15:56:97:7b:6b:5c:7a:c2:
- de:6b:d9:a1:b0:c3:10:23:fa:a7:a1:b2:cc:31:fa:
- 3e:d9:a6:29:6f:16:3d:e0:6b:f8:b8:40:5f:db:39:
- a8:00:7a:8b:a0:4d:54:7d:c2:22:78:fc:8e:09:b8:
- a8:85:d7:cc:95:97:4b:74:d8:9e:7e:f0:00:e4:0e:
- 89:ae:49:28:44:1a:10:99:32:0f:25:88:53:a4:0d:
- b3:0f:12:08:16:0b:03:71:27:1c:7f:e1:db:d2:fd:
- 67:68:c4:05:5d:0a:0e:5d:70:d7:d8:97:a0:bc:53:
- 41:9a:91:8d:f4:9e:36:66:7a:7e:56:c1:90:5f:e6:
- b1:68:20:36:a4:8c:24:2c:2c:47:0b:59:76:66:30:
- b5:be:de:ed:8f:f8:9d:d3:bb:01:30:e6:f2:f3:0e:
- e0:2c:92:80:f3:85:f9:28:8a:b4:54:2e:9a:ed:f7:
- 76:fc:15:68:16:eb:4a:6c:eb:2e:12:8f:d4:cf:fe:
- 0c:c7:5c:1d:0b:7e:05:32:be:5e:b0:09:2a:42:d5:
- c9:4e:90:b3:59:0d:bb:7a:7e:cd:d5:08:5a:b4:7f:
- d8:1c:69:11:f9:27:0f:7b:06:af:54:83:18:7b:e1:
- dd:54:7a:51:68:6e:77:fc:c6:bf:52:4a:66:46:a1:
- b2:67:1a:bb:a3:4f:77:a0:be:5d:ff:fc:56:0b:43:
- 72:77:90:ca:9e:f9:f2:39:f5:0d:a9:f4:ea:d7:e7:
- b3:10:2f:30:42:37:21:cc:30:70:c9:86:98:0f:cc:
- 58:4d:83:bb:7d:e5:1a:a5:37:8d:b6:ac:32:97:00:
- 3a:63:71:24:1e:9e:37:c4:ff:74:d4:37:c0:e2:fe:
- 88:46:60:11:dd:08:3f:50:36:ab:b8:7a:a4:95:62:
- 6a:6e:b0:ca:6a:21:5a:69:f3:f3:fb:1d:70:39:95:
- f3:a7:6e:a6:81:89:a1:88:c5:3b:71:ca:a3:52:ee:
- 83:bb:fd:a0:77:f4:e4:6f:e7:42:db:6d:4a:99:8a:
- 34:48:bc:17:dc:e4:80:08:22:b6:f2:31:c0:3f:04:
- 3e:eb:9f:20:79:d6:b8:06:64:64:02:31:d7:a9:cd:
- 52:fb:84:45:69:09:00:2a:dc:55:8b:c4:06:46:4b:
- c0:4a:1d:09:5b:39:28:fd:a9:ab:ce:00:f9:2e:48:
- 4b:26:e6:30:4c:a5:58:ca:b4:44:82:4f:e7:91:1e:
- 33:c3:b0:93:ff:11:fc:81:d2:ca:1f:71:29:dd:76:
- 4f:92:25:af:1d:81:b7:0f:2f:8c:c3:06:cc:2f:27:
- a3:4a:e4:0e:99:ba:7c:1e:45:1f:7f:aa:19:45:96:
- fd:fc:3d
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- E1:66:CF:0E:D1:F1:B3:4B:B7:06:20:14:FE:87:12:D5:F6:FE:FB:3E
- Signature Algorithm: sha1WithRSAEncryption
- a8:cb:72:40:b2:76:c1:7e:7b:fc:ad:64:e3:32:7b:cc:3c:b6:
- 5d:46:d3:f5:2c:e2:70:5d:c8:2e:d8:06:7d:98:d1:0b:21:a0:
- 89:59:24:01:9d:f9:af:09:7d:0a:23:82:34:d5:fc:7c:72:99:
- b9:a3:d7:54:f4:ea:52:70:0e:c5:f5:d6:3b:e1:3a:09:32:e6:
- 21:39:93:bd:b3:15:ea:4f:6a:f4:f5:8b:3f:2f:7c:8d:58:2e:
- c5:e1:39:a0:3e:c7:3d:4a:73:9e:40:7a:c0:2b:61:a9:67:c9:
- f3:24:b9:b3:6d:55:2c:5a:1d:9e:25:72:ce:0b:ad:aa:c7:55:
- 62:0b:be:fb:63:b3:61:44:23:a3:cb:e1:1a:0e:f7:9a:06:4d:
- de:d4:23:4e:21:96:5b:39:5b:57:1d:2f:5d:08:5e:09:79:ff:
- 7c:97:b5:4d:83:ae:0d:d6:e6:a3:79:e0:33:d0:99:96:02:30:
- a7:3e:ff:d2:a3:43:3f:05:5a:06:ea:44:02:da:7c:f8:48:d0:
- 33:a9:f9:07:c7:95:e1:f5:3e:f5:5d:71:ba:f2:95:a9:74:88:
- 61:59:e3:bf:ca:5a:13:ba:72:b4:8c:5d:36:87:e9:a6:c5:3c:
- 13:bf:de:d0:44:26:ee:b7:ec:2e:70:fa:d7:9d:b7:ac:e5:c5:
- 40:5a:e6:d7:6c:7b:2c:c3:56:9b:47:cd:0b:ce:fa:1b:b4:21:
- d7:b7:66:b8:f4:25:30:8b:5c:0d:b9:ea:67:b2:f4:6d:ae:d5:
- a1:9e:4f:d8:9f:e9:27:02:b0:1d:06:d6:8f:e3:fb:48:12:9f:
- 7f:11:a1:10:3e:4c:51:3a:96:b0:d1:13:f1:c7:d8:26:ae:3a:
- ca:91:c4:69:9d:df:01:29:64:51:6f:68:da:14:ec:08:41:97:
- 90:8d:d0:b2:80:f2:cf:c2:3d:bf:91:68:c5:80:67:1e:c4:60:
- 13:55:d5:61:99:57:7c:ba:95:0f:61:49:3a:ca:75:bc:c9:0a:
- 93:3f:67:0e:12:f2:28:e2:31:1b:c0:57:16:df:08:7c:19:c1:
- 7e:0f:1f:85:1e:0a:36:7c:5b:7e:27:bc:7a:bf:e0:db:f4:da:
- 52:bd:de:0c:54:70:31:91:43:95:c8:bc:f0:3e:dd:09:7e:30:
- 64:50:ed:7f:01:a4:33:67:4d:68:4f:be:15:ef:b0:f6:02:11:
- a2:1b:13:25:3a:dc:c2:59:f1:e3:5c:46:bb:67:2c:02:46:ea:
- 1e:48:a6:e6:5b:d9:b5:bc:51:a2:92:96:db:aa:c6:37:22:a6:
- fe:cc:20:74:a3:2d:a9:2e:6b:cb:c0:82:11:21:b5:93:79:ee:
- 44:86:be:d7:1e:e4:1e:fb
-SHA1 Fingerprint=B9:42:94:BF:91:EA:8F:B6:4B:E6:10:97:C7:FB:00:13:59:B6:76:CB
diff --git a/luni/src/main/files/cacerts/9685a493.0 b/luni/src/main/files/cacerts/9685a493.0
deleted file mode 100644
index 2f3a792..0000000
--- a/luni/src/main/files/cacerts/9685a493.0
+++ /dev/null
@@ -1,75 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsx
-FjAUBgNVBAoTDUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3Qg
-Um9vdCBDQSAxMB4XDTAzMDUxNTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkG
-A1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdr
-b25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1ApzQ
-jVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEn
-PzlTCeqrauh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjh
-ZY4bXSNmO7ilMlHIhqqhqZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9
-nnV0ttgCXjqQesBCNnLsak3c78QA3xMYV18meMjWCnl3v/evt3a5pQuEF10Q6m/h
-q5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNVHRMBAf8ECDAGAQH/AgED
-MA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7ih9legYsC
-mEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI3
-7piol7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clB
-oiMBdDhViw+5LmeiIAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJs
-EhTkYY2sEJCehFC78JZvRZ+K88psT/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpO
-fMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilTc4afU9hDDl3WY4JxHYB0yvbi
-AmvZWg==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1000 (0x3e8)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=HK, O=Hongkong Post, CN=Hongkong Post Root CA 1
- Validity
- Not Before: May 15 05:13:14 2003 GMT
- Not After : May 15 04:52:29 2023 GMT
- Subject: C=HK, O=Hongkong Post, CN=Hongkong Post Root CA 1
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:ac:ff:38:b6:e9:66:02:49:e3:a2:b4:e1:90:f9:
- 40:8f:79:f9:e2:bd:79:fe:02:bd:ee:24:92:1d:22:
- f6:da:85:72:69:fe:d7:3f:09:d4:dd:91:b5:02:9c:
- d0:8d:5a:e1:55:c3:50:86:b9:29:26:c2:e3:d9:a0:
- f1:69:03:28:20:80:45:22:2d:56:a7:3b:54:95:56:
- 22:59:1f:28:df:1f:20:3d:6d:a2:36:be:23:a0:b1:
- 6e:b5:b1:27:3f:39:53:09:ea:ab:6a:e8:74:b2:c2:
- 65:5c:8e:bf:7c:c3:78:84:cd:9e:16:fc:f5:2e:4f:
- 20:2a:08:9f:77:f3:c5:1e:c4:9a:52:66:1e:48:5e:
- e3:10:06:8f:22:98:e1:65:8e:1b:5d:23:66:3b:b8:
- a5:32:51:c8:86:aa:a1:a9:9e:7f:76:94:c2:a6:6c:
- b7:41:f0:d5:c8:06:38:e6:d4:0c:e2:f3:3b:4c:6d:
- 50:8c:c4:83:27:c1:13:84:59:3d:9e:75:74:b6:d8:
- 02:5e:3a:90:7a:c0:42:36:72:ec:6a:4d:dc:ef:c4:
- 00:df:13:18:57:5f:26:78:c8:d6:0a:79:77:bf:f7:
- af:b7:76:b9:a5:0b:84:17:5d:10:ea:6f:e1:ab:95:
- 11:5f:6d:3c:a3:5c:4d:83:5b:f2:b3:19:8a:80:8b:
- 0b:87
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE, pathlen:3
- X509v3 Key Usage: critical
- Digital Signature, Non Repudiation, Certificate Sign, CRL Sign
- Signature Algorithm: sha1WithRSAEncryption
- 0e:46:d5:3c:ae:e2:87:d9:5e:81:8b:02:98:41:08:8c:4c:bc:
- da:db:ee:27:1b:82:e7:6a:45:ec:16:8b:4f:85:a0:f3:b2:70:
- bd:5a:96:ba:ca:6e:6d:ee:46:8b:6e:e7:2a:2e:96:b3:19:33:
- eb:b4:9f:a8:b2:37:ee:98:a8:97:b6:2e:b6:67:27:d4:a6:49:
- fd:1c:93:65:76:9e:42:2f:dc:22:6c:9a:4f:f2:5a:15:39:b1:
- 71:d7:2b:51:e8:6d:1c:98:c0:d9:2a:f4:a1:82:7b:d5:c9:41:
- a2:23:01:74:38:55:8b:0f:b9:2e:67:a2:20:04:37:da:9c:0b:
- d3:17:21:e0:8f:97:79:34:6f:84:48:02:20:33:1b:e6:34:44:
- 9f:91:70:f4:80:5e:84:43:c2:29:d2:6c:12:14:e4:61:8d:ac:
- 10:90:9e:84:50:bb:f0:96:6f:45:9f:8a:f3:ca:6c:4f:fa:11:
- 3a:15:15:46:c3:cd:1f:83:5b:2d:41:12:ed:50:67:41:13:3d:
- 21:ab:94:8a:aa:4e:7c:c1:b1:fb:a7:d6:b5:27:2f:97:ab:6e:
- e0:1d:e2:d1:1c:2c:1f:44:e2:fc:be:91:a1:9c:fb:d6:29:53:
- 73:86:9f:53:d8:43:0e:5d:d6:63:82:71:1d:80:74:ca:f6:e2:
- 02:6b:d9:5a
-SHA1 Fingerprint=D6:DA:A8:20:8D:09:D2:15:4D:24:B5:2F:CB:34:6E:B2:58:B2:8A:58
diff --git a/luni/src/main/files/cacerts/9772ca32.0 b/luni/src/main/files/cacerts/9772ca32.0
deleted file mode 100644
index 70fbfbb..0000000
--- a/luni/src/main/files/cacerts/9772ca32.0
+++ /dev/null
@@ -1,79 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBY
-MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMo
-R2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEx
-MjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
-Ew1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQcmltYXJ5IENlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9
-AWbK7hWNb6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjA
-ZIVcFU2Ix7e64HXprQU9nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE0
-7e9GceBrAqg1cmuXm2bgyxx5X9gaBGgeRwLmnWDiNpcB3841kt++Z8dtd1k7j53W
-kBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGttm/81w7a4DSwDRp35+MI
-mO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4G
-A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJ
-KoZIhvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ1
-6CePbJC/kRYkRj5KTs4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl
-4b7UVXGYNTq+k+qurUKykG/g/CFNNWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6K
-oKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHaFloxt/m0cYASSJlyc1pZU8Fj
-UjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG1riR/aYNKxoU
-AT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 18:ac:b5:6a:fd:69:b6:15:3a:63:6c:af:da:fa:c4:a1
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Primary Certification Authority
- Validity
- Not Before: Nov 27 00:00:00 2006 GMT
- Not After : Jul 16 23:59:59 2036 GMT
- Subject: C=US, O=GeoTrust Inc., CN=GeoTrust Primary Certification Authority
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:be:b8:15:7b:ff:d4:7c:7d:67:ad:83:64:7b:c8:
- 42:53:2d:df:f6:84:08:20:61:d6:01:59:6a:9c:44:
- 11:af:ef:76:fd:95:7e:ce:61:30:bb:7a:83:5f:02:
- bd:01:66:ca:ee:15:8d:6f:a1:30:9c:bd:a1:85:9e:
- 94:3a:f3:56:88:00:31:cf:d8:ee:6a:96:02:d9:ed:
- 03:8c:fb:75:6d:e7:ea:b8:55:16:05:16:9a:f4:e0:
- 5e:b1:88:c0:64:85:5c:15:4d:88:c7:b7:ba:e0:75:
- e9:ad:05:3d:9d:c7:89:48:e0:bb:28:c8:03:e1:30:
- 93:64:5e:52:c0:59:70:22:35:57:88:8a:f1:95:0a:
- 83:d7:bc:31:73:01:34:ed:ef:46:71:e0:6b:02:a8:
- 35:72:6b:97:9b:66:e0:cb:1c:79:5f:d8:1a:04:68:
- 1e:47:02:e6:9d:60:e2:36:97:01:df:ce:35:92:df:
- be:67:c7:6d:77:59:3b:8f:9d:d6:90:15:94:bc:42:
- 34:10:c1:39:f9:b1:27:3e:7e:d6:8a:75:c5:b2:af:
- 96:d3:a2:de:9b:e4:98:be:7d:e1:e9:81:ad:b6:6f:
- fc:d7:0e:da:e0:34:b0:0d:1a:77:e7:e3:08:98:ef:
- 58:fa:9c:84:b7:36:af:c2:df:ac:d2:f4:10:06:70:
- 71:35
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- 2C:D5:50:41:97:15:8B:F0:8F:36:61:5B:4A:FB:6B:D9:99:C9:33:92
- Signature Algorithm: sha1WithRSAEncryption
- 5a:70:7f:2c:dd:b7:34:4f:f5:86:51:a9:26:be:4b:b8:aa:f1:
- 71:0d:dc:61:c7:a0:ea:34:1e:7a:77:0f:04:35:e8:27:8f:6c:
- 90:bf:91:16:24:46:3e:4a:4e:ce:2b:16:d5:0b:52:1d:fc:1f:
- 67:a2:02:45:31:4f:ce:f3:fa:03:a7:79:9d:53:6a:d9:da:63:
- 3a:f8:80:d7:d3:99:e1:a5:e1:be:d4:55:71:98:35:3a:be:93:
- ea:ae:ad:42:b2:90:6f:e0:fc:21:4d:35:63:33:89:49:d6:9b:
- 4e:ca:c7:e7:4e:09:00:f7:da:c7:ef:99:62:99:77:b6:95:22:
- 5e:8a:a0:ab:f4:b8:78:98:ca:38:19:99:c9:72:9e:78:cd:4b:
- ac:af:19:a0:73:12:2d:fc:c2:41:ba:81:91:da:16:5a:31:b7:
- f9:b4:71:80:12:48:99:72:73:5a:59:53:c1:63:52:33:ed:a7:
- c9:d2:39:02:70:fa:e0:b1:42:66:29:aa:9b:51:ed:30:54:22:
- 14:5f:d9:ab:1d:c1:e4:94:f0:f8:f5:2b:f7:ea:ca:78:46:d6:
- b8:91:fd:a6:0d:2b:1a:14:01:3e:80:f0:42:a0:95:07:5e:6d:
- cd:cc:4b:a4:45:8d:ab:12:e8:b3:de:5a:e5:a0:7c:e8:0f:22:
- 1d:5a:e9:59
-SHA1 Fingerprint=32:3C:11:8E:1B:F7:B8:B6:52:54:E2:E2:10:0D:D6:02:90:37:F0:96
diff --git a/luni/src/main/files/cacerts/9ab62355.0 b/luni/src/main/files/cacerts/9ab62355.0
deleted file mode 100644
index 1de7078..0000000
--- a/luni/src/main/files/cacerts/9ab62355.0
+++ /dev/null
@@ -1,128 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIF4DCCA8igAwIBAgIRAPL6ZOJ0Y9ON/RAdBB92ylgwDQYJKoZIhvcNAQELBQAw
-ZzELMAkGA1UEBhMCY2gxETAPBgNVBAoTCFN3aXNzY29tMSUwIwYDVQQLExxEaWdp
-dGFsIENlcnRpZmljYXRlIFNlcnZpY2VzMR4wHAYDVQQDExVTd2lzc2NvbSBSb290
-IEVWIENBIDIwHhcNMTEwNjI0MDk0NTA4WhcNMzEwNjI1MDg0NTA4WjBnMQswCQYD
-VQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2Vy
-dGlmaWNhdGUgU2VydmljZXMxHjAcBgNVBAMTFVN3aXNzY29tIFJvb3QgRVYgQ0Eg
-MjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMT3HS9X6lds93BdY7Bx
-UglgRCgzo3pOCvrY6myLURYaVa5UJsTMRQdBTxB5f3HSek4/OE6zAMaVylvNwSqD
-1ycfMQ4jFrclyxy0uYAyXhqdk/HoPGAsp15XGVhRXrwsVgu42O+LgrQ8uMIkqBPH
-oCE2G3pXKSinLr9xJZDzRINpUKTk4RtiGZQJo/PDvO/0vezbE53PnUgJUmfANykR
-HvvSEaeFGHR55E+FFOtSN+KxRdjMDUN/rhPSays/p8LiqG12W0OfvrSdsyaGOx9/
-5fLoZigWJdBLlzin5M8J0TbDC77aO0RYjb7xnglrPvMyxyuHxuxenPaHZa0zKcQv
-idm5y8kDnftslFGXEBuGCxobP/YCfnvUxVFkKJ3106yDgYjTdLRZncHrYTNaRdHL
-OdAGalNgHa/2+2m8atwBz735j9m9W8E6X47aD0upm50qKGsaCnw8qyIL5XctcfaC
-NYGu+HuB5ur+rPQam3Rc6I8k9l2dRsQs0h4rIWqDJ2dVSqTjyDKXZpBy2uPUZC5f
-46Fq9mDU5zXNysRojddxyNMkM3OxbPlq4SjbX8Y96L5V5jcb7STZDxmPX2MYWFCB
-UWVv8p9+agTnNCRxunZLWB4ZvRVgRaoMEkABnRDixzgHcgplwLa7JSnaFp6LNYth
-7eVxV4O1PHGf40+/fh6Bn0GXAgMBAAGjgYYwgYMwDgYDVR0PAQH/BAQDAgGGMB0G
-A1UdIQQWMBQwEgYHYIV0AVMCAgYHYIV0AVMCAjASBgNVHRMBAf8ECDAGAQH/AgED
-MB0GA1UdDgQWBBRF2aWBbj2ITY1x0kbBbkUe88SAnTAfBgNVHSMEGDAWgBRF2aWB
-bj2ITY1x0kbBbkUe88SAnTANBgkqhkiG9w0BAQsFAAOCAgEAlDpzBp9SSzBc1P6x
-XCX5145v9Ydkn+0UjrgEjihLj6p7jjm02Vj2e6E1CqGdivdj5eu9OYLU43otb98T
-PLr+flaYC/NUn81ETm484T4VvwYmneTwkLbUwp4wLh/vx3rEUMfqe9pQy3omywC0
-Wqu1kx+AiYQElY2NfwmTv9SoqORjbdlk5LgpWgi/UOGED1V7XwgiG/W9mR4U9s70
-WBCCswo9GcG/W6uqmdjyMb3lOGbcWAXH7WMaLgqXfIeTK7KK4/HsGOV1timH59yL
-Gn602MnTihdsfSlEvoqq9X46Lmgxk7lq2prg2+kupYTNHAq4Sgj5nPFhJpiTt3tm
-7JFe3VE/23MPrQRYCd0EApUKPtN236YQHoA96M2kZNEzx5LH4k5E4wnJTsJdhw4S
-nr8PyQUQ3nqjsTzyP6WqJ3mtMX0f/fwZacXduT98zca0wjAefm6S139hdlqP65VN
-vBFuIXxZN5nQBrz5Bm0yFqXZaajh3DyAHmBR3NdUIR7KYndP+tiPsys6DXhyyWhB
-WkdKwqPrGtcKqzwyVcgKEZzfdNbwQBUdyLmPtTbFr/giuMod89a2GQ+fYWVq6nTI
-fI/DT11lgh/ZDYnadXL77/FHZxOzyNEZiCcmmpl5fx7kLD977vHeTYuWl8PVP3wb
-I+2ksx0WckNLIOFZfsLorSa/ovc=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- f2:fa:64:e2:74:63:d3:8d:fd:10:1d:04:1f:76:ca:58
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=ch, O=Swisscom, OU=Digital Certificate Services, CN=Swisscom Root EV CA 2
- Validity
- Not Before: Jun 24 09:45:08 2011 GMT
- Not After : Jun 25 08:45:08 2031 GMT
- Subject: C=ch, O=Swisscom, OU=Digital Certificate Services, CN=Swisscom Root EV CA 2
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:c4:f7:1d:2f:57:ea:57:6c:f7:70:5d:63:b0:71:
- 52:09:60:44:28:33:a3:7a:4e:0a:fa:d8:ea:6c:8b:
- 51:16:1a:55:ae:54:26:c4:cc:45:07:41:4f:10:79:
- 7f:71:d2:7a:4e:3f:38:4e:b3:00:c6:95:ca:5b:cd:
- c1:2a:83:d7:27:1f:31:0e:23:16:b7:25:cb:1c:b4:
- b9:80:32:5e:1a:9d:93:f1:e8:3c:60:2c:a7:5e:57:
- 19:58:51:5e:bc:2c:56:0b:b8:d8:ef:8b:82:b4:3c:
- b8:c2:24:a8:13:c7:a0:21:36:1b:7a:57:29:28:a7:
- 2e:bf:71:25:90:f3:44:83:69:50:a4:e4:e1:1b:62:
- 19:94:09:a3:f3:c3:bc:ef:f4:bd:ec:db:13:9d:cf:
- 9d:48:09:52:67:c0:37:29:11:1e:fb:d2:11:a7:85:
- 18:74:79:e4:4f:85:14:eb:52:37:e2:b1:45:d8:cc:
- 0d:43:7f:ae:13:d2:6b:2b:3f:a7:c2:e2:a8:6d:76:
- 5b:43:9f:be:b4:9d:b3:26:86:3b:1f:7f:e5:f2:e8:
- 66:28:16:25:d0:4b:97:38:a7:e4:cf:09:d1:36:c3:
- 0b:be:da:3b:44:58:8d:be:f1:9e:09:6b:3e:f3:32:
- c7:2b:87:c6:ec:5e:9c:f6:87:65:ad:33:29:c4:2f:
- 89:d9:b9:cb:c9:03:9d:fb:6c:94:51:97:10:1b:86:
- 0b:1a:1b:3f:f6:02:7e:7b:d4:c5:51:64:28:9d:f5:
- d3:ac:83:81:88:d3:74:b4:59:9d:c1:eb:61:33:5a:
- 45:d1:cb:39:d0:06:6a:53:60:1d:af:f6:fb:69:bc:
- 6a:dc:01:cf:bd:f9:8f:d9:bd:5b:c1:3a:5f:8e:da:
- 0f:4b:a9:9b:9d:2a:28:6b:1a:0a:7c:3c:ab:22:0b:
- e5:77:2d:71:f6:82:35:81:ae:f8:7b:81:e6:ea:fe:
- ac:f4:1a:9b:74:5c:e8:8f:24:f6:5d:9d:46:c4:2c:
- d2:1e:2b:21:6a:83:27:67:55:4a:a4:e3:c8:32:97:
- 66:90:72:da:e3:d4:64:2e:5f:e3:a1:6a:f6:60:d4:
- e7:35:cd:ca:c4:68:8d:d7:71:c8:d3:24:33:73:b1:
- 6c:f9:6a:e1:28:db:5f:c6:3d:e8:be:55:e6:37:1b:
- ed:24:d9:0f:19:8f:5f:63:18:58:50:81:51:65:6f:
- f2:9f:7e:6a:04:e7:34:24:71:ba:76:4b:58:1e:19:
- bd:15:60:45:aa:0c:12:40:01:9d:10:e2:c7:38:07:
- 72:0a:65:c0:b6:bb:25:29:da:16:9e:8b:35:8b:61:
- ed:e5:71:57:83:b5:3c:71:9f:e3:4f:bf:7e:1e:81:
- 9f:41:97
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Key Usage: critical
- Digital Signature, Certificate Sign, CRL Sign
- X509v3 Policy Mappings:
- 2.16.756.1.83.2.2:2.16.756.1.83.2.2
- X509v3 Basic Constraints: critical
- CA:TRUE, pathlen:3
- X509v3 Subject Key Identifier:
- 45:D9:A5:81:6E:3D:88:4D:8D:71:D2:46:C1:6E:45:1E:F3:C4:80:9D
- X509v3 Authority Key Identifier:
- keyid:45:D9:A5:81:6E:3D:88:4D:8D:71:D2:46:C1:6E:45:1E:F3:C4:80:9D
-
- Signature Algorithm: sha256WithRSAEncryption
- 94:3a:73:06:9f:52:4b:30:5c:d4:fe:b1:5c:25:f9:d7:8e:6f:
- f5:87:64:9f:ed:14:8e:b8:04:8e:28:4b:8f:aa:7b:8e:39:b4:
- d9:58:f6:7b:a1:35:0a:a1:9d:8a:f7:63:e5:eb:bd:39:82:d4:
- e3:7a:2d:6f:df:13:3c:ba:fe:7e:56:98:0b:f3:54:9f:cd:44:
- 4e:6e:3c:e1:3e:15:bf:06:26:9d:e4:f0:90:b6:d4:c2:9e:30:
- 2e:1f:ef:c7:7a:c4:50:c7:ea:7b:da:50:cb:7a:26:cb:00:b4:
- 5a:ab:b5:93:1f:80:89:84:04:95:8d:8d:7f:09:93:bf:d4:a8:
- a8:e4:63:6d:d9:64:e4:b8:29:5a:08:bf:50:e1:84:0f:55:7b:
- 5f:08:22:1b:f5:bd:99:1e:14:f6:ce:f4:58:10:82:b3:0a:3d:
- 19:c1:bf:5b:ab:aa:99:d8:f2:31:bd:e5:38:66:dc:58:05:c7:
- ed:63:1a:2e:0a:97:7c:87:93:2b:b2:8a:e3:f1:ec:18:e5:75:
- b6:29:87:e7:dc:8b:1a:7e:b4:d8:c9:d3:8a:17:6c:7d:29:44:
- be:8a:aa:f5:7e:3a:2e:68:31:93:b9:6a:da:9a:e0:db:e9:2e:
- a5:84:cd:1c:0a:b8:4a:08:f9:9c:f1:61:26:98:93:b7:7b:66:
- ec:91:5e:dd:51:3f:db:73:0f:ad:04:58:09:dd:04:02:95:0a:
- 3e:d3:76:df:a6:10:1e:80:3d:e8:cd:a4:64:d1:33:c7:92:c7:
- e2:4e:44:e3:09:c9:4e:c2:5d:87:0e:12:9e:bf:0f:c9:05:10:
- de:7a:a3:b1:3c:f2:3f:a5:aa:27:79:ad:31:7d:1f:fd:fc:19:
- 69:c5:dd:b9:3f:7c:cd:c6:b4:c2:30:1e:7e:6e:92:d7:7f:61:
- 76:5a:8f:eb:95:4d:bc:11:6e:21:7c:59:37:99:d0:06:bc:f9:
- 06:6d:32:16:a5:d9:69:a8:e1:dc:3c:80:1e:60:51:dc:d7:54:
- 21:1e:ca:62:77:4f:fa:d8:8f:b3:2b:3a:0d:78:72:c9:68:41:
- 5a:47:4a:c2:a3:eb:1a:d7:0a:ab:3c:32:55:c8:0a:11:9c:df:
- 74:d6:f0:40:15:1d:c8:b9:8f:b5:36:c5:af:f8:22:b8:ca:1d:
- f3:d6:b6:19:0f:9f:61:65:6a:ea:74:c8:7c:8f:c3:4f:5d:65:
- 82:1f:d9:0d:89:da:75:72:fb:ef:f1:47:67:13:b3:c8:d1:19:
- 88:27:26:9a:99:79:7f:1e:e4:2c:3f:7b:ee:f1:de:4d:8b:96:
- 97:c3:d5:3f:7c:1b:23:ed:a4:b3:1d:16:72:43:4b:20:e1:59:
- 7e:c2:e8:ad:26:bf:a2:f7
-SHA1 Fingerprint=E7:A1:90:29:D3:D5:52:DC:0D:0F:C6:92:D3:EA:88:0D:15:2E:1A:6B
diff --git a/luni/src/main/files/cacerts/9d6523ce.0 b/luni/src/main/files/cacerts/9d6523ce.0
deleted file mode 100644
index 6053f55..0000000
--- a/luni/src/main/files/cacerts/9d6523ce.0
+++ /dev/null
@@ -1,123 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBe
-MQswCQYDVQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0
-ZC4xKjAoBgNVBAsMIWVQS0kgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe
-Fw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMxMjdaMF4xCzAJBgNVBAYTAlRXMSMw
-IQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEqMCgGA1UECwwhZVBL
-SSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF
-AAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAH
-SyZbCUNsIZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAh
-ijHyl3SJCRImHJ7K2RKilTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3X
-DZoTM1PRYfl61dd4s5oz9wCGzh1NlDivqOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1
-TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX12ruOzjjK9SXDrkb5wdJ
-fzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0OWQqraffA
-sgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uU
-WH1+ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLS
-nT0IFaUQAS2zMnaolQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pH
-dmX2Os+PYhcZewoozRrSgx4hxyy/vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJip
-NiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXiZo1jDiVN1Rmy5nk3pyKdVDEC
-AwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/QkqiMAwGA1UdEwQF
-MAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH
-ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGB
-uvl2ICO1J2B01GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6Yl
-PwZpVnPDimZI+ymBV3QGypzqKOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkP
-JXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdVxrsStZf0X4OFunHB2WyBEXYKCrC/
-gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEPNXubrjlpC2JgQCA2
-j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+rGNm6
-5ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUB
-o2M3IUxExJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS
-/jQ6fbjpKdx2qcgw+BRxgMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2z
-Gp1iro2C6pSe3VkQw63d4k3jMdXH7OjysP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTE
-W9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmODBCEIZ43ygknQW/2xzQ+D
-hNQ+IIX3Sj0rnP0qCglN6oH4EZw=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 15:c8:bd:65:47:5c:af:b8:97:00:5e:e4:06:d2:bc:9d
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=TW, O=Chunghwa Telecom Co., Ltd., OU=ePKI Root Certification Authority
- Validity
- Not Before: Dec 20 02:31:27 2004 GMT
- Not After : Dec 20 02:31:27 2034 GMT
- Subject: C=TW, O=Chunghwa Telecom Co., Ltd., OU=ePKI Root Certification Authority
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:e1:25:0f:ee:8d:db:88:33:75:67:cd:ad:1f:7d:
- 3a:4e:6d:9d:d3:2f:14:f3:63:74:cb:01:21:6a:37:
- ea:84:50:07:4b:26:5b:09:43:6c:21:9e:6a:c8:d5:
- 03:f5:60:69:8f:cc:f0:22:e4:1f:e7:f7:6a:22:31:
- b7:2c:15:f2:e0:fe:00:6a:43:ff:87:65:c6:b5:1a:
- c1:a7:4c:6d:22:70:21:8a:31:f2:97:74:89:09:12:
- 26:1c:9e:ca:d9:12:a2:95:3c:da:e9:67:bf:08:a0:
- 64:e3:d6:42:b7:45:ef:97:f4:f6:f5:d7:b5:4a:15:
- 02:58:7d:98:58:4b:60:bc:cd:d7:0d:9a:13:33:53:
- d1:61:f9:7a:d5:d7:78:b3:9a:33:f7:00:86:ce:1d:
- 4d:94:38:af:a8:ec:78:51:70:8a:5c:10:83:51:21:
- f7:11:3d:34:86:5e:e5:48:cd:97:81:82:35:4c:19:
- ec:65:f6:6b:c5:05:a1:ee:47:13:d6:b3:21:27:94:
- 10:0a:d9:24:3b:ba:be:44:13:46:30:3f:97:3c:d8:
- d7:d7:6a:ee:3b:38:e3:2b:d4:97:0e:b9:1b:e7:07:
- 49:7f:37:2a:f9:77:78:cf:54:ed:5b:46:9d:a3:80:
- 0e:91:43:c1:d6:5b:5f:14:ba:9f:a6:8d:24:47:40:
- 59:bf:72:38:b2:36:6c:37:ff:99:d1:5d:0e:59:0a:
- ab:69:f7:c0:b2:04:45:7a:54:00:ae:be:53:f6:b5:
- e7:e1:f8:3c:a3:31:d2:a9:fe:21:52:64:c5:a6:67:
- f0:75:07:06:94:14:81:55:c6:27:e4:01:8f:17:c1:
- 6a:71:d7:be:4b:fb:94:58:7d:7e:11:33:b1:42:f7:
- 62:6c:18:d6:cf:09:68:3e:7f:6c:f6:1e:8f:62:ad:
- a5:63:db:09:a7:1f:22:42:41:1e:6f:99:8a:3e:d7:
- f9:3f:40:7a:79:b0:a5:01:92:d2:9d:3d:08:15:a5:
- 10:01:2d:b3:32:76:a8:95:0d:b3:7a:9a:fb:07:10:
- 78:11:6f:e1:8f:c7:ba:0f:25:1a:74:2a:e5:1c:98:
- 41:99:df:21:87:e8:95:06:6a:0a:b3:6a:47:76:65:
- f6:3a:cf:8f:62:17:19:7b:0a:28:cd:1a:d2:83:1e:
- 21:c7:2c:bf:be:ff:61:68:b7:67:1b:bb:78:4d:8d:
- ce:67:e5:e4:c1:8e:b7:23:66:e2:9d:90:75:34:98:
- a9:36:2b:8a:9a:94:b9:9d:ec:cc:8a:b1:f8:25:89:
- 5c:5a:b6:2f:8c:1f:6d:79:24:a7:52:68:c3:84:35:
- e2:66:8d:63:0e:25:4d:d5:19:b2:e6:79:37:a7:22:
- 9d:54:31
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 1E:0C:F7:B6:67:F2:E1:92:26:09:45:C0:55:39:2E:77:3F:42:4A:A2
- X509v3 Basic Constraints:
- CA:TRUE
- setCext-hashedRoot:
- 0/0-...0...+......0...g*.....E...
-V|.[x....S.....
- Signature Algorithm: sha1WithRSAEncryption
- 09:b3:83:53:59:01:3e:95:49:b9:f1:81:ba:f9:76:20:23:b5:
- 27:60:74:d4:6a:99:34:5e:6c:00:53:d9:9f:f2:a6:b1:24:07:
- 44:6a:2a:c6:a5:8e:78:12:e8:47:d9:58:1b:13:2a:5e:79:9b:
- 9f:0a:2a:67:a6:25:3f:06:69:56:73:c3:8a:66:48:fb:29:81:
- 57:74:06:ca:9c:ea:28:e8:38:67:26:2b:f1:d5:b5:3f:65:93:
- f8:36:5d:8e:8d:8d:40:20:87:19:ea:ef:27:c0:3d:b4:39:0f:
- 25:7b:68:50:74:55:9c:0c:59:7d:5a:3d:41:94:25:52:08:e0:
- 47:2c:15:31:19:d5:bf:07:55:c6:bb:12:b5:97:f4:5f:83:85:
- ba:71:c1:d9:6c:81:11:76:0a:0a:b0:bf:82:97:f7:ea:3d:fa:
- fa:ec:2d:a9:28:94:3b:56:dd:d2:51:2e:ae:c0:bd:08:15:8c:
- 77:52:34:96:d6:9b:ac:d3:1d:8e:61:0f:35:7b:9b:ae:39:69:
- 0b:62:60:40:20:36:8f:af:fb:36:ee:2d:08:4a:1d:b8:bf:9b:
- 5c:f8:ea:a5:1b:a0:73:a6:d8:f8:6e:e0:33:04:5f:68:aa:27:
- 87:ed:d9:c1:90:9c:ed:bd:e3:6a:35:af:63:df:ab:18:d9:ba:
- e6:e9:4a:ea:50:8a:0f:61:93:1e:e2:2d:19:e2:30:94:35:92:
- 5d:0e:b6:07:af:19:80:8f:47:90:51:4b:2e:4d:dd:85:e2:d2:
- 0a:52:0a:17:9a:fc:1a:b0:50:02:e5:01:a3:63:37:21:4c:44:
- c4:9b:51:99:11:0e:73:9c:06:8f:54:2e:a7:28:5e:44:39:87:
- 56:2d:37:bd:85:44:94:e1:0c:4b:2c:9c:c3:92:85:34:61:cb:
- 0f:b8:9b:4a:43:52:fe:34:3a:7d:b8:e9:29:dc:76:a9:c8:30:
- f8:14:71:80:c6:1e:36:48:74:22:41:5c:87:82:e8:18:71:8b:
- 41:89:44:e7:7e:58:5b:a8:b8:8d:13:e9:a7:6c:c3:47:ed:b3:
- 1a:9d:62:ae:8d:82:ea:94:9e:dd:59:10:c3:ad:dd:e2:4d:e3:
- 31:d5:c7:ec:e8:f2:b0:fe:92:1e:16:0a:1a:fc:d9:f3:f8:27:
- b6:c9:be:1d:b4:6c:64:90:7f:f4:e4:c4:5b:d7:37:ae:42:0e:
- dd:a4:1a:6f:7c:88:54:c5:16:6e:e1:7a:68:2e:f8:3a:bf:0d:
- a4:3c:89:3b:78:a7:4e:63:83:04:21:08:67:8d:f2:82:49:d0:
- 5b:fd:b1:cd:0f:83:84:d4:3e:20:85:f7:4a:3d:2b:9c:fd:2a:
- 0a:09:4d:ea:81:f8:11:9c
-SHA1 Fingerprint=67:65:0D:F1:7E:8E:7E:5B:82:40:A4:F4:56:4B:CF:E2:3D:69:C6:F0
diff --git a/luni/src/main/files/cacerts/9dbefe7b.0 b/luni/src/main/files/cacerts/9dbefe7b.0
deleted file mode 100644
index 5d72f30..0000000
--- a/luni/src/main/files/cacerts/9dbefe7b.0
+++ /dev/null
@@ -1,78 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDEl
-MCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMh
-U2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIz
-MloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09N
-IFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNlY3VyaXR5IENvbW11
-bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSE
-RMqm4miO/VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gO
-zXppFodEtZDkBp2uoQSXWHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5
-bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4zZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDF
-MxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4bepJz11sS6/vmsJWXMY1
-VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK9U2vP9eC
-OKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0G
-CSqGSIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HW
-tWS3irO4G8za+6xmiEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZ
-q51ihPZRwSzJIxXYKLerJRO1RuGGAv8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDb
-EJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnWmHyojf6GPgcWkuF75x3sM3Z+
-Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEWT1MKZPlO9L9O
-VL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 0 (0x0)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=JP, O=SECOM Trust Systems CO.,LTD., OU=Security Communication EV RootCA1
- Validity
- Not Before: Jun 6 02:12:32 2007 GMT
- Not After : Jun 6 02:12:32 2037 GMT
- Subject: C=JP, O=SECOM Trust Systems CO.,LTD., OU=Security Communication EV RootCA1
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:bc:7f:ec:57:9b:24:e0:fe:9c:ba:42:79:a9:88:
- 8a:fa:80:e0:f5:07:29:43:ea:8e:0a:34:36:8d:1c:
- fa:a7:b5:39:78:ff:97:75:f7:2f:e4:aa:6b:04:84:
- 44:ca:a6:e2:68:8e:fd:55:50:62:0f:a4:71:0e:ce:
- 07:38:2d:42:85:50:ad:3c:96:6f:8b:d5:a2:0e:cf:
- de:49:89:3d:d6:64:2e:38:e5:1e:6c:b5:57:8a:9e:
- ef:48:0e:cd:7a:69:16:87:44:b5:90:e4:06:9d:ae:
- a1:04:97:58:79:ef:20:4a:82:6b:8c:22:bf:ec:1f:
- 0f:e9:84:71:ed:f1:0e:e4:b8:18:13:cc:56:36:5d:
- d1:9a:1e:51:6b:39:6e:60:76:88:34:0b:f3:b3:d1:
- b0:9d:ca:61:e2:64:1d:c1:46:07:b8:63:dd:1e:33:
- 65:b3:8e:09:55:52:3d:b5:bd:ff:07:eb:ad:61:55:
- 18:2c:a9:69:98:4a:aa:40:c5:33:14:65:74:00:f9:
- 91:de:af:03:48:c5:40:54:dc:0f:84:90:68:20:c5:
- 92:96:dc:2e:e5:02:45:aa:c0:5f:54:f8:6d:ea:49:
- cf:5d:6c:4b:af:ef:9a:c2:56:5c:c6:35:56:42:6a:
- 30:5f:c2:ab:f6:e2:3d:3f:b3:c9:11:8f:31:4c:d7:
- 9f:49
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 35:4A:F5:4D:AF:3F:D7:82:38:AC:AB:71:65:17:75:8C:9D:55:93:E6
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- Signature Algorithm: sha1WithRSAEncryption
- a8:87:e9:ec:f8:40:67:5d:c3:c1:66:c7:40:4b:97:fc:87:13:
- 90:5a:c4:ef:a0:ca:5f:8b:b7:a7:b7:f1:d6:b5:64:b7:8a:b3:
- b8:1b:cc:da:fb:ac:66:88:41:ce:e8:fc:e4:db:1e:88:a6:ed:
- 27:50:1b:02:30:24:46:79:fe:04:87:70:97:40:73:d1:c0:c1:
- 57:19:9a:69:a5:27:99:ab:9d:62:84:f6:51:c1:2c:c9:23:15:
- d8:28:b7:ab:25:13:b5:46:e1:86:02:ff:26:8c:c4:88:92:1d:
- 56:fe:19:67:f2:55:e4:80:a3:6b:9c:ab:77:e1:51:71:0d:20:
- db:10:9a:db:bd:76:79:07:77:99:28:ad:9a:5e:da:b1:4f:44:
- 2c:35:8e:a5:96:c7:fd:83:f0:58:c6:79:d6:98:7c:a8:8d:fe:
- 86:3e:07:16:92:e1:7b:e7:1d:ec:33:76:7e:42:2e:4a:85:f9:
- 91:89:68:84:03:81:a5:9b:9a:be:e3:37:c5:54:ab:56:3b:18:
- 2d:41:a4:0c:f8:42:db:99:a0:e0:72:6f:bb:5d:e1:16:4f:53:
- 0a:64:f9:4e:f4:bf:4e:54:bd:78:6c:88:ea:bf:9c:13:24:c2:
- 70:69:a2:7f:0f:c8:3c:ad:08:c9:b0:98:40:a3:2a:e7:88:83:
- ed:77:8f:74
-SHA1 Fingerprint=FE:B8:C4:32:DC:F9:76:9A:CE:AE:3D:D8:90:8F:FD:28:86:65:64:7D
diff --git a/luni/src/main/files/cacerts/9f533518.0 b/luni/src/main/files/cacerts/9f533518.0
deleted file mode 100644
index aeda5bf..0000000
--- a/luni/src/main/files/cacerts/9f533518.0
+++ /dev/null
@@ -1,138 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYD
-VQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0
-IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3
-MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD
-aGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMxNDBaFw0zODA3MzEx
-MjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3Vy
-cmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAG
-A1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAl
-BgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZI
-hvcNAQEBBQADggIPADCCAgoCggIBAMDfVtPkOpt2RbQT2//BthmLN0EYlVJH6xed
-KYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXfXjaOcNFccUMd2drvXNL7
-G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0ZJJ0YPP2
-zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4
-ddPB/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyG
-HoiMvvKRhI9lNNgATH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2
-Id3UwD2ln58fQ1DJu7xsepeY7s2MH/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3V
-yJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfeOx2YItaswTXbo6Al/3K1dh3e
-beksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSFHTynyQbehP9r
-6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh
-wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsog
-zCtLkykPAgMBAAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQW
-BBS5CcqcHtvTbDprru1U8VuTBjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDpr
-ru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UEBhMCRVUxQzBBBgNVBAcTOk1hZHJp
-ZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJmaXJtYS5jb20vYWRk
-cmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJmaXJt
-YSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiC
-CQDJzdPp1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCow
-KAYIKwYBBQUHAgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZI
-hvcNAQEFBQADggIBAICIf3DekijZBZRG/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZ
-UohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6ReAJ3spED8IXDneRRXoz
-X1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/sdZ7LoR/x
-fxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVz
-a2Mg9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yyd
-Yhz2rXzdpjEetrHHfoUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMd
-SqlapskD7+3056huirRXhOukP9DuqqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9O
-AP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETrP3iZ8ntxPjzxmKfFGBI/5rso
-M0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVqc5iJWzouE4ge
-v8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z
-09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 14541511773111788494 (0xc9cdd3e9d57d23ce)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=EU, L=Madrid (see current address at www.camerfirma.com/address)/serialNumber=A82743287, O=AC Camerfirma S.A., CN=Global Chambersign Root - 2008
- Validity
- Not Before: Aug 1 12:31:40 2008 GMT
- Not After : Jul 31 12:31:40 2038 GMT
- Subject: C=EU, L=Madrid (see current address at www.camerfirma.com/address)/serialNumber=A82743287, O=AC Camerfirma S.A., CN=Global Chambersign Root - 2008
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:c0:df:56:d3:e4:3a:9b:76:45:b4:13:db:ff:c1:
- b6:19:8b:37:41:18:95:52:47:eb:17:9d:29:88:8e:
- 35:6c:06:32:2e:47:62:f3:49:04:bf:7d:44:36:b1:
- 71:cc:bd:5a:09:73:d5:d9:85:44:ff:91:57:25:df:
- 5e:36:8e:70:d1:5c:71:43:1d:d9:da:ef:5c:d2:fb:
- 1b:bd:3a:b5:cb:ad:a3:cc:44:a7:0d:ae:21:15:3f:
- b9:7a:5b:92:75:d8:a4:12:38:89:19:8a:b7:80:d2:
- e2:32:6f:56:9c:91:d6:88:10:0b:b3:74:64:92:74:
- 60:f3:f6:cf:18:4f:60:b2:23:d0:c7:3b:ce:61:4b:
- 99:8f:c2:0c:d0:40:b2:98:dc:0d:a8:4e:a3:b9:0a:
- ae:60:a0:ad:45:52:63:ba:66:bd:68:e0:f9:be:1a:
- a8:81:bb:1e:41:78:75:d3:c1:fe:00:55:b0:87:54:
- e8:27:90:35:1d:4c:33:ad:97:fc:97:2e:98:84:bf:
- 2c:c9:a3:bf:d1:98:11:14:ed:63:f8:ca:98:88:58:
- 17:99:ed:45:03:97:7e:3c:86:1e:88:8c:be:f2:91:
- 84:8f:65:34:d8:00:4c:7d:b7:31:17:5a:29:7a:0a:
- 18:24:30:a3:37:b5:7a:a9:01:7d:26:d6:f9:0e:8e:
- 59:f1:fd:1b:33:b5:29:3b:17:3b:41:b6:21:dd:d4:
- c0:3d:a5:9f:9f:1f:43:50:c9:bb:bc:6c:7a:97:98:
- ee:cd:8c:1f:fb:9c:51:ae:8b:70:bd:27:9f:71:c0:
- 6b:ac:7d:90:66:e8:d7:5d:3a:0d:b0:d5:c2:8d:d5:
- c8:9d:9d:c1:6d:d0:d0:bf:51:e4:e3:f8:c3:38:36:
- ae:d6:a7:75:e6:af:84:43:5d:93:92:0c:6a:07:de:
- 3b:1d:98:22:d6:ac:c1:35:db:a3:a0:25:ff:72:b5:
- 76:1d:de:6d:e9:2c:66:2c:52:84:d0:45:92:ce:1c:
- e5:e5:33:1d:dc:07:53:54:a3:aa:82:3b:9a:37:2f:
- dc:dd:a0:64:e9:e6:dd:bd:ae:fc:64:85:1d:3c:a7:
- c9:06:de:84:ff:6b:e8:6b:1a:3c:c5:a2:b3:42:fb:
- 8b:09:3e:5f:08:52:c7:62:c4:d4:05:71:bf:c4:64:
- e4:f8:a1:83:e8:3e:12:9b:a8:1e:d4:36:4d:2f:71:
- f6:8d:28:f6:83:a9:13:d2:61:c1:91:bb:48:c0:34:
- 8f:41:8c:4b:4c:db:69:12:ff:50:94:9c:20:83:59:
- 73:ed:7c:a1:f2:f1:fd:dd:f7:49:d3:43:58:a0:56:
- 63:ca:3d:3d:e5:35:56:59:e9:0e:ca:20:cc:2b:4b:
- 93:29:0f
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE, pathlen:12
- X509v3 Subject Key Identifier:
- B9:09:CA:9C:1E:DB:D3:6C:3A:6B:AE:ED:54:F1:5B:93:06:35:2E:5E
- X509v3 Authority Key Identifier:
- keyid:B9:09:CA:9C:1E:DB:D3:6C:3A:6B:AE:ED:54:F1:5B:93:06:35:2E:5E
- DirName:/C=EU/L=Madrid (see current address at www.camerfirma.com/address)/serialNumber=A82743287/O=AC Camerfirma S.A./CN=Global Chambersign Root - 2008
- serial:C9:CD:D3:E9:D5:7D:23:CE
-
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Certificate Policies:
- Policy: X509v3 Any Policy
- CPS: http://policy.camerfirma.com
-
- Signature Algorithm: sha1WithRSAEncryption
- 80:88:7f:70:de:92:28:d9:05:94:46:ff:90:57:a9:f1:2f:df:
- 1a:0d:6b:fa:7c:0e:1c:49:24:79:27:d8:46:aa:6f:29:59:52:
- 88:70:12:ea:dd:3d:f5:9b:53:54:6f:e1:60:a2:a8:09:b9:ec:
- eb:59:7c:c6:35:f1:dc:18:e9:f1:67:e5:af:ba:45:e0:09:de:
- ca:44:0f:c2:17:0e:77:91:45:7a:33:5f:5f:96:2c:68:8b:c1:
- 47:8f:98:9b:3d:c0:ec:cb:f5:d5:82:92:84:35:d1:be:36:38:
- 56:72:31:5b:47:2d:aa:17:a4:63:51:eb:0a:01:ad:7f:ec:75:
- 9e:cb:a1:1f:f1:7f:12:b1:b9:e4:64:7f:67:d6:23:2a:f4:b8:
- 39:5d:98:e8:21:a7:e1:bd:3d:42:1a:74:9a:70:af:68:6c:50:
- 5d:49:cf:ff:fb:0e:5d:e6:2c:47:d7:81:3a:59:00:b5:73:6b:
- 63:20:f6:31:45:08:39:0e:f4:70:7e:40:70:5a:3f:d0:6b:42:
- a9:74:3d:28:2f:02:6d:75:72:95:09:8d:48:63:c6:c6:23:57:
- 92:93:5e:35:c1:8d:f9:0a:f7:2c:9d:62:1c:f6:ad:7c:dd:a6:
- 31:1e:b6:b1:c7:7e:85:26:fa:a4:6a:b5:da:63:30:d1:ef:93:
- 37:b2:66:2f:7d:05:f7:e7:b7:4b:98:94:35:c0:d9:3a:29:c1:
- 9d:b2:50:33:1d:4a:a9:5a:a6:c9:03:ef:ed:f4:e7:a8:6e:8a:
- b4:57:84:eb:a4:3f:d0:ee:aa:aa:87:5b:63:e8:93:e2:6b:a8:
- d4:b8:72:78:6b:1b:ed:39:e4:5d:cb:9b:aa:87:d5:4f:4e:00:
- fe:d9:6a:9f:3c:31:0f:28:02:01:7d:98:e8:a7:b0:a2:64:9e:
- 79:f8:48:f2:15:a9:cc:e6:c8:44:eb:3f:78:99:f2:7b:71:3e:
- 3c:f1:98:a7:c5:18:12:3f:e6:bb:28:33:42:e9:45:0a:7c:6d:
- f2:86:79:2f:c5:82:19:7d:09:89:7c:b2:54:76:88:ae:de:c1:
- f3:cc:e1:6e:db:31:d6:93:ae:99:a0:ef:25:6a:73:98:89:5b:
- 3a:2e:13:88:1e:bf:c0:92:94:34:1b:e3:27:b7:8b:1e:6f:42:
- ff:e7:e9:37:9b:50:1d:2d:a2:f9:02:ee:cb:58:58:3a:71:bc:
- 68:e3:aa:c1:af:1c:28:1f:a2:dc:23:65:3f:81:ea:ae:99:d3:
- d8:30:cf:13:0d:4f:15:c9:84:bc:a7:48:2d:f8:30:23:77:d8:
- 46:4b:79:6d:f6:8c:ed:3a:7f:60:11:78:f4:e9:9b:ae:d5:54:
- c0:74:80:d1:0b:42:9f:c1
-SHA1 Fingerprint=4A:BD:EE:EC:95:0D:35:9C:89:AE:C7:52:A1:2C:5B:29:F6:D6:AA:0C
diff --git a/luni/src/main/files/cacerts/a0bc6fbb.0 b/luni/src/main/files/cacerts/a0bc6fbb.0
deleted file mode 100644
index f93d996..0000000
--- a/luni/src/main/files/cacerts/a0bc6fbb.0
+++ /dev/null
@@ -1,100 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEn
-MCUGA1UEChMeQUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQL
-ExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENo
-YW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYxNDE4WhcNMzcwOTMwMTYxNDE4WjB9
-MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgy
-NzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEgMB4G
-A1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUA
-A4IBDQAwggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0
-Mi+ITaFgCPS3CU6gSS9J1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/s
-QJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8Oby4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpV
-eAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl6DJWk0aJqCWKZQbua795
-B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c8lCrEqWh
-z0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0T
-AQH/BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1i
-ZXJzaWduLm9yZy9jaGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4w
-TcbOX60Qq+UDpfqpFDAOBgNVHQ8BAf8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAH
-MCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBjaGFtYmVyc2lnbi5vcmcwKgYD
-VR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9yZzBbBgNVHSAE
-VDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh
-bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0B
-AQUFAAOCAQEAPDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUM
-bKGKfKX0j//U2K0X1S0E0T9YgOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXi
-ryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJPJ7oKXqJ1/6v/2j1pReQvayZzKWG
-VwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4IBHNfTIzSJRUTN3c
-ecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREest2d/
-AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 0 (0x0)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=EU, O=AC Camerfirma SA CIF A82743287, OU=http://www.chambersign.org, CN=Global Chambersign Root
- Validity
- Not Before: Sep 30 16:14:18 2003 GMT
- Not After : Sep 30 16:14:18 2037 GMT
- Subject: C=EU, O=AC Camerfirma SA CIF A82743287, OU=http://www.chambersign.org, CN=Global Chambersign Root
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:a2:70:a2:d0:9f:42:ae:5b:17:c7:d8:7d:cf:14:
- 83:fc:4f:c9:a1:b7:13:af:8a:d7:9e:3e:04:0a:92:
- 8b:60:56:fa:b4:32:2f:88:4d:a1:60:08:f4:b7:09:
- 4e:a0:49:2f:49:d6:d3:df:9d:97:5a:9f:94:04:70:
- ec:3f:59:d9:b7:cc:66:8b:98:52:28:09:02:df:c5:
- 2f:84:8d:7a:97:77:bf:ec:40:9d:25:72:ab:b5:3f:
- 32:98:fb:b7:b7:fc:72:84:e5:35:87:f9:55:fa:a3:
- 1f:0e:6f:2e:28:dd:69:a0:d9:42:10:c6:f8:b5:44:
- c2:d0:43:7f:db:bc:e4:a2:3c:6a:55:78:0a:77:a9:
- d8:ea:19:32:b7:2f:fe:5c:3f:1b:ee:b1:98:ec:ca:
- ad:7a:69:45:e3:96:0f:55:f6:e6:ed:75:ea:65:e8:
- 32:56:93:46:89:a8:25:8a:65:06:ee:6b:bf:79:07:
- d0:f1:b7:af:ed:2c:4d:92:bb:c0:a8:5f:a7:67:7d:
- 04:f2:15:08:70:ac:92:d6:7d:04:d2:33:fb:4c:b6:
- 0b:0b:fb:1a:c9:c4:8d:03:a9:7e:5c:f2:50:ab:12:
- a5:a1:cf:48:50:a5:ef:d2:c8:1a:13:fa:b0:7f:b1:
- 82:1c:77:6a:0f:5f:dc:0b:95:8f:ef:43:7e:e6:45:
- 09:25
- Exponent: 3 (0x3)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE, pathlen:12
- X509v3 CRL Distribution Points:
-
- Full Name:
- URI:http://crl.chambersign.org/chambersignroot.crl
-
- X509v3 Subject Key Identifier:
- 43:9C:36:9F:B0:9E:30:4D:C6:CE:5F:AD:10:AB:E5:03:A5:FA:A9:14
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- Netscape Cert Type:
- SSL CA, S/MIME CA, Object Signing CA
- X509v3 Subject Alternative Name:
- email:chambersignroot@chambersign.org
- X509v3 Issuer Alternative Name:
- email:chambersignroot@chambersign.org
- X509v3 Certificate Policies:
- Policy: 1.3.6.1.4.1.17326.10.1.1
- CPS: http://cps.chambersign.org/cps/chambersignroot.html
-
- Signature Algorithm: sha1WithRSAEncryption
- 3c:3b:70:91:f9:04:54:27:91:e1:ed:ed:fe:68:7f:61:5d:e5:
- 41:65:4f:32:f1:18:05:94:6a:1c:de:1f:70:db:3e:7b:32:02:
- 34:b5:0c:6c:a1:8a:7c:a5:f4:8f:ff:d4:d8:ad:17:d5:2d:04:
- d1:3f:58:80:e2:81:59:88:be:c0:e3:46:93:24:fe:90:bd:26:
- a2:30:2d:e8:97:26:57:35:89:74:96:18:f6:15:e2:af:24:19:
- 56:02:02:b2:ba:0f:14:ea:c6:8a:66:c1:86:45:55:8b:be:92:
- be:9c:a4:04:c7:49:3c:9e:e8:29:7a:89:d7:fe:af:ff:68:f5:
- a5:17:90:bd:ac:99:cc:a5:86:57:09:67:46:db:d6:16:c2:46:
- f1:e4:a9:50:f5:8f:d1:92:15:d3:5f:3e:c6:00:49:3a:6e:58:
- b2:d1:d1:27:0d:25:c8:32:f8:20:11:cd:7d:32:33:48:94:54:
- 4c:dd:dc:79:c4:30:9f:eb:8e:b8:55:b5:d7:88:5c:c5:6a:24:
- 3d:b2:d3:05:03:51:c6:07:ef:cc:14:72:74:3d:6e:72:ce:18:
- 28:8c:4a:a0:77:e5:09:2b:45:44:47:ac:b7:67:7f:01:8a:05:
- 5a:93:be:a1:c1:ff:f8:e7:0e:67:a4:47:49:76:5d:75:90:1a:
- f5:26:8f:f0
-SHA1 Fingerprint=33:9B:6B:14:50:24:9B:55:7A:01:87:72:84:D9:E0:2F:C3:D2:D8:E9
diff --git a/luni/src/main/files/cacerts/a2c66da8.0 b/luni/src/main/files/cacerts/a2c66da8.0
deleted file mode 100644
index f922408..0000000
--- a/luni/src/main/files/cacerts/a2c66da8.0
+++ /dev/null
@@ -1,121 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBi
-MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg
-RzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBiMQswCQYDVQQGEwJV
-UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu
-Y29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0GCSqG
-SIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3y
-ithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1If
-xp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDV
-ySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhmV1efVFiO
-DCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHEtWoYOAMQ
-jdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6MUSaM0C/
-CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCi
-EhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADM
-fRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QY
-uKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXK
-chYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn15GkvmB0t
-9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
-hjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD
-ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2
-SV1EY+CtnJYYZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd
-+SeuMIW59mdNOj6PWTkiU0TryF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWc
-fFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy7zBZLq7gcfJW5GqXb5JQbZaNaHqa
-sjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iahixTXTBmyUEFxPT9N
-cCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN5r5N
-0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie
-4u1Ki7wb/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mI
-r/OSmbaz5mEP0oUA51Aa5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1
-/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tKG48BtieVU+i2iW1bvGjUI+iLUaJW+fCm
-gKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP82Z+
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 05:9b:1b:57:9e:8e:21:32:e2:39:07:bd:a7:77:75:5c
- Signature Algorithm: sha384WithRSAEncryption
- Issuer: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Trusted Root G4
- Validity
- Not Before: Aug 1 12:00:00 2013 GMT
- Not After : Jan 15 12:00:00 2038 GMT
- Subject: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Trusted Root G4
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:bf:e6:90:73:68:de:bb:e4:5d:4a:3c:30:22:30:
- 69:33:ec:c2:a7:25:2e:c9:21:3d:f2:8a:d8:59:c2:
- e1:29:a7:3d:58:ab:76:9a:cd:ae:7b:1b:84:0d:c4:
- 30:1f:f3:1b:a4:38:16:eb:56:c6:97:6d:1d:ab:b2:
- 79:f2:ca:11:d2:e4:5f:d6:05:3c:52:0f:52:1f:c6:
- 9e:15:a5:7e:be:9f:a9:57:16:59:55:72:af:68:93:
- 70:c2:b2:ba:75:99:6a:73:32:94:d1:10:44:10:2e:
- df:82:f3:07:84:e6:74:3b:6d:71:e2:2d:0c:1b:ee:
- 20:d5:c9:20:1d:63:29:2d:ce:ec:5e:4e:c8:93:f8:
- 21:61:9b:34:eb:05:c6:5e:ec:5b:1a:bc:eb:c9:cf:
- cd:ac:34:40:5f:b1:7a:66:ee:77:c8:48:a8:66:57:
- 57:9f:54:58:8e:0c:2b:b7:4f:a7:30:d9:56:ee:ca:
- 7b:5d:e3:ad:c9:4f:5e:e5:35:e7:31:cb:da:93:5e:
- dc:8e:8f:80:da:b6:91:98:40:90:79:c3:78:c7:b6:
- b1:c4:b5:6a:18:38:03:10:8d:d8:d4:37:a4:2e:05:
- 7d:88:f5:82:3e:10:91:70:ab:55:82:41:32:d7:db:
- 04:73:2a:6e:91:01:7c:21:4c:d4:bc:ae:1b:03:75:
- 5d:78:66:d9:3a:31:44:9a:33:40:bf:08:d7:5a:49:
- a4:c2:e6:a9:a0:67:dd:a4:27:bc:a1:4f:39:b5:11:
- 58:17:f7:24:5c:46:8f:64:f7:c1:69:88:76:98:76:
- 3d:59:5d:42:76:87:89:97:69:7a:48:f0:e0:a2:12:
- 1b:66:9a:74:ca:de:4b:1e:e7:0e:63:ae:e6:d4:ef:
- 92:92:3a:9e:3d:dc:00:e4:45:25:89:b6:9a:44:19:
- 2b:7e:c0:94:b4:d2:61:6d:eb:33:d9:c5:df:4b:04:
- 00:cc:7d:1c:95:c3:8f:f7:21:b2:b2:11:b7:bb:7f:
- f2:d5:8c:70:2c:41:60:aa:b1:63:18:44:95:1a:76:
- 62:7e:f6:80:b0:fb:e8:64:a6:33:d1:89:07:e1:bd:
- b7:e6:43:a4:18:b8:a6:77:01:e1:0f:94:0c:21:1d:
- b2:54:29:25:89:6c:e5:0e:52:51:47:74:be:26:ac:
- b6:41:75:de:7a:ac:5f:8d:3f:c9:bc:d3:41:11:12:
- 5b:e5:10:50:eb:31:c5:ca:72:16:22:09:df:7c:4c:
- 75:3f:63:ec:21:5f:c4:20:51:6b:6f:b1:ab:86:8b:
- 4f:c2:d6:45:5f:9d:20:fc:a1:1e:c5:c0:8f:a2:b1:
- 7e:0a:26:99:f5:e4:69:2f:98:1d:2d:f5:d9:a9:b2:
- 1d:e5:1b
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Digital Signature, Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- EC:D7:E3:82:D2:71:5D:64:4C:DF:2E:67:3F:E7:BA:98:AE:1C:0F:4F
- Signature Algorithm: sha384WithRSAEncryption
- bb:61:d9:7d:a9:6c:be:17:c4:91:1b:c3:a1:a2:00:8d:e3:64:
- 68:0f:56:cf:77:ae:70:f9:fd:9a:4a:99:b9:c9:78:5c:0c:0c:
- 5f:e4:e6:14:29:56:0b:36:49:5d:44:63:e0:ad:9c:96:18:66:
- 1b:23:0d:3d:79:e9:6d:6b:d6:54:f8:d2:3c:c1:43:40:ae:1d:
- 50:f5:52:fc:90:3b:bb:98:99:69:6b:c7:c1:a7:a8:68:a4:27:
- dc:9d:f9:27:ae:30:85:b9:f6:67:4d:3a:3e:8f:59:39:22:53:
- 44:eb:c8:5d:03:ca:ed:50:7a:7d:62:21:0a:80:c8:73:66:d1:
- a0:05:60:5f:e8:a5:b4:a7:af:a8:f7:6d:35:9c:7c:5a:8a:d6:
- a2:38:99:f3:78:8b:f4:4d:d2:20:0b:de:04:ee:8c:9b:47:81:
- 72:0d:c0:14:32:ef:30:59:2e:ae:e0:71:f2:56:e4:6a:97:6f:
- 92:50:6d:96:8d:68:7a:9a:b2:36:14:7a:06:f2:24:b9:09:11:
- 50:d7:08:b1:b8:89:7a:84:23:61:42:29:e5:a3:cd:a2:20:41:
- d7:d1:9c:64:d9:ea:26:a1:8b:14:d7:4c:19:b2:50:41:71:3d:
- 3f:4d:70:23:86:0c:4a:dc:81:d2:cc:32:94:84:0d:08:09:97:
- 1c:4f:c0:ee:6b:20:74:30:d2:e0:39:34:10:85:21:15:01:08:
- e8:55:32:de:71:49:d9:28:17:50:4d:e6:be:4d:d1:75:ac:d0:
- ca:fb:41:b8:43:a5:aa:d3:c3:05:44:4f:2c:36:9b:e2:fa:e2:
- 45:b8:23:53:6c:06:6f:67:55:7f:46:b5:4c:3f:6e:28:5a:79:
- 26:d2:a4:a8:62:97:d2:1e:e2:ed:4a:8b:bc:1b:fd:47:4a:0d:
- df:67:66:7e:b2:5b:41:d0:3b:e4:f4:3b:f4:04:63:e9:ef:c2:
- 54:00:51:a0:8a:2a:c9:ce:78:cc:d5:ea:87:04:18:b3:ce:af:
- 49:88:af:f3:92:99:b6:b3:e6:61:0f:d2:85:00:e7:50:1a:e4:
- 1b:95:9d:19:a1:b9:9c:b1:9b:b1:00:1e:ef:d0:0f:4f:42:6c:
- c9:0a:bc:ee:43:fa:3a:71:a5:c8:4d:26:a5:35:fd:89:5d:bc:
- 85:62:1d:32:d2:a0:2b:54:ed:9a:57:c1:db:fa:10:cf:19:b7:
- 8b:4a:1b:8f:01:b6:27:95:53:e8:b6:89:6d:5b:bc:68:d4:23:
- e8:8b:51:a2:56:f9:f0:a6:80:a0:d6:1e:b3:bc:0f:0f:53:75:
- 29:aa:ea:13:77:e4:de:8c:81:21:ad:07:10:47:11:ad:87:3d:
- 07:d1:75:bc:cf:f3:66:7e
-SHA1 Fingerprint=DD:FB:16:CD:49:31:C9:73:A2:03:7D:3F:C8:3A:4D:7D:77:5D:05:E4
diff --git a/luni/src/main/files/cacerts/a2df7ad7.0 b/luni/src/main/files/cacerts/a2df7ad7.0
deleted file mode 100644
index da5a4d0..0000000
--- a/luni/src/main/files/cacerts/a2df7ad7.0
+++ /dev/null
@@ -1,86 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEU
-MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3
-b3JrMSAwHgYDVQQDExdBZGRUcnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAx
-MDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtB
-ZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5ldHdvcmsxIDAeBgNV
-BAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV
-6tsfSlbunyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nX
-GCwwfQ56HmIexkvA/X1id9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnP
-dzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSGAa2Il+tmzV7R/9x98oTaunet3IAIx6eH
-1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAwHM+A+WD+eeSI8t0A65RF
-62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0GA1UdDgQW
-BBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUw
-AwEB/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDEL
-MAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRU
-cnVzdCBUVFAgTmV0d29yazEgMB4GA1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJv
-b3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4JNojVhaTdt02KLmuG7jD8WS6
-IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL+YPoRNWyQSW/
-iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao
-GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh
-4SINhwBk/ox9Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQm
-XiLsks3/QppEIW1cxeMiHV9HEufOX1362KqxMy3ZdvJOOjMMK7MtkAY=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=SE, O=AddTrust AB, OU=AddTrust TTP Network, CN=AddTrust Public CA Root
- Validity
- Not Before: May 30 10:41:50 2000 GMT
- Not After : May 30 10:41:50 2020 GMT
- Subject: C=SE, O=AddTrust AB, OU=AddTrust TTP Network, CN=AddTrust Public CA Root
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:e9:1a:30:8f:83:88:14:c1:20:d8:3c:9b:8f:1b:
- 7e:03:74:bb:da:69:d3:46:a5:f8:8e:c2:0c:11:90:
- 51:a5:2f:66:54:40:55:ea:db:1f:4a:56:ee:9f:23:
- 6e:f4:39:cb:a1:b9:6f:f2:7e:f9:5d:87:26:61:9e:
- 1c:f8:e2:ec:a6:81:f8:21:c5:24:cc:11:0c:3f:db:
- 26:72:7a:c7:01:97:07:17:f9:d7:18:2c:30:7d:0e:
- 7a:1e:62:1e:c6:4b:c0:fd:7d:62:77:d3:44:1e:27:
- f6:3f:4b:44:b3:b7:38:d9:39:1f:60:d5:51:92:73:
- 03:b4:00:69:e3:f3:14:4e:ee:d1:dc:09:cf:77:34:
- 46:50:b0:f8:11:f2:fe:38:79:f7:07:39:fe:51:92:
- 97:0b:5b:08:5f:34:86:01:ad:88:97:eb:66:cd:5e:
- d1:ff:dc:7d:f2:84:da:ba:77:ad:dc:80:08:c7:a7:
- 87:d6:55:9f:97:6a:e8:c8:11:64:ba:e7:19:29:3f:
- 11:b3:78:90:84:20:52:5b:11:ef:78:d0:83:f6:d5:
- 48:90:d0:30:1c:cf:80:f9:60:fe:79:e4:88:f2:dd:
- 00:eb:94:45:eb:65:94:69:40:ba:c0:d5:b4:b8:ba:
- 7d:04:11:a8:eb:31:05:96:94:4e:58:21:8e:9f:d0:
- 60:fd
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 81:3E:37:D8:92:B0:1F:77:9F:5C:B4:AB:73:AA:E7:F6:34:60:2F:FA
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Authority Key Identifier:
- keyid:81:3E:37:D8:92:B0:1F:77:9F:5C:B4:AB:73:AA:E7:F6:34:60:2F:FA
- DirName:/C=SE/O=AddTrust AB/OU=AddTrust TTP Network/CN=AddTrust Public CA Root
- serial:01
-
- Signature Algorithm: sha1WithRSAEncryption
- 03:f7:15:4a:f8:24:da:23:56:16:93:76:dd:36:28:b9:ae:1b:
- b8:c3:f1:64:ba:20:18:78:95:29:27:57:05:bc:7c:2a:f4:b9:
- 51:55:da:87:02:de:0f:16:17:31:f8:aa:79:2e:09:13:bb:af:
- b2:20:19:12:e5:93:f9:4b:f9:83:e8:44:d5:b2:41:25:bf:88:
- 75:6f:ff:10:fc:4a:54:d0:5f:f0:fa:ef:36:73:7d:1b:36:45:
- c6:21:6d:b4:15:b8:4e:cf:9c:5c:a5:3d:5a:00:8e:06:e3:3c:
- 6b:32:7b:f2:9f:f0:b6:fd:df:f0:28:18:48:f0:c6:bc:d0:bf:
- 34:80:96:c2:4a:b1:6d:8e:c7:90:45:de:2f:67:ac:45:04:a3:
- 7a:dc:55:92:c9:47:66:d8:1a:8c:c7:ed:9c:4e:9a:e0:12:bb:
- b5:6a:4c:84:e1:e1:22:0d:87:00:64:fe:8c:7d:62:39:65:a6:
- ef:42:b6:80:25:12:61:01:a8:24:13:70:00:11:26:5f:fa:35:
- 50:c5:48:cc:06:47:e8:27:d8:70:8d:5f:64:e6:a1:44:26:5e:
- 22:ec:92:cd:ff:42:9a:44:21:6d:5c:c5:e3:22:1d:5f:47:12:
- e7:ce:5f:5d:fa:d8:aa:b1:33:2d:d9:76:f2:4e:3a:33:0c:2b:
- b3:2d:90:06
-SHA1 Fingerprint=2A:B6:28:48:5E:78:FB:F3:AD:9E:79:10:DD:6B:DF:99:72:2C:96:E5
diff --git a/luni/src/main/files/cacerts/a3896b44.0 b/luni/src/main/files/cacerts/a3896b44.0
deleted file mode 100644
index f570c1d..0000000
--- a/luni/src/main/files/cacerts/a3896b44.0
+++ /dev/null
@@ -1,77 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEY
-MBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21t
-dW5pY2F0aW9uIFJvb3RDQTEwHhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5
-WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MScwJQYD
-VQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw8yl8
-9f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJ
-DKaVv0uMDPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9
-Ms+k2Y7CI9eNqPPYJayX5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/N
-QV3Is00qVUarH9oe4kA92819uZKAnDfdDJZkndwi92SL32HeFZRSFaB9UslLqCHJ
-xrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2JChzAgMBAAGjPzA9MB0G
-A1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYwDwYDVR0T
-AQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vG
-kl3g0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfr
-Uj94nK9NrvjVT8+amCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5
-Bw+SUEmK3TGXX8npN6o7WWWXlDLJs58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJU
-JRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ6rBK+1YWc26sTfcioU+tHXot
-RSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAiFL39vmwLAw==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 0 (0x0)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=JP, O=SECOM Trust.net, OU=Security Communication RootCA1
- Validity
- Not Before: Sep 30 04:20:49 2003 GMT
- Not After : Sep 30 04:20:49 2023 GMT
- Subject: C=JP, O=SECOM Trust.net, OU=Security Communication RootCA1
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:b3:b3:fe:7f:d3:6d:b1:ef:16:7c:57:a5:0c:6d:
- 76:8a:2f:4b:bf:64:fb:4c:ee:8a:f0:f3:29:7c:f5:
- ff:ee:2a:e0:e9:e9:ba:5b:64:22:9a:9a:6f:2c:3a:
- 26:69:51:05:99:26:dc:d5:1c:6a:71:c6:9a:7d:1e:
- 9d:dd:7c:6c:c6:8c:67:67:4a:3e:f8:71:b0:19:27:
- a9:09:0c:a6:95:bf:4b:8c:0c:fa:55:98:3b:d8:e8:
- 22:a1:4b:71:38:79:ac:97:92:69:b3:89:7e:ea:21:
- 68:06:98:14:96:87:d2:61:36:bc:6d:27:56:9e:57:
- ee:c0:c0:56:fd:32:cf:a4:d9:8e:c2:23:d7:8d:a8:
- f3:d8:25:ac:97:e4:70:38:f4:b6:3a:b4:9d:3b:97:
- 26:43:a3:a1:bc:49:59:72:4c:23:30:87:01:58:f6:
- 4e:be:1c:68:56:66:af:cd:41:5d:c8:b3:4d:2a:55:
- 46:ab:1f:da:1e:e2:40:3d:db:cd:7d:b9:92:80:9c:
- 37:dd:0c:96:64:9d:dc:22:f7:64:8b:df:61:de:15:
- 94:52:15:a0:7d:52:c9:4b:a8:21:c9:c6:b1:ed:cb:
- c3:95:60:d1:0f:f0:ab:70:f8:df:cb:4d:7e:ec:d6:
- fa:ab:d9:bd:7f:54:f2:a5:e9:79:fa:d9:d6:76:24:
- 28:73
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- A0:73:49:99:68:DC:85:5B:65:E3:9B:28:2F:57:9F:BD:33:BC:07:48
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- Signature Algorithm: sha1WithRSAEncryption
- 68:40:a9:a8:bb:e4:4f:5d:79:b3:05:b5:17:b3:60:13:eb:c6:
- 92:5d:e0:d1:d3:6a:fe:fb:be:9b:6d:bf:c7:05:6d:59:20:c4:
- 1c:f0:b7:da:84:58:02:63:fa:48:16:ef:4f:a5:0b:f7:4a:98:
- f2:3f:9e:1b:ad:47:6b:63:ce:08:47:eb:52:3f:78:9c:af:4d:
- ae:f8:d5:4f:cf:9a:98:2a:10:41:39:52:c4:dd:d9:9b:0e:ef:
- 93:01:ae:b2:2e:ca:68:42:24:42:6c:b0:b3:3a:3e:cd:e9:da:
- 48:c4:15:cb:e9:f9:07:0f:92:50:49:8a:dd:31:97:5f:c9:e9:
- 37:aa:3b:59:65:97:94:32:c9:b3:9f:3e:3a:62:58:c5:49:ad:
- 62:0e:71:a5:32:aa:2f:c6:89:76:43:40:13:13:67:3d:a2:54:
- 25:10:cb:f1:3a:f2:d9:fa:db:49:56:bb:a6:fe:a7:41:35:c3:
- e0:88:61:c9:88:c7:df:36:10:22:98:59:ea:b0:4a:fb:56:16:
- 73:6e:ac:4d:f7:22:a1:4f:ad:1d:7a:2d:45:27:e5:30:c1:5e:
- f2:da:13:cb:25:42:51:95:47:03:8c:6c:21:cc:74:42:ed:53:
- ff:33:8b:8f:0f:57:01:16:2f:cf:a6:ee:c9:70:22:14:bd:fd:
- be:6c:0b:03
-SHA1 Fingerprint=36:B1:2B:49:F9:81:9E:D7:4C:9E:BC:38:0F:C6:56:8F:5D:AC:B2:F7
diff --git a/luni/src/main/files/cacerts/a7605362.0 b/luni/src/main/files/cacerts/a7605362.0
deleted file mode 100644
index 112d40f..0000000
--- a/luni/src/main/files/cacerts/a7605362.0
+++ /dev/null
@@ -1,76 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEP
-MA0GA1UEChMGU29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAx
-MDQwNjA3Mjk0MFoXDTIxMDQwNjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNV
-BAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJhIENsYXNzMiBDQTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3/Ei9vX+ALTU74W+o
-Z6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybTdXnt
-5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s
-3TmVToMGf+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2Ej
-vOr7nQKV0ba5cTppCD8PtOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu
-8nYybieDwnPz3BjotJPqdURrBGAgcVeHnfO+oJAjPYok4doh28MCAwEAAaMzMDEw
-DwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITTXjwwCwYDVR0PBAQDAgEG
-MA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt0jSv9zil
-zqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/
-3DEIcbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvD
-FNr450kkkdAdavphOe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6
-Tk6ezAyNlNzZRZxe7EJQY670XcSxEtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2
-ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLHllpwrN9M
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 29 (0x1d)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=FI, O=Sonera, CN=Sonera Class2 CA
- Validity
- Not Before: Apr 6 07:29:40 2001 GMT
- Not After : Apr 6 07:29:40 2021 GMT
- Subject: C=FI, O=Sonera, CN=Sonera Class2 CA
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:90:17:4a:35:9d:ca:f0:0d:96:c7:44:fa:16:37:
- fc:48:bd:bd:7f:80:2d:35:3b:e1:6f:a8:67:a9:bf:
- 03:1c:4d:8c:6f:32:47:d5:41:68:a4:13:04:c1:35:
- 0c:9a:84:43:fc:5c:1d:ff:89:b3:e8:17:18:cd:91:
- 5f:fb:89:e3:ea:bf:4e:5d:7c:1b:26:d3:75:79:ed:
- e6:84:e3:57:e5:ad:29:c4:f4:3a:28:e7:a5:7b:84:
- 36:69:b3:fd:5e:76:bd:a3:2d:99:d3:90:4e:23:28:
- 7d:18:63:f1:54:3b:26:9d:76:5b:97:42:b2:ff:ae:
- f0:4e:ec:dd:39:95:4e:83:06:7f:e7:49:40:c8:c5:
- 01:b2:54:5a:66:1d:3d:fc:f9:e9:3c:0a:9e:81:b8:
- 70:f0:01:8b:e4:23:54:7c:c8:ae:f8:90:1e:00:96:
- 72:d4:54:cf:61:23:bc:ea:fb:9d:02:95:d1:b6:b9:
- 71:3a:69:08:3f:0f:b4:e1:42:c7:88:f5:3f:98:a8:
- a7:ba:1c:e0:71:71:ef:58:57:81:50:7a:5c:6b:74:
- 46:0e:83:03:98:c3:8e:a8:6e:f2:76:32:6e:27:83:
- c2:73:f3:dc:18:e8:b4:93:ea:75:44:6b:04:60:20:
- 71:57:87:9d:f3:be:a0:90:23:3d:8a:24:e1:da:21:
- db:c3
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- 4A:A0:AA:58:84:D3:5E:3C
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha1WithRSAEncryption
- 5a:ce:87:f9:16:72:15:57:4b:1d:d9:9b:e7:a2:26:30:ec:93:
- 67:df:d6:2d:d2:34:af:f7:38:a5:ce:ab:16:b9:ab:2f:7c:35:
- cb:ac:d0:0f:b4:4c:2b:fc:80:ef:6b:8c:91:5f:36:76:f7:db:
- b3:1b:19:ea:f4:b2:11:fd:61:71:44:bf:28:b3:3a:1d:bf:b3:
- 43:e8:9f:bf:dc:31:08:71:b0:9d:8d:d6:34:47:32:90:c6:65:
- 24:f7:a0:4a:7c:04:73:8f:39:6f:17:8c:72:b5:bd:4b:c8:7a:
- f8:7b:83:c3:28:4e:9c:09:ea:67:3f:b2:67:04:1b:c3:14:da:
- f8:e7:49:24:91:d0:1d:6a:fa:61:39:ef:6b:e7:21:75:06:07:
- d8:12:b4:21:20:70:42:71:81:da:3c:9a:36:be:a6:5b:0d:6a:
- 6c:9a:1f:91:7b:f9:f9:ef:42:ba:4e:4e:9e:cc:0c:8d:94:dc:
- d9:45:9c:5e:ec:42:50:63:ae:f4:5d:c4:b1:12:dc:ca:3b:a8:
- 2e:9d:14:5a:05:75:b7:ec:d7:63:e2:ba:35:b6:04:08:91:e8:
- da:9d:9c:f6:66:b5:18:ac:0a:a6:54:26:34:33:d2:1b:c1:d4:
- 7f:1a:3a:8e:0b:aa:32:6e:db:fc:4f:25:9f:d9:32:c7:96:5a:
- 70:ac:df:4c
-SHA1 Fingerprint=37:F7:6D:E6:07:7C:90:C5:B1:3E:93:1A:B7:41:10:B4:F2:E4:9A:27
diff --git a/luni/src/main/files/cacerts/a7d2cf64.0 b/luni/src/main/files/cacerts/a7d2cf64.0
deleted file mode 100644
index 4720f4b..0000000
--- a/luni/src/main/files/cacerts/a7d2cf64.0
+++ /dev/null
@@ -1,54 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDEL
-MAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMp
-IDIwMDcgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAi
-BgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMjAeFw0wNzExMDUwMDAw
-MDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh
-d3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBGb3Ig
-YXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9v
-dCBDQSAtIEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/
-BebfowJPDQfGAFG6DAJSLSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6
-papu+7qzcMBniKI11KOasf2twu8x+qi58/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8E
-BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUmtgAMADna3+FGO6Lts6K
-DPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUNG4k8VIZ3
-KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41ox
-XZ3Krr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 35:fc:26:5c:d9:84:4f:c9:3d:26:3d:57:9b:ae:d7:56
- Signature Algorithm: ecdsa-with-SHA384
- Issuer: C=US, O=thawte, Inc., OU=(c) 2007 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA - G2
- Validity
- Not Before: Nov 5 00:00:00 2007 GMT
- Not After : Jan 18 23:59:59 2038 GMT
- Subject: C=US, O=thawte, Inc., OU=(c) 2007 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA - G2
- Subject Public Key Info:
- Public Key Algorithm: id-ecPublicKey
- Public-Key: (384 bit)
- pub:
- 04:a2:d5:9c:82:7b:95:9d:f1:52:78:87:fe:8a:16:
- bf:05:e6:df:a3:02:4f:0d:07:c6:00:51:ba:0c:02:
- 52:2d:22:a4:42:39:c4:fe:8f:ea:c9:c1:be:d4:4d:
- ff:9f:7a:9e:e2:b1:7c:9a:ad:a7:86:09:73:87:d1:
- e7:9a:e3:7a:a5:aa:6e:fb:ba:b3:70:c0:67:88:a2:
- 35:d4:a3:9a:b1:fd:ad:c2:ef:31:fa:a8:b9:f3:fb:
- 08:c6:91:d1:fb:29:95
- ASN1 OID: secp384r1
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- 9A:D8:00:30:00:E7:6B:7F:85:18:EE:8B:B6:CE:8A:0C:F8:11:E1:BB
- Signature Algorithm: ecdsa-with-SHA384
- 30:66:02:31:00:dd:f8:e0:57:47:5b:a7:e6:0a:c3:bd:f5:80:
- 8a:97:35:0d:1b:89:3c:54:86:77:28:ca:a1:f4:79:de:b5:e6:
- 38:b0:f0:65:70:8c:7f:02:54:c2:bf:ff:d8:a1:3e:d9:cf:02:
- 31:00:c4:8d:94:fc:dc:53:d2:dc:9d:78:16:1f:15:33:23:53:
- 52:e3:5a:31:5d:9d:ca:ae:bd:13:29:44:0d:27:5b:a8:e7:68:
- 9c:12:f7:58:3f:2e:72:02:57:a3:8f:a1:14:2e
-SHA1 Fingerprint=AA:DB:BC:22:23:8F:C4:01:A1:27:BB:38:DD:F4:1D:DB:08:9E:F0:12
diff --git a/luni/src/main/files/cacerts/ab5346f4.0 b/luni/src/main/files/cacerts/ab5346f4.0
deleted file mode 100644
index cd7e378..0000000
--- a/luni/src/main/files/cacerts/ab5346f4.0
+++ /dev/null
@@ -1,78 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDEr
-MCkGA1UEChMiSmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoG
-A1UEAxMTU2VjdXJlU2lnbiBSb290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0
-MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSswKQYDVQQKEyJKYXBhbiBDZXJ0aWZp
-Y2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1cmVTaWduIFJvb3RD
-QTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvLTJsz
-i1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8
-h9uuywGOwvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOV
-MdrAG/LuYpmGYz+/3ZMqg6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9
-UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rPO7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni
-8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitAbpSACW22s293bzUIUPsC
-h8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZXt94wDgYD
-VR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEB
-AKChOBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xm
-KbabfSVSSUOrTC4rbnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQ
-X5Ucv+2rIrVls4W6ng+4reV6G4pQOh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWr
-QbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01y8hSyn+B/tlr0/cR7SXf+Of5
-pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061lgeLKBObjBmN
-QSdJQO7e5iNEOdyhIta6A/I=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=JP, O=Japan Certification Services, Inc., CN=SecureSign RootCA11
- Validity
- Not Before: Apr 8 04:56:47 2009 GMT
- Not After : Apr 8 04:56:47 2029 GMT
- Subject: C=JP, O=Japan Certification Services, Inc., CN=SecureSign RootCA11
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:fd:77:aa:a5:1c:90:05:3b:cb:4c:9b:33:8b:5a:
- 14:45:a4:e7:90:16:d1:df:57:d2:21:10:a4:17:fd:
- df:ac:d6:1f:a7:e4:db:7c:f7:ec:df:b8:03:da:94:
- 58:fd:5d:72:7c:8c:3f:5f:01:67:74:15:96:e3:02:
- 3c:87:db:ae:cb:01:8e:c2:f3:66:c6:85:45:f4:02:
- c6:3a:b5:62:b2:af:fa:9c:bf:a4:e6:d4:80:30:98:
- f3:0d:b6:93:8f:a9:d4:d8:36:f2:b0:fc:8a:ca:2c:
- a1:15:33:95:31:da:c0:1b:f2:ee:62:99:86:63:3f:
- bf:dd:93:2a:83:a8:76:b9:13:1f:b7:ce:4e:42:85:
- 8f:22:e7:2e:1a:f2:95:09:b2:05:b5:44:4e:77:a1:
- 20:bd:a9:f2:4e:0a:7d:50:ad:f5:05:0d:45:4f:46:
- 71:fd:28:3e:53:fb:04:d8:2d:d7:65:1d:4a:1b:fa:
- cf:3b:b0:31:9a:35:6e:c8:8b:06:d3:00:91:f2:94:
- 08:65:4c:b1:34:06:00:7a:89:e2:f0:c7:03:59:cf:
- d5:d6:e8:a7:32:b3:e6:98:40:86:c5:cd:27:12:8b:
- cc:7b:ce:b7:11:3c:62:60:07:23:3e:2b:40:6e:94:
- 80:09:6d:b6:b3:6f:77:6f:35:08:50:fb:02:87:c5:
- 3e:89
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 5B:F8:4D:4F:B2:A5:86:D4:3A:D2:F1:63:9A:A0:BE:09:F6:57:B7:DE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- Signature Algorithm: sha1WithRSAEncryption
- a0:a1:38:16:66:2e:a7:56:1f:21:9c:06:fa:1d:ed:b9:22:c5:
- 38:26:d8:4e:4f:ec:a3:7f:79:de:46:21:a1:87:77:8f:07:08:
- 9a:b2:a4:c5:af:0f:32:98:0b:7c:66:29:b6:9b:7d:25:52:49:
- 43:ab:4c:2e:2b:6e:7a:70:af:16:0e:e3:02:6c:fb:42:e6:18:
- 9d:45:d8:55:c8:e8:3b:dd:e7:e1:f4:2e:0b:1c:34:5c:6c:58:
- 4a:fb:8c:88:50:5f:95:1c:bf:ed:ab:22:b5:65:b3:85:ba:9e:
- 0f:b8:ad:e5:7a:1b:8a:50:3a:1d:bd:0d:bc:7b:54:50:0b:b9:
- 42:af:55:a0:18:81:ad:65:99:ef:be:e4:9c:bf:c4:85:ab:41:
- b2:54:6f:dc:25:cd:ed:78:e2:8e:0c:8d:09:49:dd:63:7b:5a:
- 69:96:02:21:a8:bd:52:59:e9:7d:35:cb:c8:52:ca:7f:81:fe:
- d9:6b:d3:f7:11:ed:25:df:f8:e7:f9:a4:fa:72:97:84:53:0d:
- a5:d0:32:18:51:76:59:14:6c:0f:eb:ec:5f:80:8c:75:43:83:
- c3:85:98:ff:4c:9e:2d:0d:e4:77:83:93:4e:b5:96:07:8b:28:
- 13:9b:8c:19:8d:41:27:49:40:ee:de:e6:23:44:39:dc:a1:22:
- d6:ba:03:f2
-SHA1 Fingerprint=3B:C4:9F:48:F8:F3:73:A0:9C:1E:BD:F8:5B:B1:C3:65:C7:D8:11:B3
diff --git a/luni/src/main/files/cacerts/add67345.0 b/luni/src/main/files/cacerts/add67345.0
deleted file mode 100644
index a12b98e..0000000
--- a/luni/src/main/files/cacerts/add67345.0
+++ /dev/null
@@ -1,96 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhV
-MRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMe
-TmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0
-dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFzcyBB
-KSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oXDTE5MDIxOTIzMTQ0
-N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQHEwhC
-dWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQu
-MRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBL
-b3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG
-9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSMD7tM9DceqQWC2ObhbHDqeLVu0ThEDaiD
-zl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZz+qMkjvN9wfcZnSX9EUi
-3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC/tmwqcm8
-WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LY
-Oph7tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2Esi
-NCubMvJIH5+hCoR64sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCC
-ApswDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4
-QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaCAk1GSUdZRUxFTSEgRXplbiB0
-YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pvbGdhbHRhdGFz
-aSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu
-IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtm
-ZWxlbG9zc2VnLWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMg
-ZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVs
-amFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFzIGxlaXJhc2EgbWVndGFsYWxoYXRv
-IGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBhIGh0dHBzOi8vd3d3
-Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVub3J6
-ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1
-YW5jZSBhbmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3Qg
-dG8gdGhlIE5ldExvY2sgQ1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRs
-b2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFpbCBhdCBjcHNAbmV0bG9jay5uZXQuMA0G
-CSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5ayZrU3/b39/zcT0mwBQO
-xmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjPytoUMaFP
-0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQ
-QeJBCWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxk
-f1qbFFgBJ34TUMdrKuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK
-8CtmdWOMovsEPoMOmzbwGOQmIMOM8CgHrTwXZoi1/baI
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 259 (0x103)
- Signature Algorithm: md5WithRSAEncryption
- Issuer: C=HU, ST=Hungary, L=Budapest, O=NetLock Halozatbiztonsagi Kft., OU=Tanusitvanykiadok, CN=NetLock Kozjegyzoi (Class A) Tanusitvanykiado
- Validity
- Not Before: Feb 24 23:14:47 1999 GMT
- Not After : Feb 19 23:14:47 2019 GMT
- Subject: C=HU, ST=Hungary, L=Budapest, O=NetLock Halozatbiztonsagi Kft., OU=Tanusitvanykiadok, CN=NetLock Kozjegyzoi (Class A) Tanusitvanykiado
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:bc:74:8c:0f:bb:4c:f4:37:1e:a9:05:82:d8:e6:
- e1:6c:70:ea:78:b5:6e:d1:38:44:0d:a8:83:ce:5d:
- d2:d6:d5:81:c5:d4:4b:e7:5b:94:70:26:db:3b:9d:
- 6a:4c:62:f7:71:f3:64:d6:61:3b:3d:eb:73:a3:37:
- d9:cf:ea:8c:92:3b:cd:f7:07:dc:66:74:97:f4:45:
- 22:dd:f4:5c:e0:bf:6d:f3:be:65:33:e4:15:3a:bf:
- db:98:90:55:38:c4:ed:a6:55:63:0b:b0:78:04:f4:
- e3:6e:c1:3f:8e:fc:51:78:1f:92:9e:83:c2:fe:d9:
- b0:a9:c9:bc:5a:00:ff:a9:a8:98:74:fb:f6:2c:3e:
- 15:39:0d:b6:04:55:a8:0e:98:20:42:b3:b1:25:ad:
- 7e:9a:6f:5d:53:b1:ab:0c:fc:eb:e0:f3:7a:b3:a8:
- b3:ff:46:f6:63:a2:d8:3a:98:7b:b6:ac:85:ff:b0:
- 25:4f:74:63:e7:13:07:a5:0a:8f:05:f7:c0:64:6f:
- 7e:a7:27:80:96:de:d4:2e:86:60:c7:6b:2b:5e:73:
- 7b:17:e7:91:3f:64:0c:d8:4b:22:34:2b:9b:32:f2:
- 48:1f:9f:a1:0a:84:7a:e2:c2:ad:97:3d:8e:d5:c1:
- f9:56:a3:50:e9:c6:b4:fa:98:a2:ee:95:e6:2a:03:
- 8c:df
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE, pathlen:4
- Netscape Cert Type:
- SSL CA, S/MIME CA, Object Signing CA
- Netscape Comment:
- FIGYELEM! Ezen tanusitvany a NetLock Kft. Altalanos Szolgaltatasi Felteteleiben leirt eljarasok alapjan keszult. A hitelesites folyamatat a NetLock Kft. termekfelelosseg-biztositasa vedi. A digitalis alairas elfogadasanak feltetele az eloirt ellenorzesi eljaras megtetele. Az eljaras leirasa megtalalhato a NetLock Kft. Internet honlapjan a https://www.netlock.net/docs cimen vagy kerheto az ellenorzes@netlock.net e-mail cimen. IMPORTANT! The issuance and the use of this certificate is subject to the NetLock CPS available at https://www.netlock.net/docs or by e-mail at cps@netlock.net.
- Signature Algorithm: md5WithRSAEncryption
- 48:24:46:f7:ba:56:6f:fa:c8:28:03:40:4e:e5:31:39:6b:26:
- 6b:53:7f:db:df:df:f3:71:3d:26:c0:14:0e:c6:67:7b:23:a8:
- 0c:73:dd:01:bb:c6:ca:6e:37:39:55:d5:c7:8c:56:20:0e:28:
- 0a:0e:d2:2a:a4:b0:49:52:c6:38:07:fe:be:0a:09:8c:d1:98:
- cf:ca:da:14:31:a1:4f:d2:39:fc:0f:11:2c:43:c3:dd:ab:93:
- c7:55:3e:47:7c:18:1a:00:dc:f3:7b:d8:f2:7f:52:6c:20:f4:
- 0b:5f:69:52:f4:ee:f8:b2:29:60:eb:e3:49:31:21:0d:d6:b5:
- 10:41:e2:41:09:6c:e2:1a:9a:56:4b:77:02:f6:a0:9b:9a:27:
- 87:e8:55:29:71:c2:90:9f:45:78:1a:e1:15:64:3d:d0:0e:d8:
- a0:76:9f:ae:c5:d0:2e:ea:d6:0f:56:ec:64:7f:5a:9b:14:58:
- 01:27:7e:13:50:c7:6b:2a:e6:68:3c:bf:5c:a0:0a:1b:e1:0e:
- 7a:e9:e2:80:c3:e9:e9:f6:fd:6c:11:9e:d0:e5:28:27:2b:54:
- 32:42:14:82:75:e6:4a:f0:2b:66:75:63:8c:a2:fb:04:3e:83:
- 0e:9b:36:f0:18:e4:26:20:c3:8c:f0:28:07:ad:3c:17:66:88:
- b5:fd:b6:88
-SHA1 Fingerprint=AC:ED:5F:65:53:FD:25:CE:01:5F:1F:7A:48:3B:6A:74:9F:61:78:C6
diff --git a/luni/src/main/files/cacerts/aeb67534.0 b/luni/src/main/files/cacerts/aeb67534.0
deleted file mode 100644
index fdabb5f..0000000
--- a/luni/src/main/files/cacerts/aeb67534.0
+++ /dev/null
@@ -1,97 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB
-8zELMAkGA1UEBhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2Vy
-dGlmaWNhY2lvIChOSUYgUS0wODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1
-YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYDVQQLEyxWZWdldSBodHRwczovL3d3
-dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UECxMsSmVyYXJxdWlh
-IEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMTBkVD
-LUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQG
-EwJFUzE7MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8g
-KE5JRiBRLTA4MDExNzYtSSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBD
-ZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZlZ2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQu
-bmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJhcnF1aWEgRW50aXRhdHMg
-ZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUNDMIIBIjAN
-BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R
-85iKw5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm
-4CgPukLjbo73FCeTae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaV
-HMf5NLWUhdWZXqBIoH7nF2W4onW4HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNd
-QlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0aE9jD2z3Il3rucO2n5nzbcc8t
-lGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw0JDnJwIDAQAB
-o4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E
-BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4
-opvpXY0wfwYDVR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBo
-dHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidW
-ZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAwDQYJKoZIhvcN
-AQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJlF7W2u++AVtd0x7Y
-/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNaAl6k
-SBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhy
-Rp/7SNVel+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOS
-Agu+TGbrIP65y7WZf+a2E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xl
-nJ2lYJU6Un/10asIbvPuW/mIPX64b24D5EI=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- (Negative)11:d4:c2:14:2b:de:21:eb:57:9d:53:fb:0c:22:3b:ff
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=ES, O=Agencia Catalana de Certificacio (NIF Q-0801176-I), OU=Serveis Publics de Certificacio, OU=Vegeu https://www.catcert.net/verarrel (c)03, OU=Jerarquia Entitats de Certificacio Catalanes, CN=EC-ACC
- Validity
- Not Before: Jan 7 23:00:00 2003 GMT
- Not After : Jan 7 22:59:59 2031 GMT
- Subject: C=ES, O=Agencia Catalana de Certificacio (NIF Q-0801176-I), OU=Serveis Publics de Certificacio, OU=Vegeu https://www.catcert.net/verarrel (c)03, OU=Jerarquia Entitats de Certificacio Catalanes, CN=EC-ACC
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:b3:22:c7:4f:e2:97:42:95:88:47:83:40:f6:1d:
- 17:f3:83:73:24:1e:51:f3:98:8a:c3:92:b8:ff:40:
- 90:05:70:87:60:c9:00:a9:b5:94:65:19:22:15:17:
- c2:43:6c:66:44:9a:0d:04:3e:39:6f:a5:4b:7a:aa:
- 63:b7:8a:44:9d:d9:63:91:84:66:e0:28:0f:ba:42:
- e3:6e:8e:f7:14:27:93:69:ee:91:0e:a3:5f:0e:b1:
- eb:66:a2:72:4f:12:13:86:65:7a:3e:db:4f:07:f4:
- a7:09:60:da:3a:42:99:c7:b2:7f:b3:16:95:1c:c7:
- f9:34:b5:94:85:d5:99:5e:a0:48:a0:7e:e7:17:65:
- b8:a2:75:b8:1e:f3:e5:42:7d:af:ed:f3:8a:48:64:
- 5d:82:14:93:d8:c0:e4:ff:b3:50:72:f2:76:f6:b3:
- 5d:42:50:79:d0:94:3e:6b:0c:00:be:d8:6b:0e:4e:
- 2a:ec:3e:d2:cc:82:a2:18:65:33:13:77:9e:9a:5d:
- 1a:13:d8:c3:db:3d:c8:97:7a:ee:70:ed:a7:e6:7c:
- db:71:cf:2d:94:62:df:6d:d6:f5:38:be:3f:a5:85:
- 0a:19:b8:a8:d8:09:75:42:70:c4:ea:ef:cb:0e:c8:
- 34:a8:12:22:98:0c:b8:13:94:b6:4b:ec:f0:d0:90:
- e7:27
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Alternative Name:
- email:ec_acc@catcert.net
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- A0:C3:8B:44:AA:37:A5:45:BF:97:80:5A:D1:F1:78:A2:9B:E9:5D:8D
- X509v3 Certificate Policies:
- Policy: 1.3.6.1.4.1.15096.1.3.1.10
- CPS: https://www.catcert.net/verarrel
- User Notice:
- Explicit Text: Vegeu https://www.catcert.net/verarrel
-
- Signature Algorithm: sha1WithRSAEncryption
- a0:48:5b:82:01:f6:4d:48:b8:39:55:35:9c:80:7a:53:99:d5:
- 5a:ff:b1:71:3b:cc:39:09:94:5e:d6:da:ef:be:01:5b:5d:d3:
- 1e:d8:fd:7d:4f:cd:a0:41:e0:34:93:bf:cb:e2:86:9c:37:92:
- 90:56:1c:dc:eb:29:05:e5:c4:9e:c7:35:df:8a:0c:cd:c5:21:
- 43:e9:aa:88:e5:35:c0:19:42:63:5a:02:5e:a4:48:18:3a:85:
- 6f:dc:9d:bc:3f:9d:9c:c1:87:b8:7a:61:08:e9:77:0b:7f:70:
- ab:7a:dd:d9:97:2c:64:1e:85:bf:bc:74:96:a1:c3:7a:12:ec:
- 0c:1a:6e:83:0c:3c:e8:72:46:9f:fb:48:d5:5e:97:e6:b1:a1:
- f8:e4:ef:46:25:94:9c:89:db:69:38:be:ec:5c:0e:56:c7:65:
- 51:e5:50:88:88:bf:42:d5:2b:3d:e5:f9:ba:9e:2e:b3:ca:f4:
- 73:92:02:0b:be:4c:66:eb:20:fe:b9:cb:b5:99:7f:e6:b6:13:
- fa:ca:4b:4d:d9:ee:53:46:06:3b:c6:4e:ad:93:5a:81:7e:6c:
- 2a:4b:6a:05:45:8c:f2:21:a4:31:90:87:6c:65:9c:9d:a5:60:
- 95:3a:52:7f:f5:d1:ab:08:6e:f3:ee:5b:f9:88:3d:7e:b8:6f:
- 6e:03:e4:42
-SHA1 Fingerprint=28:90:3A:63:5B:52:80:FA:E6:77:4C:0B:6D:A7:D6:BA:A6:4A:F2:E8
diff --git a/luni/src/main/files/cacerts/b0ed035a.0 b/luni/src/main/files/cacerts/b0ed035a.0
deleted file mode 100644
index b06f963..0000000
--- a/luni/src/main/files/cacerts/b0ed035a.0
+++ /dev/null
@@ -1,117 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcx
-EjAQBgNVBAoTCVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMT
-VFdDQSBHbG9iYWwgUm9vdCBDQTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5
-NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQKEwlUQUlXQU4tQ0ExEDAOBgNVBAsT
-B1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3QgQ0EwggIiMA0GCSqG
-SIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2CnJfF
-10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz
-0ALfUPZVr2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfCh
-MBwqoJimFb3u/Rk28OKRQ4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbH
-zIh1HrtsBv+baz4X7GGqcXzGHaL3SekVtTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc
-46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1WKKD+u4ZqyPpcC1jcxkt2
-yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99sy2sbZCi
-laLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYP
-oA/pyJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQA
-BDzfuBSO6N+pjWxnkjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcE
-qYSjMq+u7msXi7Kx/mzhkIyIqJdIzshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm
-4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
-/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6gcFGn90xHNcgL
-1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn
-LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WF
-H6vPNOw/KP4M8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNo
-RI2T9GRwoD2dKAXDOXC4Ynsg/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+
-nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlglPx4mI88k1HtQJAH32RjJMtOcQWh
-15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryPA9gK8kxkRr05YuWW
-6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3mi4TW
-nsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5j
-wa19hAM8EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWz
-aGHQRiapIVJpLesux+t3zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmy
-KwbQBM0=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 3262 (0xcbe)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=TW, O=TAIWAN-CA, OU=Root CA, CN=TWCA Global Root CA
- Validity
- Not Before: Jun 27 06:28:33 2012 GMT
- Not After : Dec 31 15:59:59 2030 GMT
- Subject: C=TW, O=TAIWAN-CA, OU=Root CA, CN=TWCA Global Root CA
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:b0:05:db:c8:eb:8c:c4:6e:8a:21:ef:8e:4d:9c:
- 71:0a:1f:52:70:ed:6d:82:9c:97:c5:d7:4c:4e:45:
- 49:cb:40:42:b5:12:34:6c:19:c2:74:a4:31:5f:85:
- 02:97:ec:43:33:0a:53:d2:9c:8c:8e:b7:b8:79:db:
- 2b:d5:6a:f2:8e:66:c4:ee:2b:01:07:92:d4:b3:d0:
- 02:df:50:f6:55:af:66:0e:cb:e0:47:60:2f:2b:32:
- 39:35:52:3a:28:83:f8:7b:16:c6:18:b8:62:d6:47:
- 25:91:ce:f0:19:12:4d:ad:63:f5:d3:3f:75:5f:29:
- f0:a1:30:1c:2a:a0:98:a6:15:bd:ee:fd:19:36:f0:
- e2:91:43:8f:fa:ca:d6:10:27:49:4c:ef:dd:c1:f1:
- 85:70:9b:ca:ea:a8:5a:43:fc:6d:86:6f:73:e9:37:
- 45:a9:f0:36:c7:cc:88:75:1e:bb:6c:06:ff:9b:6b:
- 3e:17:ec:61:aa:71:7c:c6:1d:a2:f7:49:e9:15:b5:
- 3c:d6:a1:61:f5:11:f7:05:6f:1d:fd:11:be:d0:30:
- 07:c2:29:b0:09:4e:26:dc:e3:a2:a8:91:6a:1f:c2:
- 91:45:88:5c:e5:98:b8:71:a5:15:19:c9:7c:75:11:
- cc:70:74:4f:2d:9b:1d:91:44:fd:56:28:a0:fe:bb:
- 86:6a:c8:fa:5c:0b:58:dc:c6:4b:76:c8:ab:22:d9:
- 73:0f:a5:f4:5a:02:89:3f:4f:9e:22:82:ee:a2:74:
- 53:2a:3d:53:27:69:1d:6c:8e:32:2c:64:00:26:63:
- 61:36:4e:a3:46:b7:3f:7d:b3:2d:ac:6d:90:a2:95:
- a2:ce:cf:da:82:e7:07:34:19:96:e9:b8:21:aa:29:
- 7e:a6:38:be:8e:29:4a:21:66:79:1f:b3:c3:b5:09:
- 67:de:d6:d4:07:46:f3:2a:da:e6:22:37:60:cb:81:
- b6:0f:a0:0f:e9:c8:95:7f:bf:55:91:05:7a:cf:3d:
- 15:c0:6f:de:09:94:01:83:d7:34:1b:cc:40:a5:f0:
- b8:9b:67:d5:98:91:3b:a7:84:78:95:26:a4:5a:08:
- f8:2b:74:b4:00:04:3c:df:b8:14:8e:e8:df:a9:8d:
- 6c:67:92:33:1d:c0:b7:d2:ec:92:c8:be:09:bf:2c:
- 29:05:6f:02:6b:9e:ef:bc:bf:2a:bc:5b:c0:50:8f:
- 41:70:71:87:b2:4d:b7:04:a9:84:a3:32:af:ae:ee:
- 6b:17:8b:b2:b1:fe:6c:e1:90:8c:88:a8:97:48:ce:
- c8:4d:cb:f3:06:cf:5f:6a:0a:42:b1:1e:1e:77:2f:
- 8e:a0:e6:92:0e:06:fc:05:22:d2:26:e1:31:51:7d:
- 32:dc:0f
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- Signature Algorithm: sha256WithRSAEncryption
- 5f:34:81:76:ef:96:1d:d5:e5:b5:d9:02:63:84:16:c1:ae:a0:
- 70:51:a7:f7:4c:47:35:c8:0b:d7:28:3d:89:71:d9:aa:33:41:
- ea:14:1b:6c:21:00:c0:6c:42:19:7e:9f:69:5b:20:42:df:a2:
- d2:da:c4:7c:97:4b:8d:b0:e8:ac:c8:ee:a5:69:04:99:0a:92:
- a6:ab:27:2e:1a:4d:81:bf:84:d4:70:1e:ad:47:fe:fd:4a:9d:
- 33:e0:f2:b9:c4:45:08:21:0a:da:69:69:73:72:0d:be:34:fe:
- 94:8b:ad:c3:1e:35:d7:a2:83:ef:e5:38:c7:a5:85:1f:ab:cf:
- 34:ec:3f:28:fe:0c:f1:57:86:4e:c9:55:f7:1c:d4:d8:a5:7d:
- 06:7a:6f:d5:df:10:df:81:4e:21:65:b1:b6:e1:17:79:95:45:
- 06:ce:5f:cc:dc:46:89:63:68:44:8d:93:f4:64:70:a0:3d:9d:
- 28:05:c3:39:70:b8:62:7b:20:fd:e4:db:e9:08:a1:b8:9e:3d:
- 09:c7:4f:fb:2c:f8:93:76:41:de:52:e0:e1:57:d2:9d:03:bc:
- 77:9e:fe:9e:29:5e:f7:c1:51:60:1f:de:da:0b:b2:2d:75:b7:
- 43:48:93:e7:f6:79:c6:84:5d:80:59:60:94:fc:78:98:8f:3c:
- 93:51:ed:40:90:07:df:64:63:24:cb:4e:71:05:a1:d7:94:1a:
- 88:32:f1:22:74:22:ae:a5:a6:d8:12:69:4c:60:a3:02:ee:2b:
- ec:d4:63:92:0b:5e:be:2f:76:6b:a3:b6:26:bc:8f:03:d8:0a:
- f2:4c:64:46:bd:39:62:e5:96:eb:34:63:11:28:cc:95:f1:ad:
- ef:ef:dc:80:58:48:e9:4b:b8:ea:65:ac:e9:fc:80:b5:b5:c8:
- 45:f9:ac:c1:9f:d9:b9:ea:62:88:8e:c4:f1:4b:83:12:ad:e6:
- 8b:84:d6:9e:c2:eb:83:18:9f:6a:bb:1b:24:60:33:70:cc:ec:
- f7:32:f3:5c:d9:79:7d:ef:9e:a4:fe:c9:23:c3:24:ee:15:92:
- b1:3d:91:4f:26:86:bd:66:73:24:13:ea:a4:ae:63:c1:ad:7d:
- 84:03:3c:10:78:86:1b:79:e3:c4:f3:f2:04:95:20:ae:23:82:
- c4:b3:3a:00:62:bf:e6:36:24:e1:57:ba:c7:1e:90:75:d5:5f:
- 3f:95:61:2b:c1:3b:cd:e5:b3:68:61:d0:46:26:a9:21:52:69:
- 2d:eb:2e:c7:eb:77:ce:a6:3a:b5:03:33:4f:76:d1:e7:5c:54:
- 01:5d:cb:78:f4:c9:0c:bf:cf:12:8e:17:2d:23:68:94:e7:ab:
- fe:a9:b2:2b:06:d0:04:cd
-SHA1 Fingerprint=9C:BB:48:53:F6:A4:F6:D3:52:A4:E8:32:52:55:60:13:F5:AD:AF:65
diff --git a/luni/src/main/files/cacerts/b0f3e76e.0 b/luni/src/main/files/cacerts/b0f3e76e.0
deleted file mode 100644
index 929f29f..0000000
--- a/luni/src/main/files/cacerts/b0f3e76e.0
+++ /dev/null
@@ -1,79 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG
-A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
-b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw
-MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
-YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT
-aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ
-jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp
-xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp
-1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG
-snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ
-U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8
-9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E
-BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B
-AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz
-yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE
-38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP
-AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad
-DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME
-HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 04:00:00:00:00:01:15:4b:5a:c3:94
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=BE, O=GlobalSign nv-sa, OU=Root CA, CN=GlobalSign Root CA
- Validity
- Not Before: Sep 1 12:00:00 1998 GMT
- Not After : Jan 28 12:00:00 2028 GMT
- Subject: C=BE, O=GlobalSign nv-sa, OU=Root CA, CN=GlobalSign Root CA
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:da:0e:e6:99:8d:ce:a3:e3:4f:8a:7e:fb:f1:8b:
- 83:25:6b:ea:48:1f:f1:2a:b0:b9:95:11:04:bd:f0:
- 63:d1:e2:67:66:cf:1c:dd:cf:1b:48:2b:ee:8d:89:
- 8e:9a:af:29:80:65:ab:e9:c7:2d:12:cb:ab:1c:4c:
- 70:07:a1:3d:0a:30:cd:15:8d:4f:f8:dd:d4:8c:50:
- 15:1c:ef:50:ee:c4:2e:f7:fc:e9:52:f2:91:7d:e0:
- 6d:d5:35:30:8e:5e:43:73:f2:41:e9:d5:6a:e3:b2:
- 89:3a:56:39:38:6f:06:3c:88:69:5b:2a:4d:c5:a7:
- 54:b8:6c:89:cc:9b:f9:3c:ca:e5:fd:89:f5:12:3c:
- 92:78:96:d6:dc:74:6e:93:44:61:d1:8d:c7:46:b2:
- 75:0e:86:e8:19:8a:d5:6d:6c:d5:78:16:95:a2:e9:
- c8:0a:38:eb:f2:24:13:4f:73:54:93:13:85:3a:1b:
- bc:1e:34:b5:8b:05:8c:b9:77:8b:b1:db:1f:20:91:
- ab:09:53:6e:90:ce:7b:37:74:b9:70:47:91:22:51:
- 63:16:79:ae:b1:ae:41:26:08:c8:19:2b:d1:46:aa:
- 48:d6:64:2a:d7:83:34:ff:2c:2a:c1:6c:19:43:4a:
- 07:85:e7:d3:7c:f6:21:68:ef:ea:f2:52:9f:7f:93:
- 90:cf
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- 60:7B:66:1A:45:0D:97:CA:89:50:2F:7D:04:CD:34:A8:FF:FC:FD:4B
- Signature Algorithm: sha1WithRSAEncryption
- d6:73:e7:7c:4f:76:d0:8d:bf:ec:ba:a2:be:34:c5:28:32:b5:
- 7c:fc:6c:9c:2c:2b:bd:09:9e:53:bf:6b:5e:aa:11:48:b6:e5:
- 08:a3:b3:ca:3d:61:4d:d3:46:09:b3:3e:c3:a0:e3:63:55:1b:
- f2:ba:ef:ad:39:e1:43:b9:38:a3:e6:2f:8a:26:3b:ef:a0:50:
- 56:f9:c6:0a:fd:38:cd:c4:0b:70:51:94:97:98:04:df:c3:5f:
- 94:d5:15:c9:14:41:9c:c4:5d:75:64:15:0d:ff:55:30:ec:86:
- 8f:ff:0d:ef:2c:b9:63:46:f6:aa:fc:df:bc:69:fd:2e:12:48:
- 64:9a:e0:95:f0:a6:ef:29:8f:01:b1:15:b5:0c:1d:a5:fe:69:
- 2c:69:24:78:1e:b3:a7:1c:71:62:ee:ca:c8:97:ac:17:5d:8a:
- c2:f8:47:86:6e:2a:c4:56:31:95:d0:67:89:85:2b:f9:6c:a6:
- 5d:46:9d:0c:aa:82:e4:99:51:dd:70:b7:db:56:3d:61:e4:6a:
- e1:5c:d6:f6:fe:3d:de:41:cc:07:ae:63:52:bf:53:53:f4:2b:
- e9:c7:fd:b6:f7:82:5f:85:d2:41:18:db:81:b3:04:1c:c5:1f:
- a4:80:6f:15:20:c9:de:0c:88:0a:1d:d6:66:55:e2:fc:48:c9:
- 29:26:69:e0
-SHA1 Fingerprint=B1:BC:96:8B:D4:F4:9D:62:2A:A8:9A:81:F2:15:01:52:A4:1D:82:9C
diff --git a/luni/src/main/files/cacerts/b3fb433b.0 b/luni/src/main/files/cacerts/b3fb433b.0
deleted file mode 100644
index de880c1..0000000
--- a/luni/src/main/files/cacerts/b3fb433b.0
+++ /dev/null
@@ -1,56 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkG
-A1UEBhMCVVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3
-d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVu
-dHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEzMDEGA1UEAxMq
-RW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRUMxMB4XDTEy
-MTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYwFAYD
-VQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0
-L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0g
-Zm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBD
-ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEVDMTB2MBAGByqGSM49AgEGBSuBBAAi
-A2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHyAsWfoPZb1YsGGYZPUxBt
-ByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef9eNi1KlH
-Bz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
-BBYEFLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVC
-R98crlOZF7ZvHH3hvxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nX
-hTcGtXsI/esni0qU+eH6p44mCOh8kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- a6:8b:79:29:00:00:00:00:50:d0:91:f9
- Signature Algorithm: ecdsa-with-SHA384
- Issuer: C=US, O=Entrust, Inc., OU=See www.entrust.net/legal-terms, OU=(c) 2012 Entrust, Inc. - for authorized use only, CN=Entrust Root Certification Authority - EC1
- Validity
- Not Before: Dec 18 15:25:36 2012 GMT
- Not After : Dec 18 15:55:36 2037 GMT
- Subject: C=US, O=Entrust, Inc., OU=See www.entrust.net/legal-terms, OU=(c) 2012 Entrust, Inc. - for authorized use only, CN=Entrust Root Certification Authority - EC1
- Subject Public Key Info:
- Public Key Algorithm: id-ecPublicKey
- Public-Key: (384 bit)
- pub:
- 04:84:13:c9:d0:ba:6d:41:7b:e2:6c:d0:eb:55:5f:
- 66:02:1a:24:f4:5b:89:69:47:e3:b8:c2:7d:f1:f2:
- 02:c5:9f:a0:f6:5b:d5:8b:06:19:86:4f:53:10:6d:
- 07:24:27:a1:a0:f8:d5:47:19:61:4c:7d:ca:93:27:
- ea:74:0c:ef:6f:96:09:fe:63:ec:70:5d:36:ad:67:
- 77:ae:c9:9d:7c:55:44:3a:a2:63:51:1f:f5:e3:62:
- d4:a9:47:07:3e:cc:20
- ASN1 OID: secp384r1
- X509v3 extensions:
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- B7:63:E7:1A:DD:8D:E9:08:A6:55:83:A4:E0:6A:50:41:65:11:42:49
- Signature Algorithm: ecdsa-with-SHA384
- 30:64:02:30:61:79:d8:e5:42:47:df:1c:ae:53:99:17:b6:6f:
- 1c:7d:e1:bf:11:94:d1:03:88:75:e4:8d:89:a4:8a:77:46:de:
- 6d:61:ef:02:f5:fb:b5:df:cc:fe:4e:ff:fe:a9:e6:a7:02:30:
- 5b:99:d7:85:37:06:b5:7b:08:fd:eb:27:8b:4a:94:f9:e1:fa:
- a7:8e:26:08:e8:7c:92:68:6d:73:d8:6f:26:ac:21:02:b8:99:
- b7:26:41:5b:25:60:ae:d0:48:1a:ee:06
-SHA1 Fingerprint=20:D8:06:40:DF:9B:25:F5:12:25:3A:11:EA:F7:59:8A:EB:14:B5:47
diff --git a/luni/src/main/files/cacerts/b7db1890.0 b/luni/src/main/files/cacerts/b7db1890.0
deleted file mode 100644
index 626e5a3..0000000
--- a/luni/src/main/files/cacerts/b7db1890.0
+++ /dev/null
@@ -1,78 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzES
-MBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFU
-V0NBIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMz
-WhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJVEFJV0FO
-LUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlm
-aWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
-AQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFE
-AcK0HMMxQhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HH
-K3XLfJ+utdGdIzdjp9xCoi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeX
-RfwZVzsrb+RH9JlF/h3x+JejiB03HFyP4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/z
-rX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1ry+UPizgN7gr8/g+YnzAx
-3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
-HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkq
-hkiG9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeC
-MErJk/9q56YAf4lCmtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdls
-XebQ79NqZp4VKIV66IIArB6nCWlWQtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62D
-lhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVYT0bf+215WfKEIlKuD8z7fDvn
-aspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocnyYh0igzyXxfkZ
-YiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=TW, O=TAIWAN-CA, OU=Root CA, CN=TWCA Root Certification Authority
- Validity
- Not Before: Aug 28 07:24:33 2008 GMT
- Not After : Dec 31 15:59:59 2030 GMT
- Subject: C=TW, O=TAIWAN-CA, OU=Root CA, CN=TWCA Root Certification Authority
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:b0:7e:72:b8:a4:03:94:e6:a7:de:09:38:91:4a:
- 11:40:87:a7:7c:59:64:14:7b:b5:11:10:dd:fe:bf:
- d5:c0:bb:56:e2:85:25:f4:35:72:0f:f8:53:d0:41:
- e1:44:01:c2:b4:1c:c3:31:42:16:47:85:33:22:76:
- b2:0a:6f:0f:e5:25:50:4f:85:86:be:bf:98:2e:10:
- 67:1e:be:11:05:86:05:90:c4:59:d0:7c:78:10:b0:
- 80:5c:b7:e1:c7:2b:75:cb:7c:9f:ae:b5:d1:9d:23:
- 37:63:a7:dc:42:a2:2d:92:04:1b:50:c1:7b:b8:3e:
- 1b:c9:56:04:8b:2f:52:9b:ad:a9:56:e9:c1:ff:ad:
- a9:58:87:30:b6:81:f7:97:45:fc:19:57:3b:2b:6f:
- e4:47:f4:99:45:fe:1d:f1:f8:97:a3:88:1d:37:1c:
- 5c:8f:e0:76:25:9a:50:f8:a0:54:ff:44:90:76:23:
- d2:32:c6:c3:ab:06:bf:fc:fb:bf:f3:ad:7d:92:62:
- 02:5b:29:d3:35:a3:93:9a:43:64:60:5d:b2:fa:32:
- ff:3b:04:af:4d:40:6a:f9:c7:e3:ef:23:fd:6b:cb:
- e5:0f:8b:38:0d:ee:0a:fc:fe:0f:98:9f:30:31:dd:
- 6c:52:65:f9:8b:81:be:22:e1:1c:58:03:ba:91:1b:
- 89:07
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- 6A:38:5B:26:8D:DE:8B:5A:F2:4F:7A:54:83:19:18:E3:08:35:A6:BA
- Signature Algorithm: sha1WithRSAEncryption
- 3c:d5:77:3d:da:df:89:ba:87:0c:08:54:6a:20:50:92:be:b0:
- 41:3d:b9:26:64:83:0a:2f:e8:40:c0:97:28:27:82:30:4a:c9:
- 93:ff:6a:e7:a6:00:7f:89:42:9a:d6:11:e5:53:ce:2f:cc:f2:
- da:05:c4:fe:e2:50:c4:3a:86:7d:cc:da:7e:10:09:3b:92:35:
- 2a:53:b2:fe:eb:2b:05:d9:6c:5d:e6:d0:ef:d3:6a:66:9e:15:
- 28:85:7a:e8:82:00:ac:1e:a7:09:69:56:42:d3:68:51:18:be:
- 54:9a:bf:44:41:ba:49:be:20:ba:69:5c:ee:b8:77:cd:ce:6c:
- 1f:ad:83:96:18:7d:0e:b5:14:39:84:f1:28:e9:2d:a3:9e:7b:
- 1e:7a:72:5a:83:b3:79:6f:ef:b4:fc:d0:0a:a5:58:4f:46:df:
- fb:6d:79:59:f2:84:22:52:ae:0f:cc:fb:7c:3b:e7:6a:ca:47:
- 61:c3:7a:f8:d3:92:04:1f:b8:20:84:e1:36:54:16:c7:40:de:
- 3b:8a:73:dc:df:c6:09:4c:df:ec:da:ff:d4:53:42:a1:c9:f2:
- 62:1d:22:83:3c:97:c5:f9:19:62:27:ac:65:22:d7:d3:3c:c6:
- e5:8e:b2:53:cc:49:ce:bc:30:fe:7b:0e:33:90:fb:ed:d2:14:
- 91:1f:07:af
-SHA1 Fingerprint=CF:9E:87:6D:D3:EB:FC:42:26:97:A3:B5:A3:7A:A0:76:A9:06:23:48
diff --git a/luni/src/main/files/cacerts/b872f2b4.0 b/luni/src/main/files/cacerts/b872f2b4.0
deleted file mode 100644
index e99bbe9..0000000
--- a/luni/src/main/files/cacerts/b872f2b4.0
+++ /dev/null
@@ -1,84 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UE
-AwwVQXRvcyBUcnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQG
-EwJERTAeFw0xMTA3MDcxNDU4MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMM
-FUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsGA1UECgwEQXRvczELMAkGA1UEBhMC
-REUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCVhTuXbyo7LjvPpvMp
-Nb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr54rM
-VD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+
-SZFhyBH+DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ
-4J7sVaE3IqKHBAUsR320HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0L
-cp2AMBYHlT8oDv3FdU9T1nSatCQujgKRz3bFmx5VdJx4IbHwLfELn8LVlhgf8FQi
-eowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7Rl+lwrrw7GWzbITAPBgNV
-HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZbNshMBgG
-A1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3
-DQEBCwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8j
-vZfza1zv7v1Apt+hk6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kP
-DpFrdRbhIfzYJsdHt6bPWHJxfrrhTZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pc
-maHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a961qn8FYiqTxlVMYVqL2Gns2D
-lmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G3mB/ufNPRJLv
-KrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 6643877497813316402 (0x5c33cb622c5fb332)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: CN=Atos TrustedRoot 2011, O=Atos, C=DE
- Validity
- Not Before: Jul 7 14:58:30 2011 GMT
- Not After : Dec 31 23:59:59 2030 GMT
- Subject: CN=Atos TrustedRoot 2011, O=Atos, C=DE
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:95:85:3b:97:6f:2a:3b:2e:3b:cf:a6:f3:29:35:
- be:cf:18:ac:3e:aa:d9:f8:4d:a0:3e:1a:47:b9:bc:
- 9a:df:f2:fe:cc:3e:47:e8:7a:96:c2:24:8e:35:f4:
- a9:0c:fc:82:fd:6d:c1:72:62:27:bd:ea:6b:eb:e7:
- 8a:cc:54:3e:90:50:cf:80:d4:95:fb:e8:b5:82:d4:
- 14:c5:b6:a9:55:25:57:db:b1:50:f6:b0:60:64:59:
- 7a:69:cf:03:b7:6f:0d:be:ca:3e:6f:74:72:ea:aa:
- 30:2a:73:62:be:49:91:61:c8:11:fe:0e:03:2a:f7:
- 6a:20:dc:02:15:0d:5e:15:6a:fc:e3:82:c1:b5:c5:
- 9d:64:09:6c:a3:59:98:07:27:c7:1b:96:2b:61:74:
- 71:6c:43:f1:f7:35:89:10:e0:9e:ec:55:a1:37:22:
- a2:87:04:05:2c:47:7d:b4:1c:b9:62:29:66:28:ca:
- b7:e1:93:f5:a4:94:03:99:b9:70:85:b5:e6:48:ea:
- 8d:50:fc:d9:de:cc:6f:07:0e:dd:0b:72:9d:80:30:
- 16:07:95:3f:28:0e:fd:c5:75:4f:53:d6:74:9a:b4:
- 24:2e:8e:02:91:cf:76:c5:9b:1e:55:74:9c:78:21:
- b1:f0:2d:f1:0b:9f:c2:d5:96:18:1f:f0:54:22:7a:
- 8c:07
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- A7:A5:06:B1:2C:A6:09:60:EE:D1:97:E9:70:AE:BC:3B:19:6C:DB:21
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Authority Key Identifier:
- keyid:A7:A5:06:B1:2C:A6:09:60:EE:D1:97:E9:70:AE:BC:3B:19:6C:DB:21
-
- X509v3 Certificate Policies:
- Policy: 1.3.6.1.4.1.6189.3.4.1.1
-
- X509v3 Key Usage: critical
- Digital Signature, Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 26:77:34:db:94:48:86:2a:41:9d:2c:3e:06:90:60:c4:8c:ac:
- 0b:54:b8:1f:b9:7b:d3:07:39:e4:fa:3e:7b:b2:3d:4e:ed:9f:
- 23:bd:97:f3:6b:5c:ef:ee:fd:40:a6:df:a1:93:a1:0a:86:ac:
- ef:20:d0:79:01:bd:78:f7:19:d8:24:31:34:04:01:a6:ba:15:
- 9a:c3:27:dc:d8:4f:0f:cc:18:63:ff:99:0f:0e:91:6b:75:16:
- e1:21:fc:d8:26:c7:47:b7:a6:cf:58:72:71:7e:ba:e1:4d:95:
- 47:3b:c9:af:6d:a1:b4:c1:ec:89:f6:b4:0f:38:b5:e2:64:dc:
- 25:cf:a6:db:eb:9a:5c:99:a1:c5:08:de:fd:e6:da:d5:d6:5a:
- 45:0c:c4:b7:c2:b5:14:ef:b4:11:ff:0e:15:b5:f5:f5:db:c6:
- bd:eb:5a:a7:f0:56:22:a9:3c:65:54:c6:15:a8:bd:86:9e:cd:
- 83:96:68:7a:71:81:89:e1:0b:e1:ea:11:1b:68:08:cc:69:9e:
- ec:9e:41:9e:44:32:26:7a:e2:87:0a:71:3d:eb:e4:5a:a4:d2:
- db:c5:cd:c6:de:60:7f:b9:f3:4f:44:92:ef:2a:b7:18:3e:a7:
- 19:d9:0b:7d:b1:37:41:42:b0:ba:60:1d:f2:fe:09:11:b0:f0:
- 87:7b:a7:9d
-SHA1 Fingerprint=2B:B1:F5:3E:55:0C:1D:C5:F1:D4:E6:B7:6A:46:4B:55:06:02:AC:21
diff --git a/luni/src/main/files/cacerts/bc3f2570.0 b/luni/src/main/files/cacerts/bc3f2570.0
deleted file mode 100644
index b8fd426..0000000
--- a/luni/src/main/files/cacerts/bc3f2570.0
+++ /dev/null
@@ -1,80 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT
-EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp
-ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIz
-NTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH
-EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8GA1UE
-AxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIw
-DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKD
-E6bFIEMBO4Tx5oVJnyfq9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH
-/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD+qK+ihVqf94Lw7YZFAXK6sOoBJQ7Rnwy
-DfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutdfMh8+7ArU6SSYmlRJQVh
-GkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMlNAJWJwGR
-tDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEA
-AaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE
-FDqahQcQZyi27/a9BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmX
-WWcDYfF+OwYxdS2hII5PZYe096acvNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu
-9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r5N9ss4UXnT3ZJE95kTXWXwTr
-gIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYVN8Gb5DKj7Tjo
-2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO
-LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI
-4uJEvlz36hz1
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 0 (0x0)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Arizona, L=Scottsdale, O=GoDaddy.com, Inc., CN=Go Daddy Root Certificate Authority - G2
- Validity
- Not Before: Sep 1 00:00:00 2009 GMT
- Not After : Dec 31 23:59:59 2037 GMT
- Subject: C=US, ST=Arizona, L=Scottsdale, O=GoDaddy.com, Inc., CN=Go Daddy Root Certificate Authority - G2
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:bf:71:62:08:f1:fa:59:34:f7:1b:c9:18:a3:f7:
- 80:49:58:e9:22:83:13:a6:c5:20:43:01:3b:84:f1:
- e6:85:49:9f:27:ea:f6:84:1b:4e:a0:b4:db:70:98:
- c7:32:01:b1:05:3e:07:4e:ee:f4:fa:4f:2f:59:30:
- 22:e7:ab:19:56:6b:e2:80:07:fc:f3:16:75:80:39:
- 51:7b:e5:f9:35:b6:74:4e:a9:8d:82:13:e4:b6:3f:
- a9:03:83:fa:a2:be:8a:15:6a:7f:de:0b:c3:b6:19:
- 14:05:ca:ea:c3:a8:04:94:3b:46:7c:32:0d:f3:00:
- 66:22:c8:8d:69:6d:36:8c:11:18:b7:d3:b2:1c:60:
- b4:38:fa:02:8c:ce:d3:dd:46:07:de:0a:3e:eb:5d:
- 7c:c8:7c:fb:b0:2b:53:a4:92:62:69:51:25:05:61:
- 1a:44:81:8c:2c:a9:43:96:23:df:ac:3a:81:9a:0e:
- 29:c5:1c:a9:e9:5d:1e:b6:9e:9e:30:0a:39:ce:f1:
- 88:80:fb:4b:5d:cc:32:ec:85:62:43:25:34:02:56:
- 27:01:91:b4:3b:70:2a:3f:6e:b1:e8:9c:88:01:7d:
- 9f:d4:f9:db:53:6d:60:9d:bf:2c:e7:58:ab:b8:5f:
- 46:fc:ce:c4:1b:03:3c:09:eb:49:31:5c:69:46:b3:
- e0:47
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- 3A:9A:85:07:10:67:28:B6:EF:F6:BD:05:41:6E:20:C1:94:DA:0F:DE
- Signature Algorithm: sha256WithRSAEncryption
- 99:db:5d:79:d5:f9:97:59:67:03:61:f1:7e:3b:06:31:75:2d:
- a1:20:8e:4f:65:87:b4:f7:a6:9c:bc:d8:e9:2f:d0:db:5a:ee:
- cf:74:8c:73:b4:38:42:da:05:7b:f8:02:75:b8:fd:a5:b1:d7:
- ae:f6:d7:de:13:cb:53:10:7e:8a:46:d1:97:fa:b7:2e:2b:11:
- ab:90:b0:27:80:f9:e8:9f:5a:e9:37:9f:ab:e4:df:6c:b3:85:
- 17:9d:3d:d9:24:4f:79:91:35:d6:5f:04:eb:80:83:ab:9a:02:
- 2d:b5:10:f4:d8:90:c7:04:73:40:ed:72:25:a0:a9:9f:ec:9e:
- ab:68:12:99:57:c6:8f:12:3a:09:a4:bd:44:fd:06:15:37:c1:
- 9b:e4:32:a3:ed:38:e8:d8:64:f3:2c:7e:14:fc:02:ea:9f:cd:
- ff:07:68:17:db:22:90:38:2d:7a:8d:d1:54:f1:69:e3:5f:33:
- ca:7a:3d:7b:0a:e3:ca:7f:5f:39:e5:e2:75:ba:c5:76:18:33:
- ce:2c:f0:2f:4c:ad:f7:b1:e7:ce:4f:a8:c4:9b:4a:54:06:c5:
- 7f:7d:d5:08:0f:e2:1c:fe:7e:17:b8:ac:5e:f6:d4:16:b2:43:
- 09:0c:4d:f6:a7:6b:b4:99:84:65:ca:7a:88:e2:e2:44:be:5c:
- f7:ea:1c:f5
-SHA1 Fingerprint=47:BE:AB:C9:22:EA:E8:0E:78:78:34:62:A7:9F:45:C2:54:FD:E6:8B
diff --git a/luni/src/main/files/cacerts/bdacca6f.0 b/luni/src/main/files/cacerts/bdacca6f.0
deleted file mode 100644
index f08bdcf..0000000
--- a/luni/src/main/files/cacerts/bdacca6f.0
+++ /dev/null
@@ -1,89 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBK
-MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x
-GTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkx
-MjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3Qg
-Q29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwggEiMA0GCSqG
-SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jxYDiJ
-iQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa
-/FHtaMbQbqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJ
-jnIFHovdRIWCQtBJwB1g8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnI
-HmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYVHDGA76oYa8J719rO+TMg1fW9ajMtgQT7
-sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi0XPnj3pDAgMBAAGjgZ0w
-gZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQF
-MAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCsw
-KaAnoCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsG
-AQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0L
-URYD7xh8yOOvaliTFGCRsoTciE6+OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXO
-H0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cnCDpOGR86p1hcF895P4vkp9Mm
-I50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/53CYNv6ZHdAbY
-iNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc
-f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 07:56:22:a4:e8:d4:8a:89:4d:f4:13:c8:f0:f8:ea:a5
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=US, O=SecureTrust Corporation, CN=Secure Global CA
- Validity
- Not Before: Nov 7 19:42:28 2006 GMT
- Not After : Dec 31 19:52:06 2029 GMT
- Subject: C=US, O=SecureTrust Corporation, CN=Secure Global CA
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:af:35:2e:d8:ac:6c:55:69:06:71:e5:13:68:24:
- b3:4f:d8:cc:21:47:f8:f1:60:38:89:89:03:e9:bd:
- ea:5e:46:53:09:dc:5c:f5:5a:e8:f7:45:2a:02:eb:
- 31:61:d7:29:33:4c:ce:c7:7c:0a:37:7e:0f:ba:32:
- 98:e1:1d:97:af:8f:c7:dc:c9:38:96:f3:db:1a:fc:
- 51:ed:68:c6:d0:6e:a4:7c:24:d1:ae:42:c8:96:50:
- 63:2e:e0:fe:75:fe:98:a7:5f:49:2e:95:e3:39:33:
- 64:8e:1e:a4:5f:90:d2:67:3c:b2:d9:fe:41:b9:55:
- a7:09:8e:72:05:1e:8b:dd:44:85:82:42:d0:49:c0:
- 1d:60:f0:d1:17:2c:95:eb:f6:a5:c1:92:a3:c5:c2:
- a7:08:60:0d:60:04:10:96:79:9e:16:34:e6:a9:b6:
- fa:25:45:39:c8:1e:65:f9:93:f5:aa:f1:52:dc:99:
- 98:3d:a5:86:1a:0c:35:33:fa:4b:a5:04:06:15:1c:
- 31:80:ef:aa:18:6b:c2:7b:d7:da:ce:f9:33:20:d5:
- f5:bd:6a:33:2d:81:04:fb:b0:5c:d4:9c:a3:e2:5c:
- 1d:e3:a9:42:75:5e:7b:d4:77:ef:39:54:ba:c9:0a:
- 18:1b:12:99:49:2f:88:4b:fd:50:62:d1:73:e7:8f:
- 7a:43
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- 1.3.6.1.4.1.311.20.2:
- ...C.A
- X509v3 Key Usage:
- Digital Signature, Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- AF:44:04:C2:41:7E:48:83:DB:4E:39:02:EC:EC:84:7A:E6:CE:C9:A4
- X509v3 CRL Distribution Points:
-
- Full Name:
- URI:http://crl.securetrust.com/SGCA.crl
-
- 1.3.6.1.4.1.311.21.1:
- ...
- Signature Algorithm: sha1WithRSAEncryption
- 63:1a:08:40:7d:a4:5e:53:0d:77:d8:7a:ae:1f:0d:0b:51:16:
- 03:ef:18:7c:c8:e3:af:6a:58:93:14:60:91:b2:84:dc:88:4e:
- be:39:8a:3a:f3:e6:82:89:5d:01:37:b3:ab:24:a4:15:0e:92:
- 35:5a:4a:44:5e:4e:57:fa:75:ce:1f:48:ce:66:f4:3c:40:26:
- 92:98:6c:1b:ee:24:46:0c:17:b3:52:a5:db:a5:91:91:cf:37:
- d3:6f:e7:27:08:3a:4e:19:1f:3a:a7:58:5c:17:cf:79:3f:8b:
- e4:a7:d3:26:23:9d:26:0f:58:69:fc:47:7e:b2:d0:8d:8b:93:
- bf:29:4f:43:69:74:76:67:4b:cf:07:8c:e6:02:f7:b5:e1:b4:
- 43:b5:4b:2d:14:9f:f9:dc:26:0d:bf:a6:47:74:06:d8:88:d1:
- 3a:29:30:84:ce:d2:39:80:62:1b:a8:c7:57:49:bc:6a:55:51:
- 67:15:4a:be:35:07:e4:d5:75:98:37:79:30:14:db:29:9d:6c:
- c5:69:cc:47:55:a2:30:f7:cc:5c:7f:c2:c3:98:1c:6b:4e:16:
- 80:eb:7a:78:65:45:a2:00:1a:af:0c:0d:55:64:34:48:b8:92:
- b9:f1:b4:50:29:f2:4f:23:1f:da:6c:ac:1f:44:e1:dd:23:78:
- 51:5b:c7:16
-SHA1 Fingerprint=3A:44:73:5A:E5:81:90:1F:24:86:61:46:1E:3B:9C:C4:5F:F5:3A:1B
diff --git a/luni/src/main/files/cacerts/bf64f35b.0 b/luni/src/main/files/cacerts/bf64f35b.0
deleted file mode 100644
index f75710b..0000000
--- a/luni/src/main/files/cacerts/bf64f35b.0
+++ /dev/null
@@ -1,91 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMC
-VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0
-Lm5ldC9DUFMgaXMgaW5jb3Jwb3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMW
-KGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsGA1UEAxMkRW50cnVzdCBSb290IENl
-cnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0MloXDTI2MTEyNzIw
-NTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMTkw
-NwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSBy
-ZWZlcmVuY2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNV
-BAMTJEVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJ
-KoZIhvcNAQEBBQADggEPADCCAQoCggEBALaVtkNC+sZtKm9I35RMOVcF7sN5EUFo
-Nu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYszA9u3g3s+IIRe7bJWKKf4
-4LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOwwCj0Yzfv9
-KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGI
-rb68j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi
-94DkZfs0Nw4pgHBNrziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOB
-sDCBrTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAi
-gA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1MzQyWjAfBgNVHSMEGDAWgBRo
-kORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DHhmak8fdLQ/uE
-vW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
-A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9t
-O1KzKtvn1ISMY/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6Zua
-AGAT/3B+XxFNSRuzFVJ7yVTav52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP
-9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTSW3iDVuycNsMm4hH2Z0kdkquM++v/
-eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0tHuu2guQOHXvgR1m
-0vdXcDazv/wor3ElhVsT/h5/WrQ8
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1164660820 (0x456b5054)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=US, O=Entrust, Inc., OU=www.entrust.net/CPS is incorporated by reference, OU=(c) 2006 Entrust, Inc., CN=Entrust Root Certification Authority
- Validity
- Not Before: Nov 27 20:23:42 2006 GMT
- Not After : Nov 27 20:53:42 2026 GMT
- Subject: C=US, O=Entrust, Inc., OU=www.entrust.net/CPS is incorporated by reference, OU=(c) 2006 Entrust, Inc., CN=Entrust Root Certification Authority
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:b6:95:b6:43:42:fa:c6:6d:2a:6f:48:df:94:4c:
- 39:57:05:ee:c3:79:11:41:68:36:ed:ec:fe:9a:01:
- 8f:a1:38:28:fc:f7:10:46:66:2e:4d:1e:1a:b1:1a:
- 4e:c6:d1:c0:95:88:b0:c9:ff:31:8b:33:03:db:b7:
- 83:7b:3e:20:84:5e:ed:b2:56:28:a7:f8:e0:b9:40:
- 71:37:c5:cb:47:0e:97:2a:68:c0:22:95:62:15:db:
- 47:d9:f5:d0:2b:ff:82:4b:c9:ad:3e:de:4c:db:90:
- 80:50:3f:09:8a:84:00:ec:30:0a:3d:18:cd:fb:fd:
- 2a:59:9a:23:95:17:2c:45:9e:1f:6e:43:79:6d:0c:
- 5c:98:fe:48:a7:c5:23:47:5c:5e:fd:6e:e7:1e:b4:
- f6:68:45:d1:86:83:5b:a2:8a:8d:b1:e3:29:80:fe:
- 25:71:88:ad:be:bc:8f:ac:52:96:4b:aa:51:8d:e4:
- 13:31:19:e8:4e:4d:9f:db:ac:b3:6a:d5:bc:39:54:
- 71:ca:7a:7a:7f:90:dd:7d:1d:80:d9:81:bb:59:26:
- c2:11:fe:e6:93:e2:f7:80:e4:65:fb:34:37:0e:29:
- 80:70:4d:af:38:86:2e:9e:7f:57:af:9e:17:ae:eb:
- 1c:cb:28:21:5f:b6:1c:d8:e7:a2:04:22:f9:d3:da:
- d8:cb
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Private Key Usage Period:
- Not Before: Nov 27 20:23:42 2006 GMT, Not After: Nov 27 20:53:42 2026 GMT
- X509v3 Authority Key Identifier:
- keyid:68:90:E4:67:A4:A6:53:80:C7:86:66:A4:F1:F7:4B:43:FB:84:BD:6D
-
- X509v3 Subject Key Identifier:
- 68:90:E4:67:A4:A6:53:80:C7:86:66:A4:F1:F7:4B:43:FB:84:BD:6D
- 1.2.840.113533.7.65.0:
- 0...V7.1:4.0....
- Signature Algorithm: sha1WithRSAEncryption
- 93:d4:30:b0:d7:03:20:2a:d0:f9:63:e8:91:0c:05:20:a9:5f:
- 19:ca:7b:72:4e:d4:b1:db:d0:96:fb:54:5a:19:2c:0c:08:f7:
- b2:bc:85:a8:9d:7f:6d:3b:52:b3:2a:db:e7:d4:84:8c:63:f6:
- 0f:cb:26:01:91:50:6c:f4:5f:14:e2:93:74:c0:13:9e:30:3a:
- 50:e3:b4:60:c5:1c:f0:22:44:8d:71:47:ac:c8:1a:c9:e9:9b:
- 9a:00:60:13:ff:70:7e:5f:11:4d:49:1b:b3:15:52:7b:c9:54:
- da:bf:9d:95:af:6b:9a:d8:9e:e9:f1:e4:43:8d:e2:11:44:3a:
- bf:af:bd:83:42:73:52:8b:aa:bb:a7:29:cf:f5:64:1c:0a:4d:
- d1:bc:aa:ac:9f:2a:d0:ff:7f:7f:da:7d:ea:b1:ed:30:25:c1:
- 84:da:34:d2:5b:78:83:56:ec:9c:36:c3:26:e2:11:f6:67:49:
- 1d:92:ab:8c:fb:eb:ff:7a:ee:85:4a:a7:50:80:f0:a7:5c:4a:
- 94:2e:5f:05:99:3c:52:41:e0:cd:b4:63:cf:01:43:ba:9c:83:
- dc:8f:60:3b:f3:5a:b4:b4:7b:ae:da:0b:90:38:75:ef:81:1d:
- 66:d2:f7:57:70:36:b3:bf:fc:28:af:71:25:85:5b:13:fe:1e:
- 7f:5a:b4:3c
-SHA1 Fingerprint=B3:1E:B1:B7:40:E3:6C:84:02:DA:DC:37:D4:4D:F5:D4:67:49:52:F9
diff --git a/luni/src/main/files/cacerts/c3a6a9ad.0 b/luni/src/main/files/cacerts/c3a6a9ad.0
deleted file mode 100644
index e3d605c..0000000
--- a/luni/src/main/files/cacerts/c3a6a9ad.0
+++ /dev/null
@@ -1,80 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDzzCCAregAwIBAgIDAWweMA0GCSqGSIb3DQEBBQUAMIGNMQswCQYDVQQGEwJB
-VDFIMEYGA1UECgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBp
-bSBlbGVrdHIuIERhdGVudmVya2VociBHbWJIMRkwFwYDVQQLDBBBLVRydXN0LW5R
-dWFsLTAzMRkwFwYDVQQDDBBBLVRydXN0LW5RdWFsLTAzMB4XDTA1MDgxNzIyMDAw
-MFoXDTE1MDgxNzIyMDAwMFowgY0xCzAJBgNVBAYTAkFUMUgwRgYDVQQKDD9BLVRy
-dXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4gRGF0ZW52
-ZXJrZWhyIEdtYkgxGTAXBgNVBAsMEEEtVHJ1c3QtblF1YWwtMDMxGTAXBgNVBAMM
-EEEtVHJ1c3QtblF1YWwtMDMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
-AQCtPWFuA/OQO8BBC4SAzewqo51ru27CQoT3URThoKgtUaNR8t4j8DRE/5TrzAUj
-lUC5B3ilJfYKvUWG6Nm9wASOhURh73+nyfrBJcyFLGM/BWBzSQXgYHiVEEvc+RFZ
-znF/QJuKqiTfC0Li21a8StKlDJu3Qz7dg9MmEALP6iPESU7l0+m0iKsMrmKS1GWH
-2WrX9IWf5DMiJaXlyDO6w8dB3F/GaswADm0yqLaHNgBid5seHzTLkDx4iHQF63n1
-k3Flyp3HaxgtPVxO59X4PzF9j4fsCiIvI+n+u33J4PTs63zEsMMtYrWacdaxaujs
-2e3Vcuy+VwHOBVWf3tFgiBCzAgMBAAGjNjA0MA8GA1UdEwEB/wQFMAMBAf8wEQYD
-VR0OBAoECERqlWdVeRFPMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOC
-AQEAVdRU0VlIXLOThaq/Yy/kgM40ozRiPvbY7meIMQQDbwvUB/tOdQ/TLtPAF8fG
-KOwGDREkDg6lXb+MshOWcdzUzg4NCmgybLlBMRmrsQd7TZjTXLDR8KdCoLXEjq/+
-8T/0709GAHbrAvv5ndJAlseIOrifEXnzgGWovR/TeIGgUUw3tKZdJXDRZslo+S4R
-FGjxVJgIrCaSD96JntT6s3kr0qN51OyLrIdTaEJMUVF0HhsnLuP1Hyl0Te2v9+GS
-mYHovjrHF1D2t8b8m7CKa9aIA5GPBnc6hQLdmNVDeD/GMBWsm2vLV7eJUYs66MmE
-DNuxUCAKGkq6ahq97BvIxYSazQ==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 93214 (0x16c1e)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=AT, O=A-Trust Ges. f. Sicherheitssysteme im elektr. Datenverkehr GmbH, OU=A-Trust-nQual-03, CN=A-Trust-nQual-03
- Validity
- Not Before: Aug 17 22:00:00 2005 GMT
- Not After : Aug 17 22:00:00 2015 GMT
- Subject: C=AT, O=A-Trust Ges. f. Sicherheitssysteme im elektr. Datenverkehr GmbH, OU=A-Trust-nQual-03, CN=A-Trust-nQual-03
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:ad:3d:61:6e:03:f3:90:3b:c0:41:0b:84:80:cd:
- ec:2a:a3:9d:6b:bb:6e:c2:42:84:f7:51:14:e1:a0:
- a8:2d:51:a3:51:f2:de:23:f0:34:44:ff:94:eb:cc:
- 05:23:95:40:b9:07:78:a5:25:f6:0a:bd:45:86:e8:
- d9:bd:c0:04:8e:85:44:61:ef:7f:a7:c9:fa:c1:25:
- cc:85:2c:63:3f:05:60:73:49:05:e0:60:78:95:10:
- 4b:dc:f9:11:59:ce:71:7f:40:9b:8a:aa:24:df:0b:
- 42:e2:db:56:bc:4a:d2:a5:0c:9b:b7:43:3e:dd:83:
- d3:26:10:02:cf:ea:23:c4:49:4e:e5:d3:e9:b4:88:
- ab:0c:ae:62:92:d4:65:87:d9:6a:d7:f4:85:9f:e4:
- 33:22:25:a5:e5:c8:33:ba:c3:c7:41:dc:5f:c6:6a:
- cc:00:0e:6d:32:a8:b6:87:36:00:62:77:9b:1e:1f:
- 34:cb:90:3c:78:88:74:05:eb:79:f5:93:71:65:ca:
- 9d:c7:6b:18:2d:3d:5c:4e:e7:d5:f8:3f:31:7d:8f:
- 87:ec:0a:22:2f:23:e9:fe:bb:7d:c9:e0:f4:ec:eb:
- 7c:c4:b0:c3:2d:62:b5:9a:71:d6:b1:6a:e8:ec:d9:
- ed:d5:72:ec:be:57:01:ce:05:55:9f:de:d1:60:88:
- 10:b3
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- 44:6A:95:67:55:79:11:4F
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- Signature Algorithm: sha1WithRSAEncryption
- 55:d4:54:d1:59:48:5c:b3:93:85:aa:bf:63:2f:e4:80:ce:34:
- a3:34:62:3e:f6:d8:ee:67:88:31:04:03:6f:0b:d4:07:fb:4e:
- 75:0f:d3:2e:d3:c0:17:c7:c6:28:ec:06:0d:11:24:0e:0e:a5:
- 5d:bf:8c:b2:13:96:71:dc:d4:ce:0e:0d:0a:68:32:6c:b9:41:
- 31:19:ab:b1:07:7b:4d:98:d3:5c:b0:d1:f0:a7:42:a0:b5:c4:
- 8e:af:fe:f1:3f:f4:ef:4f:46:00:76:eb:02:fb:f9:9d:d2:40:
- 96:c7:88:3a:b8:9f:11:79:f3:80:65:a8:bd:1f:d3:78:81:a0:
- 51:4c:37:b4:a6:5d:25:70:d1:66:c9:68:f9:2e:11:14:68:f1:
- 54:98:08:ac:26:92:0f:de:89:9e:d4:fa:b3:79:2b:d2:a3:79:
- d4:ec:8b:ac:87:53:68:42:4c:51:51:74:1e:1b:27:2e:e3:f5:
- 1f:29:74:4d:ed:af:f7:e1:92:99:81:e8:be:3a:c7:17:50:f6:
- b7:c6:fc:9b:b0:8a:6b:d6:88:03:91:8f:06:77:3a:85:02:dd:
- 98:d5:43:78:3f:c6:30:15:ac:9b:6b:cb:57:b7:89:51:8b:3a:
- e8:c9:84:0c:db:b1:50:20:0a:1a:4a:ba:6a:1a:bd:ec:1b:c8:
- c5:84:9a:cd
-SHA1 Fingerprint=D3:C0:63:F2:19:ED:07:3E:34:AD:5D:75:0B:32:76:29:FF:D5:9A:F2
diff --git a/luni/src/main/files/cacerts/c491639e.0 b/luni/src/main/files/cacerts/c491639e.0
deleted file mode 100644
index ec9e422..0000000
--- a/luni/src/main/files/cacerts/c491639e.0
+++ /dev/null
@@ -1,53 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQsw
-CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu
-ZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3Qg
-RzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQGEwJV
-UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu
-Y29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQBgcq
-hkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJf
-Zn4f5dwbRXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17Q
-RSAPWXYQ1qAk8C3eNvJsKTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/
-BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgFUaFNN6KDec6NHSrkhDAKBggqhkjOPQQD
-AwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5FyYZ5eEJJZVrmDxxDnOOlY
-JjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy1vUhZscv
-6pZjamVFkpUBtA==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 0b:a1:5a:fa:1d:df:a0:b5:49:44:af:cd:24:a0:6c:ec
- Signature Algorithm: ecdsa-with-SHA384
- Issuer: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Assured ID Root G3
- Validity
- Not Before: Aug 1 12:00:00 2013 GMT
- Not After : Jan 15 12:00:00 2038 GMT
- Subject: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Assured ID Root G3
- Subject Public Key Info:
- Public Key Algorithm: id-ecPublicKey
- Public-Key: (384 bit)
- pub:
- 04:19:e7:bc:ac:44:65:ed:cd:b8:3f:58:fb:8d:b1:
- 57:a9:44:2d:05:15:f2:ef:0b:ff:10:74:9f:b5:62:
- 52:5f:66:7e:1f:e5:dc:1b:45:79:0b:cc:c6:53:0a:
- 9d:8d:5d:02:d9:a9:59:de:02:5a:f6:95:2a:0e:8d:
- 38:4a:8a:49:c6:bc:c6:03:38:07:5f:55:da:7e:09:
- 6e:e2:7f:5e:d0:45:20:0f:59:76:10:d6:a0:24:f0:
- 2d:de:36:f2:6c:29:39
- ASN1 OID: secp384r1
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Digital Signature, Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- CB:D0:BD:A9:E1:98:05:51:A1:4D:37:A2:83:79:CE:8D:1D:2A:E4:84
- Signature Algorithm: ecdsa-with-SHA384
- 30:64:02:30:25:a4:81:45:02:6b:12:4b:75:74:4f:c8:23:e3:
- 70:f2:75:72:de:7c:89:f0:cf:91:72:61:9e:5e:10:92:59:56:
- b9:83:c7:10:e7:38:e9:58:26:36:7d:d5:e4:34:86:39:02:30:
- 7c:36:53:f0:30:e5:62:63:3a:99:e2:b6:a3:3b:9b:34:fa:1e:
- da:10:92:71:5e:91:13:a7:dd:a4:6e:92:cc:32:d6:f5:21:66:
- c7:2f:ea:96:63:6a:65:45:92:95:01:b4
-SHA1 Fingerprint=F5:17:A2:4F:9A:48:C6:C9:F8:A2:00:26:9F:DC:0F:48:2C:AB:30:89
diff --git a/luni/src/main/files/cacerts/c51c224c.0 b/luni/src/main/files/cacerts/c51c224c.0
deleted file mode 100644
index 6bf7f22..0000000
--- a/luni/src/main/files/cacerts/c51c224c.0
+++ /dev/null
@@ -1,80 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBF
-MQswCQYDVQQGEwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQL
-ExNUcnVzdGlzIEZQUyBSb290IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTEx
-MzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNVBAoTD1RydXN0aXMgTGltaXRlZDEc
-MBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQRUN+
-AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihH
-iTHcDnlkH5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjj
-vSkCqPoc4Vu5g6hBSLwacY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA
-0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zto3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlB
-OrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEAAaNTMFEwDwYDVR0TAQH/
-BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAdBgNVHQ4E
-FgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01
-GX2cGE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmW
-zaD+vkAMXBJV+JOCyinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP4
-1BIy+Q7DsdwyhEQsb8tGD+pmQQ9P8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZE
-f1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHVl/9D7S3B2l0pKoU/rGXuhg8F
-jZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYliB6XzCGcKQEN
-ZetX2fNXlrtIzYE=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 1b:1f:ad:b6:20:f9:24:d3:36:6b:f7:c7:f1:8c:a0:59
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=GB, O=Trustis Limited, OU=Trustis FPS Root CA
- Validity
- Not Before: Dec 23 12:14:06 2003 GMT
- Not After : Jan 21 11:36:54 2024 GMT
- Subject: C=GB, O=Trustis Limited, OU=Trustis FPS Root CA
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c5:50:7b:9e:3b:35:d0:df:c4:8c:cd:8e:9b:ed:
- a3:c0:36:99:f4:42:ea:a7:3e:80:83:0f:a6:a7:59:
- 87:c9:90:45:43:7e:00:ea:86:79:2a:03:bd:3d:37:
- 99:89:66:b7:e5:8a:56:86:93:9c:68:4b:68:04:8c:
- 93:93:02:3e:30:d2:37:3a:22:61:89:1c:85:4e:7d:
- 8f:d5:af:7b:35:f6:7e:28:47:89:31:dc:0e:79:64:
- 1f:99:d2:5b:ba:fe:7f:60:bf:ad:eb:e7:3c:38:29:
- 6a:2f:e5:91:0b:55:ff:ec:6f:58:d5:2d:c9:de:4c:
- 66:71:8f:0c:d7:04:da:07:e6:1e:18:e3:bd:29:02:
- a8:fa:1c:e1:5b:b9:83:a8:41:48:bc:1a:71:8d:e7:
- 62:e5:2d:b2:eb:df:7c:cf:db:ab:5a:ca:31:f1:4c:
- 22:f3:05:13:f7:82:f9:73:79:0c:be:d7:4b:1c:c0:
- d1:15:3c:93:41:64:d1:e6:be:23:17:22:00:89:5e:
- 1f:6b:a5:ac:6e:a7:4b:8c:ed:a3:72:e6:af:63:4d:
- 2f:85:d2:14:35:9a:2e:4e:8c:ea:32:98:28:86:a1:
- 91:09:41:3a:b4:e1:e3:f2:fa:f0:c9:0a:a2:41:dd:
- a9:e3:03:c7:88:15:3b:1c:d4:1a:94:d7:9f:64:59:
- 12:6d
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Authority Key Identifier:
- keyid:BA:FA:71:25:79:8B:57:41:25:21:86:0B:71:EB:B2:64:0E:8B:21:67
-
- X509v3 Subject Key Identifier:
- BA:FA:71:25:79:8B:57:41:25:21:86:0B:71:EB:B2:64:0E:8B:21:67
- Signature Algorithm: sha1WithRSAEncryption
- 7e:58:ff:fd:35:19:7d:9c:18:4f:9e:b0:2b:bc:8e:8c:14:ff:
- 2c:a0:da:47:5b:c3:ef:81:2d:af:05:ea:74:48:5b:f3:3e:4e:
- 07:c7:6d:c5:b3:93:cf:22:35:5c:b6:3f:75:27:5f:09:96:cd:
- a0:fe:be:40:0c:5c:12:55:f8:93:82:ca:29:e9:5e:3f:56:57:
- 8b:38:36:f7:45:1a:4c:28:cd:9e:41:b8:ed:56:4c:84:a4:40:
- c8:b8:b0:a5:2b:69:70:04:6a:c3:f8:d4:12:32:f9:0e:c3:b1:
- dc:32:84:44:2c:6f:cb:46:0f:ea:66:41:0f:4f:f1:58:a5:a6:
- 0d:0d:0f:61:de:a5:9e:5d:7d:65:a1:3c:17:e7:a8:55:4e:ef:
- a0:c7:ed:c6:44:7f:54:f5:a3:e0:8f:f0:7c:55:22:8f:29:b6:
- 81:a3:e1:6d:4e:2c:1b:80:67:ec:ad:20:9f:0c:62:61:d5:97:
- ff:43:ed:2d:c1:da:5d:29:2a:85:3f:ac:65:ee:86:0f:05:8d:
- 90:5f:df:ee:9f:f4:bf:ee:1d:fb:98:e4:7f:90:2b:84:78:10:
- 0e:6c:49:53:ef:15:5b:65:46:4a:5d:af:ba:fb:3a:72:1d:cd:
- f6:25:88:1e:97:cc:21:9c:29:01:0d:65:eb:57:d9:f3:57:96:
- bb:48:cd:81
-SHA1 Fingerprint=3B:C0:38:0B:33:C3:F6:A6:0C:86:15:22:93:D9:DF:F5:4B:81:C0:04
diff --git a/luni/src/main/files/cacerts/c527e4ab.0 b/luni/src/main/files/cacerts/c527e4ab.0
deleted file mode 100644
index ee66156..0000000
--- a/luni/src/main/files/cacerts/c527e4ab.0
+++ /dev/null
@@ -1,75 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
-cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
-LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
-aWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
-VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
-aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
-bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
-IENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
-LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK3LpRFpxlmr8Y+1
-GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaStBO3IFsJ
-+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0Gbd
-U6LM8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLm
-NxdLMEYH5IBtptiWLugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XY
-ufTsgsbSPZUd5cBPhMnZo0QoBmrXRazwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/
-ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAj/ola09b5KROJ1WrIhVZPMq1
-CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXttmhwwjIDLk5Mq
-g6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm
-fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c
-2NU8Qh0XwRJdRTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/
-bLvSHgCwIe34QWKCudiyxLtGUPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 1 (0x0)
- Serial Number:
- ec:a0:a7:8b:6e:75:6a:01:cf:c4:7c:cc:2f:94:5e:d7
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 1999 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 4 Public Primary Certification Authority - G3
- Validity
- Not Before: Oct 1 00:00:00 1999 GMT
- Not After : Jul 16 23:59:59 2036 GMT
- Subject: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 1999 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 4 Public Primary Certification Authority - G3
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:ad:cb:a5:11:69:c6:59:ab:f1:8f:b5:19:0f:56:
- ce:cc:b5:1f:20:e4:9e:26:25:4b:e0:73:65:89:59:
- de:d0:83:e4:f5:0f:b5:bb:ad:f1:7c:e8:21:fc:e4:
- e8:0c:ee:7c:45:22:19:76:92:b4:13:b7:20:5b:09:
- fa:61:ae:a8:f2:a5:8d:85:c2:2a:d6:de:66:36:d2:
- 9b:02:f4:a8:92:60:7c:9c:69:b4:8f:24:1e:d0:86:
- 52:f6:32:9c:41:58:1e:22:bd:cd:45:62:95:08:6e:
- d0:66:dd:53:a2:cc:f0:10:dc:54:73:8b:04:a1:46:
- 33:33:5c:17:40:b9:9e:4d:d3:f3:be:55:83:e8:b1:
- 89:8e:5a:7c:9a:96:22:90:3b:88:25:f2:d2:53:88:
- 02:0c:0b:78:f2:e6:37:17:4b:30:46:07:e4:80:6d:
- a6:d8:96:2e:e8:2c:f8:11:b3:38:0d:66:a6:9b:ea:
- c9:23:5b:db:8e:e2:f3:13:8e:1a:59:2d:aa:02:f0:
- ec:a4:87:66:dc:c1:3f:f5:d8:b9:f4:ec:82:c6:d2:
- 3d:95:1d:e5:c0:4f:84:c9:d9:a3:44:28:06:6a:d7:
- 45:ac:f0:6b:6a:ef:4e:5f:f8:11:82:1e:38:63:34:
- 66:50:d4:3e:93:73:fa:30:c3:66:ad:ff:93:2d:97:
- ef:03
- Exponent: 65537 (0x10001)
- Signature Algorithm: sha1WithRSAEncryption
- 8f:fa:25:6b:4f:5b:e4:a4:4e:27:55:ab:22:15:59:3c:ca:b5:
- 0a:d4:4a:db:ab:dd:a1:5f:53:c5:a0:57:39:c2:ce:47:2b:be:
- 3a:c8:56:bf:c2:d9:27:10:3a:b1:05:3c:c0:77:31:bb:3a:d3:
- 05:7b:6d:9a:1c:30:8c:80:cb:93:93:2a:83:ab:05:51:82:02:
- 00:11:67:6b:f3:88:61:47:5f:03:93:d5:5b:0d:e0:f1:d4:a1:
- 32:35:85:b2:3a:db:b0:82:ab:d1:cb:0a:bc:4f:8c:5b:c5:4b:
- 00:3b:1f:2a:82:a6:7e:36:85:dc:7e:3c:67:00:b5:e4:3b:52:
- e0:a8:eb:5d:15:f9:c6:6d:f0:ad:1d:0e:85:b7:a9:9a:73:14:
- 5a:5b:8f:41:28:c0:d5:e8:2d:4d:a4:5e:cd:aa:d9:ed:ce:dc:
- d8:d5:3c:42:1d:17:c1:12:5d:45:38:c3:38:f3:fc:85:2e:83:
- 46:48:b2:d7:20:5f:92:36:8f:e7:79:0f:98:5e:99:e8:f0:d0:
- a4:bb:f5:53:bd:2a:ce:59:b0:af:6e:7f:6c:bb:d2:1e:00:b0:
- 21:ed:f8:41:62:82:b9:d8:b2:c4:bb:46:50:f3:31:c5:8f:01:
- a8:74:eb:f5:78:27:da:e7:f7:66:43:f3:9e:83:3e:20:aa:c3:
- 35:60:91:ce
-SHA1 Fingerprint=C8:EC:8C:87:92:69:CB:4B:AB:39:E9:8D:7E:57:67:F3:14:95:73:9D
diff --git a/luni/src/main/files/cacerts/c7e2a638.0 b/luni/src/main/files/cacerts/c7e2a638.0
deleted file mode 100644
index c5a3c92..0000000
--- a/luni/src/main/files/cacerts/c7e2a638.0
+++ /dev/null
@@ -1,82 +0,0 @@
------BEGIN CERTIFICATE-----
-MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCB
-mDELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsT
-MChjKSAyMDA4IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s
-eTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv
-cml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIzNTk1OVowgZgxCzAJ
-BgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg
-MjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0
-BgNVBAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
-LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz
-+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5jK/BGvESyiaHAKAxJcCGVn2TAppMSAmUm
-hsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdEc5IiaacDiGydY8hS2pgn
-5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3CIShwiP/W
-JmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exAL
-DmKudlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZC
-huOl1UcCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw
-HQYDVR0OBBYEFMR5yo6hTgMdHNxr2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IB
-AQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9cr5HqQ6XErhK8WTTOd8lNNTB
-zU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbEAp7aDHdlDkQN
-kv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD
-AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUH
-SJsMC8tJP33st/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2G
-spki4cErx5z481+oghLrGREt
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 15:ac:6e:94:19:b2:79:4b:41:f6:27:a9:c3:18:0f:1f
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, O=GeoTrust Inc., OU=(c) 2008 GeoTrust Inc. - For authorized use only, CN=GeoTrust Primary Certification Authority - G3
- Validity
- Not Before: Apr 2 00:00:00 2008 GMT
- Not After : Dec 1 23:59:59 2037 GMT
- Subject: C=US, O=GeoTrust Inc., OU=(c) 2008 GeoTrust Inc. - For authorized use only, CN=GeoTrust Primary Certification Authority - G3
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:dc:e2:5e:62:58:1d:33:57:39:32:33:fa:eb:cb:
- 87:8c:a7:d4:4a:dd:06:88:ea:64:8e:31:98:a5:38:
- 90:1e:98:cf:2e:63:2b:f0:46:bc:44:b2:89:a1:c0:
- 28:0c:49:70:21:95:9f:64:c0:a6:93:12:02:65:26:
- 86:c6:a5:89:f0:fa:d7:84:a0:70:af:4f:1a:97:3f:
- 06:44:d5:c9:eb:72:10:7d:e4:31:28:fb:1c:61:e6:
- 28:07:44:73:92:22:69:a7:03:88:6c:9d:63:c8:52:
- da:98:27:e7:08:4c:70:3e:b4:c9:12:c1:c5:67:83:
- 5d:33:f3:03:11:ec:6a:d0:53:e2:d1:ba:36:60:94:
- 80:bb:61:63:6c:5b:17:7e:df:40:94:1e:ab:0d:c2:
- 21:28:70:88:ff:d6:26:6c:6c:60:04:25:4e:55:7e:
- 7d:ef:bf:94:48:de:b7:1d:dd:70:8d:05:5f:88:a5:
- 9b:f2:c2:ee:ea:d1:40:41:6d:62:38:1d:56:06:c5:
- 03:47:51:20:19:fc:7b:10:0b:0e:62:ae:76:55:bf:
- 5f:77:be:3e:49:01:53:3d:98:25:03:76:24:5a:1d:
- b4:db:89:ea:79:e5:b6:b3:3b:3f:ba:4c:28:41:7f:
- 06:ac:6a:8e:c1:d0:f6:05:1d:7d:e6:42:86:e3:a5:
- d5:47
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- C4:79:CA:8E:A1:4E:03:1D:1C:DC:6B:DB:31:5B:94:3E:3F:30:7F:2D
- Signature Algorithm: sha256WithRSAEncryption
- 2d:c5:13:cf:56:80:7b:7a:78:bd:9f:ae:2c:99:e7:ef:da:df:
- 94:5e:09:69:a7:e7:6e:68:8c:bd:72:be:47:a9:0e:97:12:b8:
- 4a:f1:64:d3:39:df:25:34:d4:c1:cd:4e:81:f0:0f:04:c4:24:
- b3:34:96:c6:a6:aa:30:df:68:61:73:d7:f9:8e:85:89:ef:0e:
- 5e:95:28:4a:2a:27:8f:10:8e:2e:7c:86:c4:02:9e:da:0c:77:
- 65:0e:44:0d:92:fd:fd:b3:16:36:fa:11:0d:1d:8c:0e:07:89:
- 6a:29:56:f7:72:f4:dd:15:9c:77:35:66:57:ab:13:53:d8:8e:
- c1:40:c5:d7:13:16:5a:72:c7:b7:69:01:c4:7a:b1:83:01:68:
- 7d:8d:41:a1:94:18:c1:25:5c:fc:f0:fe:83:02:87:7c:0d:0d:
- cf:2e:08:5c:4a:40:0d:3e:ec:81:61:e6:24:db:ca:e0:0e:2d:
- 07:b2:3e:56:dc:8d:f5:41:85:07:48:9b:0c:0b:cb:49:3f:7d:
- ec:b7:fd:cb:8d:67:89:1a:ab:ed:bb:1e:a3:00:08:08:17:2a:
- 82:5c:31:5d:46:8a:2d:0f:86:9b:74:d9:45:fb:d4:40:b1:7a:
- aa:68:2d:86:b2:99:22:e1:c1:2b:c7:9c:f8:f3:5f:a8:82:12:
- eb:19:11:2d
-SHA1 Fingerprint=03:9E:ED:B8:0B:E7:A0:3C:69:53:89:3B:20:D2:D9:32:3A:4C:2A:FD
diff --git a/luni/src/main/files/cacerts/c90bc37d.0 b/luni/src/main/files/cacerts/c90bc37d.0
deleted file mode 100644
index e4460c1..0000000
--- a/luni/src/main/files/cacerts/c90bc37d.0
+++ /dev/null
@@ -1,80 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh
-MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH
-MjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT
-MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
-b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG
-9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI
-2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx
-1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ
-q2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz
-tCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ
-vIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP
-BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV
-5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY
-1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4
-NeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG
-Fdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91
-8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe
-pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
-MrY=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 03:3a:f1:e6:a7:11:a9:a0:bb:28:64:b1:1d:09:fa:e5
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Global Root G2
- Validity
- Not Before: Aug 1 12:00:00 2013 GMT
- Not After : Jan 15 12:00:00 2038 GMT
- Subject: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Global Root G2
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:bb:37:cd:34:dc:7b:6b:c9:b2:68:90:ad:4a:75:
- ff:46:ba:21:0a:08:8d:f5:19:54:c9:fb:88:db:f3:
- ae:f2:3a:89:91:3c:7a:e6:ab:06:1a:6b:cf:ac:2d:
- e8:5e:09:24:44:ba:62:9a:7e:d6:a3:a8:7e:e0:54:
- 75:20:05:ac:50:b7:9c:63:1a:6c:30:dc:da:1f:19:
- b1:d7:1e:de:fd:d7:e0:cb:94:83:37:ae:ec:1f:43:
- 4e:dd:7b:2c:d2:bd:2e:a5:2f:e4:a9:b8:ad:3a:d4:
- 99:a4:b6:25:e9:9b:6b:00:60:92:60:ff:4f:21:49:
- 18:f7:67:90:ab:61:06:9c:8f:f2:ba:e9:b4:e9:92:
- 32:6b:b5:f3:57:e8:5d:1b:cd:8c:1d:ab:95:04:95:
- 49:f3:35:2d:96:e3:49:6d:dd:77:e3:fb:49:4b:b4:
- ac:55:07:a9:8f:95:b3:b4:23:bb:4c:6d:45:f0:f6:
- a9:b2:95:30:b4:fd:4c:55:8c:27:4a:57:14:7c:82:
- 9d:cd:73:92:d3:16:4a:06:0c:8c:50:d1:8f:1e:09:
- be:17:a1:e6:21:ca:fd:83:e5:10:bc:83:a5:0a:c4:
- 67:28:f6:73:14:14:3d:46:76:c3:87:14:89:21:34:
- 4d:af:0f:45:0c:a6:49:a1:ba:bb:9c:c5:b1:33:83:
- 29:85
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Digital Signature, Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- 4E:22:54:20:18:95:E6:E3:6E:E6:0F:FA:FA:B9:12:ED:06:17:8F:39
- Signature Algorithm: sha256WithRSAEncryption
- 60:67:28:94:6f:0e:48:63:eb:31:dd:ea:67:18:d5:89:7d:3c:
- c5:8b:4a:7f:e9:be:db:2b:17:df:b0:5f:73:77:2a:32:13:39:
- 81:67:42:84:23:f2:45:67:35:ec:88:bf:f8:8f:b0:61:0c:34:
- a4:ae:20:4c:84:c6:db:f8:35:e1:76:d9:df:a6:42:bb:c7:44:
- 08:86:7f:36:74:24:5a:da:6c:0d:14:59:35:bd:f2:49:dd:b6:
- 1f:c9:b3:0d:47:2a:3d:99:2f:bb:5c:bb:b5:d4:20:e1:99:5f:
- 53:46:15:db:68:9b:f0:f3:30:d5:3e:31:e2:8d:84:9e:e3:8a:
- da:da:96:3e:35:13:a5:5f:f0:f9:70:50:70:47:41:11:57:19:
- 4e:c0:8f:ae:06:c4:95:13:17:2f:1b:25:9f:75:f2:b1:8e:99:
- a1:6f:13:b1:41:71:fe:88:2a:c8:4f:10:20:55:d7:f3:14:45:
- e5:e0:44:f4:ea:87:95:32:93:0e:fe:53:46:fa:2c:9d:ff:8b:
- 22:b9:4b:d9:09:45:a4:de:a4:b8:9a:58:dd:1b:7d:52:9f:8e:
- 59:43:88:81:a4:9e:26:d5:6f:ad:dd:0d:c6:37:7d:ed:03:92:
- 1b:e5:77:5f:76:ee:3c:8d:c4:5d:56:5b:a2:d9:66:6e:b3:35:
- 37:e5:32:b6
-SHA1 Fingerprint=DF:3C:24:F9:BF:D6:66:76:1B:26:80:73:FE:06:D1:CC:8D:4F:82:A4
diff --git a/luni/src/main/files/cacerts/cb156124.0 b/luni/src/main/files/cacerts/cb156124.0
deleted file mode 100644
index a5311ba..0000000
--- a/luni/src/main/files/cacerts/cb156124.0
+++ /dev/null
@@ -1,127 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNV
-BAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBC
-aWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNV
-BAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQDDB9FLVR1
-Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMwNTEyMDk0OFoXDTIz
-MDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExQDA+
-BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhp
-em1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN
-ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
-MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4vU/kwVRHoViVF56C/UY
-B4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vdhQd2h8y/L5VMzH2nPbxH
-D5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5KCKpbknSF
-Q9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEo
-q1+gElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3D
-k14opz8n8Y4e0ypQBaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcH
-fC425lAcP9tDJMW/hkd5s3kc91r0E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsut
-dEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gzrt48Ue7LE3wBf4QOXVGUnhMM
-ti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAqjqFGOjGY5RH8
-zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn
-rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUX
-U8u3Zg5mTPj5dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6
-Jyr+zE7S6E5UMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5
-XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAF
-Nzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAKkEh47U6YA5n+KGCR
-HTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jOXKqY
-GwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c
-77NCR807VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3
-+GbHeJAAFS6LrVE1Uweoa2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WK
-vJUawSg5TB9D0pH0clmKuVb8P7Sd2nCcdlqMQ1DujjByTd//SffGqWfZbawCEeI6
-FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEVKV0jq9BgoRJP3vQXzTLl
-yb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gTDx4JnW2P
-AJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpD
-y4Q08ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8d
-NL/+I5c30jn6PQ0GC7TbO6Orb1wdtn7os4I07QZcJA==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 7667447206703254355 (0x6a683e9c519bcb53)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=TR, L=Ankara, O=E-Tu\xC4\x9Fra EBG Bili\xC5\x9Fim Teknolojileri ve Hizmetleri A.\xC5\x9E., OU=E-Tugra Sertifikasyon Merkezi, CN=E-Tugra Certification Authority
- Validity
- Not Before: Mar 5 12:09:48 2013 GMT
- Not After : Mar 3 12:09:48 2023 GMT
- Subject: C=TR, L=Ankara, O=E-Tu\xC4\x9Fra EBG Bili\xC5\x9Fim Teknolojileri ve Hizmetleri A.\xC5\x9E., OU=E-Tugra Sertifikasyon Merkezi, CN=E-Tugra Certification Authority
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:e2:f5:3f:93:05:51:1e:85:62:54:5e:7a:0b:f5:
- 18:07:83:ae:7e:af:7c:f7:d4:8a:6b:a5:63:43:39:
- b9:4b:f7:c3:c6:64:89:3d:94:2e:54:80:52:39:39:
- 07:4b:4b:dd:85:07:76:87:cc:bf:2f:95:4c:cc:7d:
- a7:3d:bc:47:0f:98:70:f8:8c:85:1e:74:8e:92:6d:
- 1b:40:d1:99:0d:bb:75:6e:c8:a9:6b:9a:c0:84:31:
- af:ca:43:cb:eb:2b:34:e8:8f:97:6b:01:9b:d5:0e:
- 4a:08:aa:5b:92:74:85:43:d3:80:ae:a1:88:5b:ae:
- b3:ea:5e:cb:16:9a:77:44:c8:a1:f6:54:68:ce:de:
- 8f:97:2b:ba:5b:40:02:0c:64:17:c0:b5:93:cd:e1:
- f1:13:66:ce:0c:79:ef:d1:91:28:ab:5f:a0:12:52:
- 30:73:19:8e:8f:e1:8c:07:a2:c3:bb:4a:f0:ea:1f:
- 15:a8:ee:25:cc:a4:46:f8:1b:22:ef:b3:0e:43:ba:
- 2c:24:b8:c5:2c:5c:d4:1c:f8:5d:64:bd:c3:93:5e:
- 28:a7:3f:27:f1:8e:1e:d3:2a:50:05:a3:55:d9:cb:
- e7:39:53:c0:98:9e:8c:54:62:8b:26:b0:f7:7d:8d:
- 7c:e4:c6:9e:66:42:55:82:47:e7:b2:58:8d:66:f7:
- 07:7c:2e:36:e6:50:1c:3f:db:43:24:c5:bf:86:47:
- 79:b3:79:1c:f7:5a:f4:13:ec:6c:f8:3f:e2:59:1f:
- 95:ee:42:3e:b9:ad:a8:32:85:49:97:46:fe:4b:31:
- 8f:5a:cb:ad:74:47:1f:e9:91:b7:df:28:04:22:a0:
- d4:0f:5d:e2:79:4f:ea:6c:85:86:bd:a8:a6:ce:e4:
- fa:c3:e1:b3:ae:de:3c:51:ee:cb:13:7c:01:7f:84:
- 0e:5d:51:94:9e:13:0c:b6:2e:a5:4c:f9:39:70:36:
- 6f:96:ca:2e:0c:44:55:c5:ca:fa:5d:02:a3:df:d6:
- 64:8c:5a:b3:01:0a:a9:b5:0a:47:17:ff:ef:91:40:
- 2a:8e:a1:46:3a:31:98:e5:11:fc:cc:bb:49:56:8a:
- fc:b9:d0:61:9a:6f:65:6c:e6:c3:cb:3e:75:49:fe:
- 8f:a7:e2:89:c5:67:d7:9d:46:13:4e:31:76:3b:24:
- b3:9e:11:65:86:ab:7f:ef:1d:d4:f8:bc:e7:ac:5a:
- 5c:b7:5a:47:5c:55:ce:55:b4:22:71:5b:5b:0b:f0:
- cf:dc:a0:61:64:ea:a9:d7:68:0a:63:a7:e0:0d:3f:
- a0:af:d3:aa:d2:7e:ef:51:a0:e6:51:2b:55:92:15:
- 17:53:cb:b7:66:0e:66:4c:f8:f9:75:4c:90:e7:12:
- 70:c7:45
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 2E:E3:DB:B2:49:D0:9C:54:79:5C:FA:27:2A:FE:CC:4E:D2:E8:4E:54
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Authority Key Identifier:
- keyid:2E:E3:DB:B2:49:D0:9C:54:79:5C:FA:27:2A:FE:CC:4E:D2:E8:4E:54
-
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 05:37:3a:f4:4d:b7:45:e2:45:75:24:8f:b6:77:52:e8:1c:d8:
- 10:93:65:f3:f2:59:06:a4:3e:1e:29:ec:5d:d1:d0:ab:7c:e0:
- 0a:90:48:78:ed:4e:98:03:99:fe:28:60:91:1d:30:1d:b8:63:
- 7c:a8:e6:35:b5:fa:d3:61:76:e6:d6:07:4b:ca:69:9a:b2:84:
- 7a:77:93:45:17:15:9f:24:d0:98:13:12:ff:bb:a0:2e:fd:4e:
- 4c:87:f8:ce:5c:aa:98:1b:05:e0:00:46:4a:82:80:a5:33:8b:
- 28:dc:ed:38:d3:df:e5:3e:e9:fe:fb:59:dd:61:84:4f:d2:54:
- 96:13:61:13:3e:8f:80:69:be:93:47:b5:35:43:d2:5a:bb:3d:
- 5c:ef:b3:42:47:cd:3b:55:13:06:b0:09:db:fd:63:f6:3a:88:
- 0a:99:6f:7e:e1:ce:1b:53:6a:44:66:23:51:08:7b:bc:5b:52:
- a2:fd:06:37:38:40:61:8f:4a:96:b8:90:37:f8:66:c7:78:90:
- 00:15:2e:8b:ad:51:35:53:07:a8:6b:68:ae:f9:4e:3c:07:26:
- cd:08:05:70:cc:39:3f:76:bd:a5:d3:67:26:01:86:a6:53:d2:
- 60:3b:7c:43:7f:55:8a:bc:95:1a:c1:28:39:4c:1f:43:d2:91:
- f4:72:59:8a:b9:56:fc:3f:b4:9d:da:70:9c:76:5a:8c:43:50:
- ee:8e:30:72:4d:df:ff:49:f7:c6:a9:67:d9:6d:ac:02:11:e2:
- 3a:16:25:a7:58:08:cb:6f:53:41:9c:48:38:47:68:33:d1:d7:
- c7:8f:d4:74:21:d4:c3:05:90:7a:ff:ce:96:88:b1:15:29:5d:
- 23:ab:d0:60:a1:12:4f:de:f4:17:cd:32:e5:c9:bf:c8:43:ad:
- fd:2e:8e:f1:af:e2:f4:98:fa:12:1f:20:d8:c0:a7:0c:85:c5:
- 90:f4:3b:2d:96:26:b1:2c:be:4c:ab:eb:b1:d2:8a:c9:db:78:
- 13:0f:1e:09:9d:6d:8f:00:9f:02:da:c1:fa:1f:7a:7a:09:c4:
- 4a:e6:88:2a:97:9f:89:8b:fd:37:5f:5f:3a:ce:38:59:86:4b:
- af:71:0b:b4:d8:f2:70:4f:9f:32:13:e3:b0:a7:57:e5:da:da:
- 43:cb:84:34:f2:28:c4:ea:6d:f4:2a:ef:c1:6b:76:da:fb:7e:
- bb:85:3c:d2:53:c2:4d:be:71:e1:45:d1:fd:23:67:0d:13:75:
- fb:cf:65:67:22:9d:ae:b0:09:d1:09:ff:1d:34:bf:fe:23:97:
- 37:d2:39:fa:3d:0d:06:0b:b4:db:3b:a3:ab:6f:5c:1d:b6:7e:
- e8:b3:82:34:ed:06:5c:24
-SHA1 Fingerprint=51:C6:E7:08:49:06:6E:F3:92:D4:5C:A0:0D:6D:A3:62:8F:C3:52:39
diff --git a/luni/src/main/files/cacerts/ccc52f49.0 b/luni/src/main/files/cacerts/ccc52f49.0
deleted file mode 100644
index b014690..0000000
--- a/luni/src/main/files/cacerts/ccc52f49.0
+++ /dev/null
@@ -1,50 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMC
-VVMxFDASBgNVBAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQ
-cmVtaXVtIEVDQzAeFw0xMDAxMjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJ
-BgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1UcnVzdDEgMB4GA1UEAwwXQWZmaXJt
-VHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQNMF4bFZ0D
-0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQN8O9
-ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0G
-A1UdDgQWBBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4G
-A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/Vs
-aobgxCd05DhT1wV/GzTjxi+zygk8N53X57hG8f2h4nECMEJZh0PUUd+60wkyWs6I
-flc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKMeQ==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 8401224907861490260 (0x7497258ac73f7a54)
- Signature Algorithm: ecdsa-with-SHA384
- Issuer: C=US, O=AffirmTrust, CN=AffirmTrust Premium ECC
- Validity
- Not Before: Jan 29 14:20:24 2010 GMT
- Not After : Dec 31 14:20:24 2040 GMT
- Subject: C=US, O=AffirmTrust, CN=AffirmTrust Premium ECC
- Subject Public Key Info:
- Public Key Algorithm: id-ecPublicKey
- Public-Key: (384 bit)
- pub:
- 04:0d:30:5e:1b:15:9d:03:d0:a1:79:35:b7:3a:3c:
- 92:7a:ca:15:1c:cd:62:f3:9c:26:5c:07:3d:e5:54:
- fa:a3:d6:cc:12:ea:f4:14:5f:e8:8e:19:ab:2f:2e:
- 48:e6:ac:18:43:78:ac:d0:37:c3:bd:b2:cd:2c:e6:
- 47:e2:1a:e6:63:b8:3d:2e:2f:78:c4:4f:db:f4:0f:
- a4:68:4c:55:72:6b:95:1d:4e:18:42:95:78:cc:37:
- 3c:91:e2:9b:65:2b:29
- ASN1 OID: secp384r1
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 9A:AF:29:7A:C0:11:35:35:26:51:30:00:C3:6A:FE:40:D5:AE:D6:3C
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- Signature Algorithm: ecdsa-with-SHA384
- 30:64:02:30:17:09:f3:87:88:50:5a:af:c8:c0:42:bf:47:5f:
- f5:6c:6a:86:e0:c4:27:74:e4:38:53:d7:05:7f:1b:34:e3:c6:
- 2f:b3:ca:09:3c:37:9d:d7:e7:b8:46:f1:fd:a1:e2:71:02:30:
- 42:59:87:43:d4:51:df:ba:d3:09:32:5a:ce:88:7e:57:3d:9c:
- 5f:42:6b:f5:07:2d:b5:f0:82:93:f9:59:6f:ae:64:fa:58:e5:
- 8b:1e:e3:63:be:b5:81:cd:6f:02:8c:79
-SHA1 Fingerprint=B8:23:6B:00:2F:1D:16:86:53:01:55:6C:11:A4:37:CA:EB:FF:C3:BB
diff --git a/luni/src/main/files/cacerts/cdaebb72.0 b/luni/src/main/files/cacerts/cdaebb72.0
deleted file mode 100644
index 535fe8a..0000000
--- a/luni/src/main/files/cacerts/cdaebb72.0
+++ /dev/null
@@ -1,83 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJO
-TDEeMBwGA1UEChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFh
-dCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEy
-MTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4wHAYDVQQKExVTdGFhdCBkZXIgTmVk
-ZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxhbmRlbiBSb290IENB
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFtvszn
-ExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw71
-9tV2U02PjLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MO
-hXeiD+EwR+4A5zN9RGcaC1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+U
-tFE5A3+y3qcym7RHjm+0Sq7lr7HcsBthvJly3uSJt3omXdozSVtSnA71iq3DuD3o
-BmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn622r+I/q85Ej0ZytqERAh
-SQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRVHSAAMDww
-OgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMv
-cm9vdC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA
-7Jbg0zTBLL9s+DANBgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k
-/rvuFbQvBgwp8qiSpGEN/KtcCFtREytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzm
-eafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbwMVcoEoJz6TMvplW0C5GUR5z6
-u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3ynGQI0DvDKcWy
-7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR
-iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 10000010 (0x98968a)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=NL, O=Staat der Nederlanden, CN=Staat der Nederlanden Root CA
- Validity
- Not Before: Dec 17 09:23:49 2002 GMT
- Not After : Dec 16 09:15:38 2015 GMT
- Subject: C=NL, O=Staat der Nederlanden, CN=Staat der Nederlanden Root CA
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:98:d2:b5:51:11:7a:81:a6:14:98:71:6d:be:cc:
- e7:13:1b:d6:27:0e:7a:b3:6a:18:1c:b6:61:5a:d5:
- 61:09:bf:de:90:13:c7:67:ee:dd:f3:da:c5:0c:12:
- 9e:35:55:3e:2c:27:88:40:6b:f7:dc:dd:22:61:f5:
- c2:c7:0e:f5:f6:d5:76:53:4d:8f:8c:bc:18:76:37:
- 85:9d:e8:ca:49:c7:d2:4f:98:13:09:a2:3e:22:88:
- 9c:7f:d6:f2:10:65:b4:ee:5f:18:d5:17:e3:f8:c5:
- fd:e2:9d:a2:ef:53:0e:85:77:a2:0f:e1:30:47:ee:
- 00:e7:33:7d:44:67:1a:0b:51:e8:8b:a0:9e:50:98:
- 68:34:52:1f:2e:6d:01:f2:60:45:f2:31:eb:a9:31:
- 68:29:bb:7a:41:9e:c6:19:7f:94:b4:51:39:03:7f:
- b2:de:a7:32:9b:b4:47:8e:6f:b4:4a:ae:e5:af:b1:
- dc:b0:1b:61:bc:99:72:de:e4:89:b7:7a:26:5d:da:
- 33:49:5b:52:9c:0e:f5:8a:ad:c3:b8:3d:e8:06:6a:
- c2:d5:2a:0b:6c:7b:84:bd:56:05:cb:86:65:92:ec:
- 44:2b:b0:8e:b9:dc:70:0b:46:da:ad:bc:63:88:39:
- fa:db:6a:fe:23:fa:bc:e4:48:f4:67:2b:6a:11:10:
- 21:49
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Certificate Policies:
- Policy: X509v3 Any Policy
- CPS: http://www.pkioverheid.nl/policies/root-policy
-
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- A8:7D:EB:BC:63:A4:74:13:74:00:EC:96:E0:D3:34:C1:2C:BF:6C:F8
- Signature Algorithm: sha1WithRSAEncryption
- 05:84:87:55:74:36:61:c1:bb:d1:d4:c6:15:a8:13:b4:9f:a4:
- fe:bb:ee:15:b4:2f:06:0c:29:f2:a8:92:a4:61:0d:fc:ab:5c:
- 08:5b:51:13:2b:4d:c2:2a:61:c8:f8:09:58:fc:2d:02:b2:39:
- 7d:99:66:81:bf:6e:5c:95:45:20:6c:e6:79:a7:d1:d8:1c:29:
- fc:c2:20:27:51:c8:f1:7c:5d:34:67:69:85:11:30:c6:00:d2:
- d7:f3:d3:7c:b6:f0:31:57:28:12:82:73:e9:33:2f:a6:55:b4:
- 0b:91:94:47:9c:fa:bb:7a:42:32:e8:ae:7e:2d:c8:bc:ac:14:
- bf:d9:0f:d9:5b:fc:c1:f9:7a:95:e1:7d:7e:96:fc:71:b0:c2:
- 4c:c8:df:45:34:c9:ce:0d:f2:9c:64:08:d0:3b:c3:29:c5:b2:
- ed:90:04:c1:b1:29:91:c5:30:6f:c1:a9:72:33:cc:fe:5d:16:
- 17:2c:11:69:e7:7e:fe:c5:83:08:df:bc:dc:22:3a:2e:20:69:
- 23:39:56:60:67:90:8b:2e:76:39:fb:11:88:97:f6:7c:bd:4b:
- b8:20:16:67:05:8d:e2:3b:c1:72:3f:94:95:37:c7:5d:b9:9e:
- d8:93:a1:17:8f:ff:0c:66:15:c1:24:7c:32:7c:03:1d:3b:a1:
- 58:45:32:93
-SHA1 Fingerprint=10:1D:FA:3F:D5:0B:CB:BB:9B:B5:60:0C:19:55:A4:1A:F4:73:3A:04
diff --git a/luni/src/main/files/cacerts/cf701eeb.0 b/luni/src/main/files/cacerts/cf701eeb.0
deleted file mode 100644
index 3f6e70a..0000000
--- a/luni/src/main/files/cacerts/cf701eeb.0
+++ /dev/null
@@ -1,89 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBI
-MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x
-FzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIz
-MTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENv
-cnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCCASIwDQYJKoZIhvcN
-AQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQXOZEz
-Zum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO
-0gMdA+9tDWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIao
-wW8xQmxSPmjL8xk037uHGFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj
-7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b01k/unK8RCSc43Oz969XL0Imnal0ugBS
-8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmHursCAwEAAaOBnTCBmjAT
-BgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB
-/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCeg
-JYYjaHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGC
-NxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt3
-6Z3q059c4EVlew3KW+JwULKUBRSuSceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/
-3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHfmbx8IVQr5Fiiu1cprp6poxkm
-D5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZnMUFdAvnZyPS
-CPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR
-3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 0c:f0:8e:5c:08:16:a5:ad:42:7f:f0:eb:27:18:59:d0
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=US, O=SecureTrust Corporation, CN=SecureTrust CA
- Validity
- Not Before: Nov 7 19:31:18 2006 GMT
- Not After : Dec 31 19:40:55 2029 GMT
- Subject: C=US, O=SecureTrust Corporation, CN=SecureTrust CA
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:ab:a4:81:e5:95:cd:f5:f6:14:8e:c2:4f:ca:d4:
- e2:78:95:58:9c:41:e1:0d:99:40:24:17:39:91:33:
- 66:e9:be:e1:83:af:62:5c:89:d1:fc:24:5b:61:b3:
- e0:11:11:41:1c:1d:6e:f0:b8:bb:f8:de:a7:81:ba:
- a6:48:c6:9f:1d:bd:be:8e:a9:41:3e:b8:94:ed:29:
- 1a:d4:8e:d2:03:1d:03:ef:6d:0d:67:1c:57:d7:06:
- ad:ca:c8:f5:fe:0e:af:66:25:48:04:96:0b:5d:a3:
- ba:16:c3:08:4f:d1:46:f8:14:5c:f2:c8:5e:01:99:
- 6d:fd:88:cc:86:a8:c1:6f:31:42:6c:52:3e:68:cb:
- f3:19:34:df:bb:87:18:56:80:26:c4:d0:dc:c0:6f:
- df:de:a0:c2:91:16:a0:64:11:4b:44:bc:1e:f6:e7:
- fa:63:de:66:ac:76:a4:71:a3:ec:36:94:68:7a:77:
- a4:b1:e7:0e:2f:81:7a:e2:b5:72:86:ef:a2:6b:8b:
- f0:0f:db:d3:59:3f:ba:72:bc:44:24:9c:e3:73:b3:
- f7:af:57:2f:42:26:9d:a9:74:ba:00:52:f2:4b:cd:
- 53:7c:47:0b:36:85:0e:66:a9:08:97:16:34:57:c1:
- 66:f7:80:e3:ed:70:54:c7:93:e0:2e:28:15:59:87:
- ba:bb
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- 1.3.6.1.4.1.311.20.2:
- ...C.A
- X509v3 Key Usage:
- Digital Signature, Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- 42:32:B6:16:FA:04:FD:FE:5D:4B:7A:C3:FD:F7:4C:40:1D:5A:43:AF
- X509v3 CRL Distribution Points:
-
- Full Name:
- URI:http://crl.securetrust.com/STCA.crl
-
- 1.3.6.1.4.1.311.21.1:
- ...
- Signature Algorithm: sha1WithRSAEncryption
- 30:ed:4f:4a:e1:58:3a:52:72:5b:b5:a6:a3:65:18:a6:bb:51:
- 3b:77:e9:9d:ea:d3:9f:5c:e0:45:65:7b:0d:ca:5b:e2:70:50:
- b2:94:05:14:ae:49:c7:8d:41:07:12:73:94:7e:0c:23:21:fd:
- bc:10:7f:60:10:5a:72:f5:98:0e:ac:ec:b9:7f:dd:7a:6f:5d:
- d3:1c:f4:ff:88:05:69:42:a9:05:71:c8:b7:ac:26:e8:2e:b4:
- 8c:6a:ff:71:dc:b8:b1:df:99:bc:7c:21:54:2b:e4:58:a2:bb:
- 57:29:ae:9e:a9:a3:19:26:0f:99:2e:08:b0:ef:fd:69:cf:99:
- 1a:09:8d:e3:a7:9f:2b:c9:36:34:7b:24:b3:78:4c:95:17:a4:
- 06:26:1e:b6:64:52:36:5f:60:67:d9:9c:c5:05:74:0b:e7:67:
- 23:d2:08:fc:88:e9:ae:8b:7f:e1:30:f4:37:7e:fd:c6:32:da:
- 2d:9e:44:30:30:6c:ee:07:de:d2:34:fc:d2:ff:40:f6:4b:f4:
- 66:46:06:54:a6:f2:32:0a:63:26:30:6b:9b:d1:dc:8b:47:ba:
- e1:b9:d5:62:d0:a2:a0:f4:67:05:78:29:63:1a:6f:04:d6:f8:
- c6:4c:a3:9a:b1:37:b4:8d:e5:28:4b:1d:9e:2c:c2:b8:68:bc:
- ed:02:ee:31
-SHA1 Fingerprint=87:82:C6:C3:04:35:3B:CF:D2:96:92:D2:59:3E:7D:44:D9:34:FF:11
diff --git a/luni/src/main/files/cacerts/d06393bb.0 b/luni/src/main/files/cacerts/d06393bb.0
deleted file mode 100644
index 0029410..0000000
--- a/luni/src/main/files/cacerts/d06393bb.0
+++ /dev/null
@@ -1,80 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx
-KzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd
-BgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl
-YyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgxMDAxMTA0MDE0WhcNMzMxMDAxMjM1
-OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy
-aXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50
-ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUd
-AqSzm1nzHoqvNK38DcLZSBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiC
-FoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/FvudocP05l03Sx5iRUKrERLMjfTlH6VJi
-1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx9702cu+fjOlbpSD8DT6Iavq
-jnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGVWOHAD3bZ
-wI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGj
-QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/
-WSA2AHmgoCJrjNXyYdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhy
-NsZt+U2e+iKo4YFWz827n+qrkRk4r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPAC
-uvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNfvNoBYimipidx5joifsFvHZVw
-IEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR3p1m0IvVVGb6
-g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN
-9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlP
-BSeOE6Fuwg==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=DE, O=T-Systems Enterprise Services GmbH, OU=T-Systems Trust Center, CN=T-TeleSec GlobalRoot Class 2
- Validity
- Not Before: Oct 1 10:40:14 2008 GMT
- Not After : Oct 1 23:59:59 2033 GMT
- Subject: C=DE, O=T-Systems Enterprise Services GmbH, OU=T-Systems Trust Center, CN=T-TeleSec GlobalRoot Class 2
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:aa:5f:da:1b:5f:e8:73:91:e5:da:5c:f4:a2:e6:
- 47:e5:f3:68:55:60:05:1d:02:a4:b3:9b:59:f3:1e:
- 8a:af:34:ad:fc:0d:c2:d9:48:19:ee:69:8f:c9:20:
- fc:21:aa:07:19:ed:b0:5c:ac:65:c7:5f:ed:02:7c:
- 7b:7c:2d:1b:d6:ba:b9:80:c2:18:82:16:84:fa:66:
- b0:08:c6:54:23:81:e4:cd:b9:49:3f:f6:4f:6e:37:
- 48:28:38:0f:c5:be:e7:68:70:fd:39:97:4d:d2:c7:
- 98:91:50:aa:c4:44:b3:23:7d:39:47:e9:52:62:d6:
- 12:93:5e:b7:31:96:42:05:fb:76:a7:1e:a3:f5:c2:
- fc:e9:7a:c5:6c:a9:71:4f:ea:cb:78:bc:60:af:c7:
- de:f4:d9:cb:be:7e:33:a5:6e:94:83:f0:34:fa:21:
- ab:ea:8e:72:a0:3f:a4:de:30:5b:ef:86:4d:6a:95:
- 5b:43:44:a8:10:15:1c:e5:01:57:c5:98:f1:e6:06:
- 28:91:aa:20:c5:b7:53:26:51:43:b2:0b:11:95:58:
- e1:c0:0f:76:d9:c0:8d:7c:81:f3:72:70:9e:6f:fe:
- 1a:8e:d9:5f:35:c6:b2:6f:34:7c:be:48:4f:e2:5a:
- 39:d7:d8:9d:78:9e:9f:86:3e:03:5e:19:8b:44:a2:
- d5:c7
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- BF:59:20:36:00:79:A0:A0:22:6B:8C:D5:F2:61:D2:B8:2C:CB:82:4A
- Signature Algorithm: sha256WithRSAEncryption
- 31:03:a2:61:0b:1f:74:e8:72:36:c6:6d:f9:4d:9e:fa:22:a8:
- e1:81:56:cf:cd:bb:9f:ea:ab:91:19:38:af:aa:7c:15:4d:f3:
- b6:a3:8d:a5:f4:8e:f6:44:a9:a7:e8:21:95:ad:3e:00:62:16:
- 88:f0:02:ba:fc:61:23:e6:33:9b:30:7a:6b:36:62:7b:ad:04:
- 23:84:58:65:e2:db:2b:8a:e7:25:53:37:62:53:5f:bc:da:01:
- 62:29:a2:a6:27:71:e6:3a:22:7e:c1:6f:1d:95:70:20:4a:07:
- 34:df:ea:ff:15:80:e5:ba:d7:7a:d8:5b:75:7c:05:7a:29:47:
- 7e:40:a8:31:13:77:cd:40:3b:b4:51:47:7a:2e:11:e3:47:11:
- de:9d:66:d0:8b:d5:54:66:fa:83:55:ea:7c:c2:29:89:1b:e9:
- 6f:b3:ce:e2:05:84:c9:2f:3e:78:85:62:6e:c9:5f:c1:78:63:
- 74:58:c0:48:18:0c:99:39:eb:a4:cc:1a:b5:79:5a:8d:15:9c:
- d8:14:0d:f6:7a:07:57:c7:22:83:05:2d:3c:9b:25:26:3d:18:
- b3:a9:43:7c:c8:c8:ab:64:8f:0e:a3:bf:9c:1b:9d:30:db:da:
- d0:19:2e:aa:3c:f1:fb:33:80:76:e4:cd:ad:19:4f:05:27:8e:
- 13:a1:6e:c2
-SHA1 Fingerprint=59:0D:2D:7D:88:4F:40:2E:61:7E:A5:62:32:17:65:CF:17:D8:94:E9
diff --git a/luni/src/main/files/cacerts/d16a5865.0 b/luni/src/main/files/cacerts/d16a5865.0
deleted file mode 100644
index 35228a3..0000000
--- a/luni/src/main/files/cacerts/d16a5865.0
+++ /dev/null
@@ -1,129 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UE
-BhMCRVMxQjBABgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1h
-cHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEy
-MzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIwQAYDVQQDDDlBdXRvcmlkYWQgZGUg
-Q2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBBNjI2MzQwNjgwggIi
-MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDDUtd9
-thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQM
-cas9UX4PB99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefG
-L9ItWY16Ck6WaVICqjaY7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15i
-NA9wBj4gGFrO93IbJWyTdBSTo3OxDqqHECNZXyAFGUftaI6SEspd/NYrspI8IM/h
-X68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyIplD9amML9ZMWGxmPsu2b
-m8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctXMbScyJCy
-Z/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirja
-EbsXLZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/T
-KI8xWVvTyQKmtFLKbpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF
-6NkBiDkal4ZkQdU7hwxu+g/GvUgUvzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVh
-OSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD
-VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNHDhpkLzCBpgYD
-VR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp
-cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBv
-ACAAZABlACAAbABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBl
-AGwAbwBuAGEAIAAwADgAMAAxADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF
-661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx51tkljYyGOylMnfX40S2wBEqgLk9
-am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qkR71kMrv2JYSiJ0L1
-ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaPT481
-PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS
-3a/DTg4fJl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5k
-SeTy36LssUzAKh3ntLFlosS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF
-3dvd6qJ2gHN99ZwExEWN57kci57q13XRcrHedUTnQn3iV2t93Jm8PYMo6oCTjcVM
-ZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoRsaS8I8nkvof/uZS2+F0g
-StRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTDKCOM/icz
-Q0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQB
-jLMi6Et8Vcad+qMUu2WFbm5PEn4KPJ2V
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 6047274297262753887 (0x53ec3beefbb2485f)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=ES, CN=Autoridad de Certificacion Firmaprofesional CIF A62634068
- Validity
- Not Before: May 20 08:38:15 2009 GMT
- Not After : Dec 31 08:38:15 2030 GMT
- Subject: C=ES, CN=Autoridad de Certificacion Firmaprofesional CIF A62634068
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:ca:96:6b:8e:ea:f8:fb:f1:a2:35:e0:7f:4c:da:
- e0:c3:52:d7:7d:b6:10:c8:02:5e:b3:43:2a:c4:4f:
- 6a:b2:ca:1c:5d:28:9a:78:11:1a:69:59:57:af:b5:
- 20:42:e4:8b:0f:e6:df:5b:a6:03:92:2f:f5:11:e4:
- 62:d7:32:71:38:d9:04:0c:71:ab:3d:51:7e:0f:07:
- df:63:05:5c:e9:bf:94:6f:c1:29:82:c0:b4:da:51:
- b0:c1:3c:bb:ad:37:4a:5c:ca:f1:4b:36:0e:24:ab:
- bf:c3:84:77:fd:a8:50:f4:b1:e7:c6:2f:d2:2d:59:
- 8d:7a:0a:4e:96:69:52:02:aa:36:98:ec:fc:fa:14:
- 83:0c:37:1f:c9:92:37:7f:d7:81:2d:e5:c4:b9:e0:
- 3e:34:fe:67:f4:3e:66:d1:d3:f4:40:cf:5e:62:34:
- 0f:70:06:3e:20:18:5a:ce:f7:72:1b:25:6c:93:74:
- 14:93:a3:73:b1:0e:aa:87:10:23:59:5f:20:05:19:
- 47:ed:68:8e:92:12:ca:5d:fc:d6:2b:b2:92:3c:20:
- cf:e1:5f:af:20:be:a0:76:7f:76:e5:ec:1a:86:61:
- 33:3e:e7:7b:b4:3f:a0:0f:8e:a2:b9:6a:6f:b9:87:
- 26:6f:41:6c:88:a6:50:fd:6a:63:0b:f5:93:16:1b:
- 19:8f:b2:ed:9b:9b:c9:90:f5:01:0c:df:19:3d:0f:
- 3e:38:23:c9:2f:8f:0c:d1:02:fe:1b:55:d6:4e:d0:
- 8d:3c:af:4f:a4:f3:fe:af:2a:d3:05:9d:79:08:a1:
- cb:57:31:b4:9c:c8:90:b2:67:f4:18:16:93:3a:fc:
- 47:d8:d1:78:96:31:1f:ba:2b:0c:5f:5d:99:ad:63:
- 89:5a:24:20:76:d8:df:fd:ab:4e:a6:22:aa:9d:5e:
- e6:27:8a:7d:68:29:a3:e7:8a:b8:da:11:bb:17:2d:
- 99:9d:13:24:46:f7:c5:e2:d8:9f:8e:7f:c7:8f:74:
- 6d:5a:b2:e8:72:f5:ac:ee:24:10:ad:2f:14:da:ff:
- 2d:9a:46:71:47:be:42:df:bb:01:db:f4:7f:d3:28:
- 8f:31:59:5b:d3:c9:02:a6:b4:52:ca:6e:97:fb:43:
- c5:08:26:6f:8a:f4:bb:fd:9f:28:aa:0d:d5:45:f3:
- 13:3a:1d:d8:c0:78:8f:41:67:3c:1e:94:64:ae:7b:
- 0b:c5:e8:d9:01:88:39:1a:97:86:64:41:d5:3b:87:
- 0c:6e:fa:0f:c6:bd:48:14:bf:39:4d:d4:9e:41:b6:
- 8f:96:1d:63:96:93:d9:95:06:78:31:68:9e:37:06:
- 3b:80:89:45:61:39:23:c7:1b:44:a3:15:e5:1c:f8:
- 92:30:bb
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE, pathlen:1
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- 65:CD:EB:AB:35:1E:00:3E:7E:D5:74:C0:1C:B4:73:47:0E:1A:64:2F
- X509v3 Certificate Policies:
- Policy: X509v3 Any Policy
- CPS: http://www.firmaprofesional.com/cps
- User Notice:
- Explicit Text:
-
- Signature Algorithm: sha1WithRSAEncryption
- 17:7d:a0:f9:b4:dd:c5:c5:eb:ad:4b:24:b5:a1:02:ab:dd:a5:
- 88:4a:b2:0f:55:4b:2b:57:8c:3b:e5:31:dd:fe:c4:32:f1:e7:
- 5b:64:96:36:32:18:ec:a5:32:77:d7:e3:44:b6:c0:11:2a:80:
- b9:3d:6a:6e:7c:9b:d3:ad:fc:c3:d6:a3:e6:64:29:7c:d1:e1:
- 38:1e:82:2b:ff:27:65:af:fb:16:15:c4:2e:71:84:e5:b5:ff:
- fa:a4:47:bd:64:32:bb:f6:25:84:a2:27:42:f5:20:b0:c2:13:
- 10:11:cd:10:15:ba:42:90:2a:d2:44:e1:96:26:eb:31:48:12:
- fd:2a:da:c9:06:cf:74:1e:a9:4b:d5:87:28:f9:79:34:92:3e:
- 2e:44:e8:f6:8f:4f:8f:35:3f:25:b3:39:dc:63:2a:90:6b:20:
- 5f:c4:52:12:4e:97:2c:2a:ac:9d:97:de:48:f2:a3:66:db:c2:
- d2:83:95:a6:66:a7:9e:25:0f:e9:0b:33:91:65:0a:5a:c3:d9:
- 54:12:dd:af:c3:4e:0e:1f:26:5e:0d:dc:b3:8d:ec:d5:81:70:
- de:d2:4f:24:05:f3:6c:4e:f5:4c:49:66:8d:d1:ff:d2:0b:25:
- 41:48:fe:51:84:c6:42:af:80:04:cf:d0:7e:64:49:e4:f2:df:
- a2:ec:b1:4c:c0:2a:1d:e7:b4:b1:65:a2:c4:bc:f1:98:f4:aa:
- 70:07:63:b4:b8:da:3b:4c:fa:40:22:30:5b:11:a6:f0:05:0e:
- c6:02:03:48:ab:86:9b:85:dd:db:dd:ea:a2:76:80:73:7d:f5:
- 9c:04:c4:45:8d:e7:b9:1c:8b:9e:ea:d7:75:d1:72:b1:de:75:
- 44:e7:42:7d:e2:57:6b:7d:dc:99:bc:3d:83:28:ea:80:93:8d:
- c5:4c:65:c1:70:81:b8:38:fc:43:31:b2:f6:03:34:47:b2:ac:
- fb:22:06:cb:1e:dd:17:47:1c:5f:66:b9:d3:1a:a2:da:11:b1:
- a4:bc:23:c9:e4:be:87:ff:b9:94:b6:f8:5d:20:4a:d4:5f:e7:
- bd:68:7b:65:f2:15:1e:d2:3a:a9:2d:e9:d8:6b:24:ac:97:58:
- 44:47:ad:59:18:f1:21:65:70:de:ce:34:60:a8:40:f1:f3:3c:
- a4:c3:28:23:8c:fe:27:33:43:40:a0:17:3c:eb:ea:3b:b0:72:
- a6:a3:b9:4a:4b:5e:16:48:f4:b2:bc:c8:8c:92:c5:9d:9f:ac:
- 72:36:bc:34:80:34:6b:a9:8b:92:c0:b8:17:ed:ec:76:53:f5:
- 24:01:8c:b3:22:e8:4b:7c:55:c6:9d:fa:a3:14:bb:65:85:6e:
- 6e:4f:12:7e:0a:3c:9d:95
-SHA1 Fingerprint=AE:C5:FB:3F:C8:E1:BF:C4:E5:4F:03:07:5A:9A:E8:00:B7:F7:B6:FA
diff --git a/luni/src/main/files/cacerts/d18e9066.0 b/luni/src/main/files/cacerts/d18e9066.0
deleted file mode 100644
index fd686a6..0000000
--- a/luni/src/main/files/cacerts/d18e9066.0
+++ /dev/null
@@ -1,120 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBK
-MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVu
-VHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQw
-MTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScw
-JQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwggIiMA0GCSqG
-SIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ldhNlT
-3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU
-+ehcCuz/mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gp
-S0l4PJNgiCL8mdo2yMKi1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1
-bVoE/c40yiTcdCMbXTMTEl3EASX2MN0CXZ/g1Ue9tOsbobtJSdifWwLziuQkkORi
-T0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl3ZBWzvurpWCdxJ35UrCL
-vYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzyNeVJSQjK
-Vsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZK
-dHzVWYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHT
-c+XvvqDtMwt0viAgxGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hv
-l7yTmvmcEpB4eoCHFddydJxVdHixuuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5N
-iGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
-/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZIhvcNAQELBQAD
-ggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH
-6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwt
-LRvM7Kqas6pgghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93
-nAbowacYXVKV7cndJZ5t+qntozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3
-+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmVYjzlVYA211QC//G5Xc7UI2/YRYRK
-W2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUXfeu+h1sXIFRRk0pT
-AwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/rokTLq
-l1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG
-4iZZRHUe2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZ
-mUlO+KWA2yUPHGNiiskzZ2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A
-7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7RcGzM7vRX+Bi6hG6H
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 0a:01:42:80:00:00:01:45:23:c8:44:b5:00:00:00:02
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, O=IdenTrust, CN=IdenTrust Commercial Root CA 1
- Validity
- Not Before: Jan 16 18:12:23 2014 GMT
- Not After : Jan 16 18:12:23 2034 GMT
- Subject: C=US, O=IdenTrust, CN=IdenTrust Commercial Root CA 1
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:a7:50:19:de:3f:99:3d:d4:33:46:f1:6f:51:61:
- 82:b2:a9:4f:8f:67:89:5d:84:d9:53:dd:0c:28:d9:
- d7:f0:ff:ae:95:43:72:99:f9:b5:5d:7c:8a:c1:42:
- e1:31:50:74:d1:81:0d:7c:cd:9b:21:ab:43:e2:ac:
- ad:5e:86:6e:f3:09:8a:1f:5a:32:bd:a2:eb:94:f9:
- e8:5c:0a:ec:ff:98:d2:af:71:b3:b4:53:9f:4e:87:
- ef:92:bc:bd:ec:4f:32:30:88:4b:17:5e:57:c4:53:
- c2:f6:02:97:8d:d9:62:2b:bf:24:1f:62:8d:df:c3:
- b8:29:4b:49:78:3c:93:60:88:22:fc:99:da:36:c8:
- c2:a2:d4:2c:54:00:67:35:6e:73:bf:02:58:f0:a4:
- dd:e5:b0:a2:26:7a:ca:e0:36:a5:19:16:f5:fd:b7:
- ef:ae:3f:40:f5:6d:5a:04:fd:ce:34:ca:24:dc:74:
- 23:1b:5d:33:13:12:5d:c4:01:25:f6:30:dd:02:5d:
- 9f:e0:d5:47:bd:b4:eb:1b:a1:bb:49:49:d8:9f:5b:
- 02:f3:8a:e4:24:90:e4:62:4f:4f:c1:af:8b:0e:74:
- 17:a8:d1:72:88:6a:7a:01:49:cc:b4:46:79:c6:17:
- b1:da:98:1e:07:59:fa:75:21:85:65:dd:90:56:ce:
- fb:ab:a5:60:9d:c4:9d:f9:52:b0:8b:bd:87:f9:8f:
- 2b:23:0a:23:76:3b:f7:33:e1:c9:00:f3:69:f9:4b:
- a2:e0:4e:bc:7e:93:39:84:07:f7:44:70:7e:fe:07:
- 5a:e5:b1:ac:d1:18:cc:f2:35:e5:49:49:08:ca:56:
- c9:3d:fb:0f:18:7d:8b:3b:c1:13:c2:4d:8f:c9:4f:
- 0e:37:e9:1f:a1:0e:6a:df:62:2e:cb:35:06:51:79:
- 2c:c8:25:38:f4:fa:4b:a7:89:5c:9c:d2:e3:0d:39:
- 86:4a:74:7c:d5:59:87:c2:3f:4e:0c:5c:52:f4:3d:
- f7:52:82:f1:ea:a3:ac:fd:49:34:1a:28:f3:41:88:
- 3a:13:ee:e8:de:ff:99:1d:5f:ba:cb:e8:1e:f2:b9:
- 50:60:c0:31:d3:73:e5:ef:be:a0:ed:33:0b:74:be:
- 20:20:c4:67:6c:f0:08:03:7a:55:80:7f:46:4e:96:
- a7:f4:1e:3e:e1:f6:d8:09:e1:33:64:2b:63:d7:32:
- 5e:9f:f9:c0:7b:0f:78:6f:97:bc:93:9a:f9:9c:12:
- 90:78:7a:80:87:15:d7:72:74:9c:55:74:78:b1:ba:
- e1:6e:70:04:ba:4f:a0:ba:68:c3:7b:ff:31:f0:73:
- 3d:3d:94:2a:b1:0b:41:0e:a0:fe:4d:88:65:6b:79:
- 33:b4:d7
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- ED:44:19:C0:D3:F0:06:8B:EE:A4:7B:BE:42:E7:26:54:C8:8E:36:76
- Signature Algorithm: sha256WithRSAEncryption
- 0d:ae:90:32:f6:a6:4b:7c:44:76:19:61:1e:27:28:cd:5e:54:
- ef:25:bc:e3:08:90:f9:29:d7:ae:68:08:e1:94:00:58:ef:2e:
- 2e:7e:53:52:8c:b6:5c:07:ea:88:ba:99:8b:50:94:d7:82:80:
- df:61:09:00:93:ad:0d:14:e6:ce:c1:f2:37:94:78:b0:5f:9c:
- b3:a2:73:b8:8f:05:93:38:cd:8d:3e:b0:b8:fb:c0:cf:b1:f2:
- ec:2d:2d:1b:cc:ec:aa:9a:b3:aa:60:82:1b:2d:3b:c3:84:3d:
- 57:8a:96:1e:9c:75:b8:d3:30:cd:60:08:83:90:d3:8e:54:f1:
- 4d:66:c0:5d:74:03:40:a3:ee:85:7e:c2:1f:77:9c:06:e8:c1:
- a7:18:5d:52:95:ed:c9:dd:25:9e:6d:fa:a9:ed:a3:3a:34:d0:
- 59:7b:da:ed:50:f3:35:bf:ed:eb:14:4d:31:c7:60:f4:da:f1:
- 87:9c:e2:48:e2:c6:c5:37:fb:06:10:fa:75:59:66:31:47:29:
- da:76:9a:1c:e9:82:ae:ef:9a:b9:51:f7:88:23:9a:69:95:62:
- 3c:e5:55:80:36:d7:54:02:ff:f1:b9:5d:ce:d4:23:6f:d8:45:
- 84:4a:5b:65:ef:89:0c:dd:14:a7:20:cb:18:a5:25:b4:0d:f9:
- 01:f0:a2:d2:f4:00:c8:74:8e:a1:2a:48:8e:65:db:13:c4:e2:
- 25:17:7d:eb:be:87:5b:17:20:54:51:93:4a:53:03:0b:ec:5d:
- ca:33:ed:62:fd:45:c7:2f:5b:dc:58:a0:80:39:e6:fa:d7:fe:
- 13:14:a6:ed:3d:94:4a:42:74:d4:c3:77:59:73:cd:8f:46:be:
- 55:38:ef:fa:e8:91:32:ea:97:58:04:22:de:38:c3:cc:bc:6d:
- c9:33:3a:6a:0a:69:3f:a0:c8:ea:72:8f:8c:63:86:23:bd:6d:
- 3c:96:9e:95:e0:49:4c:aa:a2:b9:2a:1b:9c:36:81:78:ed:c3:
- e8:46:e2:26:59:44:75:1e:d9:75:89:51:cd:10:84:9d:61:60:
- cb:5d:f9:97:22:4d:8e:98:e6:e3:7f:f6:5b:bb:ae:cd:ca:4a:
- 81:6b:5e:0b:f3:51:e1:74:2b:e9:7e:27:a7:d9:99:49:4e:f8:
- a5:80:db:25:0f:1c:63:62:8a:c9:33:67:6b:3c:10:83:c6:ad:
- de:a8:cd:16:8e:8d:f0:07:37:71:9f:f2:ab:fc:41:f5:c1:8b:
- ec:00:37:5d:09:e5:4e:80:ef:fa:b1:5c:38:06:a5:1b:4a:e1:
- dc:38:2d:3c:dc:ab:1f:90:1a:d5:4a:9c:ee:d1:70:6c:cc:ee:
- f4:57:f8:18:ba:84:6e:87
-SHA1 Fingerprint=DF:71:7E:AA:4A:D9:4E:C9:55:84:99:60:2D:48:DE:5F:BC:F0:3A:25
diff --git a/luni/src/main/files/cacerts/d4c339cb.0 b/luni/src/main/files/cacerts/d4c339cb.0
deleted file mode 100644
index 3f5e924..0000000
--- a/luni/src/main/files/cacerts/d4c339cb.0
+++ /dev/null
@@ -1,123 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCB
-hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
-A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV
-BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMTE5
-MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgT
-EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
-Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR
-6FSS0gpWsawNJN3Fz0RndJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8X
-pz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZFGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC
-9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+5eNu/Nio5JIk2kNrYrhV
-/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pGx8cgoLEf
-Zd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z
-+pUX2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7w
-qP/0uK3pN/u6uPQLOvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZah
-SL0896+1DSJMwBGB7FY79tOi4lu3sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVIC
-u9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+CGCe01a60y1Dma/RMhnEw6abf
-Fobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5WdYgGq/yapiq
-crxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E
-FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB
-/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvl
-wFTPoCWOAvn9sKIN9SCYPBMtrFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM
-4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+nq6PK7o9mfjYcwlYRm6mnPTXJ9OV
-2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSgtZx8jb8uk2Intzna
-FxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwWsRqZ
-CuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiK
-boHGhfKppC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmcke
-jkk9u+UJueBPSZI9FoJAzMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yL
-S0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHqZJx64SIDqZxubw5lT2yHh17zbqD5daWb
-QOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk527RH89elWsn2/x20Kk4yl
-0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7ILaZRfyHB
-NVOFBkpdn627G190
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 4c:aa:f9:ca:db:63:6f:e0:1f:f7:4e:d8:5b:03:86:9d
- Signature Algorithm: sha384WithRSAEncryption
- Issuer: C=GB, ST=Greater Manchester, L=Salford, O=COMODO CA Limited, CN=COMODO RSA Certification Authority
- Validity
- Not Before: Jan 19 00:00:00 2010 GMT
- Not After : Jan 18 23:59:59 2038 GMT
- Subject: C=GB, ST=Greater Manchester, L=Salford, O=COMODO CA Limited, CN=COMODO RSA Certification Authority
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:91:e8:54:92:d2:0a:56:b1:ac:0d:24:dd:c5:cf:
- 44:67:74:99:2b:37:a3:7d:23:70:00:71:bc:53:df:
- c4:fa:2a:12:8f:4b:7f:10:56:bd:9f:70:72:b7:61:
- 7f:c9:4b:0f:17:a7:3d:e3:b0:04:61:ee:ff:11:97:
- c7:f4:86:3e:0a:fa:3e:5c:f9:93:e6:34:7a:d9:14:
- 6b:e7:9c:b3:85:a0:82:7a:76:af:71:90:d7:ec:fd:
- 0d:fa:9c:6c:fa:df:b0:82:f4:14:7e:f9:be:c4:a6:
- 2f:4f:7f:99:7f:b5:fc:67:43:72:bd:0c:00:d6:89:
- eb:6b:2c:d3:ed:8f:98:1c:14:ab:7e:e5:e3:6e:fc:
- d8:a8:e4:92:24:da:43:6b:62:b8:55:fd:ea:c1:bc:
- 6c:b6:8b:f3:0e:8d:9a:e4:9b:6c:69:99:f8:78:48:
- 30:45:d5:ad:e1:0d:3c:45:60:fc:32:96:51:27:bc:
- 67:c3:ca:2e:b6:6b:ea:46:c7:c7:20:a0:b1:1f:65:
- de:48:08:ba:a4:4e:a9:f2:83:46:37:84:eb:e8:cc:
- 81:48:43:67:4e:72:2a:9b:5c:bd:4c:1b:28:8a:5c:
- 22:7b:b4:ab:98:d9:ee:e0:51:83:c3:09:46:4e:6d:
- 3e:99:fa:95:17:da:7c:33:57:41:3c:8d:51:ed:0b:
- b6:5c:af:2c:63:1a:df:57:c8:3f:bc:e9:5d:c4:9b:
- af:45:99:e2:a3:5a:24:b4:ba:a9:56:3d:cf:6f:aa:
- ff:49:58:be:f0:a8:ff:f4:b8:ad:e9:37:fb:ba:b8:
- f4:0b:3a:f9:e8:43:42:1e:89:d8:84:cb:13:f1:d9:
- bb:e1:89:60:b8:8c:28:56:ac:14:1d:9c:0a:e7:71:
- eb:cf:0e:dd:3d:a9:96:a1:48:bd:3c:f7:af:b5:0d:
- 22:4c:c0:11:81:ec:56:3b:f6:d3:a2:e2:5b:b7:b2:
- 04:22:52:95:80:93:69:e8:8e:4c:65:f1:91:03:2d:
- 70:74:02:ea:8b:67:15:29:69:52:02:bb:d7:df:50:
- 6a:55:46:bf:a0:a3:28:61:7f:70:d0:c3:a2:aa:2c:
- 21:aa:47:ce:28:9c:06:45:76:bf:82:18:27:b4:d5:
- ae:b4:cb:50:e6:6b:f4:4c:86:71:30:e9:a6:df:16:
- 86:e0:d8:ff:40:dd:fb:d0:42:88:7f:a3:33:3a:2e:
- 5c:1e:41:11:81:63:ce:18:71:6b:2b:ec:a6:8a:b7:
- 31:5c:3a:6a:47:e0:c3:79:59:d6:20:1a:af:f2:6a:
- 98:aa:72:bc:57:4a:d2:4b:9d:bb:10:fc:b0:4c:41:
- e5:ed:1d:3d:5e:28:9d:9c:cc:bf:b3:51:da:a7:47:
- e5:84:53
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- BB:AF:7E:02:3D:FA:A6:F1:3C:84:8E:AD:EE:38:98:EC:D9:32:32:D4
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- Signature Algorithm: sha384WithRSAEncryption
- 0a:f1:d5:46:84:b7:ae:51:bb:6c:b2:4d:41:14:00:93:4c:9c:
- cb:e5:c0:54:cf:a0:25:8e:02:f9:fd:b0:a2:0d:f5:20:98:3c:
- 13:2d:ac:56:a2:b0:d6:7e:11:92:e9:2e:ba:9e:2e:9a:72:b1:
- bd:19:44:6c:61:35:a2:9a:b4:16:12:69:5a:8c:e1:d7:3e:a4:
- 1a:e8:2f:03:f4:ae:61:1d:10:1b:2a:a4:8b:7a:c5:fe:05:a6:
- e1:c0:d6:c8:fe:9e:ae:8f:2b:ba:3d:99:f8:d8:73:09:58:46:
- 6e:a6:9c:f4:d7:27:d3:95:da:37:83:72:1c:d3:73:e0:a2:47:
- 99:03:38:5d:d5:49:79:00:29:1c:c7:ec:9b:20:1c:07:24:69:
- 57:78:b2:39:fc:3a:84:a0:b5:9c:7c:8d:bf:2e:93:62:27:b7:
- 39:da:17:18:ae:bd:3c:09:68:ff:84:9b:3c:d5:d6:0b:03:e3:
- 57:9e:14:f7:d1:eb:4f:c8:bd:87:23:b7:b6:49:43:79:85:5c:
- ba:eb:92:0b:a1:c6:e8:68:a8:4c:16:b1:1a:99:0a:e8:53:2c:
- 92:bb:a1:09:18:75:0c:65:a8:7b:cb:23:b7:1a:c2:28:85:c3:
- 1b:ff:d0:2b:62:ef:a4:7b:09:91:98:67:8c:14:01:cd:68:06:
- 6a:63:21:75:03:80:88:8a:6e:81:c6:85:f2:a9:a4:2d:e7:f4:
- a5:24:10:47:83:ca:cd:f4:8d:79:58:b1:06:9b:e7:1a:2a:d9:
- 9d:01:d7:94:7d:ed:03:4a:ca:f0:db:e8:a9:01:3e:f5:56:99:
- c9:1e:8e:49:3d:bb:e5:09:b9:e0:4f:49:92:3d:16:82:40:cc:
- cc:59:c6:e6:3a:ed:12:2e:69:3c:6c:95:b1:fd:aa:1d:7b:7f:
- 86:be:1e:0e:32:46:fb:fb:13:8f:75:7f:4c:8b:4b:46:63:fe:
- 00:34:40:70:c1:c3:b9:a1:dd:a6:70:e2:04:b3:41:bc:e9:80:
- 91:ea:64:9c:7a:e1:22:03:a9:9c:6e:6f:0e:65:4f:6c:87:87:
- 5e:f3:6e:a0:f9:75:a5:9b:40:e8:53:b2:27:9d:4a:b9:c0:77:
- 21:8d:ff:87:f2:de:bc:8c:ef:17:df:b7:49:0b:d1:f2:6e:30:
- 0b:1a:0e:4e:76:ed:11:fc:f5:e9:56:b2:7d:bf:c7:6d:0a:93:
- 8c:a5:d0:c0:b6:1d:be:3a:4e:94:a2:d7:6e:6c:0b:c2:8a:7c:
- fa:20:f3:c4:e4:e5:cd:0d:a8:cb:91:92:b1:7c:85:ec:b5:14:
- 69:66:0e:82:e7:cd:ce:c8:2d:a6:51:7f:21:c1:35:53:85:06:
- 4a:5d:9f:ad:bb:1b:5f:74
-SHA1 Fingerprint=AF:E5:D2:44:A8:D1:19:42:30:FF:47:9F:E2:F8:97:BB:CD:7A:8C:B4
diff --git a/luni/src/main/files/cacerts/d59297b8.0 b/luni/src/main/files/cacerts/d59297b8.0
deleted file mode 100644
index 31c3e8a..0000000
--- a/luni/src/main/files/cacerts/d59297b8.0
+++ /dev/null
@@ -1,78 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDEl
-MCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMe
-U2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoX
-DTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRy
-dXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3VyaXR5IENvbW11bmlj
-YXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANAV
-OVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGr
-zbl+dp+++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVM
-VAX3NuRFg3sUZdbcDE3R3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQ
-hNBqyjoGADdH5H5XTz+L62e4iKrFvlNVspHEfbmwhRkGeC7bYRr6hfVKkaHnFtWO
-ojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1KEOtOghY6rCcMU/Gt1SSw
-awNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8QIH4D5cs
-OPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3
-DQEBCwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpF
-coJxDjrSzG+ntKEju/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXc
-okgfGT+Ok+vx+hfuzU7jBBJV1uXk3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8
-t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6qtnRGEmyR7jTV7JqR50S+kDFy
-1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29mvVXIwAHIRc/
-SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 0 (0x0)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=JP, O=SECOM Trust Systems CO.,LTD., OU=Security Communication RootCA2
- Validity
- Not Before: May 29 05:00:39 2009 GMT
- Not After : May 29 05:00:39 2029 GMT
- Subject: C=JP, O=SECOM Trust Systems CO.,LTD., OU=Security Communication RootCA2
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:d0:15:39:52:b1:52:b3:ba:c5:59:82:c4:5d:52:
- ae:3a:43:65:80:4b:c7:f2:96:bc:db:36:97:d6:a6:
- 64:8c:a8:5e:f0:e3:0a:1c:f7:df:97:3d:4b:ae:f6:
- 5d:ec:21:b5:41:ab:cd:b9:7e:76:9f:be:f9:3e:36:
- 34:a0:3b:c1:f6:31:11:45:74:93:3d:57:80:c5:f9:
- 89:99:ca:e5:ab:6a:d4:b5:da:41:90:10:c1:d6:d6:
- 42:89:c2:bf:f4:38:12:95:4c:54:05:f7:36:e4:45:
- 83:7b:14:65:d6:dc:0c:4d:d1:de:7e:0c:ab:3b:c4:
- 15:be:3a:56:a6:5a:6f:76:69:52:a9:7a:b9:c8:eb:
- 6a:9a:5d:52:d0:2d:0a:6b:35:16:09:10:84:d0:6a:
- ca:3a:06:00:37:47:e4:7e:57:4f:3f:8b:eb:67:b8:
- 88:aa:c5:be:53:55:b2:91:c4:7d:b9:b0:85:19:06:
- 78:2e:db:61:1a:fa:85:f5:4a:91:a1:e7:16:d5:8e:
- a2:39:df:94:b8:70:1f:28:3f:8b:fc:40:5e:63:83:
- 3c:83:2a:1a:99:6b:cf:de:59:6a:3b:fc:6f:16:d7:
- 1f:fd:4a:10:eb:4e:82:16:3a:ac:27:0c:53:f1:ad:
- d5:24:b0:6b:03:50:c1:2d:3c:16:dd:44:34:27:1a:
- 75:fb
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 0A:85:A9:77:65:05:98:7C:40:81:F8:0F:97:2C:38:F1:0A:EC:3C:CF
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- Signature Algorithm: sha256WithRSAEncryption
- 4c:3a:a3:44:ac:b9:45:b1:c7:93:7e:c8:0b:0a:42:df:64:ea:
- 1c:ee:59:6c:08:ba:89:5f:6a:ca:4a:95:9e:7a:8f:07:c5:da:
- 45:72:82:71:0e:3a:d2:cc:6f:a7:b4:a1:23:bb:f6:24:9f:cb:
- 17:fe:8c:a6:ce:c2:d2:db:cc:8d:fc:71:fc:03:29:c1:6c:5d:
- 33:5f:64:b6:65:3b:89:6f:18:76:78:f5:dc:a2:48:1f:19:3f:
- 8e:93:eb:f1:fa:17:ee:cd:4e:e3:04:12:55:d6:e5:e4:dd:fb:
- 3e:05:7c:e2:1d:5e:c6:a7:bc:97:4f:68:3a:f5:e9:2e:0a:43:
- b6:af:57:5c:62:68:7c:b7:fd:a3:8a:84:a0:ac:62:be:2b:09:
- 87:34:f0:6a:01:bb:9b:29:56:3c:fe:00:37:cf:23:6c:f1:4e:
- aa:b6:74:46:12:6c:91:ee:34:d5:ec:9a:91:e7:44:be:90:31:
- 72:d5:49:02:f6:02:e5:f4:1f:eb:7c:d9:96:55:a9:ff:ec:8a:
- f9:99:47:ff:35:5a:02:aa:04:cb:8a:5b:87:71:29:91:bd:a4:
- b4:7a:0d:bd:9a:f5:57:23:00:07:21:17:3f:4a:39:d1:05:49:
- 0b:a7:b6:37:81:a5:5d:8c:aa:33:5e:81:28:7c:a7:7d:27:eb:
- 00:ae:8d:37
-SHA1 Fingerprint=5F:3B:8C:F2:F8:10:B3:7D:78:B4:CE:EC:19:19:C3:73:34:B9:C7:74
diff --git a/luni/src/main/files/cacerts/d64f06f3.0 b/luni/src/main/files/cacerts/d64f06f3.0
deleted file mode 100644
index 98b5be1..0000000
--- a/luni/src/main/files/cacerts/d64f06f3.0
+++ /dev/null
@@ -1,94 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEDzCCAvegAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJTSzET
-MBEGA1UEBxMKQnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UE
-AxMIQ0EgRGlzaWcwHhcNMDYwMzIyMDEzOTM0WhcNMTYwMzIyMDEzOTM0WjBKMQsw
-CQYDVQQGEwJTSzETMBEGA1UEBxMKQnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcg
-YS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQCS9jHBfYj9mQGp2HvycXXxMcbzdWb6UShGhJd4NLxs/LxFWYgmGErE
-Nx+hSkS943EE9UQX4j/8SFhvXJ56CbpRNyIjZkMhsDxkovhqFQ4/61HhVKndBpnX
-mjxUizkDPw/Fzsbrg3ICqB9x8y34dQjbYkzo+s7552oftms1grrijxaSfQUMbEYD
-XcDtab86wYqg6I7ZuUUohwjstMoVvoLdtUSLLa2GDGhibYVW8qwUYzrG0ZmsNHhW
-S8+2rT+MitcE5eN4TPWGqvWP+j1scaMtymfraHtuM6kMgiioTGohQBUgDCZbg8Kp
-FhXAJIJdKxatymP2dACw30PEEGBWZ2NFAgMBAAGjgf8wgfwwDwYDVR0TAQH/BAUw
-AwEB/zAdBgNVHQ4EFgQUjbJJaJ1yCCW5wCf1UJNWSEZx+Y8wDgYDVR0PAQH/BAQD
-AgEGMDYGA1UdEQQvMC2BE2Nhb3BlcmF0b3JAZGlzaWcuc2uGFmh0dHA6Ly93d3cu
-ZGlzaWcuc2svY2EwZgYDVR0fBF8wXTAtoCugKYYnaHR0cDovL3d3dy5kaXNpZy5z
-ay9jYS9jcmwvY2FfZGlzaWcuY3JsMCygKqAohiZodHRwOi8vY2EuZGlzaWcuc2sv
-Y2EvY3JsL2NhX2Rpc2lnLmNybDAaBgNVHSAEEzARMA8GDSuBHpGT5goAAAABAQEw
-DQYJKoZIhvcNAQEFBQADggEBAF00dGFMrzvY/59tWDYcPQuBDRIrRhCA/ec8J9B6
-yKm2fnQwM6M6int0wHl5QpNt/7EpFIKrIYwvF/k/Ji/1WcbvgAa3mkkp7M5+cTxq
-EEHA9tOasnxakZzArFvITV734VP/Q3f8nktnbNfzg9Gg4H8l37iYC5oyOGwwoPP/
-CBUz91BKez6jPiCp3C9WgArtQVCwyfTssuMmRAAOb54GvCKWU3BlxFAKRmukLyeB
-EicTXxChds6KezfqwzlhA5WYOudsiCUI/HloDYd9Yvi0X/vF2Ey9WLw/Q1vUHgFN
-PGO+I++MzVpQuGhU+QqZMxEA4Z7CRneC9VkGjCFMhwnN5ag=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=SK, L=Bratislava, O=Disig a.s., CN=CA Disig
- Validity
- Not Before: Mar 22 01:39:34 2006 GMT
- Not After : Mar 22 01:39:34 2016 GMT
- Subject: C=SK, L=Bratislava, O=Disig a.s., CN=CA Disig
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:92:f6:31:c1:7d:88:fd:99:01:a9:d8:7b:f2:71:
- 75:f1:31:c6:f3:75:66:fa:51:28:46:84:97:78:34:
- bc:6c:fc:bc:45:59:88:26:18:4a:c4:37:1f:a1:4a:
- 44:bd:e3:71:04:f5:44:17:e2:3f:fc:48:58:6f:5c:
- 9e:7a:09:ba:51:37:22:23:66:43:21:b0:3c:64:a2:
- f8:6a:15:0e:3f:eb:51:e1:54:a9:dd:06:99:d7:9a:
- 3c:54:8b:39:03:3f:0f:c5:ce:c6:eb:83:72:02:a8:
- 1f:71:f3:2d:f8:75:08:db:62:4c:e8:fa:ce:f9:e7:
- 6a:1f:b6:6b:35:82:ba:e2:8f:16:92:7d:05:0c:6c:
- 46:03:5d:c0:ed:69:bf:3a:c1:8a:a0:e8:8e:d9:b9:
- 45:28:87:08:ec:b4:ca:15:be:82:dd:b5:44:8b:2d:
- ad:86:0c:68:62:6d:85:56:f2:ac:14:63:3a:c6:d1:
- 99:ac:34:78:56:4b:cf:b6:ad:3f:8c:8a:d7:04:e5:
- e3:78:4c:f5:86:aa:f5:8f:fa:3d:6c:71:a3:2d:ca:
- 67:eb:68:7b:6e:33:a9:0c:82:28:a8:4c:6a:21:40:
- 15:20:0c:26:5b:83:c2:a9:16:15:c0:24:82:5d:2b:
- 16:ad:ca:63:f6:74:00:b0:df:43:c4:10:60:56:67:
- 63:45
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- 8D:B2:49:68:9D:72:08:25:B9:C0:27:F5:50:93:56:48:46:71:F9:8F
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Alternative Name:
- email:caoperator@disig.sk, URI:http://www.disig.sk/ca
- X509v3 CRL Distribution Points:
-
- Full Name:
- URI:http://www.disig.sk/ca/crl/ca_disig.crl
-
- Full Name:
- URI:http://ca.disig.sk/ca/crl/ca_disig.crl
-
- X509v3 Certificate Policies:
- Policy: 1.3.158.35975946.0.0.0.1.1.1
-
- Signature Algorithm: sha1WithRSAEncryption
- 5d:34:74:61:4c:af:3b:d8:ff:9f:6d:58:36:1c:3d:0b:81:0d:
- 12:2b:46:10:80:fd:e7:3c:27:d0:7a:c8:a9:b6:7e:74:30:33:
- a3:3a:8a:7b:74:c0:79:79:42:93:6d:ff:b1:29:14:82:ab:21:
- 8c:2f:17:f9:3f:26:2f:f5:59:c6:ef:80:06:b7:9a:49:29:ec:
- ce:7e:71:3c:6a:10:41:c0:f6:d3:9a:b2:7c:5a:91:9c:c0:ac:
- 5b:c8:4d:5e:f7:e1:53:ff:43:77:fc:9e:4b:67:6c:d7:f3:83:
- d1:a0:e0:7f:25:df:b8:98:0b:9a:32:38:6c:30:a0:f3:ff:08:
- 15:33:f7:50:4a:7b:3e:a3:3e:20:a9:dc:2f:56:80:0a:ed:41:
- 50:b0:c9:f4:ec:b2:e3:26:44:00:0e:6f:9e:06:bc:22:96:53:
- 70:65:c4:50:0a:46:6b:a4:2f:27:81:12:27:13:5f:10:a1:76:
- ce:8a:7b:37:ea:c3:39:61:03:95:98:3a:e7:6c:88:25:08:fc:
- 79:68:0d:87:7d:62:f8:b4:5f:fb:c5:d8:4c:bd:58:bc:3f:43:
- 5b:d4:1e:01:4d:3c:63:be:23:ef:8c:cd:5a:50:b8:68:54:f9:
- 0a:99:33:11:00:e1:9e:c2:46:77:82:f5:59:06:8c:21:4c:87:
- 09:cd:e5:a8
-SHA1 Fingerprint=2A:C8:D5:8B:57:CE:BF:2F:49:AF:F2:FC:76:8F:51:14:62:90:7A:41
diff --git a/luni/src/main/files/cacerts/d66b55d9.0 b/luni/src/main/files/cacerts/d66b55d9.0
deleted file mode 100644
index d34d5c2..0000000
--- a/luni/src/main/files/cacerts/d66b55d9.0
+++ /dev/null
@@ -1,82 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEPTCCAyWgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvzE/MD0GA1UEAww2VMOc
-UktUUlVTVCBFbGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sx
-c8SxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMV4wXAYDVQQKDFVUw5xS
-S1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kg
-SGl6bWV0bGVyaSBBLsWeLiAoYykgQXJhbMSxayAyMDA3MB4XDTA3MTIyNTE4Mzcx
-OVoXDTE3MTIyMjE4MzcxOVowgb8xPzA9BgNVBAMMNlTDnFJLVFJVU1QgRWxla3Ry
-b25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTELMAkGA1UEBhMC
-VFIxDzANBgNVBAcMBkFua2FyYTFeMFwGA1UECgxVVMOcUktUUlVTVCBCaWxnaSDE
-sGxldGnFn2ltIHZlIEJpbGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7F
-ni4gKGMpIEFyYWzEsWsgMjAwNzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAKu3PgqMyKVYFeaK7yc9SrToJdPNM8Ig3BnuiD9NYvDdE3ePYakqtdTyuTFY
-KTsvP2qcb3N2Je40IIDu6rfwxArNK4aUyeNgsURSsloptJGXg9i3phQvKUmi8wUG
-+7RP2qFsmmaf8EMJyupyj+sA1zU511YXRxcw9L6/P8JorzZAwan0qafoEGsIiveG
-HtyaKhUG9qPw9ODHFNRRf8+0222vR5YXm3dx2KdxnSQM9pQ/hTEST7ruToK4uT6P
-IzdezKKqdfcYbwnTrqdUKDT74eA7YH2gvnmJhsifLfkKS8RQouf9eRbHegsYz85M
-733WB2+Y8a+xwXrXgTW4qhe04MsCAwEAAaNCMEAwHQYDVR0OBBYEFCnFkKslrxHk
-Yb+j/4hhkeYO/pyBMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0G
-CSqGSIb3DQEBBQUAA4IBAQAQDdr4Ouwo0RSVgrESLFF6QSU2TJ/sPx+EnWVUXKgW
-AkD6bho3hO9ynYYKVZ1WKKxmLNA6VpM0ByWtCLCPyA8JWcqdmBzlVPi5RX9ql2+I
-aE1KBiY3iAIOtsbWcpnOa3faYjGkVh+uX4132l32iPwa2Z61gfAyuOOI0JzzaqC5
-mxRZNTZPz/OOXl0XrRWV2N2y1RVuAE6zS89mlOTgzbUF2mNXi+WzqtvALhyQRNsa
-XRik7r4EW5nVcV9VZWRi1aKbBFmGyGJ353yCRWo9F7/snXUMrqNvWtMvmDb08PUZ
-qxFdyKbjKlhqQgnDvZImZjINXQhVdP+MmNAKpoRq0Tl9
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: CN=T\xC3\x9CRKTRUST Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xC4\xB1c\xC4\xB1s\xC4\xB1, C=TR, L=Ankara, O=T\xC3\x9CRKTRUST Bilgi \xC4\xB0leti\xC5\x9Fim ve Bili\xC5\x9Fim G\xC3\xBCvenli\xC4\x9Fi Hizmetleri A.\xC5\x9E. (c) Aral\xC4\xB1k 2007
- Validity
- Not Before: Dec 25 18:37:19 2007 GMT
- Not After : Dec 22 18:37:19 2017 GMT
- Subject: CN=T\xC3\x9CRKTRUST Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xC4\xB1c\xC4\xB1s\xC4\xB1, C=TR, L=Ankara, O=T\xC3\x9CRKTRUST Bilgi \xC4\xB0leti\xC5\x9Fim ve Bili\xC5\x9Fim G\xC3\xBCvenli\xC4\x9Fi Hizmetleri A.\xC5\x9E. (c) Aral\xC4\xB1k 2007
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:ab:b7:3e:0a:8c:c8:a5:58:15:e6:8a:ef:27:3d:
- 4a:b4:e8:25:d3:cd:33:c2:20:dc:19:ee:88:3f:4d:
- 62:f0:dd:13:77:8f:61:a9:2a:b5:d4:f2:b9:31:58:
- 29:3b:2f:3f:6a:9c:6f:73:76:25:ee:34:20:80:ee:
- ea:b7:f0:c4:0a:cd:2b:86:94:c9:e3:60:b1:44:52:
- b2:5a:29:b4:91:97:83:d8:b7:a6:14:2f:29:49:a2:
- f3:05:06:fb:b4:4f:da:a1:6c:9a:66:9f:f0:43:09:
- ca:ea:72:8f:eb:00:d7:35:39:d7:56:17:47:17:30:
- f4:be:bf:3f:c2:68:af:36:40:c1:a9:f4:a9:a7:e8:
- 10:6b:08:8a:f7:86:1e:dc:9a:2a:15:06:f6:a3:f0:
- f4:e0:c7:14:d4:51:7f:cf:b4:db:6d:af:47:96:17:
- 9b:77:71:d8:a7:71:9d:24:0c:f6:94:3f:85:31:12:
- 4f:ba:ee:4e:82:b8:b9:3e:8f:23:37:5e:cc:a2:aa:
- 75:f7:18:6f:09:d3:ae:a7:54:28:34:fb:e1:e0:3b:
- 60:7d:a0:be:79:89:86:c8:9f:2d:f9:0a:4b:c4:50:
- a2:e7:fd:79:16:c7:7a:0b:18:cf:ce:4c:ef:7d:d6:
- 07:6f:98:f1:af:b1:c1:7a:d7:81:35:b8:aa:17:b4:
- e0:cb
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 29:C5:90:AB:25:AF:11:E4:61:BF:A3:FF:88:61:91:E6:0E:FE:9C:81
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- Signature Algorithm: sha1WithRSAEncryption
- 10:0d:da:f8:3a:ec:28:d1:14:95:82:b1:12:2c:51:7a:41:25:
- 36:4c:9f:ec:3f:1f:84:9d:65:54:5c:a8:16:02:40:fa:6e:1a:
- 37:84:ef:72:9d:86:0a:55:9d:56:28:ac:66:2c:d0:3a:56:93:
- 34:07:25:ad:08:b0:8f:c8:0f:09:59:ca:9d:98:1c:e5:54:f8:
- b9:45:7f:6a:97:6f:88:68:4d:4a:06:26:37:88:02:0e:b6:c6:
- d6:72:99:ce:6b:77:da:62:31:a4:56:1f:ae:5f:8d:77:da:5d:
- f6:88:fc:1a:d9:9e:b5:81:f0:32:b8:e3:88:d0:9c:f3:6a:a0:
- b9:9b:14:59:35:36:4f:cf:f3:8e:5e:5d:17:ad:15:95:d8:dd:
- b2:d5:15:6e:00:4e:b3:4b:cf:66:94:e4:e0:cd:b5:05:da:63:
- 57:8b:e5:b3:aa:db:c0:2e:1c:90:44:db:1a:5d:18:a4:ee:be:
- 04:5b:99:d5:71:5f:55:65:64:62:d5:a2:9b:04:59:86:c8:62:
- 77:e7:7c:82:45:6a:3d:17:bf:ec:9d:75:0c:ae:a3:6f:5a:d3:
- 2f:98:36:f4:f0:f5:19:ab:11:5d:c8:a6:e3:2a:58:6a:42:09:
- c3:bd:92:26:66:32:0d:5d:08:55:74:ff:8c:98:d0:0a:a6:84:
- 6a:d1:39:7d
-SHA1 Fingerprint=F1:7F:6F:B6:31:DC:99:E3:A3:C8:7F:FE:1C:F1:81:10:88:D9:60:33
diff --git a/luni/src/main/files/cacerts/d6e6eab9.0 b/luni/src/main/files/cacerts/d6e6eab9.0
deleted file mode 100644
index aff6bdf..0000000
--- a/luni/src/main/files/cacerts/d6e6eab9.0
+++ /dev/null
@@ -1,123 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFkjCCA3qgAwIBAgIBATANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJGUjET
-MBEGA1UEChMKQ2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxHTAb
-BgNVBAMTFENlcnRpbm9taXMgLSBSb290IENBMB4XDTEzMTAyMTA5MTcxOFoXDTMz
-MTAyMTA5MTcxOFowWjELMAkGA1UEBhMCRlIxEzARBgNVBAoTCkNlcnRpbm9taXMx
-FzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMR0wGwYDVQQDExRDZXJ0aW5vbWlzIC0g
-Um9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANTMCQosP5L2
-fxSeC5yaah1AMGT9qt8OHgZbn1CF6s2Nq0Nn3rD6foCWnoR4kkjW4znuzuRZWJfl
-LieY6pOod5tK8O90gC3rMB+12ceAnGInkYjwSond3IjmFPnVAy//ldu9n+ws+hQV
-WZUKxkd8aRi5pwP5ynapz8dvtF4F/u7BUrJ1Mofs7SlmO/NKFoL21prbcpjp3vDF
-TKWrteoB4owuZH9kb/2jJZOLyKIOSY008B/sWEUuNKqEUL3nskoTuLAPrjhdsKkb
-5nPJWqHZZkCqqU2mNAKthH6yI8H7KsZn9DS2sJVqM09xRLWtwHkziOC/7aOgFLSc
-CbAK42C++PhmiM1b8XcF4LVzbsF9Ri6OSyemzTUK/eVNfaoqoynHWmgE6OXWk6Ri
-wsXm9E/G+Z8ajYJJGYrKWUM66A0ywfRMEwNvbqY/kXPLynNvEiCL7sCCeN5LLsJJ
-wx3tFvYk9CcbXFcx3FXuqB5vbKziRcxXV4p1VxngtViZSTYxPDMBbRZKzbgqg4SG
-m/lg0h9tkQPTYKbVPZrdd5A9NaSfD171UkRpucC63M9933zZxKyGIjK8e2uR73r4
-F2iw4lNVYC2vPsKD2NkJK/DAZNuHi5HMkesE/Xa0lZrmFAYb1TQdvtj/dBxThZng
-WVJKYe2InmtJiUZ+IFrZ50rlau7SZRFDAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIB
-BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTvkUz1pcMw6C8I6tNxIqSSaHh0
-2TAfBgNVHSMEGDAWgBTvkUz1pcMw6C8I6tNxIqSSaHh02TANBgkqhkiG9w0BAQsF
-AAOCAgEAfj1U2iJdGlg+O1QnurrMyOMaauo++RLrVl89UM7g6kgmJs95Vn6RHJk/
-0KGRHCwPT5iVWVO90CLYiF2cN/z7ZMF4jIuaYAnq1fohX9B0ZedQxb8uuQsLrbWw
-F6YSjNRieOpWauwK0kDDPAUwPk2Ut59KA9N9J0u2/kTO+hkzGm2kQtHdzMjI1xZS
-g081lLMSVX3l4kLr5JyTCcBMWwerx20RoFAXlCOotQqSD7J6wWAsOMwaplv/8gzj
-qh8c3LigkyfeY+N/IZ865Z764BNqdeuWXGKRlI5nU7aJ+BIJy29SWwNyhlCVCNSN
-h4YVH5Uk2KRvms6knZtt0rJ2BobGVgjF6wnaNsIbW0G+YSrjcOa4pvi2WsS9Iff/
-ql+hbHY5ZtbqTFXhADObE5hjyW/QASAJN1LnDE8+zbz1X5YnpyACleAu6AdBBR8V
-btaw5BngDwKTACdyxYvRVB9dSsNAl35VpnzBMwQUAR1JIGkLGZOdblgi90AMRgwj
-Y/M50n92Uaf0yKHxDHYiI0ZSKS3io0EHVmmY0gUJvGnHWmHNj4FgFU2A3ZDifcRQ
-8ow7bkrHxuaAKzyBvBGAFhAn1/DNP3nMcyrDflOR1m749fPH0FFNjkulW+YZFzvW
-gQncItzujrnEj1PhZ7szuIgVRs/taTX/dQ1G885x4cVrhkIGuUE=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=FR, O=Certinomis, OU=0002 433998903, CN=Certinomis - Root CA
- Validity
- Not Before: Oct 21 09:17:18 2013 GMT
- Not After : Oct 21 09:17:18 2033 GMT
- Subject: C=FR, O=Certinomis, OU=0002 433998903, CN=Certinomis - Root CA
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:d4:cc:09:0a:2c:3f:92:f6:7f:14:9e:0b:9c:9a:
- 6a:1d:40:30:64:fd:aa:df:0e:1e:06:5b:9f:50:85:
- ea:cd:8d:ab:43:67:de:b0:fa:7e:80:96:9e:84:78:
- 92:48:d6:e3:39:ee:ce:e4:59:58:97:e5:2e:27:98:
- ea:93:a8:77:9b:4a:f0:ef:74:80:2d:eb:30:1f:b5:
- d9:c7:80:9c:62:27:91:88:f0:4a:89:dd:dc:88:e6:
- 14:f9:d5:03:2f:ff:95:db:bd:9f:ec:2c:fa:14:15:
- 59:95:0a:c6:47:7c:69:18:b9:a7:03:f9:ca:76:a9:
- cf:c7:6f:b4:5e:05:fe:ee:c1:52:b2:75:32:87:ec:
- ed:29:66:3b:f3:4a:16:82:f6:d6:9a:db:72:98:e9:
- de:f0:c5:4c:a5:ab:b5:ea:01:e2:8c:2e:64:7f:64:
- 6f:fd:a3:25:93:8b:c8:a2:0e:49:8d:34:f0:1f:ec:
- 58:45:2e:34:aa:84:50:bd:e7:b2:4a:13:b8:b0:0f:
- ae:38:5d:b0:a9:1b:e6:73:c9:5a:a1:d9:66:40:aa:
- a9:4d:a6:34:02:ad:84:7e:b2:23:c1:fb:2a:c6:67:
- f4:34:b6:b0:95:6a:33:4f:71:44:b5:ad:c0:79:33:
- 88:e0:bf:ed:a3:a0:14:b4:9c:09:b0:0a:e3:60:be:
- f8:f8:66:88:cd:5b:f1:77:05:e0:b5:73:6e:c1:7d:
- 46:2e:8e:4b:27:a6:cd:35:0a:fd:e5:4d:7d:aa:2a:
- a3:29:c7:5a:68:04:e8:e5:d6:93:a4:62:c2:c5:e6:
- f4:4f:c6:f9:9f:1a:8d:82:49:19:8a:ca:59:43:3a:
- e8:0d:32:c1:f4:4c:13:03:6f:6e:a6:3f:91:73:cb:
- ca:73:6f:12:20:8b:ee:c0:82:78:de:4b:2e:c2:49:
- c3:1d:ed:16:f6:24:f4:27:1b:5c:57:31:dc:55:ee:
- a8:1e:6f:6c:ac:e2:45:cc:57:57:8a:75:57:19:e0:
- b5:58:99:49:36:31:3c:33:01:6d:16:4a:cd:b8:2a:
- 83:84:86:9b:f9:60:d2:1f:6d:91:03:d3:60:a6:d5:
- 3d:9a:dd:77:90:3d:35:a4:9f:0f:5e:f5:52:44:69:
- b9:c0:ba:dc:cf:7d:df:7c:d9:c4:ac:86:22:32:bc:
- 7b:6b:91:ef:7a:f8:17:68:b0:e2:53:55:60:2d:af:
- 3e:c2:83:d8:d9:09:2b:f0:c0:64:db:87:8b:91:cc:
- 91:eb:04:fd:76:b4:95:9a:e6:14:06:1b:d5:34:1d:
- be:d8:ff:74:1c:53:85:99:e0:59:52:4a:61:ed:88:
- 9e:6b:49:89:46:7e:20:5a:d9:e7:4a:e5:6a:ee:d2:
- 65:11:43
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- EF:91:4C:F5:A5:C3:30:E8:2F:08:EA:D3:71:22:A4:92:68:78:74:D9
- X509v3 Authority Key Identifier:
- keyid:EF:91:4C:F5:A5:C3:30:E8:2F:08:EA:D3:71:22:A4:92:68:78:74:D9
-
- Signature Algorithm: sha256WithRSAEncryption
- 7e:3d:54:da:22:5d:1a:58:3e:3b:54:27:ba:ba:cc:c8:e3:1a:
- 6a:ea:3e:f9:12:eb:56:5f:3d:50:ce:e0:ea:48:26:26:cf:79:
- 56:7e:91:1c:99:3f:d0:a1:91:1c:2c:0f:4f:98:95:59:53:bd:
- d0:22:d8:88:5d:9c:37:fc:fb:64:c1:78:8c:8b:9a:60:09:ea:
- d5:fa:21:5f:d0:74:65:e7:50:c5:bf:2e:b9:0b:0b:ad:b5:b0:
- 17:a6:12:8c:d4:62:78:ea:56:6a:ec:0a:d2:40:c3:3c:05:30:
- 3e:4d:94:b7:9f:4a:03:d3:7d:27:4b:b6:fe:44:ce:fa:19:33:
- 1a:6d:a4:42:d1:dd:cc:c8:c8:d7:16:52:83:4f:35:94:b3:12:
- 55:7d:e5:e2:42:eb:e4:9c:93:09:c0:4c:5b:07:ab:c7:6d:11:
- a0:50:17:94:23:a8:b5:0a:92:0f:b2:7a:c1:60:2c:38:cc:1a:
- a6:5b:ff:f2:0c:e3:aa:1f:1c:dc:b8:a0:93:27:de:63:e3:7f:
- 21:9f:3a:e5:9e:fa:e0:13:6a:75:eb:96:5c:62:91:94:8e:67:
- 53:b6:89:f8:12:09:cb:6f:52:5b:03:72:86:50:95:08:d4:8d:
- 87:86:15:1f:95:24:d8:a4:6f:9a:ce:a4:9d:9b:6d:d2:b2:76:
- 06:86:c6:56:08:c5:eb:09:da:36:c2:1b:5b:41:be:61:2a:e3:
- 70:e6:b8:a6:f8:b6:5a:c4:bd:21:f7:ff:aa:5f:a1:6c:76:39:
- 66:d6:ea:4c:55:e1:00:33:9b:13:98:63:c9:6f:d0:01:20:09:
- 37:52:e7:0c:4f:3e:cd:bc:f5:5f:96:27:a7:20:02:95:e0:2e:
- e8:07:41:05:1f:15:6e:d6:b0:e4:19:e0:0f:02:93:00:27:72:
- c5:8b:d1:54:1f:5d:4a:c3:40:97:7e:55:a6:7c:c1:33:04:14:
- 01:1d:49:20:69:0b:19:93:9d:6e:58:22:f7:40:0c:46:0c:23:
- 63:f3:39:d2:7f:76:51:a7:f4:c8:a1:f1:0c:76:22:23:46:52:
- 29:2d:e2:a3:41:07:56:69:98:d2:05:09:bc:69:c7:5a:61:cd:
- 8f:81:60:15:4d:80:dd:90:e2:7d:c4:50:f2:8c:3b:6e:4a:c7:
- c6:e6:80:2b:3c:81:bc:11:80:16:10:27:d7:f0:cd:3f:79:cc:
- 73:2a:c3:7e:53:91:d6:6e:f8:f5:f3:c7:d0:51:4d:8e:4b:a5:
- 5b:e6:19:17:3b:d6:81:09:dc:22:dc:ee:8e:b9:c4:8f:53:e1:
- 67:bb:33:b8:88:15:46:cf:ed:69:35:ff:75:0d:46:f3:ce:71:
- e1:c5:6b:86:42:06:b9:41
-SHA1 Fingerprint=9D:70:BB:01:A5:A4:A0:18:11:2E:F7:1C:01:B9:32:C5:34:E7:88:A8
diff --git a/luni/src/main/files/cacerts/d7746a63.0 b/luni/src/main/files/cacerts/d7746a63.0
deleted file mode 100644
index 507ab70..0000000
--- a/luni/src/main/files/cacerts/d7746a63.0
+++ /dev/null
@@ -1,90 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRF
-MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBD
-bGFzcyAzIENBIDIgRVYgMjAwOTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUw
-NDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNV
-BAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAwOTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfSegpn
-ljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM0
-3TP1YtHhzRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6Z
-qQTMFexgaDbtCHu39b+T7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lR
-p75mpoo6Kr3HGrHhFPC+Oh25z1uxav60sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8
-HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure3511H3a6UCAwEAAaOCASQw
-ggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyvcop9Ntea
-HNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFw
-Oi8vZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xh
-c3MlMjAzJTIwQ0ElMjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1E
-RT9jZXJ0aWZpY2F0ZXJldm9jYXRpb25saXN0MEagRKBChkBodHRwOi8vd3d3LmQt
-dHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xhc3NfM19jYV8yX2V2XzIwMDku
-Y3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+PPoeUSbrh/Yp
-3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05
-nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNF
-CSuGdXzfX2lXANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7na
-xpeG0ILD5EJt/rDiZE4OJudANCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqX
-KVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVvw9y4AyHqnxbxLFS1
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 623604 (0x983f4)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=DE, O=D-Trust GmbH, CN=D-TRUST Root Class 3 CA 2 EV 2009
- Validity
- Not Before: Nov 5 08:50:46 2009 GMT
- Not After : Nov 5 08:50:46 2029 GMT
- Subject: C=DE, O=D-Trust GmbH, CN=D-TRUST Root Class 3 CA 2 EV 2009
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:99:f1:84:34:70:ba:2f:b7:30:a0:8e:bd:7c:04:
- cf:be:62:bc:99:fd:82:97:d2:7a:0a:67:96:38:09:
- f6:10:4e:95:22:73:99:8d:da:15:2d:e7:05:fc:19:
- 73:22:b7:8e:98:00:bc:3c:3d:ac:a1:6c:fb:d6:79:
- 25:4b:ad:f0:cc:64:da:88:3e:29:b8:0f:09:d3:34:
- dd:33:f5:62:d1:e1:cd:19:e9:ee:18:4f:4c:58:ae:
- e2:1e:d6:0c:5b:15:5a:d8:3a:b8:c4:18:64:1e:e3:
- 33:b2:b5:89:77:4e:0c:bf:d9:94:6b:13:97:6f:12:
- a3:fe:99:a9:04:cc:15:ec:60:68:36:ed:08:7b:b7:
- f5:bf:93:ed:66:31:83:8c:c6:71:34:87:4e:17:ea:
- af:8b:91:8d:1c:56:41:ae:22:37:5e:37:f2:1d:d9:
- d1:2d:0d:2f:69:51:a7:be:66:a6:8a:3a:2a:bd:c7:
- 1a:b1:e1:14:f0:be:3a:1d:b9:cf:5b:b1:6a:fe:b4:
- b1:46:20:a2:fb:1e:3b:70:ef:93:98:7d:8c:73:96:
- f2:c5:ef:85:70:ad:29:26:fc:1e:04:3e:1c:a0:d8:
- 0f:cb:52:83:62:7c:ee:8b:53:95:90:a9:57:a2:ea:
- 61:05:d8:f9:4d:c4:27:fa:6e:ad:ed:f9:d7:51:f7:
- 6b:a5
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- D3:94:8A:4C:62:13:2A:19:2E:CC:AF:72:8A:7D:36:D7:9A:1C:DC:67
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 CRL Distribution Points:
-
- Full Name:
- URI:ldap://directory.d-trust.net/CN=D-TRUST%20Root%20Class%203%20CA%202%20EV%202009,O=D-Trust%20GmbH,C=DE?certificaterevocationlist
-
- Full Name:
- URI:http://www.d-trust.net/crl/d-trust_root_class_3_ca_2_ev_2009.crl
-
- Signature Algorithm: sha256WithRSAEncryption
- 34:ed:7b:5a:3c:a4:94:88:ef:1a:11:75:07:2f:b3:fe:3c:fa:
- 1e:51:26:eb:87:f6:29:de:e0:f1:d4:c6:24:09:e9:c1:cf:55:
- 1b:b4:30:d9:ce:1a:fe:06:51:a6:15:a4:2d:ef:b2:4b:bf:20:
- 28:25:49:d1:a6:36:77:34:e8:64:df:52:b1:11:c7:73:7a:cd:
- 39:9e:c2:ad:8c:71:21:f2:5a:6b:af:df:3c:4e:55:af:b2:84:
- 65:14:89:b9:77:cb:2a:31:be:cf:a3:6d:cf:6f:48:94:32:46:
- 6f:e7:71:8c:a0:a6:84:19:37:07:f2:03:45:09:2b:86:75:7c:
- df:5f:69:57:00:db:6e:d8:a6:72:22:4b:50:d4:75:98:56:df:
- b7:18:ff:43:43:50:ae:7a:44:7b:f0:79:51:d7:43:3d:a7:d3:
- 81:d3:f0:c9:4f:b9:da:c6:97:86:d0:82:c3:e4:42:6d:fe:b0:
- e2:64:4e:0e:26:e7:40:34:26:b5:08:89:d7:08:63:63:38:27:
- 75:1e:33:ea:6e:a8:dd:9f:99:4f:74:4d:81:89:80:4b:dd:9a:
- 97:29:5c:2f:be:81:41:b9:8c:ff:ea:7d:60:06:9e:cd:d7:3d:
- d3:2e:a3:15:bc:a8:e6:26:e5:6f:c3:dc:b8:03:21:ea:9f:16:
- f1:2c:54:b5
-SHA1 Fingerprint=96:C9:1B:0B:95:B4:10:98:42:FA:D0:D8:22:79:FE:60:FA:B9:16:83
diff --git a/luni/src/main/files/cacerts/dbc54cab.0 b/luni/src/main/files/cacerts/dbc54cab.0
deleted file mode 100644
index 904ac73..0000000
--- a/luni/src/main/files/cacerts/dbc54cab.0
+++ /dev/null
@@ -1,119 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UE
-BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVz
-dCBQcmVtaXVtMB4XDTEwMDEyOTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkG
-A1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1U
-cnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxBLf
-qV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtnBKAQ
-JG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ
-+jjeRFcV5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrS
-s8PhaJyJ+HoAVt70VZVs+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5
-HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmdGPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d7
-70O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5Rp9EixAqnOEhss/n/fauG
-V+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NIS+LI+H+S
-qHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S
-5u046uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4Ia
-C1nEWTJ3s7xgaVY5/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TX
-OwF0lkLgAOIua+rF7nKsu7/+6qqo+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYE
-FJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/
-BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByvMiPIs0laUZx2
-KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg
-Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B
-8OWycvpEgjNC6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQ
-MKSOyARiqcTtNd56l+0OOF6SL5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc
-0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK+4w1IX2COPKpVJEZNZOUbWo6xbLQ
-u4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmVBtWVyuEklut89pMF
-u+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFgIxpH
-YoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8
-GKa1qF60g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaO
-RtGdFNrHF+QFlozEJLUbzxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6e
-KeC2uAloGRwYQw==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 7893706540734352110 (0x6d8c1446b1a60aee)
- Signature Algorithm: sha384WithRSAEncryption
- Issuer: C=US, O=AffirmTrust, CN=AffirmTrust Premium
- Validity
- Not Before: Jan 29 14:10:36 2010 GMT
- Not After : Dec 31 14:10:36 2040 GMT
- Subject: C=US, O=AffirmTrust, CN=AffirmTrust Premium
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:c4:12:df:a9:5f:fe:41:dd:dd:f5:9f:8a:e3:f6:
- ac:e1:3c:78:9a:bc:d8:f0:7f:7a:a0:33:2a:dc:8d:
- 20:5b:ae:2d:6f:e7:93:d9:36:70:6a:68:cf:8e:51:
- a3:85:5b:67:04:a0:10:24:6f:5d:28:82:c1:97:57:
- d8:48:29:13:b6:e1:be:91:4d:df:85:0c:53:18:9a:
- 1e:24:a2:4f:8f:f0:a2:85:0b:cb:f4:29:7f:d2:a4:
- 58:ee:26:4d:c9:aa:a8:7b:9a:d9:fa:38:de:44:57:
- 15:e5:f8:8c:c8:d9:48:e2:0d:16:27:1d:1e:c8:83:
- 85:25:b7:ba:aa:55:41:cc:03:22:4b:2d:91:8d:8b:
- e6:89:af:66:c7:e9:ff:2b:e9:3c:ac:da:d2:b3:c3:
- e1:68:9c:89:f8:7a:00:56:de:f4:55:95:6c:fb:ba:
- 64:dd:62:8b:df:0b:77:32:eb:62:cc:26:9a:9b:bb:
- aa:62:83:4c:b4:06:7a:30:c8:29:bf:ed:06:4d:97:
- b9:1c:c4:31:2b:d5:5f:bc:53:12:17:9c:99:57:29:
- 66:77:61:21:31:07:2e:25:49:9d:18:f2:ee:f3:2b:
- 71:8c:b5:ba:39:07:49:77:fc:ef:2e:92:90:05:8d:
- 2d:2f:77:7b:ef:43:bf:35:bb:9a:d8:f9:73:a7:2c:
- f2:d0:57:ee:28:4e:26:5f:8f:90:68:09:2f:b8:f8:
- dc:06:e9:2e:9a:3e:51:a7:d1:22:c4:0a:a7:38:48:
- 6c:b3:f9:ff:7d:ab:86:57:e3:ba:d6:85:78:77:ba:
- 43:ea:48:7f:f6:d8:be:23:6d:1e:bf:d1:36:6c:58:
- 5c:f1:ee:a4:19:54:1a:f5:03:d2:76:e6:e1:8c:bd:
- 3c:b3:d3:48:4b:e2:c8:f8:7f:92:a8:76:46:9c:42:
- 65:3e:a4:1e:c1:07:03:5a:46:2d:b8:97:f3:b7:d5:
- b2:55:21:ef:ba:dc:4c:00:97:fb:14:95:27:33:bf:
- e8:43:47:46:d2:08:99:16:60:3b:9a:7e:d2:e6:ed:
- 38:ea:ec:01:1e:3c:48:56:49:09:c7:4c:37:00:9e:
- 88:0e:c0:73:e1:6f:66:e9:72:47:30:3e:10:e5:0b:
- 03:c9:9a:42:00:6c:c5:94:7e:61:c4:8a:df:7f:82:
- 1a:0b:59:c4:59:32:77:b3:bc:60:69:56:39:fd:b4:
- 06:7b:2c:d6:64:36:d9:bd:48:ed:84:1f:7e:a5:22:
- 8f:2a:b8:42:f4:82:b7:d4:53:90:78:4e:2d:1a:fd:
- 81:6f:44:d7:3b:01:74:96:42:e0:00:e2:2e:6b:ea:
- c5:ee:72:ac:bb:bf:fe:ea:aa:a8:f8:dc:f6:b2:79:
- 8a:b6:67
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 9D:C0:67:A6:0C:22:D9:26:F5:45:AB:A6:65:52:11:27:D8:45:AC:63
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- Signature Algorithm: sha384WithRSAEncryption
- b3:57:4d:10:62:4e:3a:e4:ac:ea:b8:1c:af:32:23:c8:b3:49:
- 5a:51:9c:76:28:8d:79:aa:57:46:17:d5:f5:52:f6:b7:44:e8:
- 08:44:bf:18:84:d2:0b:80:cd:c5:12:fd:00:55:05:61:87:41:
- dc:b5:24:9e:3c:c4:d8:c8:fb:70:9e:2f:78:96:83:20:36:de:
- 7c:0f:69:13:88:a5:75:36:98:08:a6:c6:df:ac:ce:e3:58:d6:
- b7:3e:de:ba:f3:eb:34:40:d8:a2:81:f5:78:3f:2f:d5:a5:fc:
- d9:a2:d4:5e:04:0e:17:ad:fe:41:f0:e5:b2:72:fa:44:82:33:
- 42:e8:2d:58:f7:56:8c:62:3f:ba:42:b0:9c:0c:5c:7e:2e:65:
- 26:5c:53:4f:00:b2:78:7e:a1:0d:99:2d:8d:b8:1d:8e:a2:c4:
- b0:fd:60:d0:30:a4:8e:c8:04:62:a9:c4:ed:35:de:7a:97:ed:
- 0e:38:5e:92:2f:93:70:a5:a9:9c:6f:a7:7d:13:1d:7e:c6:08:
- 48:b1:5e:67:eb:51:08:25:e9:e6:25:6b:52:29:91:9c:d2:39:
- 73:08:57:de:99:06:b4:5b:9d:10:06:e1:c2:00:a8:b8:1c:4a:
- 02:0a:14:d0:c1:41:ca:fb:8c:35:21:7d:82:38:f2:a9:54:91:
- 19:35:93:94:6d:6a:3a:c5:b2:d0:bb:89:86:93:e8:9b:c9:0f:
- 3a:a7:7a:b8:a1:f0:78:46:fa:fc:37:2f:e5:8a:84:f3:df:fe:
- 04:d9:a1:68:a0:2f:24:e2:09:95:06:d5:95:ca:e1:24:96:eb:
- 7c:f6:93:05:bb:ed:73:e9:2d:d1:75:39:d7:e7:24:db:d8:4e:
- 5f:43:8f:9e:d0:14:39:bf:55:70:48:99:57:31:b4:9c:ee:4a:
- 98:03:96:30:1f:60:06:ee:1b:23:fe:81:60:23:1a:47:62:85:
- a5:cc:19:34:80:6f:b3:ac:1a:e3:9f:f0:7b:48:ad:d5:01:d9:
- 67:b6:a9:72:93:ea:2d:66:b5:b2:b8:e4:3d:3c:b2:ef:4c:8c:
- ea:eb:07:bf:ab:35:9a:55:86:bc:18:a6:b5:a8:5e:b4:83:6c:
- 6b:69:40:d3:9f:dc:f1:c3:69:6b:b9:e1:6d:09:f4:f1:aa:50:
- 76:0a:7a:7d:7a:17:a1:55:96:42:99:31:09:dd:60:11:8d:05:
- 30:7e:e6:8e:46:d1:9d:14:da:c7:17:e4:05:96:8c:c4:24:b5:
- 1b:cf:14:07:b2:40:f8:a3:9e:41:86:bc:04:d0:6b:96:c8:2a:
- 80:34:fd:bf:ef:06:a3:dd:58:c5:85:3d:3e:8f:fe:9e:29:e0:
- b6:b8:09:68:19:1c:18:43
-SHA1 Fingerprint=D8:A6:33:2C:E0:03:6F:B1:85:F6:63:4F:7D:6A:06:65:26:32:28:27
diff --git a/luni/src/main/files/cacerts/e268a4c5.0 b/luni/src/main/files/cacerts/e268a4c5.0
deleted file mode 100644
index c9f7dd8..0000000
--- a/luni/src/main/files/cacerts/e268a4c5.0
+++ /dev/null
@@ -1,86 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEU
-MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3
-b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMw
-MTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYD
-VQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUA
-A4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ul
-CDtbKRY654eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6n
-tGO0/7Gcrjyvd7ZWxbWroulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyl
-dI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1Zmne3yzxbrww2ywkEtvrNTVokMsAsJch
-PXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJuiGMx1I4S+6+JNM3GOGvDC
-+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8wHQYDVR0O
-BBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8E
-BTADAQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBl
-MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFk
-ZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENB
-IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxtZBsfzQ3duQH6lmM0MkhHma6X
-7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0PhiVYrqW9yTkkz
-43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY
-eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJl
-pz/+0WatC7xrmYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOA
-WiFeIc9TVPC6b4nbqKqVz4vjccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=SE, O=AddTrust AB, OU=AddTrust TTP Network, CN=AddTrust Class 1 CA Root
- Validity
- Not Before: May 30 10:38:31 2000 GMT
- Not After : May 30 10:38:31 2020 GMT
- Subject: C=SE, O=AddTrust AB, OU=AddTrust TTP Network, CN=AddTrust Class 1 CA Root
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:96:96:d4:21:49:60:e2:6b:e8:41:07:0c:de:c4:
- e0:dc:13:23:cd:c1:35:c7:fb:d6:4e:11:0a:67:5e:
- f5:06:5b:6b:a5:08:3b:5b:29:16:3a:e7:87:b2:34:
- 06:c5:bc:05:a5:03:7c:82:cb:29:10:ae:e1:88:81:
- bd:d6:9e:d3:fe:2d:56:c1:15:ce:e3:26:9d:15:2e:
- 10:fb:06:8f:30:04:de:a7:b4:63:b4:ff:b1:9c:ae:
- 3c:af:77:b6:56:c5:b5:ab:a2:e9:69:3a:3d:0e:33:
- 79:32:3f:70:82:92:99:61:6d:8d:30:08:8f:71:3f:
- a6:48:57:19:f8:25:dc:4b:66:5c:a5:74:8f:98:ae:
- c8:f9:c0:06:22:e7:ac:73:df:a5:2e:fb:52:dc:b1:
- 15:65:20:fa:35:66:69:de:df:2c:f1:6e:bc:30:db:
- 2c:24:12:db:eb:35:35:68:90:cb:00:b0:97:21:3d:
- 74:21:23:65:34:2b:bb:78:59:a3:d6:e1:76:39:9a:
- a4:49:8e:8c:74:af:6e:a4:9a:a3:d9:9b:d2:38:5c:
- 9b:a2:18:cc:75:23:84:be:eb:e2:4d:33:71:8e:1a:
- f0:c2:f8:c7:1d:a2:ad:03:97:2c:f8:cf:25:c6:f6:
- b8:24:31:b1:63:5d:92:7f:63:f0:25:c9:53:2e:1f:
- bf:4d
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 95:B1:B4:F0:94:B6:BD:C7:DA:D1:11:09:21:BE:C1:AF:49:FD:10:7B
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Authority Key Identifier:
- keyid:95:B1:B4:F0:94:B6:BD:C7:DA:D1:11:09:21:BE:C1:AF:49:FD:10:7B
- DirName:/C=SE/O=AddTrust AB/OU=AddTrust TTP Network/CN=AddTrust Class 1 CA Root
- serial:01
-
- Signature Algorithm: sha1WithRSAEncryption
- 2c:6d:64:1b:1f:cd:0d:dd:b9:01:fa:96:63:34:32:48:47:99:
- ae:97:ed:fd:72:16:a6:73:47:5a:f4:eb:dd:e9:f5:d6:fb:45:
- cc:29:89:44:5d:bf:46:39:3d:e8:ee:bc:4d:54:86:1e:1d:6c:
- e3:17:27:43:e1:89:56:2b:a9:6f:72:4e:49:33:e3:72:7c:2a:
- 23:9a:bc:3e:ff:28:2a:ed:a3:ff:1c:23:ba:43:57:09:67:4d:
- 4b:62:06:2d:f8:ff:6c:9d:60:1e:d8:1c:4b:7d:b5:31:2f:d9:
- d0:7c:5d:f8:de:6b:83:18:78:37:57:2f:e8:33:07:67:df:1e:
- c7:6b:2a:95:76:ae:8f:57:a3:f0:f4:52:b4:a9:53:08:cf:e0:
- 4f:d3:7a:53:8b:fd:bb:1c:56:36:f2:fe:b2:b6:e5:76:bb:d5:
- 22:65:a7:3f:fe:d1:66:ad:0b:bc:6b:99:86:ef:3f:7d:f3:18:
- 32:ca:7b:c6:e3:ab:64:46:95:f8:26:69:d9:55:83:7b:2c:96:
- 07:ff:59:2c:44:a3:c6:e5:e9:a9:dc:a1:63:80:5a:21:5e:21:
- cf:53:54:f0:ba:6f:89:db:a8:aa:95:cf:8b:e3:71:cc:1e:1b:
- 20:44:08:c0:7a:b6:40:fd:c4:e4:35:e1:1d:16:1c:d0:bc:2b:
- 8e:d6:71:d9
-SHA1 Fingerprint=CC:AB:0E:A0:4C:23:01:D6:69:7B:DD:37:9F:CD:12:EB:24:E3:94:9D
diff --git a/luni/src/main/files/cacerts/e442e424.0 b/luni/src/main/files/cacerts/e442e424.0
deleted file mode 100644
index c715660..0000000
--- a/luni/src/main/files/cacerts/e442e424.0
+++ /dev/null
@@ -1,120 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQEL
-BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc
-BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00
-MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
-aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMgRzMwggIiMA0GCSqG
-SIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286IxSR
-/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNu
-FoM7pmRLMon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXR
-U7Ox7sWTaYI+FrUoRqHe6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+c
-ra1AdHkrAj80//ogaX3T7mH1urPnMNA3I4ZyYUUpSFlob3emLoG+B01vr87ERROR
-FHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3UVDmrJqMz6nWB2i3ND0/k
-A9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f75li59wzw
-eyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634Ryl
-sSqiMd5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBp
-VzgeAVuNVejH38DMdyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0Q
-A4XN8f+MFrXBsj6IbGB/kE+V9/YtrQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+
-ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
-BjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZIhvcNAQELBQAD
-ggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px
-KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnI
-FUBhynLWcKzSt/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5Wvv
-oxXqA/4Ti2Tk08HS6IT7SdEQTXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFg
-u/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9DuDcpmvJRPpq3t/O5jrFc/ZSXPsoaP
-0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGibIh6BJpsQBJFxwAYf
-3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmDhPbl
-8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+
-DhcI00iX0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HN
-PlopNLk9hM6xZdRZkZFWdSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/
-ywaZWWDYWGWVjUTR939+J399roD1B0y2PpxxVJkES/1Y+Zj0
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 2e:f5:9b:02:28:a7:db:7a:ff:d5:a3:a9:ee:bd:03:a0:cf:12:6a:1d
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=BM, O=QuoVadis Limited, CN=QuoVadis Root CA 3 G3
- Validity
- Not Before: Jan 12 20:26:32 2012 GMT
- Not After : Jan 12 20:26:32 2042 GMT
- Subject: C=BM, O=QuoVadis Limited, CN=QuoVadis Root CA 3 G3
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:b3:cb:0e:10:67:8e:ea:14:97:a7:32:2a:0a:56:
- 36:7f:68:4c:c7:b3:6f:3a:23:14:91:ff:19:7f:a5:
- ca:ac:ee:b3:76:9d:7a:e9:8b:1b:ab:6b:31:db:fa:
- 0b:53:4c:af:c5:a5:1a:79:3c:8a:4c:ff:ac:df:25:
- de:4e:d9:82:32:0b:44:de:ca:db:8c:ac:a3:6e:16:
- 83:3b:a6:64:4b:32:89:fb:16:16:38:7e:eb:43:e2:
- d3:74:4a:c2:62:0a:73:0a:dd:49:b3:57:d2:b0:0a:
- 85:9d:71:3c:de:a3:cb:c0:32:f3:01:39:20:43:1b:
- 35:d1:53:b3:b1:ee:c5:93:69:82:3e:16:b5:28:46:
- a1:de:ea:89:09:ed:43:b8:05:46:8a:86:f5:59:47:
- be:1b:6f:01:21:10:b9:fd:a9:d2:28:ca:10:39:09:
- ca:13:36:cf:9c:ad:ad:40:74:79:2b:02:3f:34:ff:
- fa:20:69:7d:d3:ee:61:f5:ba:b3:e7:30:d0:37:23:
- 86:72:61:45:29:48:59:68:6f:77:a6:2e:81:be:07:
- 4d:6f:af:ce:c4:45:13:91:14:70:06:8f:1f:9f:f8:
- 87:69:b1:0e:ef:c3:89:19:eb:ea:1c:61:fc:7a:6c:
- 8a:dc:d6:03:0b:9e:26:ba:12:dd:d4:54:39:ab:26:
- a3:33:ea:75:81:da:2d:cd:0f:4f:e4:03:d1:ef:15:
- 97:1b:6b:90:c5:02:90:93:66:02:21:b1:47:de:8b:
- 9a:4a:80:b9:55:8f:b5:a2:2f:c0:d6:33:67:da:7e:
- c4:a7:b4:04:44:eb:47:fb:e6:58:b9:f7:0c:f0:7b:
- 2b:b1:c0:70:29:c3:40:62:2d:3b:48:69:dc:23:3c:
- 48:eb:7b:09:79:a9:6d:da:a8:30:98:cf:80:72:03:
- 88:a6:5b:46:ae:72:79:7c:08:03:21:65:ae:b7:e1:
- 1c:a5:b1:2a:a2:31:de:66:04:f7:c0:74:e8:71:de:
- ff:3d:59:cc:96:26:12:8b:85:95:57:1a:ab:6b:75:
- 0b:44:3d:11:28:3c:7b:61:b7:e2:8f:67:4f:e5:ec:
- 3c:4c:60:80:69:57:38:1e:01:5b:8d:55:e8:c7:df:
- c0:cc:77:23:34:49:75:7c:f6:98:11:eb:2d:de:ed:
- 41:2e:14:05:02:7f:e0:fe:20:eb:35:e7:11:ac:22:
- ce:57:3d:de:c9:30:6d:10:03:85:cd:f1:ff:8c:16:
- b5:c1:b2:3e:88:6c:60:7f:90:4f:95:f7:f6:2d:ad:
- 01:39:07:04:fa:75:80:7d:bf:49:50:ed:ef:c9:c4:
- 7c:1c:eb:80:7e:db:b6:d0:dd:13:fe:c9:d3:9c:d7:
- b2:97:a9
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- C6:17:D0:BC:A8:EA:02:43:F2:1B:06:99:5D:2B:90:20:B9:D7:9C:E4
- Signature Algorithm: sha256WithRSAEncryption
- 34:61:d9:56:b5:12:87:55:4d:dd:a3:35:31:46:bb:a4:07:72:
- bc:5f:61:62:e8:a5:fb:0b:37:b1:3c:b6:b3:fa:29:9d:7f:02:
- f5:a4:c9:a8:93:b7:7a:71:28:69:8f:73:e1:52:90:da:d5:be:
- 3a:e5:b7:76:6a:56:80:21:df:5d:e6:e9:3a:9e:e5:3e:f6:a2:
- 69:c7:2a:0a:b0:18:47:dc:20:70:7d:52:a3:3e:59:7c:c1:ba:
- c9:c8:15:40:61:ca:72:d6:70:ac:d2:b7:f0:1c:e4:86:29:f0:
- ce:ef:68:63:d0:b5:20:8a:15:61:9a:7e:86:98:b4:c9:c2:76:
- fb:cc:ba:30:16:cc:a3:61:c6:74:13:e5:6b:ef:a3:15:ea:03:
- fe:13:8b:64:e4:d3:c1:d2:e8:84:fb:49:d1:10:4d:79:66:eb:
- aa:fd:f4:8d:31:1e:70:14:ad:dc:de:67:13:4c:81:15:61:bc:
- b7:d9:91:77:71:19:81:60:bb:f0:58:a5:b5:9c:0b:f7:8f:22:
- 55:27:c0:4b:01:6d:3b:99:0d:d4:1d:9b:63:67:2f:d0:ee:0d:
- ca:66:bc:94:4f:a6:ad:ed:fc:ee:63:ac:57:3f:65:25:cf:b2:
- 86:8f:d0:08:ff:b8:76:14:6e:de:e5:27:ec:ab:78:b5:53:b9:
- b6:3f:e8:20:f9:d2:a8:be:61:46:ca:87:8c:84:f3:f9:f1:a0:
- 68:9b:22:1e:81:26:9b:10:04:91:71:c0:06:1f:dc:a0:d3:b9:
- 56:a7:e3:98:2d:7f:83:9d:df:8c:2b:9c:32:8e:32:94:f0:01:
- 3c:22:2a:9f:43:c2:2e:c3:98:39:07:38:7b:fc:5e:00:42:1f:
- f3:32:26:79:83:84:f6:e5:f0:c1:51:12:c0:0b:1e:04:23:0c:
- 54:a5:4c:2f:49:c5:4a:d1:b6:6e:60:0d:6b:fc:6b:8b:85:24:
- 64:b7:89:0e:ab:25:47:5b:3c:cf:7e:49:bd:c7:e9:0a:c6:da:
- f7:7e:0e:17:08:d3:48:97:d0:71:92:f0:0f:39:3e:34:6a:1c:
- 7d:d8:f2:22:ae:bb:69:f4:33:b4:a6:48:55:d1:0f:0e:26:e8:
- ec:b6:0b:2d:a7:85:35:cd:fd:59:c8:9f:d1:cd:3e:5a:29:34:
- b9:3d:84:ce:b1:65:d4:59:91:91:56:75:21:c1:77:9e:f9:7a:
- e1:60:9d:d3:ad:04:18:f4:7c:eb:5e:93:8f:53:4a:22:29:f8:
- 48:2b:3e:4d:86:ac:5b:7f:cb:06:99:59:60:d8:58:65:95:8d:
- 44:d1:f7:7f:7e:27:7f:7d:ae:80:f5:07:4c:b6:3e:9c:71:54:
- 99:04:4b:fd:58:f9:98:f4
-SHA1 Fingerprint=48:12:BD:92:3C:A8:C4:39:06:E7:30:6D:27:96:E6:A4:CF:22:2E:7D
diff --git a/luni/src/main/files/cacerts/e48193cf.0 b/luni/src/main/files/cacerts/e48193cf.0
deleted file mode 100644
index 7883ef3..0000000
--- a/luni/src/main/files/cacerts/e48193cf.0
+++ /dev/null
@@ -1,77 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UE
-BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz
-dCBDb21tZXJjaWFsMB4XDTEwMDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDEL
-MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp
-cm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6EqdbDuKP
-Hx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yr
-ba0F8PrVC8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPAL
-MeIrJmqbTFeurCA+ukV6BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1
-yHp52UKqK39c/s4mT6NmgTWvRLpUHhwwMmWd5jyTXlBOeuM61G7MGvv50jeuJCqr
-VwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNVHQ4EFgQUnZPGU4teyq8/
-nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ
-KoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYG
-XUPGhi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNj
-vbz4YYCanrHOQnDiqX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivt
-Z8SOyUOyXGsViQK8YvxO8rUzqrJv0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9g
-N53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0khsUlHRUe072o0EclNmsxZt9YC
-nlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 8608355977964138876 (0x7777062726a9b17c)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, O=AffirmTrust, CN=AffirmTrust Commercial
- Validity
- Not Before: Jan 29 14:06:06 2010 GMT
- Not After : Dec 31 14:06:06 2030 GMT
- Subject: C=US, O=AffirmTrust, CN=AffirmTrust Commercial
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:f6:1b:4f:67:07:2b:a1:15:f5:06:22:cb:1f:01:
- b2:e3:73:45:06:44:49:2c:bb:49:25:14:d6:ce:c3:
- b7:ab:2c:4f:c6:41:32:94:57:fa:12:a7:5b:0e:e2:
- 8f:1f:1e:86:19:a7:aa:b5:2d:b9:5f:0d:8a:c2:af:
- 85:35:79:32:2d:bb:1c:62:37:f2:b1:5b:4a:3d:ca:
- cd:71:5f:e9:42:be:94:e8:c8:de:f9:22:48:64:c6:
- e5:ab:c6:2b:6d:ad:05:f0:fa:d5:0b:cf:9a:e5:f0:
- 50:a4:8b:3b:47:a5:23:5b:7a:7a:f8:33:3f:b8:ef:
- 99:97:e3:20:c1:d6:28:89:cf:94:fb:b9:45:ed:e3:
- 40:17:11:d4:74:f0:0b:31:e2:2b:26:6a:9b:4c:57:
- ae:ac:20:3e:ba:45:7a:05:f3:bd:9b:69:15:ae:7d:
- 4e:20:63:c4:35:76:3a:07:02:c9:37:fd:c7:47:ee:
- e8:f1:76:1d:73:15:f2:97:a4:b5:c8:7a:79:d9:42:
- aa:2b:7f:5c:fe:ce:26:4f:a3:66:81:35:af:44:ba:
- 54:1e:1c:30:32:65:9d:e6:3c:93:5e:50:4e:7a:e3:
- 3a:d4:6e:cc:1a:fb:f9:d2:37:ae:24:2a:ab:57:03:
- 22:28:0d:49:75:7f:b7:28:da:75:bf:8e:e3:dc:0e:
- 79:31
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 9D:93:C6:53:8B:5E:CA:AF:3F:9F:1E:0F:E5:99:95:BC:24:F6:94:8F
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 58:ac:f4:04:0e:cd:c0:0d:ff:0a:fd:d4:ba:16:5f:29:bd:7b:
- 68:99:58:49:d2:b4:1d:37:4d:7f:27:7d:46:06:5d:43:c6:86:
- 2e:3e:73:b2:26:7d:4f:93:a9:b6:c4:2a:9a:ab:21:97:14:b1:
- de:8c:d3:ab:89:15:d8:6b:24:d4:f1:16:ae:d8:a4:5c:d4:7f:
- 51:8e:ed:18:01:b1:93:63:bd:bc:f8:61:80:9a:9e:b1:ce:42:
- 70:e2:a9:7d:06:25:7d:27:a1:fe:6f:ec:b3:1e:24:da:e3:4b:
- 55:1a:00:3b:35:b4:3b:d9:d7:5d:30:fd:81:13:89:f2:c2:06:
- 2b:ed:67:c4:8e:c9:43:b2:5c:6b:15:89:02:bc:62:fc:4e:f2:
- b5:33:aa:b2:6f:d3:0a:a2:50:e3:f6:3b:e8:2e:44:c2:db:66:
- 38:a9:33:56:48:f1:6d:1b:33:8d:0d:8c:3f:60:37:9d:d3:ca:
- 6d:7e:34:7e:0d:9f:72:76:8b:1b:9f:72:fd:52:35:41:45:02:
- 96:2f:1c:b2:9a:73:49:21:b1:49:47:45:47:b4:ef:6a:34:11:
- c9:4d:9a:cc:59:b7:d6:02:9e:5a:4e:65:b5:94:ae:1b:df:29:
- b0:16:f1:bf:00:9e:07:3a:17:64:b5:04:b5:23:21:99:0a:95:
- 3b:97:7c:ef
-SHA1 Fingerprint=F9:B5:B6:32:45:5F:9C:BE:EC:57:5F:80:DC:E9:6E:2C:C7:B2:78:B7
diff --git a/luni/src/main/files/cacerts/e60bf0c0.0 b/luni/src/main/files/cacerts/e60bf0c0.0
deleted file mode 100644
index 1989fb8..0000000
--- a/luni/src/main/files/cacerts/e60bf0c0.0
+++ /dev/null
@@ -1,128 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUFADBk
-MQswCQYDVQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0
-YWwgQ2VydGlmaWNhdGUgU2VydmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3Qg
-Q0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4MTgyMjA2MjBaMGQxCzAJBgNVBAYT
-AmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGlnaXRhbCBDZXJ0aWZp
-Y2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAxMIICIjAN
-BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LmwqAzZuz8h+BvVM5OAFmUgdbI9
-m2BtRsiMMW8Xw/qabFbtPMWRV8PNq5ZJkCoZSx6jbVfd8StiKHVFXqrWW/oLJdih
-FvkcxC7mlSpnzNApbjyFNDhhSbEAn9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/
-TilftKaNXXsLmREDA/7n29uj/x2lzZAeAR81sH8A25Bvxn570e56eqeqDFdvpG3F
-EzuwpdntMhy0XmeLVNxzh+XTF3xmUHJd1BpYwdnP2IkCb6dJtDZd0KTeByy2dbco
-kdaXvij1mB7qWybJvbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn7uHbHaBu
-HYwadzVcFh4rUx80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNF
-vJbNcA78yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo
-19AOeCMgkckkKmUpWyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjC
-L3UcPX7ape8eYIVpQtPM+GP+HkM5haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJW
-bjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNYMUJDLXT5xp6mig/p/r+D5kNX
-JLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0hBBYw
-FDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYBAf8CAQcwHwYDVR0j
-BBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0OBBYEFAMlL95vggE6XCzc
-K6FptWfUjNP9MA0GCSqGSIb3DQEBBQUAA4ICAQA1EMvspgQNDQ/NwNurqPKIlwzf
-ky9NfEBWMXrrpA9gzXrzvsMnjgM+pN0S734edAY8PzHyHHuRMSG08NBsl9Tpl7Ik
-Vh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzneAXQMbFamIp1TpBcahQq4FJHgmDmHtqB
-sfsUC1rxn9KVuj7QG9YVHaO+htXbD8BJZLsuUBlL0iT43R4HVtA4oJVwIHaM190e
-3p9xxCPvgxNcoyQVTSlAPGrEqdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtlvrsR
-ls/bxig5OgjOR1tTWsWZ/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ip
-mXeascClOS5cfGniLLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HH
-b6D0jqTsNFFbjCYDcKF31QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksf
-rK/7DZBaZmBwXarNeNQk7shBoJMBkpxqnvy5JMWzFYJ+vq6VK+uxwNrjAWALXmms
-hFZhvnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCyx/yP2FS1k2Kdzs9Z+z0Y
-zirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMWNY6E0F/6
-MBr1mmz0DlP5OlvRHA==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 5c:0b:85:5c:0b:e7:59:41:df:57:cc:3f:7f:9d:a8:36
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=ch, O=Swisscom, OU=Digital Certificate Services, CN=Swisscom Root CA 1
- Validity
- Not Before: Aug 18 12:06:20 2005 GMT
- Not After : Aug 18 22:06:20 2025 GMT
- Subject: C=ch, O=Swisscom, OU=Digital Certificate Services, CN=Swisscom Root CA 1
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:d0:b9:b0:a8:0c:d9:bb:3f:21:f8:1b:d5:33:93:
- 80:16:65:20:75:b2:3d:9b:60:6d:46:c8:8c:31:6f:
- 17:c3:fa:9a:6c:56:ed:3c:c5:91:57:c3:cd:ab:96:
- 49:90:2a:19:4b:1e:a3:6d:57:dd:f1:2b:62:28:75:
- 45:5e:aa:d6:5b:fa:0b:25:d8:a1:16:f9:1c:c4:2e:
- e6:95:2a:67:cc:d0:29:6e:3c:85:34:38:61:49:b1:
- 00:9f:d6:3a:71:5f:4d:6d:ce:5f:b9:a9:e4:89:7f:
- 6a:52:fa:ca:9b:f2:dc:a9:f9:9d:99:47:3f:4e:29:
- 5f:b4:a6:8d:5d:7b:0b:99:11:03:03:fe:e7:db:db:
- a3:ff:1d:a5:cd:90:1e:01:1f:35:b0:7f:00:db:90:
- 6f:c6:7e:7b:d1:ee:7a:7a:a7:aa:0c:57:6f:a4:6d:
- c5:13:3b:b0:a5:d9:ed:32:1c:b4:5e:67:8b:54:dc:
- 73:87:e5:d3:17:7c:66:50:72:5d:d4:1a:58:c1:d9:
- cf:d8:89:02:6f:a7:49:b4:36:5d:d0:a4:de:07:2c:
- b6:75:b7:28:91:d6:97:be:28:f5:98:1e:ea:5b:26:
- c9:bd:b0:97:73:da:ae:91:26:eb:68:c1:f9:39:15:
- d6:67:4b:0a:6d:4f:cb:cf:b0:e4:42:71:8c:53:79:
- e7:ee:e1:db:1d:a0:6e:1d:8c:1a:77:35:5c:16:1e:
- 2b:53:1f:34:8b:d1:6c:fc:f2:67:07:7a:f5:ad:ed:
- d6:9a:ab:a1:b1:4b:e1:cc:37:5f:fd:7f:cd:4d:ae:
- b8:1f:9c:43:f9:2a:58:55:43:45:bc:96:cd:70:0e:
- fc:c9:e3:66:ba:4e:8d:3b:81:cb:15:64:7b:b9:94:
- e8:5d:33:52:85:71:2e:4f:8e:a2:06:11:51:c9:e3:
- cb:a1:6e:31:08:64:0c:c2:d2:3c:f5:36:e8:d7:d0:
- 0e:78:23:20:91:c9:24:2a:65:29:5b:22:f7:21:ce:
- 83:5e:a4:f3:de:4b:d3:68:8f:46:75:5c:83:09:6e:
- 29:6b:c4:70:8c:f5:9d:d7:20:2f:ff:46:d2:2b:38:
- c2:2f:75:1c:3d:7e:da:a5:ef:1e:60:85:69:42:d3:
- cc:f8:63:fe:1e:43:39:85:a6:b6:63:41:10:b3:73:
- 1e:bc:d3:fa:ca:7d:16:47:e2:a7:d5:d0:a3:8a:0a:
- 08:96:62:56:6e:34:db:d9:02:b9:30:75:e3:04:d2:
- e7:8f:c2:b0:11:40:0a:ac:d5:71:02:62:8b:31:be:
- dd:c6:23:58:31:42:43:2d:74:f9:c6:9e:a6:8a:0f:
- e9:fe:bf:83:e6:43:57:24:ba:ef:46:34:aa:d7:12:
- 01:38:ed
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Key Usage: critical
- Digital Signature, Certificate Sign, CRL Sign
- X509v3 Policy Mappings:
- 2.16.756.1.83.0.1:2.16.756.1.83.0.1
- X509v3 Basic Constraints: critical
- CA:TRUE, pathlen:7
- X509v3 Authority Key Identifier:
- keyid:03:25:2F:DE:6F:82:01:3A:5C:2C:DC:2B:A1:69:B5:67:D4:8C:D3:FD
-
- X509v3 Subject Key Identifier:
- 03:25:2F:DE:6F:82:01:3A:5C:2C:DC:2B:A1:69:B5:67:D4:8C:D3:FD
- Signature Algorithm: sha1WithRSAEncryption
- 35:10:cb:ec:a6:04:0d:0d:0f:cd:c0:db:ab:a8:f2:88:97:0c:
- df:93:2f:4d:7c:40:56:31:7a:eb:a4:0f:60:cd:7a:f3:be:c3:
- 27:8e:03:3e:a4:dd:12:ef:7e:1e:74:06:3c:3f:31:f2:1c:7b:
- 91:31:21:b4:f0:d0:6c:97:d4:e9:97:b2:24:56:1e:56:c3:35:
- bd:88:05:0f:5b:10:1a:64:e1:c7:82:30:f9:32:ad:9e:50:2c:
- e7:78:05:d0:31:b1:5a:98:8a:75:4e:90:5c:6a:14:2a:e0:52:
- 47:82:60:e6:1e:da:81:b1:fb:14:0b:5a:f1:9f:d2:95:ba:3e:
- d0:1b:d6:15:1d:a3:be:86:d5:db:0f:c0:49:64:bb:2e:50:19:
- 4b:d2:24:f8:dd:1e:07:56:d0:38:a0:95:70:20:76:8c:d7:dd:
- 1e:de:9f:71:c4:23:ef:83:13:5c:a3:24:15:4d:29:40:3c:6a:
- c4:a9:d8:b7:a6:44:a5:0d:f4:e0:9d:77:1e:40:70:26:fc:da:
- d9:36:e4:79:e4:b5:3f:bc:9b:65:be:bb:11:96:cf:db:c6:28:
- 39:3a:08:ce:47:5b:53:5a:c5:99:fe:5d:a9:dd:ef:4c:d4:c6:
- a5:ad:02:e6:8c:07:12:1e:6f:03:d1:6f:a0:a3:f3:29:bd:12:
- c7:50:a2:b0:7f:88:a9:99:77:9a:b1:c0:a5:39:2e:5c:7c:69:
- e2:2c:b0:ea:37:6a:a4:e1:5a:e1:f5:50:e5:83:ef:a5:bb:2a:
- 88:e7:8c:db:fd:6d:5e:97:19:a8:7e:66:75:6b:71:ea:bf:b1:
- c7:6f:a0:f4:8e:a4:ec:34:51:5b:8c:26:03:70:a1:77:d5:01:
- 12:57:00:35:db:23:de:0e:8a:28:99:fd:b1:10:6f:4b:ff:38:
- 2d:60:4e:2c:9c:eb:67:b5:ad:49:ee:4b:1f:ac:af:fb:0d:90:
- 5a:66:60:70:5d:aa:cd:78:d4:24:ee:c8:41:a0:93:01:92:9c:
- 6a:9e:fc:b9:24:c5:b3:15:82:7e:be:ae:95:2b:eb:b1:c0:da:
- e3:01:60:0b:5e:69:ac:84:56:61:be:71:17:fe:1d:13:0f:fe:
- c6:87:45:e9:fe:32:a0:1a:0d:13:a4:94:55:71:a5:16:8b:ba:
- ca:89:b0:b2:c7:fc:8f:d8:54:b5:93:62:9d:ce:cf:59:fb:3d:
- 18:ce:2a:cb:35:15:82:5d:ff:54:22:5b:71:52:fb:b7:c9:fe:
- 60:9b:00:41:64:f0:aa:2a:ec:b6:42:43:ce:89:66:81:c8:8b:
- 9f:39:54:03:25:d3:16:35:8e:84:d0:5f:fa:30:1a:f5:9a:6c:
- f4:0e:53:f9:3a:5b:d1:1c
-SHA1 Fingerprint=5F:3A:FC:0A:8B:64:F6:86:67:34:74:DF:7E:A9:A2:FE:F9:FA:7A:51
diff --git a/luni/src/main/files/cacerts/e775ed2d.0 b/luni/src/main/files/cacerts/e775ed2d.0
deleted file mode 100644
index ec2620f..0000000
--- a/luni/src/main/files/cacerts/e775ed2d.0
+++ /dev/null
@@ -1,122 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEW
-MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVy
-c2FsIENBMB4XDTA0MDMwNDA1MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UE
-BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xHjAcBgNVBAMTFUdlb1RydXN0
-IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKYV
-VaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9tJPi8
-cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTT
-QjOgNB0eRXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFh
-F7em6fgemdtzbvQKoiFs7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2v
-c7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d8Lsrlh/eezJS/R27tQahsiFepdaVaH/w
-mZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7VqnJNk22CDtucvc+081xd
-VHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3CgaRr0BHdCX
-teGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZ
-f9hBZ3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfRe
-Bi9Fi1jUIxaS5BZuKGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+
-nhutxx9z3SxPGWX9f5NAEC7S8O08ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB
-/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0XG0D08DYj3rWMB8GA1UdIwQY
-MBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG
-9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc
-aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fX
-IwjhmF7DWgh2qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzyn
-ANXH/KttgCJwpQzgXQQpAvvLoJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0z
-uzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsKxr2EoyNB3tZ3b4XUhRxQ4K5RirqN
-Pnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxFKyDuSN/n3QmOGKja
-QI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2DFKW
-koRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9
-ER/frslKxfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQt
-DF4JbAiXfKM9fJP/P6EUp8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/Sfuvm
-bJxPgWp6ZKy7PtXny3YuxadIwVyQD8vIP/rmMuGNG2+k5o7Y+SlIis5z/iw=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Universal CA
- Validity
- Not Before: Mar 4 05:00:00 2004 GMT
- Not After : Mar 4 05:00:00 2029 GMT
- Subject: C=US, O=GeoTrust Inc., CN=GeoTrust Universal CA
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:a6:15:55:a0:a3:c6:e0:1f:8c:9d:21:50:d7:c1:
- be:2b:5b:b5:a4:9e:a1:d9:72:58:bd:00:1b:4c:bf:
- 61:c9:14:1d:45:82:ab:c6:1d:80:d6:3d:eb:10:9c:
- 3a:af:6d:24:f8:bc:71:01:9e:06:f5:7c:5f:1e:c1:
- 0e:55:ca:83:9a:59:30:ae:19:cb:30:48:95:ed:22:
- 37:8d:f4:4a:9a:72:66:3e:ad:95:c0:e0:16:00:e0:
- 10:1f:2b:31:0e:d7:94:54:d3:42:33:a0:34:1d:1e:
- 45:76:dd:4f:ca:18:37:ec:85:15:7a:19:08:fc:d5:
- c7:9c:f0:f2:a9:2e:10:a9:92:e6:3d:58:3d:a9:16:
- 68:3c:2f:75:21:18:7f:28:77:a5:e1:61:17:b7:a6:
- e9:f8:1e:99:db:73:6e:f4:0a:a2:21:6c:ee:da:aa:
- 85:92:66:af:f6:7a:6b:82:da:ba:22:08:35:0f:cf:
- 42:f1:35:fa:6a:ee:7e:2b:25:cc:3a:11:e4:6d:af:
- 73:b2:76:1d:ad:d0:b2:78:67:1a:a4:39:1c:51:0b:
- 67:56:83:fd:38:5d:0d:ce:dd:f0:bb:2b:96:1f:de:
- 7b:32:52:fd:1d:bb:b5:06:a1:b2:21:5e:a5:d6:95:
- 68:7f:f0:99:9e:dc:45:08:3e:e7:d2:09:0d:35:94:
- dd:80:4e:53:97:d7:b5:09:44:20:64:16:17:03:02:
- 4c:53:0d:68:de:d5:aa:72:4d:93:6d:82:0e:db:9c:
- bd:cf:b4:f3:5c:5d:54:7a:69:09:96:d6:db:11:c1:
- 8d:75:a8:b4:cf:39:c8:ce:3c:bc:24:7c:e6:62:ca:
- e1:bd:7d:a7:bd:57:65:0b:e4:fe:25:ed:b6:69:10:
- dc:28:1a:46:bd:01:1d:d0:97:b5:e1:98:3b:c0:37:
- 64:d6:3d:94:ee:0b:e1:f5:28:ae:0b:56:bf:71:8b:
- 23:29:41:8e:86:c5:4b:52:7b:d8:71:ab:1f:8a:15:
- a6:3b:83:5a:d7:58:01:51:c6:4c:41:d9:7f:d8:41:
- 67:72:a2:28:df:60:83:a9:9e:c8:7b:fc:53:73:72:
- 59:f5:93:7a:17:76:0e:ce:f7:e5:5c:d9:0b:55:34:
- a2:aa:5b:b5:6a:54:e7:13:ca:57:ec:97:6d:f4:5e:
- 06:2f:45:8b:58:d4:23:16:92:e4:16:6e:28:63:59:
- 30:df:50:01:9c:63:89:1a:9f:db:17:94:82:70:37:
- c3:24:9e:9a:47:d6:5a:ca:4e:a8:69:89:72:1f:91:
- 6c:db:7e:9e:1b:ad:c7:1f:73:dd:2c:4f:19:65:fd:
- 7f:93:40:10:2e:d2:f0:ed:3c:9e:2e:28:3e:69:26:
- 33:c5:7b
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- DA:BB:2E:AA:B0:0C:B8:88:26:51:74:5C:6D:03:D3:C0:D8:8F:7A:D6
- X509v3 Authority Key Identifier:
- keyid:DA:BB:2E:AA:B0:0C:B8:88:26:51:74:5C:6D:03:D3:C0:D8:8F:7A:D6
-
- X509v3 Key Usage: critical
- Digital Signature, Certificate Sign, CRL Sign
- Signature Algorithm: sha1WithRSAEncryption
- 31:78:e6:c7:b5:df:b8:94:40:c9:71:c4:a8:35:ec:46:1d:c2:
- 85:f3:28:58:86:b0:0b:fc:8e:b2:39:8f:44:55:ab:64:84:5c:
- 69:a9:d0:9a:38:3c:fa:e5:1f:35:e5:44:e3:80:79:94:68:a4:
- bb:c4:9f:3d:e1:34:cd:30:46:8b:54:2b:95:a5:ef:f7:3f:99:
- 84:fd:35:e6:cf:31:c6:dc:6a:bf:a7:d7:23:08:e1:98:5e:c3:
- 5a:08:76:a9:a6:af:77:2f:b7:60:bd:44:46:6a:ef:97:ff:73:
- 95:c1:8e:e8:93:fb:fd:31:b7:ec:57:11:11:45:9b:30:f1:1a:
- 88:39:c1:4f:3c:a7:00:d5:c7:fc:ab:6d:80:22:70:a5:0c:e0:
- 5d:04:29:02:fb:cb:a0:91:d1:7c:d6:c3:7e:50:d5:9d:58:be:
- 41:38:eb:b9:75:3c:15:d9:9b:c9:4a:83:59:c0:da:53:fd:33:
- bb:36:18:9b:85:0f:15:dd:ee:2d:ac:76:93:b9:d9:01:8d:48:
- 10:a8:fb:f5:38:86:f1:db:0a:c6:bd:84:a3:23:41:de:d6:77:
- 6f:85:d4:85:1c:50:e0:ae:51:8a:ba:8d:3e:76:e2:b9:ca:27:
- f2:5f:9f:ef:6e:59:0d:06:d8:2b:17:a4:d2:7c:6b:bb:5f:14:
- 1a:48:8f:1a:4c:e7:b3:47:1c:8e:4c:45:2b:20:ee:48:df:e7:
- dd:09:8e:18:a8:da:40:8d:92:26:11:53:61:73:5d:eb:bd:e7:
- c4:4d:29:37:61:eb:ac:39:2d:67:2e:16:d6:f5:00:83:85:a1:
- cc:7f:76:c4:7d:e4:b7:4b:66:ef:03:45:60:69:b6:0c:52:96:
- 92:84:5e:a6:a3:b5:a4:3e:2b:d9:cc:d8:1b:47:aa:f2:44:da:
- 4f:f9:03:e8:f0:14:cb:3f:f3:83:de:d0:c1:54:e3:b7:e8:0a:
- 37:4d:8b:20:59:03:30:19:a1:2c:c8:bd:11:1f:df:ae:c9:4a:
- c5:f3:27:66:66:86:ac:68:91:ff:d9:e6:53:1c:0f:8b:5c:69:
- 65:0a:26:c8:1e:34:c3:5d:51:7b:d7:a9:9c:06:a1:36:dd:d5:
- 89:94:bc:d9:e4:2d:0c:5e:09:6c:08:97:7c:a3:3d:7c:93:ff:
- 3f:a1:14:a7:cf:b5:5d:eb:db:db:1c:c4:76:df:88:b9:bd:45:
- 05:95:1b:ae:fc:46:6a:4c:af:48:e3:ce:ae:0f:d2:7e:eb:e6:
- 6c:9c:4f:81:6a:7a:64:ac:bb:3e:d5:e7:cb:76:2e:c5:a7:48:
- c1:5c:90:0f:cb:c8:3f:fa:e6:32:e1:8d:1b:6f:a4:e6:8e:d8:
- f9:29:48:8a:ce:73:fe:2c
-SHA1 Fingerprint=E6:21:F3:35:43:79:05:9A:4B:68:30:9D:8A:2F:74:22:15:87:EC:79
diff --git a/luni/src/main/files/cacerts/e8651083.0 b/luni/src/main/files/cacerts/e8651083.0
deleted file mode 100644
index afb6f8c..0000000
--- a/luni/src/main/files/cacerts/e8651083.0
+++ /dev/null
@@ -1,86 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYD
-VQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0
-ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0G
-CSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTAeFw0wOTA2MTYxMTMwMThaFw0y
-OTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3Qx
-FjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3pp
-Z25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o
-dTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvP
-kd6mJviZpWNwrZuuyjNAfW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tc
-cbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG0IMZfcChEhyVbUr02MelTTMuhTlAdX4U
-fIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKApxn1ntxVUwOXewdI/5n7
-N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm1HxdrtbC
-xkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1
-+rUCAwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
-A1UdDgQWBBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPM
-Pcu1SCOhGnqmKrs0aDAbBgNVHREEFDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqG
-SIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0olZMEyL/azXm4Q5DwpL7v8u8h
-mLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfXI/OMn74dseGk
-ddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775
-tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c
-2Pm2G2JwCz02yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5t
-HMN1Rq41Bab2XD0h7lbwyYIiLXpUq3DDfSJlgnCW
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 14014712776195784473 (0xc27e43044e473f19)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=HU, L=Budapest, O=Microsec Ltd., CN=Microsec e-Szigno Root CA 2009/emailAddress=info@e-szigno.hu
- Validity
- Not Before: Jun 16 11:30:18 2009 GMT
- Not After : Dec 30 11:30:18 2029 GMT
- Subject: C=HU, L=Budapest, O=Microsec Ltd., CN=Microsec e-Szigno Root CA 2009/emailAddress=info@e-szigno.hu
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:e9:f8:8f:f3:63:ad:da:86:d8:a7:e0:42:fb:cf:
- 91:de:a6:26:f8:99:a5:63:70:ad:9b:ae:ca:33:40:
- 7d:6d:96:6e:a1:0e:44:ee:e1:13:9d:94:42:52:9a:
- bd:75:85:74:2c:a8:0e:1d:93:b6:18:b7:8c:2c:a8:
- cf:fb:5c:71:b9:da:ec:fe:e8:7e:8f:e4:2f:1d:b2:
- a8:75:87:d8:b7:a1:e5:3b:cf:99:4a:46:d0:83:19:
- 7d:c0:a1:12:1c:95:6d:4a:f4:d8:c7:a5:4d:33:2e:
- 85:39:40:75:7e:14:7c:80:12:98:50:c7:41:67:b8:
- a0:80:61:54:a6:6c:4e:1f:e0:9d:0e:07:e9:c9:ba:
- 33:e7:fe:c0:55:28:2c:02:80:a7:19:f5:9e:dc:55:
- 53:03:97:7b:07:48:ff:99:fb:37:8a:24:c4:59:cc:
- 50:10:63:8e:aa:a9:1a:b0:84:1a:86:f9:5f:bb:b1:
- 50:6e:a4:d1:0a:cc:d5:71:7e:1f:a7:1b:7c:f5:53:
- 6e:22:5f:cb:2b:e6:d4:7c:5d:ae:d6:c2:c6:4c:e5:
- 05:01:d9:ed:57:fc:c1:23:79:fc:fa:c8:24:83:95:
- f3:b5:6a:51:01:d0:77:d6:e9:12:a1:f9:1a:83:fb:
- 82:1b:b9:b0:97:f4:76:06:33:43:49:a0:ff:0b:b5:
- fa:b5
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- CB:0F:C6:DF:42:43:CC:3D:CB:B5:48:23:A1:1A:7A:A6:2A:BB:34:68
- X509v3 Authority Key Identifier:
- keyid:CB:0F:C6:DF:42:43:CC:3D:CB:B5:48:23:A1:1A:7A:A6:2A:BB:34:68
-
- X509v3 Subject Alternative Name:
- email:info@e-szigno.hu
- Signature Algorithm: sha256WithRSAEncryption
- c9:d1:0e:5e:2e:d5:cc:b3:7c:3e:cb:fc:3d:ff:0d:28:95:93:
- 04:c8:bf:da:cd:79:b8:43:90:f0:a4:be:ef:f2:ef:21:98:bc:
- d4:d4:5d:06:f6:ee:42:ec:30:6c:a0:aa:a9:ca:f1:af:8a:fa:
- 3f:0b:73:6a:3e:ea:2e:40:7e:1f:ae:54:61:79:eb:2e:08:37:
- d7:23:f3:8c:9f:be:1d:b1:e1:a4:75:db:a0:e2:54:14:b1:ba:
- 1c:29:a4:18:f6:12:ba:a2:14:14:e3:31:35:c8:40:ff:b7:e0:
- 05:76:57:c1:1c:59:f2:f8:bf:e4:ed:25:62:5c:84:f0:7e:7e:
- 1f:b3:be:f9:b7:21:11:cc:03:01:56:70:a7:10:92:1e:1b:34:
- 81:1e:ad:9c:1a:c3:04:3c:ed:02:61:d6:1e:06:f3:5f:3a:87:
- f2:2b:f1:45:87:e5:3d:ac:d1:c7:57:84:bd:6b:ae:dc:d8:f9:
- b6:1b:62:70:0b:3d:36:c9:42:f2:32:d7:7a:61:e6:d2:db:3d:
- cf:c8:a9:c9:9b:dc:db:58:44:d7:6f:38:af:7f:78:d3:a3:ad:
- 1a:75:ba:1c:c1:36:7c:8f:1e:6d:1c:c3:75:46:ae:35:05:a6:
- f6:5c:3d:21:ee:56:f0:c9:82:22:2d:7a:54:ab:70:c3:7d:22:
- 65:82:70:96
-SHA1 Fingerprint=89:DF:74:FE:5C:F4:0F:4A:80:F9:E3:37:7D:54:DA:91:E1:01:31:8E
diff --git a/luni/src/main/files/cacerts/ea169617.0 b/luni/src/main/files/cacerts/ea169617.0
deleted file mode 100644
index f7d488e..0000000
--- a/luni/src/main/files/cacerts/ea169617.0
+++ /dev/null
@@ -1,128 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFtTCCA52gAwIBAgIIYY3HhjsBggUwDQYJKoZIhvcNAQEFBQAwRDEWMBQGA1UE
-AwwNQUNFRElDT00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00x
-CzAJBgNVBAYTAkVTMB4XDTA4MDQxODE2MjQyMloXDTI4MDQxMzE2MjQyMlowRDEW
-MBQGA1UEAwwNQUNFRElDT00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZF
-RElDT00xCzAJBgNVBAYTAkVTMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
-AgEA/5KV4WgGdrQsyFhIyv2AVClVYyT/kGWbEHV7w2rbYgIB8hiGtXxaOLHkWLn7
-09gtn70yN78sFW2+tfQh0hOR2QetAQXW8713zl9CgQr5auODAKgrLlUTY4HKRxx7
-XBZXehuDYAQ6PmXDzQHe3qTWDLqO3tkE7hdWIpuPY/1NFgu3e3eM+SW10W2ZEi5P
-Grjm6gSSrj0RuVFCPYewMYWveVqc/udOXpJPQ/yrOq2lEiZmueIM15jO1FillUAK
-t0SdE3QrwqXrIhWYENiLxQSfHY9g5QYbm8+5eaA9oiM/Qj9r+hwDezCNzmzAv+Yb
-X79nuIQZ1RXve8uQNjFiybwCq0Zfm/4aaJQ0PZCOrfbkHQl/Sog4P75n/TSW9R28
-MHTLOO7VbKvU/PQAtwBbhTIWdjPp2KOZnQUAqhbm84F9b32qhm2tFXTTxKJxqvQU
-fecyuB+81fFOvW8XAjnXDpVCOscAPukmYxHqC9FK/xidstd7LzrZlvvoHpKuE1XI
-2Sf23EgbsCTBheN3nZqk8wwRHQ3ItBTutYJXCb8gWH8vIiPYcMt5bMlL8qkqyPyH
-K9caUPgn6C9D4zq92Fdx/c6mUlv53U3t5fZvie27k5x2IXXwkkwp9y+cAS7+UEae
-ZAwUswdbxcJzbPEHXEUkFDWug/FqTYl6+rPYLWbwNof1K1MCAwEAAaOBqjCBpzAP
-BgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKaz4SsrSbbXc6GqlPUB53NlTKxQ
-MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUprPhKytJttdzoaqU9QHnc2VMrFAw
-RAYDVR0gBD0wOzA5BgRVHSAAMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly9hY2VkaWNv
-bS5lZGljb21ncm91cC5jb20vZG9jMA0GCSqGSIb3DQEBBQUAA4ICAQDOLAtSUWIm
-fQwng4/F9tqgaHtPkl7qpHMyEVNEskTLnewPeUKzEKbHDZ3Ltvo/Onzqv4hTGzz3
-gvoFNTPhNahXwOf9jU8/kzJPeGYDdwdY6ZXIfj7QeQCM8htRM5u8lOk6e25SLTKe
-I6RF+7YuE7CLGLHdztUdp0J/Vb77W7tH1PwkzQSulgUV1qzOMPPKC8W64iLgpq0i
-5ALudBF/TP94HTXa5gI06xgSYXcGCRZj6hitoocf8seACQl1ThCojz2GuHURwCRi
-ipZ7SkXp7FnFvmuD5uHorLUwHv4FB4D54SMNUI8FmP8sX+g7tq3PgbUhh8oIKiMn
-MCArz+2UW6yyetLHKKGKC5tNSixthT8Jcjxn4tncB7rrZXtaAWPWkFtPF2Y9fwsZ
-o5NjEFIqnxQWWOLcpfShFosOkYuByptZ+thrkQdlVV9SH686+5DdaaVbnG0OLLb6
-zqylfDJKZ0DcMDQj3dcEI2bw/FWAp/tmGYI1Z2JwOV5vx+qQQEQIHriy1tvuWacN
-GHk0vFQYXlPKNFHtRQrmjseCNj6nOGOpMCwXEGCSn1WHElkQwg9naRHMTh5+Spqt
-r0CodaxWkHS4oJyleW/c6RrIaQXpuvoDs3zk4E7Czp3otkYNbn5XOmeUwssfnHdK
-Z05phkOTOPu220+DkdRgfks+KzgHVZhepA==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 7029493972724711941 (0x618dc7863b018205)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: CN=ACEDICOM Root, OU=PKI, O=EDICOM, C=ES
- Validity
- Not Before: Apr 18 16:24:22 2008 GMT
- Not After : Apr 13 16:24:22 2028 GMT
- Subject: CN=ACEDICOM Root, OU=PKI, O=EDICOM, C=ES
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:ff:92:95:e1:68:06:76:b4:2c:c8:58:48:ca:fd:
- 80:54:29:55:63:24:ff:90:65:9b:10:75:7b:c3:6a:
- db:62:02:01:f2:18:86:b5:7c:5a:38:b1:e4:58:b9:
- fb:d3:d8:2d:9f:bd:32:37:bf:2c:15:6d:be:b5:f4:
- 21:d2:13:91:d9:07:ad:01:05:d6:f3:bd:77:ce:5f:
- 42:81:0a:f9:6a:e3:83:00:a8:2b:2e:55:13:63:81:
- ca:47:1c:7b:5c:16:57:7a:1b:83:60:04:3a:3e:65:
- c3:cd:01:de:de:a4:d6:0c:ba:8e:de:d9:04:ee:17:
- 56:22:9b:8f:63:fd:4d:16:0b:b7:7b:77:8c:f9:25:
- b5:d1:6d:99:12:2e:4f:1a:b8:e6:ea:04:92:ae:3d:
- 11:b9:51:42:3d:87:b0:31:85:af:79:5a:9c:fe:e7:
- 4e:5e:92:4f:43:fc:ab:3a:ad:a5:12:26:66:b9:e2:
- 0c:d7:98:ce:d4:58:a5:95:40:0a:b7:44:9d:13:74:
- 2b:c2:a5:eb:22:15:98:10:d8:8b:c5:04:9f:1d:8f:
- 60:e5:06:1b:9b:cf:b9:79:a0:3d:a2:23:3f:42:3f:
- 6b:fa:1c:03:7b:30:8d:ce:6c:c0:bf:e6:1b:5f:bf:
- 67:b8:84:19:d5:15:ef:7b:cb:90:36:31:62:c9:bc:
- 02:ab:46:5f:9b:fe:1a:68:94:34:3d:90:8e:ad:f6:
- e4:1d:09:7f:4a:88:38:3f:be:67:fd:34:96:f5:1d:
- bc:30:74:cb:38:ee:d5:6c:ab:d4:fc:f4:00:b7:00:
- 5b:85:32:16:76:33:e9:d8:a3:99:9d:05:00:aa:16:
- e6:f3:81:7d:6f:7d:aa:86:6d:ad:15:74:d3:c4:a2:
- 71:aa:f4:14:7d:e7:32:b8:1f:bc:d5:f1:4e:bd:6f:
- 17:02:39:d7:0e:95:42:3a:c7:00:3e:e9:26:63:11:
- ea:0b:d1:4a:ff:18:9d:b2:d7:7b:2f:3a:d9:96:fb:
- e8:1e:92:ae:13:55:c8:d9:27:f6:dc:48:1b:b0:24:
- c1:85:e3:77:9d:9a:a4:f3:0c:11:1d:0d:c8:b4:14:
- ee:b5:82:57:09:bf:20:58:7f:2f:22:23:d8:70:cb:
- 79:6c:c9:4b:f2:a9:2a:c8:fc:87:2b:d7:1a:50:f8:
- 27:e8:2f:43:e3:3a:bd:d8:57:71:fd:ce:a6:52:5b:
- f9:dd:4d:ed:e5:f6:6f:89:ed:bb:93:9c:76:21:75:
- f0:92:4c:29:f7:2f:9c:01:2e:fe:50:46:9e:64:0c:
- 14:b3:07:5b:c5:c2:73:6c:f1:07:5c:45:24:14:35:
- ae:83:f1:6a:4d:89:7a:fa:b3:d8:2d:66:f0:36:87:
- f5:2b:53
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Authority Key Identifier:
- keyid:A6:B3:E1:2B:2B:49:B6:D7:73:A1:AA:94:F5:01:E7:73:65:4C:AC:50
-
- X509v3 Key Usage: critical
- Digital Signature, Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- A6:B3:E1:2B:2B:49:B6:D7:73:A1:AA:94:F5:01:E7:73:65:4C:AC:50
- X509v3 Certificate Policies:
- Policy: X509v3 Any Policy
- CPS: http://acedicom.edicomgroup.com/doc
-
- Signature Algorithm: sha1WithRSAEncryption
- ce:2c:0b:52:51:62:26:7d:0c:27:83:8f:c5:f6:da:a0:68:7b:
- 4f:92:5e:ea:a4:73:32:11:53:44:b2:44:cb:9d:ec:0f:79:42:
- b3:10:a6:c7:0d:9d:cb:b6:fa:3f:3a:7c:ea:bf:88:53:1b:3c:
- f7:82:fa:05:35:33:e1:35:a8:57:c0:e7:fd:8d:4f:3f:93:32:
- 4f:78:66:03:77:07:58:e9:95:c8:7e:3e:d0:79:00:8c:f2:1b:
- 51:33:9b:bc:94:e9:3a:7b:6e:52:2d:32:9e:23:a4:45:fb:b6:
- 2e:13:b0:8b:18:b1:dd:ce:d5:1d:a7:42:7f:55:be:fb:5b:bb:
- 47:d4:fc:24:cd:04:ae:96:05:15:d6:ac:ce:30:f3:ca:0b:c5:
- ba:e2:22:e0:a6:ad:22:e4:02:ee:74:11:7f:4c:ff:78:1d:35:
- da:e6:02:34:eb:18:12:61:77:06:09:16:63:ea:18:ad:a2:87:
- 1f:f2:c7:80:09:09:75:4e:10:a8:8f:3d:86:b8:75:11:c0:24:
- 62:8a:96:7b:4a:45:e9:ec:59:c5:be:6b:83:e6:e1:e8:ac:b5:
- 30:1e:fe:05:07:80:f9:e1:23:0d:50:8f:05:98:ff:2c:5f:e8:
- 3b:b6:ad:cf:81:b5:21:87:ca:08:2a:23:27:30:20:2b:cf:ed:
- 94:5b:ac:b2:7a:d2:c7:28:a1:8a:0b:9b:4d:4a:2c:6d:85:3f:
- 09:72:3c:67:e2:d9:dc:07:ba:eb:65:7b:5a:01:63:d6:90:5b:
- 4f:17:66:3d:7f:0b:19:a3:93:63:10:52:2a:9f:14:16:58:e2:
- dc:a5:f4:a1:16:8b:0e:91:8b:81:ca:9b:59:fa:d8:6b:91:07:
- 65:55:5f:52:1f:af:3a:fb:90:dd:69:a5:5b:9c:6d:0e:2c:b6:
- fa:ce:ac:a5:7c:32:4a:67:40:dc:30:34:23:dd:d7:04:23:66:
- f0:fc:55:80:a7:fb:66:19:82:35:67:62:70:39:5e:6f:c7:ea:
- 90:40:44:08:1e:b8:b2:d6:db:ee:59:a7:0d:18:79:34:bc:54:
- 18:5e:53:ca:34:51:ed:45:0a:e6:8e:c7:82:36:3e:a7:38:63:
- a9:30:2c:17:10:60:92:9f:55:87:12:59:10:c2:0f:67:69:11:
- cc:4e:1e:7e:4a:9a:ad:af:40:a8:75:ac:56:90:74:b8:a0:9c:
- a5:79:6f:dc:e9:1a:c8:69:05:e9:ba:fa:03:b3:7c:e4:e0:4e:
- c2:ce:9d:e8:b6:46:0d:6e:7e:57:3a:67:94:c2:cb:1f:9c:77:
- 4a:67:4e:69:86:43:93:38:fb:b6:db:4f:83:91:d4:60:7e:4b:
- 3e:2b:38:07:55:98:5e:a4
-SHA1 Fingerprint=E0:B4:32:2E:B2:F6:A5:68:B6:54:53:84:48:18:4A:50:36:87:43:84
diff --git a/luni/src/main/files/cacerts/ed39abd0.0 b/luni/src/main/files/cacerts/ed39abd0.0
deleted file mode 100644
index 188e375..0000000
--- a/luni/src/main/files/cacerts/ed39abd0.0
+++ /dev/null
@@ -1,53 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQsw
-CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu
-ZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAe
-Fw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVTMRUw
-EwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20x
-IDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0CAQYF
-K4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FG
-fp4tn+6OYwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPO
-Z9wj/wMco+I+o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAd
-BgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNpYim8S8YwCgYIKoZIzj0EAwMDaAAwZQIx
-AK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y3maTD/HMsQmP3Wyr+mt/
-oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34VOKa5Vt8
-sycX
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 05:55:56:bc:f2:5e:a4:35:35:c3:a4:0f:d5:ab:45:72
- Signature Algorithm: ecdsa-with-SHA384
- Issuer: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Global Root G3
- Validity
- Not Before: Aug 1 12:00:00 2013 GMT
- Not After : Jan 15 12:00:00 2038 GMT
- Subject: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Global Root G3
- Subject Public Key Info:
- Public Key Algorithm: id-ecPublicKey
- Public-Key: (384 bit)
- pub:
- 04:dd:a7:d9:bb:8a:b8:0b:fb:0b:7f:21:d2:f0:be:
- be:73:f3:33:5d:1a:bc:34:ea:de:c6:9b:bc:d0:95:
- f6:f0:cc:d0:0b:ba:61:5b:51:46:7e:9e:2d:9f:ee:
- 8e:63:0c:17:ec:07:70:f5:cf:84:2e:40:83:9c:e8:
- 3f:41:6d:3b:ad:d3:a4:14:59:36:78:9d:03:43:ee:
- 10:13:6c:72:de:ae:88:a7:a1:6b:b5:43:ce:67:dc:
- 23:ff:03:1c:a3:e2:3e
- ASN1 OID: secp384r1
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Digital Signature, Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- B3:DB:48:A4:F9:A1:C5:D8:AE:36:41:CC:11:63:69:62:29:BC:4B:C6
- Signature Algorithm: ecdsa-with-SHA384
- 30:65:02:31:00:ad:bc:f2:6c:3f:12:4a:d1:2d:39:c3:0a:09:
- 97:73:f4:88:36:8c:88:27:bb:e6:88:8d:50:85:a7:63:f9:9e:
- 32:de:66:93:0f:f1:cc:b1:09:8f:dd:6c:ab:fa:6b:7f:a0:02:
- 30:39:66:5b:c2:64:8d:b8:9e:50:dc:a8:d5:49:a2:ed:c7:dc:
- d1:49:7f:17:01:b8:c8:86:8f:4e:8c:88:2b:a8:9a:a9:8a:c5:
- d1:00:bd:f8:54:e2:9a:e5:5b:7c:b3:27:17
-SHA1 Fingerprint=7E:04:DE:89:6A:3E:66:6D:00:E6:87:D3:3F:FA:D9:3B:E8:3D:34:9E
diff --git a/luni/src/main/files/cacerts/ed524cf5.0 b/luni/src/main/files/cacerts/ed524cf5.0
deleted file mode 100644
index 29144fd..0000000
--- a/luni/src/main/files/cacerts/ed524cf5.0
+++ /dev/null
@@ -1,87 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMC
-VVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5u
-ZXQvQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMc
-KGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UEAxMxRW50cnVzdC5u
-ZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05OTA1
-MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIGA1UE
-ChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5j
-b3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF
-bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUg
-U2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUA
-A4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQaO2f55M28Qpku0f1BBc/
-I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5gXpa0zf3
-wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OC
-AdcwggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHb
-oIHYpIHVMIHSMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5
-BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1p
-dHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1pdGVk
-MTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRp
-b24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu
-dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0
-MFqBDzIwMTkwNTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8Bdi
-E1U9s/8KAGv7UISX8+1i0BowHQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAa
-MAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EABAwwChsEVjQuMAMCBJAwDQYJKoZI
-hvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyNEwr75Ji174z4xRAN
-95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9n9cd
-2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 927650371 (0x374ad243)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=US, O=Entrust.net, OU=www.entrust.net/CPS incorp. by ref. (limits liab.), OU=(c) 1999 Entrust.net Limited, CN=Entrust.net Secure Server Certification Authority
- Validity
- Not Before: May 25 16:09:40 1999 GMT
- Not After : May 25 16:39:40 2019 GMT
- Subject: C=US, O=Entrust.net, OU=www.entrust.net/CPS incorp. by ref. (limits liab.), OU=(c) 1999 Entrust.net Limited, CN=Entrust.net Secure Server Certification Authority
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (1024 bit)
- Modulus:
- 00:cd:28:83:34:54:1b:89:f3:0f:af:37:91:31:ff:
- af:31:60:c9:a8:e8:b2:10:68:ed:9f:e7:93:36:f1:
- 0a:64:bb:47:f5:04:17:3f:23:47:4d:c5:27:19:81:
- 26:0c:54:72:0d:88:2d:d9:1f:9a:12:9f:bc:b3:71:
- d3:80:19:3f:47:66:7b:8c:35:28:d2:b9:0a:df:24:
- da:9c:d6:50:79:81:7a:5a:d3:37:f7:c2:4a:d8:29:
- 92:26:64:d1:e4:98:6c:3a:00:8a:f5:34:9b:65:f8:
- ed:e3:10:ff:fd:b8:49:58:dc:a0:de:82:39:6b:81:
- b1:16:19:61:b9:54:b6:e6:43
- Exponent: 3 (0x3)
- X509v3 extensions:
- Netscape Cert Type:
- SSL CA, S/MIME CA, Object Signing CA
- X509v3 CRL Distribution Points:
-
- Full Name:
- DirName: C = US, O = Entrust.net, OU = www.entrust.net/CPS incorp. by ref. (limits liab.), OU = (c) 1999 Entrust.net Limited, CN = Entrust.net Secure Server Certification Authority, CN = CRL1
-
- Full Name:
- URI:http://www.entrust.net/CRL/net1.crl
-
- X509v3 Private Key Usage Period:
- Not Before: May 25 16:09:40 1999 GMT, Not After: May 25 16:09:40 2019 GMT
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- X509v3 Authority Key Identifier:
- keyid:F0:17:62:13:55:3D:B3:FF:0A:00:6B:FB:50:84:97:F3:ED:62:D0:1A
-
- X509v3 Subject Key Identifier:
- F0:17:62:13:55:3D:B3:FF:0A:00:6B:FB:50:84:97:F3:ED:62:D0:1A
- X509v3 Basic Constraints:
- CA:TRUE
- 1.2.840.113533.7.65.0:
- 0
-..V4.0....
- Signature Algorithm: sha1WithRSAEncryption
- 90:dc:30:02:fa:64:74:c2:a7:0a:a5:7c:21:8d:34:17:a8:fb:
- 47:0e:ff:25:7c:8d:13:0a:fb:e4:98:b5:ef:8c:f8:c5:10:0d:
- f7:92:be:f1:c3:d5:d5:95:6a:04:bb:2c:ce:26:36:65:c8:31:
- c6:e7:ee:3f:e3:57:75:84:7a:11:ef:46:4f:18:f4:d3:98:bb:
- a8:87:32:ba:72:f6:3c:e2:3d:9f:d7:1d:d9:c3:60:43:8c:58:
- 0e:22:96:2f:62:a3:2c:1f:ba:ad:05:ef:ab:32:78:87:a0:54:
- 73:19:b5:5c:05:f9:52:3e:6d:2d:45:0b:f7:0a:93:ea:ed:06:
- f9:b2
-SHA1 Fingerprint=99:A6:9B:E6:1A:FE:88:6B:4D:2B:82:00:7C:B8:54:FC:31:7E:15:39
diff --git a/luni/src/main/files/cacerts/ee7cd6fb.0 b/luni/src/main/files/cacerts/ee7cd6fb.0
deleted file mode 100644
index 69b359a..0000000
--- a/luni/src/main/files/cacerts/ee7cd6fb.0
+++ /dev/null
@@ -1,100 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEn
-MCUGA1UEChMeQUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQL
-ExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMg
-b2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAxNjEzNDNaFw0zNzA5MzAxNjEzNDRa
-MH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZpcm1hIFNBIENJRiBB
-ODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3JnMSIw
-IAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0B
-AQEFAAOCAQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtb
-unXF/KGIJPov7coISjlUxFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0d
-BmpAPrMMhe5cG3nCYsS4No41XQEMIwRHNaqbYE6gZj3LJgqcQKH0XZi/caulAGgq
-7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jWDA+wWFjbw2Y3npuRVDM3
-0pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFVd9oKDMyX
-roDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIG
-A1UdEwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5j
-aGFtYmVyc2lnbi5vcmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p
-26EpW1eLTXYGduHRooowDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIA
-BzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hhbWJlcnNpZ24ub3JnMCcGA1Ud
-EgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYDVR0gBFEwTzBN
-BgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz
-aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEB
-AAxBl8IahsAifJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZd
-p0AJPaxJRUXcLo0waLIJuvvDL8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi
-1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wNUPf6s+xCX6ndbcj0dc97wXImsQEc
-XCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/nADydb47kMgkdTXg0
-eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1erfu
-tGWaIZDgqtCYvDi1czyL+Nw=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 0 (0x0)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=EU, O=AC Camerfirma SA CIF A82743287, OU=http://www.chambersign.org, CN=Chambers of Commerce Root
- Validity
- Not Before: Sep 30 16:13:43 2003 GMT
- Not After : Sep 30 16:13:44 2037 GMT
- Subject: C=EU, O=AC Camerfirma SA CIF A82743287, OU=http://www.chambersign.org, CN=Chambers of Commerce Root
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:b7:36:55:e5:a5:5d:18:30:e0:da:89:54:91:fc:
- c8:c7:52:f8:2f:50:d9:ef:b1:75:73:65:47:7d:1b:
- 5b:ba:75:c5:fc:a1:88:24:fa:2f:ed:ca:08:4a:39:
- 54:c4:51:7a:b5:da:60:ea:38:3c:81:b2:cb:f1:bb:
- d9:91:23:3f:48:01:70:75:a9:05:2a:ad:1f:71:f3:
- c9:54:3d:1d:06:6a:40:3e:b3:0c:85:ee:5c:1b:79:
- c2:62:c4:b8:36:8e:35:5d:01:0c:23:04:47:35:aa:
- 9b:60:4e:a0:66:3d:cb:26:0a:9c:40:a1:f4:5d:98:
- bf:71:ab:a5:00:68:2a:ed:83:7a:0f:a2:14:b5:d4:
- 22:b3:80:b0:3c:0c:5a:51:69:2d:58:18:8f:ed:99:
- 9e:f1:ae:e2:95:e6:f6:47:a8:d6:0c:0f:b0:58:58:
- db:c3:66:37:9e:9b:91:54:33:37:d2:94:1c:6a:48:
- c9:c9:f2:a5:da:a5:0c:23:f7:23:0e:9c:32:55:5e:
- 71:9c:84:05:51:9a:2d:fd:e6:4e:2a:34:5a:de:ca:
- 40:37:67:0c:54:21:55:77:da:0a:0c:cc:97:ae:80:
- dc:94:36:4a:f4:3e:ce:36:13:1e:53:e4:ac:4e:3a:
- 05:ec:db:ae:72:9c:38:8b:d0:39:3b:89:0a:3e:77:
- fe:75
- Exponent: 3 (0x3)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE, pathlen:12
- X509v3 CRL Distribution Points:
-
- Full Name:
- URI:http://crl.chambersign.org/chambersroot.crl
-
- X509v3 Subject Key Identifier:
- E3:94:F5:B1:4D:E9:DB:A1:29:5B:57:8B:4D:76:06:76:E1:D1:A2:8A
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- Netscape Cert Type:
- SSL CA, S/MIME CA, Object Signing CA
- X509v3 Subject Alternative Name:
- email:chambersroot@chambersign.org
- X509v3 Issuer Alternative Name:
- email:chambersroot@chambersign.org
- X509v3 Certificate Policies:
- Policy: 1.3.6.1.4.1.17326.10.3.1
- CPS: http://cps.chambersign.org/cps/chambersroot.html
-
- Signature Algorithm: sha1WithRSAEncryption
- 0c:41:97:c2:1a:86:c0:22:7c:9f:fb:90:f3:1a:d1:03:b1:ef:
- 13:f9:21:5f:04:9c:da:c9:a5:8d:27:6c:96:87:91:be:41:90:
- 01:72:93:e7:1e:7d:5f:f6:89:c6:5d:a7:40:09:3d:ac:49:45:
- 45:dc:2e:8d:30:68:b2:09:ba:fb:c3:2f:cc:ba:0b:df:3f:77:
- 7b:46:7d:3a:12:24:8e:96:8f:3c:05:0a:6f:d2:94:28:1d:6d:
- 0c:c0:2e:88:22:d5:d8:cf:1d:13:c7:f0:48:d7:d7:05:a7:cf:
- c7:47:9e:3b:3c:34:c8:80:4f:d4:14:bb:fc:0d:50:f7:fa:b3:
- ec:42:5f:a9:dd:6d:c8:f4:75:cf:7b:c1:72:26:b1:01:1c:5c:
- 2c:fd:7a:4e:b4:01:c5:05:57:b9:e7:3c:aa:05:d9:88:e9:07:
- 46:41:ce:ef:41:81:ae:58:df:83:a2:ae:ca:d7:77:1f:e7:00:
- 3c:9d:6f:8e:e4:32:09:1d:4d:78:34:78:34:3c:94:9b:26:ed:
- 4f:71:c6:19:7a:bd:20:22:48:5a:fe:4b:7d:03:b7:e7:58:be:
- c6:32:4e:74:1e:68:dd:a8:68:5b:b3:3e:ee:62:7d:d9:80:e8:
- 0a:75:7a:b7:ee:b4:65:9a:21:90:e0:aa:d0:98:bc:38:b5:73:
- 3c:8b:f8:dc
-SHA1 Fingerprint=6E:3A:55:A4:19:0C:19:5C:93:84:3C:C0:DB:72:2E:31:30:61:F0:B1
diff --git a/luni/src/main/files/cacerts/ee90b008.0 b/luni/src/main/files/cacerts/ee90b008.0
deleted file mode 100644
index f017edc..0000000
--- a/luni/src/main/files/cacerts/ee90b008.0
+++ /dev/null
@@ -1,119 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEW
-MBQGA1UEChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlm
-aWNhdGlvbiBBdXRob3JpdHkgRzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1
-OTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjEsMCoG
-A1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgRzIwggIiMA0G
-CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8Oo1XJ
-JZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsD
-vfOpL9HG4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnoo
-D/Uefyf3lLE3PbfHkffiAez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/
-Q0kGi4xDuFby2X8hQxfqp0iVAXV16iulQ5XqFYSdCI0mblWbq9zSOdIxHWDirMxW
-RST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbsO+wmETRIjfaAKxojAuuK
-HDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8HvKTlXcxN
-nw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM
-0D4LnMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/i
-UUjXuG+v+E5+M5iSFGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9
-Ha90OrInwMEePnWjFqmveiJdnxMaz6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHg
-TuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE
-AwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJKoZIhvcNAQEL
-BQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K
-2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfX
-UfEpY9Z1zRbkJ4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl
-6/2o1PXWT6RbdejF0mCy2wl+JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK
-9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG/+gyRr61M3Z3qAFdlsHB1b6uJcDJ
-HgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTcnIhT76IxW1hPkWLI
-wpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/XldblhY
-XzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5l
-IxKVCCIcl85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoo
-hdVddLHRDiBYmxOlsGOm7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulr
-so8uBtjRkcfGEvRM/TAXw8HaOFvjqermobp573PYtlNXLfbQ4ddI
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 59 (0x3b)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=IL, O=StartCom Ltd., CN=StartCom Certification Authority G2
- Validity
- Not Before: Jan 1 01:00:01 2010 GMT
- Not After : Dec 31 23:59:01 2039 GMT
- Subject: C=IL, O=StartCom Ltd., CN=StartCom Certification Authority G2
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:b6:89:36:5b:07:b7:20:36:bd:82:bb:e1:16:20:
- 03:95:7a:af:0e:a3:55:c9:25:99:4a:c5:d0:56:41:
- 87:90:4d:21:60:a4:14:87:3b:cd:fd:b2:3e:b4:67:
- 03:6a:ed:e1:0f:4b:c0:91:85:70:45:e0:42:9e:de:
- 29:23:d4:01:0d:a0:10:79:b8:db:03:bd:f3:a9:2f:
- d1:c6:e0:0f:cb:9e:8a:14:0a:b8:bd:f6:56:62:f1:
- c5:72:b6:32:25:d9:b2:f3:bd:65:c5:0d:2c:6e:d5:
- 92:6f:18:8b:00:41:14:82:6f:40:20:26:7a:28:0f:
- f5:1e:7f:27:f7:94:b1:37:3d:b7:c7:91:f7:e2:01:
- ec:fd:94:89:e1:cc:6e:d3:36:d6:0a:19:79:ae:d7:
- 34:82:65:ff:7c:42:bb:b6:dd:0b:a6:34:af:4b:60:
- fe:7f:43:49:06:8b:8c:43:b8:56:f2:d9:7f:21:43:
- 17:ea:a7:48:95:01:75:75:ea:2b:a5:43:95:ea:15:
- 84:9d:08:8d:26:6e:55:9b:ab:dc:d2:39:d2:31:1d:
- 60:e2:ac:cc:56:45:24:f5:1c:54:ab:ee:86:dd:96:
- 32:85:f8:4c:4f:e8:95:76:b6:05:dd:36:23:67:bc:
- ff:15:e2:ca:3b:e6:a6:ec:3b:ec:26:11:34:48:8d:
- f6:80:2b:1a:23:02:eb:8a:1c:3a:76:2a:7b:56:16:
- 1c:72:2a:b3:aa:e3:60:a5:00:9f:04:9b:e2:6f:1e:
- 14:58:5b:a5:6c:8b:58:3c:c3:ba:4e:3a:5c:f7:e1:
- 96:2b:3e:ef:07:bc:a4:e5:5d:cc:4d:9f:0d:e1:dc:
- aa:bb:e1:6e:1a:ec:8f:e1:b6:4c:4d:79:72:5d:17:
- 35:0b:1d:d7:c1:47:da:96:24:e0:d0:72:a8:5a:5f:
- 66:2d:10:dc:2f:2a:13:ae:26:fe:0a:1c:19:cc:d0:
- 3e:0b:9c:c8:09:2e:f9:5b:96:7a:47:9c:e9:7a:f3:
- 05:50:74:95:73:9e:30:09:f3:97:82:5e:e6:8f:39:
- 08:1e:59:e5:35:14:42:13:ff:00:9c:f7:be:aa:50:
- cf:e2:51:48:d7:b8:6f:af:f8:4e:7e:33:98:92:14:
- 62:3a:75:63:cf:7b:fa:de:82:3b:a9:bb:39:e2:c4:
- bd:2c:00:0e:c8:17:ac:13:ef:4d:25:8e:d8:b3:90:
- 2f:a9:da:29:7d:1d:af:74:3a:b2:27:c0:c1:1e:3e:
- 75:a3:16:a9:af:7a:22:5d:9f:13:1a:cf:a7:a0:eb:
- e3:86:0a:d3:fd:e6:96:95:d7:23:c8:37:dd:c4:7c:
- aa:36:ac:98:1a:12:b1:e0:4e:e8:b1:3b:f5:d6:6f:
- f1:30:d7
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- 4B:C5:B4:40:6B:AD:1C:B3:A5:1C:65:6E:46:36:89:87:05:0C:0E:B6
- Signature Algorithm: sha256WithRSAEncryption
- 73:57:3f:2c:d5:95:32:7e:37:db:96:92:eb:19:5e:7e:53:e7:
- 41:ec:11:b6:47:ef:b5:de:ed:74:5c:c5:f1:8e:49:e0:fc:6e:
- 99:13:cd:9f:8a:da:cd:3a:0a:d8:3a:5a:09:3f:5f:34:d0:2f:
- 03:d2:66:1d:1a:bd:9c:90:37:c8:0c:8e:07:5a:94:45:46:2a:
- e6:be:7a:da:a1:a9:a4:69:12:92:b0:7d:36:d4:44:87:d7:51:
- f1:29:63:d6:75:cd:16:e4:27:89:1d:f8:c2:32:48:fd:db:99:
- d0:8f:5f:54:74:cc:ac:67:34:11:62:d9:0c:0a:37:87:d1:a3:
- 17:48:8e:d2:17:1d:f6:d7:fd:db:65:eb:fd:a8:d4:f5:d6:4f:
- a4:5b:75:e8:c5:d2:60:b2:db:09:7e:25:8b:7b:ba:52:92:9e:
- 3e:e8:c5:77:a1:3c:e0:4a:73:6b:61:cf:86:dc:43:ff:ff:21:
- fe:23:5d:24:4a:f5:d3:6d:0f:62:04:05:57:82:da:6e:a4:33:
- 25:79:4b:2e:54:19:8b:cc:2c:3d:30:e9:d1:06:ff:e8:32:46:
- be:b5:33:76:77:a8:01:5d:96:c1:c1:d5:be:ae:25:c0:c9:1e:
- 0a:09:20:88:a1:0e:c9:f3:6f:4d:82:54:00:20:a7:d2:8f:e4:
- 39:54:17:2e:8d:1e:b8:1b:bb:1b:bd:9a:4e:3b:10:34:dc:9c:
- 88:53:ef:a2:31:5b:58:4f:91:62:c8:c2:9a:9a:cd:15:5d:38:
- a9:d6:be:f8:13:b5:9f:12:69:f2:50:62:ac:fb:17:37:f4:ee:
- b8:75:67:60:10:fb:83:50:f9:44:b5:75:9c:40:17:b2:fe:fd:
- 79:5d:6e:58:58:5f:30:fc:00:ae:af:33:c1:0e:4e:6c:ba:a7:
- a6:a1:7f:32:db:38:e0:b1:72:17:0a:2b:91:ec:6a:63:26:ed:
- 89:d4:78:cc:74:1e:05:f8:6b:fe:8c:6a:76:39:29:ae:65:23:
- 12:95:08:22:1c:97:ce:5b:06:ee:0c:e2:bb:bc:1f:44:93:f6:
- d8:38:45:05:21:ed:e4:ad:ab:12:b6:03:a4:42:2e:2d:c4:09:
- 3a:03:67:69:84:9a:e1:59:90:8a:28:85:d5:5d:74:b1:d1:0e:
- 20:58:9b:13:a5:b0:63:a6:ed:7b:47:fd:45:55:30:a4:ee:9a:
- d4:e6:e2:87:ef:98:c9:32:82:11:29:22:bc:00:0a:31:5e:2d:
- 0f:c0:8e:e9:6b:b2:8f:2e:06:d8:d1:91:c7:c6:12:f4:4c:fd:
- 30:17:c3:c1:da:38:5b:e3:a9:ea:e6:a1:ba:79:ef:73:d8:b6:
- 53:57:2d:f6:d0:e1:d7:48
-SHA1 Fingerprint=31:F1:FD:68:22:63:20:EE:C6:3B:3F:9D:EA:4A:3E:53:7C:7C:39:17
diff --git a/luni/src/main/files/cacerts/f58a60fe.0 b/luni/src/main/files/cacerts/f58a60fe.0
deleted file mode 100644
index 0a4bde1..0000000
--- a/luni/src/main/files/cacerts/f58a60fe.0
+++ /dev/null
@@ -1,88 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDqzCCApOgAwIBAgIRAMcoRwmzuGxFjB36JPU2TukwDQYJKoZIhvcNAQEFBQAw
-PDEbMBkGA1UEAxMSQ29tU2lnbiBTZWN1cmVkIENBMRAwDgYDVQQKEwdDb21TaWdu
-MQswCQYDVQQGEwJJTDAeFw0wNDAzMjQxMTM3MjBaFw0yOTAzMTYxNTA0NTZaMDwx
-GzAZBgNVBAMTEkNvbVNpZ24gU2VjdXJlZCBDQTEQMA4GA1UEChMHQ29tU2lnbjEL
-MAkGA1UEBhMCSUwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGtWhf
-HZQVw6QIVS3joFd67+l0Kru5fFdJGhFeTymHDEjWaueP1H5XJLkGieQcPOqs49oh
-gHMhCu95mGwfCP+hUH3ymBvJVG8+pSjsIQQPRbsHPaHA+iqYHU4Gk/v1iDurX8sW
-v+bznkqH7Rnqwp9D5PGBpX8QTz7RSmKtUxvLg/8HZaWSLWapW7ha9B20IZFKF3ue
-Mv5WJDmyVIRD9YTC2LxBkMyd1mja6YJQqTtoz7VdApRgFrFD2UNd3V2Hbuq7s8lr
-9gOUCXDeFhF6K+h2j0kQmHe5Y1yLM5d19guMsqtb3nQgJT/j8xH5h2iGNXHDHYwt
-6+UarA9z1YJZQIDTAgMBAAGjgacwgaQwDAYDVR0TBAUwAwEB/zBEBgNVHR8EPTA7
-MDmgN6A1hjNodHRwOi8vZmVkaXIuY29tc2lnbi5jby5pbC9jcmwvQ29tU2lnblNl
-Y3VyZWRDQS5jcmwwDgYDVR0PAQH/BAQDAgGGMB8GA1UdIwQYMBaAFMFL7XC29z58
-ADsAj8c+DkWfHl3sMB0GA1UdDgQWBBTBS+1wtvc+fAA7AI/HPg5Fnx5d7DANBgkq
-hkiG9w0BAQUFAAOCAQEAFs/ukhNQq3sUnjO2QiBq1BW9Cav8cujvR3qQrFHBZE7p
-iL1DRYHjZiM/EoZNGeQFsOY3wo3aBijJD4mkU6l1P7CW+6tMM1X5eCZGbxs2mPtC
-dsGCuY7e+0X5YxtiOzkGynd6qDwJz2w2PQ8KRUtpFhpFfTMDZflScZAmlaxMDPWL
-kz/MdXSFmLr/YnpNH4n+rr2UAJm/EaXc4HnFFgt9AmEd6oX5AhVP51qJThRv4zdL
-hfXBPGHg/QVBspJ/wx2g0K5SZGBrGMYmnNj1ZOQ2GmKfig8+/21OGVZOIJFsnzQz
-OjRXUDpvgV4GxvU+fE6OK85lBi5d0ipTdF7Tbieejw==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- c7:28:47:09:b3:b8:6c:45:8c:1d:fa:24:f5:36:4e:e9
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: CN=ComSign Secured CA, O=ComSign, C=IL
- Validity
- Not Before: Mar 24 11:37:20 2004 GMT
- Not After : Mar 16 15:04:56 2029 GMT
- Subject: CN=ComSign Secured CA, O=ComSign, C=IL
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c6:b5:68:5f:1d:94:15:c3:a4:08:55:2d:e3:a0:
- 57:7a:ef:e9:74:2a:bb:b9:7c:57:49:1a:11:5e:4f:
- 29:87:0c:48:d6:6a:e7:8f:d4:7e:57:24:b9:06:89:
- e4:1c:3c:ea:ac:e3:da:21:80:73:21:0a:ef:79:98:
- 6c:1f:08:ff:a1:50:7d:f2:98:1b:c9:54:6f:3e:a5:
- 28:ec:21:04:0f:45:bb:07:3d:a1:c0:fa:2a:98:1d:
- 4e:06:93:fb:f5:88:3b:ab:5f:cb:16:bf:e6:f3:9e:
- 4a:87:ed:19:ea:c2:9f:43:e4:f1:81:a5:7f:10:4f:
- 3e:d1:4a:62:ad:53:1b:cb:83:ff:07:65:a5:92:2d:
- 66:a9:5b:b8:5a:f4:1d:b4:21:91:4a:17:7b:9e:32:
- fe:56:24:39:b2:54:84:43:f5:84:c2:d8:bc:41:90:
- cc:9d:d6:68:da:e9:82:50:a9:3b:68:cf:b5:5d:02:
- 94:60:16:b1:43:d9:43:5d:dd:5d:87:6e:ea:bb:b3:
- c9:6b:f6:03:94:09:70:de:16:11:7a:2b:e8:76:8f:
- 49:10:98:77:b9:63:5c:8b:33:97:75:f6:0b:8c:b2:
- ab:5b:de:74:20:25:3f:e3:f3:11:f9:87:68:86:35:
- 71:c3:1d:8c:2d:eb:e5:1a:ac:0f:73:d5:82:59:40:
- 80:d3
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 CRL Distribution Points:
-
- Full Name:
- URI:http://fedir.comsign.co.il/crl/ComSignSecuredCA.crl
-
- X509v3 Key Usage: critical
- Digital Signature, Certificate Sign, CRL Sign
- X509v3 Authority Key Identifier:
- keyid:C1:4B:ED:70:B6:F7:3E:7C:00:3B:00:8F:C7:3E:0E:45:9F:1E:5D:EC
-
- X509v3 Subject Key Identifier:
- C1:4B:ED:70:B6:F7:3E:7C:00:3B:00:8F:C7:3E:0E:45:9F:1E:5D:EC
- Signature Algorithm: sha1WithRSAEncryption
- 16:cf:ee:92:13:50:ab:7b:14:9e:33:b6:42:20:6a:d4:15:bd:
- 09:ab:fc:72:e8:ef:47:7a:90:ac:51:c1:64:4e:e9:88:bd:43:
- 45:81:e3:66:23:3f:12:86:4d:19:e4:05:b0:e6:37:c2:8d:da:
- 06:28:c9:0f:89:a4:53:a9:75:3f:b0:96:fb:ab:4c:33:55:f9:
- 78:26:46:6f:1b:36:98:fb:42:76:c1:82:b9:8e:de:fb:45:f9:
- 63:1b:62:3b:39:06:ca:77:7a:a8:3c:09:cf:6c:36:3d:0f:0a:
- 45:4b:69:16:1a:45:7d:33:03:65:f9:52:71:90:26:95:ac:4c:
- 0c:f5:8b:93:3f:cc:75:74:85:98:ba:ff:62:7a:4d:1f:89:fe:
- ae:bd:94:00:99:bf:11:a5:dc:e0:79:c5:16:0b:7d:02:61:1d:
- ea:85:f9:02:15:4f:e7:5a:89:4e:14:6f:e3:37:4b:85:f5:c1:
- 3c:61:e0:fd:05:41:b2:92:7f:c3:1d:a0:d0:ae:52:64:60:6b:
- 18:c6:26:9c:d8:f5:64:e4:36:1a:62:9f:8a:0f:3e:ff:6d:4e:
- 19:56:4e:20:91:6c:9f:34:33:3a:34:57:50:3a:6f:81:5e:06:
- c6:f5:3e:7c:4e:8e:2b:ce:65:06:2e:5d:d2:2a:53:74:5e:d3:
- 6e:27:9e:8f
-SHA1 Fingerprint=F9:CD:0E:2C:DA:76:24:C1:8F:BD:F0:F0:AB:B6:45:B8:F7:FE:D5:7A
diff --git a/luni/src/main/files/cacerts/f61bff45.0 b/luni/src/main/files/cacerts/f61bff45.0
deleted file mode 100644
index 8713068..0000000
--- a/luni/src/main/files/cacerts/f61bff45.0
+++ /dev/null
@@ -1,124 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAw
-cjELMAkGA1UEBhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNy
-b3NlYyBMdGQuMRQwEgYDVQQLEwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9z
-ZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0MDYxMjI4NDRaFw0xNzA0MDYxMjI4
-NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVzdDEWMBQGA1UEChMN
-TWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMTGU1p
-Y3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2u
-uO/TEdyB5s87lozWbxXGd36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+
-LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/NoqdNAoI/gqyFxuEPkEeZlApxcpMqyabA
-vjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjcQR/Ji3HWVBTji1R4P770
-Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJPqW+jqpx
-62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcB
-AQRbMFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3Aw
-LQYIKwYBBQUHMAKGIWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAP
-BgNVHRMBAf8EBTADAQH/MIIBcwYDVR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIB
-AQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3LmUtc3ppZ25vLmh1L1NaU1ov
-MIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0AdAB2AOEAbgB5
-ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn
-AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABT
-AHoAbwBsAGcA4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABh
-ACAAcwB6AGUAcgBpAG4AdAAgAGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABo
-AHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMAegBpAGcAbgBvAC4AaAB1AC8AUwBa
-AFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6Ly93d3cuZS1zemln
-bm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NOPU1p
-Y3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxP
-PU1pY3Jvc2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZv
-Y2F0aW9uTGlzdDtiaW5hcnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuB
-EGluZm9AZS1zemlnbm8uaHWkdzB1MSMwIQYDVQQDDBpNaWNyb3NlYyBlLVN6aWdu
-w7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhTWjEWMBQGA1UEChMNTWlj
-cm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhVMIGsBgNV
-HSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJI
-VTERMA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDAS
-BgNVBAsTC2UtU3ppZ25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBS
-b290IENBghEAzLjnv04pGv2i3GalHCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS
-8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMTnGZjWS7KXHAM/IO8VbH0jgds
-ZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FEaGAHQzAxQmHl
-7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a
-86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfR
-hUZLphK3dehKyVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/
-MPMMNz7UwiiAc7EBt51alhQBS6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- cc:b8:e7:bf:4e:29:1a:fd:a2:dc:66:a5:1c:2c:0f:11
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=HU, L=Budapest, O=Microsec Ltd., OU=e-Szigno CA, CN=Microsec e-Szigno Root CA
- Validity
- Not Before: Apr 6 12:28:44 2005 GMT
- Not After : Apr 6 12:28:44 2017 GMT
- Subject: C=HU, L=Budapest, O=Microsec Ltd., OU=e-Szigno CA, CN=Microsec e-Szigno Root CA
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:ed:c8:00:d5:81:7b:cd:38:00:47:cc:db:84:c1:
- 21:69:2c:74:90:0c:21:d9:53:87:ed:3e:43:44:53:
- af:ab:f8:80:9b:3c:78:8d:d4:8d:ae:b8:ef:d3:11:
- dc:81:e6:cf:3b:96:8c:d6:6f:15:c6:77:7e:a1:2f:
- e0:5f:92:b6:27:d7:76:9a:1d:43:3c:ea:d9:ec:2f:
- ee:39:f3:6a:67:4b:8b:82:cf:22:f8:65:55:fe:2c:
- cb:2f:7d:48:7a:3d:75:f9:aa:a0:27:bb:78:c2:06:
- ca:51:c2:7e:66:4b:af:cd:a2:a7:4d:02:82:3f:82:
- ac:85:c6:e1:0f:90:47:99:94:0a:71:72:93:2a:c9:
- a6:c0:be:3c:56:4c:73:92:27:f1:6b:b5:f5:fd:fc:
- 30:05:60:92:c6:eb:96:7e:01:91:c2:69:b1:1e:1d:
- 7b:53:45:b8:dc:41:1f:c9:8b:71:d6:54:14:e3:8b:
- 54:78:3f:be:f4:62:3b:5b:f5:a3:ec:d5:92:74:e2:
- 74:30:ef:01:db:e1:d4:ab:99:9b:2a:6b:f8:bd:a6:
- 1c:86:23:42:5f:ec:49:de:9a:8b:5b:f4:72:3a:40:
- c5:49:3e:a5:be:8e:aa:71:eb:6c:fa:f5:1a:e4:6a:
- fd:7b:7d:55:40:ef:58:6e:e6:d9:d5:bc:24:ab:c1:
- ef:b7
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- Authority Information Access:
- OCSP - URI:https://rca.e-szigno.hu/ocsp
- CA Issuers - URI:http://www.e-szigno.hu/RootCA.crt
-
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Certificate Policies:
- Policy: 1.3.6.1.4.1.21528.2.1.1.1
- CPS: http://www.e-szigno.hu/SZSZ/
- User Notice:
- Explicit Text:
-
- X509v3 CRL Distribution Points:
-
- Full Name:
- URI:http://www.e-szigno.hu/RootCA.crl
- URI:ldap://ldap.e-szigno.hu/CN=Microsec%20e-Szigno%20Root%20CA,OU=e-Szigno%20CA,O=Microsec%20Ltd.,L=Budapest,C=HU?certificateRevocationList;binary
-
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Alternative Name:
- email:info@e-szigno.hu, DirName:/CN=Microsec e-Szign\xC3\xB3 Root CA/OU=e-Szign\xC3\xB3 HSZ/O=Microsec Kft./L=Budapest/C=HU
- X509v3 Authority Key Identifier:
- keyid:C7:A0:49:75:16:61:84:DB:31:4B:84:D2:F1:37:40:90:EF:4E:DC:F7
- DirName:/C=HU/L=Budapest/O=Microsec Ltd./OU=e-Szigno CA/CN=Microsec e-Szigno Root CA
- serial:CC:B8:E7:BF:4E:29:1A:FD:A2:DC:66:A5:1C:2C:0F:11
-
- X509v3 Subject Key Identifier:
- C7:A0:49:75:16:61:84:DB:31:4B:84:D2:F1:37:40:90:EF:4E:DC:F7
- Signature Algorithm: sha1WithRSAEncryption
- d3:13:9c:66:63:59:2e:ca:5c:70:0c:fc:83:bc:55:b1:f4:8e:
- 07:6c:66:27:ce:c1:3b:20:a9:1c:bb:46:54:70:ee:5a:cc:a0:
- 77:ea:68:44:27:eb:f2:29:dd:77:a9:d5:fb:e3:d4:a7:04:c4:
- 95:b8:0b:e1:44:68:60:07:43:30:31:42:61:e5:ee:d9:e5:24:
- d5:1b:df:e1:4a:1b:aa:9f:c7:5f:f8:7a:11:ea:13:93:00:ca:
- 8a:58:b1:ee:ed:0e:4d:b4:d7:a8:36:26:7c:e0:3a:c1:d5:57:
- 82:f1:75:b6:fd:89:5f:da:f3:a8:38:9f:35:06:08:ce:22:95:
- be:cd:d5:fc:be:5b:de:79:6b:dc:7a:a9:65:66:be:b1:25:5a:
- 5f:ed:7e:d3:ac:46:6d:4c:f4:32:87:b4:20:04:e0:6c:78:b0:
- 77:d1:85:46:4b:a6:12:b7:75:e8:4a:c9:56:6c:d7:92:ab:9d:
- f5:49:38:d2:4f:53:e3:55:90:11:db:98:96:c6:49:f2:3e:f4:
- 9f:1b:e0:f7:88:dc:25:62:99:44:d8:73:bf:3f:30:f3:0c:37:
- 3e:d4:c2:28:80:73:b1:01:b7:9d:5a:96:14:01:4b:a9:11:9d:
- 29:6a:2e:d0:5d:81:c0:cf:b2:20:43:c7:03:e0:37:4e:5d:0a:
- dc:59:20:25
-SHA1 Fingerprint=23:88:C9:D3:71:CC:9E:96:3D:FF:7D:3C:A7:CE:FC:D6:25:EC:19:0D
diff --git a/luni/src/main/files/cacerts/f80cc7f6.0 b/luni/src/main/files/cacerts/f80cc7f6.0
deleted file mode 100644
index 319a87f..0000000
--- a/luni/src/main/files/cacerts/f80cc7f6.0
+++ /dev/null
@@ -1,125 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIF5zCCA8+gAwIBAgIITK9zQhyOdAIwDQYJKoZIhvcNAQEFBQAwgYAxODA2BgNV
-BAMML0VCRyBFbGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sx
-c8SxMTcwNQYDVQQKDC5FQkcgQmlsacWfaW0gVGVrbm9sb2ppbGVyaSB2ZSBIaXpt
-ZXRsZXJpIEEuxZ4uMQswCQYDVQQGEwJUUjAeFw0wNjA4MTcwMDIxMDlaFw0xNjA4
-MTQwMDMxMDlaMIGAMTgwNgYDVQQDDC9FQkcgRWxla3Ryb25payBTZXJ0aWZpa2Eg
-SGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTE3MDUGA1UECgwuRUJHIEJpbGnFn2ltIFRl
-a25vbG9qaWxlcmkgdmUgSGl6bWV0bGVyaSBBLsWeLjELMAkGA1UEBhMCVFIwggIi
-MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDuoIRh0DpqZhAy2DE4f6en5f2h
-4fuXd7hxlugTlkaDT7byX3JWbhNgpQGR4lvFzVcfd2NR/y8927k/qqk153nQ9dAk
-tiHq6yOU/im/+4mRDGSaBUorzAzu8T2bgmmkTPiab+ci2hC6X5L8GCcKqKpE+i4s
-tPtGmggDg3KriORqcsnlZR9uKg+ds+g75AxuetpX/dfreYteIAbTdgtsApWjluTL
-dlHRKJ2hGvxEok3MenaoDT2/F08iiFD9rrbskFBKW5+VQarKD7JK/oCZTqNGFav4
-c0JqwmZ2sQomFd2TkuzbqV9UIlKRcF0T6kjsbgNs2d1s/OsNA/+mgxKb8amTD8Um
-TDGyY5lhcucqZJnSuOl14nypqZoaqsNW2xCaPINStnuWt6yHd6i58mcLlEOzrz5z
-+kI2sSXFCjEmN1ZnuqMLfdb3ic1nobc6HmZP9qBVFCVMLDMNpkGMvQQxahByCp0O
-Lna9XvNRiYuoP1Vzv9s6xiQFlpJIqkuNKgPlV5EQ9GooFW5Hd4RcUXSfGenmHmMW
-OeMRFeNYGkS9y8RsZteEBt8w9DeiQyJ50hBs37vmExH8nYQKE3vwO9D8owrXieqW
-fo1IhR5kX9tUoqzVegJ5a9KK8GfaZXINFHDk6Y54jzJ0fFfy1tb0Nokb+Clsi7n2
-l9GkLqq+CxnCRelwXQIDAJ3Zo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB
-/wQEAwIBBjAdBgNVHQ4EFgQU587GT/wWZ5b6SqMHwQSny2re2kcwHwYDVR0jBBgw
-FoAU587GT/wWZ5b6SqMHwQSny2re2kcwDQYJKoZIhvcNAQEFBQADggIBAJuYml2+
-8ygjdsZs93/mQJ7ANtyVDR2tFcU22NU57/IeIl6zgrRdu0waypIN30ckHrMk2pGI
-6YNw3ZPX6bqz3xZaPt7gyPvT/Wwp+BVGoGgmzJNSroIBk5DKd8pNSe/iWtkqvTDO
-TLKBtjDOWU/aWR1qeqRFsIImgYZ29fUQALjuswnoT4cCB64kXPBfrAowzIpAoHME
-wfuJJPaaHFy3PApnNgUIMbOv2AFoKuB4j3TeuFGkjGwgPaL7s9QJ/XvCgKqTbCmY
-Iai7FvOpEl90tYeY8pUm3zTvilORiF0alKM/fCL414i6poyWqD1SNGKfAB5UVUJn
-xk1Gj7sURT0KlhaOEKGXmdXTMIXM3rRyt7yKPBgpaP3ccQfuJDlq+u2lrDgv+R4Q
-DgZxGhBM/nV+/x5XOULK1+EVoVZVWRvRo68R2E7DpSvvkL/A7IITW43WciyTTo9q
-Kd+FPNMN4KIYEsxVL0e3p5sC/kH2iExt2qkBR4NkJ2IQgtYSe14DHzSpyZH+r11t
-hie3I6p1GMog57AP14kOpmciY/SDQSsGS7tY1dHXt7kQY9iJSrSq3RZj9W6+YKH4
-7ejWkE8axsWgKdOnIaj1Wjz3x0miIZpKlVIglnKaZsv30oZDfCK+lvm9AahH3eU7
-QPl1K5srRmSGjR70j/sHd9DqSaIcjVIUpgqT
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 5525761995591021570 (0x4caf73421c8e7402)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: CN=EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xC4\xB1c\xC4\xB1s\xC4\xB1, O=EBG Bili\xC5\x9Fim Teknolojileri ve Hizmetleri A.\xC5\x9E., C=TR
- Validity
- Not Before: Aug 17 00:21:09 2006 GMT
- Not After : Aug 14 00:31:09 2016 GMT
- Subject: CN=EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xC4\xB1c\xC4\xB1s\xC4\xB1, O=EBG Bili\xC5\x9Fim Teknolojileri ve Hizmetleri A.\xC5\x9E., C=TR
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (4096 bit)
- Modulus:
- 00:ee:a0:84:61:d0:3a:6a:66:10:32:d8:31:38:7f:
- a7:a7:e5:fd:a1:e1:fb:97:77:b8:71:96:e8:13:96:
- 46:83:4f:b6:f2:5f:72:56:6e:13:60:a5:01:91:e2:
- 5b:c5:cd:57:1f:77:63:51:ff:2f:3d:db:b9:3f:aa:
- a9:35:e7:79:d0:f5:d0:24:b6:21:ea:eb:23:94:fe:
- 29:bf:fb:89:91:0c:64:9a:05:4a:2b:cc:0c:ee:f1:
- 3d:9b:82:69:a4:4c:f8:9a:6f:e7:22:da:10:ba:5f:
- 92:fc:18:27:0a:a8:aa:44:fa:2e:2c:b4:fb:46:9a:
- 08:03:83:72:ab:88:e4:6a:72:c9:e5:65:1f:6e:2a:
- 0f:9d:b3:e8:3b:e4:0c:6e:7a:da:57:fd:d7:eb:79:
- 8b:5e:20:06:d3:76:0b:6c:02:95:a3:96:e4:cb:76:
- 51:d1:28:9d:a1:1a:fc:44:a2:4d:cc:7a:76:a8:0d:
- 3d:bf:17:4f:22:88:50:fd:ae:b6:ec:90:50:4a:5b:
- 9f:95:41:aa:ca:0f:b2:4a:fe:80:99:4e:a3:46:15:
- ab:f8:73:42:6a:c2:66:76:b1:0a:26:15:dd:93:92:
- ec:db:a9:5f:54:22:52:91:70:5d:13:ea:48:ec:6e:
- 03:6c:d9:dd:6c:fc:eb:0d:03:ff:a6:83:12:9b:f1:
- a9:93:0f:c5:26:4c:31:b2:63:99:61:72:e7:2a:64:
- 99:d2:b8:e9:75:e2:7c:a9:a9:9a:1a:aa:c3:56:db:
- 10:9a:3c:83:52:b6:7b:96:b7:ac:87:77:a8:b9:f2:
- 67:0b:94:43:b3:af:3e:73:fa:42:36:b1:25:c5:0a:
- 31:26:37:56:67:ba:a3:0b:7d:d6:f7:89:cd:67:a1:
- b7:3a:1e:66:4f:f6:a0:55:14:25:4c:2c:33:0d:a6:
- 41:8c:bd:04:31:6a:10:72:0a:9d:0e:2e:76:bd:5e:
- f3:51:89:8b:a8:3f:55:73:bf:db:3a:c6:24:05:96:
- 92:48:aa:4b:8d:2a:03:e5:57:91:10:f4:6a:28:15:
- 6e:47:77:84:5c:51:74:9f:19:e9:e6:1e:63:16:39:
- e3:11:15:e3:58:1a:44:bd:cb:c4:6c:66:d7:84:06:
- df:30:f4:37:a2:43:22:79:d2:10:6c:df:bb:e6:13:
- 11:fc:9d:84:0a:13:7b:f0:3b:d0:fc:a3:0a:d7:89:
- ea:96:7e:8d:48:85:1e:64:5f:db:54:a2:ac:d5:7a:
- 02:79:6b:d2:8a:f0:67:da:65:72:0d:14:70:e4:e9:
- 8e:78:8f:32:74:7c:57:f2:d6:d6:f4:36:89:1b:f8:
- 29:6c:8b:b9:f6:97:d1:a4:2e:aa:be:0b:19:c2:45:
- e9:70:5d
- Exponent: 40409 (0x9dd9)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Key Identifier:
- E7:CE:C6:4F:FC:16:67:96:FA:4A:A3:07:C1:04:A7:CB:6A:DE:DA:47
- X509v3 Authority Key Identifier:
- keyid:E7:CE:C6:4F:FC:16:67:96:FA:4A:A3:07:C1:04:A7:CB:6A:DE:DA:47
-
- Signature Algorithm: sha1WithRSAEncryption
- 9b:98:9a:5d:be:f3:28:23:76:c6:6c:f7:7f:e6:40:9e:c0:36:
- dc:95:0d:1d:ad:15:c5:36:d8:d5:39:ef:f2:1e:22:5e:b3:82:
- b4:5d:bb:4c:1a:ca:92:0d:df:47:24:1e:b3:24:da:91:88:e9:
- 83:70:dd:93:d7:e9:ba:b3:df:16:5a:3e:de:e0:c8:fb:d3:fd:
- 6c:29:f8:15:46:a0:68:26:cc:93:52:ae:82:01:93:90:ca:77:
- ca:4d:49:ef:e2:5a:d9:2a:bd:30:ce:4c:b2:81:b6:30:ce:59:
- 4f:da:59:1d:6a:7a:a4:45:b0:82:26:81:86:76:f5:f5:10:00:
- b8:ee:b3:09:e8:4f:87:02:07:ae:24:5c:f0:5f:ac:0a:30:cc:
- 8a:40:a0:73:04:c1:fb:89:24:f6:9a:1c:5c:b7:3c:0a:67:36:
- 05:08:31:b3:af:d8:01:68:2a:e0:78:8f:74:de:b8:51:a4:8c:
- 6c:20:3d:a2:fb:b3:d4:09:fd:7b:c2:80:aa:93:6c:29:98:21:
- a8:bb:16:f3:a9:12:5f:74:b5:87:98:f2:95:26:df:34:ef:8a:
- 53:91:88:5d:1a:94:a3:3f:7c:22:f8:d7:88:ba:a6:8c:96:a8:
- 3d:52:34:62:9f:00:1e:54:55:42:67:c6:4d:46:8f:bb:14:45:
- 3d:0a:96:16:8e:10:a1:97:99:d5:d3:30:85:cc:de:b4:72:b7:
- bc:8a:3c:18:29:68:fd:dc:71:07:ee:24:39:6a:fa:ed:a5:ac:
- 38:2f:f9:1e:10:0e:06:71:1a:10:4c:fe:75:7e:ff:1e:57:39:
- 42:ca:d7:e1:15:a1:56:55:59:1b:d1:a3:af:11:d8:4e:c3:a5:
- 2b:ef:90:bf:c0:ec:82:13:5b:8d:d6:72:2c:93:4e:8f:6a:29:
- df:85:3c:d3:0d:e0:a2:18:12:cc:55:2f:47:b7:a7:9b:02:fe:
- 41:f6:88:4c:6d:da:a9:01:47:83:64:27:62:10:82:d6:12:7b:
- 5e:03:1f:34:a9:c9:91:fe:af:5d:6d:86:27:b7:23:aa:75:18:
- ca:20:e7:b0:0f:d7:89:0e:a6:67:22:63:f4:83:41:2b:06:4b:
- bb:58:d5:d1:d7:b7:b9:10:63:d8:89:4a:b4:aa:dd:16:63:f5:
- 6e:be:60:a1:f8:ed:e8:d6:90:4f:1a:c6:c5:a0:29:d3:a7:21:
- a8:f5:5a:3c:f7:c7:49:a2:21:9a:4a:95:52:20:96:72:9a:66:
- cb:f7:d2:86:43:7c:22:be:96:f9:bd:01:a8:47:dd:e5:3b:40:
- f9:75:2b:9b:2b:46:64:86:8d:1e:f4:8f:fb:07:77:d0:ea:49:
- a2:1c:8d:52:14:a6:0a:93
-SHA1 Fingerprint=8C:96:BA:EB:DD:2B:07:07:48:EE:30:32:66:A0:F3:98:6E:7C:AE:58
diff --git a/luni/src/main/files/cacerts/fac084d7.0 b/luni/src/main/files/cacerts/fac084d7.0
deleted file mode 100644
index f35f31f..0000000
--- a/luni/src/main/files/cacerts/fac084d7.0
+++ /dev/null
@@ -1,81 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEc
-MBoGA1UEChMTSmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRp
-b25DQTAeFw0wNzEyMTIxNTAwMDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYT
-AkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zlcm5tZW50MRYwFAYDVQQLEw1BcHBs
-aWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp23gdE6H
-j6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4fl+K
-f5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55
-IrmTwcrNwVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cw
-FO5cjFW6WY2H/CPek9AEjP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDiht
-QWEjdnjDuGWk81quzMKq2edY3rZ+nYVunyoKb58DKTCXKB28t89UKU5RMfkntigm
-/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRUWssmP3HMlEYNllPqa0jQ
-k/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNVBAYTAkpQ
-MRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOC
-seODvOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD
-ggEBADlqRHZ3ODrso2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJ
-hyzjVOGjprIIC8CFqMjSnHH2HZ9g/DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+
-eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYDio+nEhEMy/0/ecGc/WLuo89U
-DNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmWdupwX3kSa+Sj
-B1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL
-rosot4LKGAfmt1t06SAZf7IbiVQ=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 49 (0x31)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=JP, O=Japanese Government, OU=ApplicationCA
- Validity
- Not Before: Dec 12 15:00:00 2007 GMT
- Not After : Dec 12 15:00:00 2017 GMT
- Subject: C=JP, O=Japanese Government, OU=ApplicationCA
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:a7:6d:e0:74:4e:87:8f:a5:06:de:68:a2:db:86:
- 99:4b:64:0d:71:f0:0a:05:9b:8e:aa:e1:cc:2e:d2:
- 6a:3b:c1:7a:b4:97:61:8d:8a:be:c6:9a:9c:06:b4:
- 86:51:e4:37:0e:74:78:7e:5f:8a:7f:94:a4:d7:47:
- 08:fd:50:5a:56:e4:68:ac:28:73:a0:7b:e9:7f:18:
- 92:40:4f:2d:9d:f5:ae:44:48:73:36:06:9e:64:2c:
- 3b:34:23:db:5c:26:e4:71:79:8f:d4:6e:79:22:b9:
- 93:c1:ca:cd:c1:56:ed:88:6a:d7:a0:39:21:04:57:
- 2c:a2:f5:bc:47:41:4f:5e:34:22:95:b5:1f:29:6d:
- 5e:4a:f3:4d:72:be:41:56:20:87:fc:e9:50:47:d7:
- 30:14:ee:5c:8c:55:ba:59:8d:87:fc:23:de:93:d0:
- 04:8c:fd:ef:6d:bd:d0:7a:c9:a5:3a:6a:72:33:c6:
- 4a:0d:05:17:2a:2d:7b:b1:a7:d8:d6:f0:be:f4:3f:
- ea:0e:28:6d:41:61:23:76:78:c3:b8:65:a4:f3:5a:
- ae:cc:c2:aa:d9:e7:58:de:b6:7e:9d:85:6e:9f:2a:
- 0a:6f:9f:03:29:30:97:28:1d:bc:b7:cf:54:29:4e:
- 51:31:f9:27:b6:28:26:fe:a2:63:e6:41:16:f0:33:
- 98:47
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 54:5A:CB:26:3F:71:CC:94:46:0D:96:53:EA:6B:48:D0:93:FE:42:75
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- X509v3 Subject Alternative Name:
- DirName:/C=JP/O=\xE6\x97\xA5\xE6\x9C\xAC\xE5\x9B\xBD\xE6\x94\xBF\xE5\xBA\x9C/OU=\xE3\x82\xA2\xE3\x83\x97\xE3\x83\xAA\xE3\x82\xB1\xE3\x83\xBC\xE3\x82\xB7\xE3\x83\xA7\xE3\x83\xB3CA
- X509v3 Basic Constraints: critical
- CA:TRUE
- Signature Algorithm: sha1WithRSAEncryption
- 39:6a:44:76:77:38:3a:ec:a3:67:46:0f:f9:8b:06:a8:fb:6a:
- 90:31:ce:7e:ec:da:d1:89:7c:7a:eb:2e:0c:bd:99:32:e7:b0:
- 24:d6:c3:ff:f5:b2:88:09:87:2c:e3:54:e1:a3:a6:b2:08:0b:
- c0:85:a8:c8:d2:9c:71:f6:1d:9f:60:fc:38:33:13:e1:9e:dc:
- 0b:5f:da:16:50:29:7b:2f:70:91:0f:99:ba:34:34:8d:95:74:
- c5:7e:78:a9:66:5d:bd:ca:21:77:42:10:ac:66:26:3d:de:91:
- ab:fd:15:f0:6f:ed:6c:5f:10:f8:f3:16:f6:03:8a:8f:a7:12:
- 11:0c:cb:fd:3f:79:c1:9c:fd:62:ee:a3:cf:54:0c:d1:2b:5f:
- 17:3e:e3:3e:bf:c0:2b:3e:09:9b:fe:88:a6:7e:b4:92:17:fc:
- 23:94:81:bd:6e:a7:c5:8c:c2:eb:11:45:db:f8:41:c9:96:76:
- ea:70:5f:79:12:6b:e4:a3:07:5a:05:ef:27:49:cf:21:9f:8a:
- 4c:09:70:66:a9:26:c1:2b:11:4e:33:d2:0e:fc:d6:6c:d2:0e:
- 32:64:68:ff:ad:05:78:5f:03:1d:a8:e3:90:ac:24:e0:0f:40:
- a7:4b:ae:8b:28:b7:82:ca:18:07:e6:b7:5b:74:e9:20:19:7f:
- b2:1b:89:54
-SHA1 Fingerprint=7F:8A:B0:CF:D0:51:87:6A:66:F3:36:0F:47:C8:8D:8C:D3:35:FC:74
diff --git a/luni/src/main/files/cacerts/facacbc6.0 b/luni/src/main/files/cacerts/facacbc6.0
deleted file mode 100644
index 0b2120a..0000000
--- a/luni/src/main/files/cacerts/facacbc6.0
+++ /dev/null
@@ -1,88 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB
-yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
-ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
-U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
-ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL
-MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
-ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2ln
-biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp
-U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
-aXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1
-nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbex
-t0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIz
-SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG
-BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+
-rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/
-NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E
-BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH
-BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
-aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv
-MzEzMA0GCSqGSIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzE
-p6B4Eq1iDkVwZMXnl2YtmAl+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y
-5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKEKQsTb47bDN0lAtukixlE0kF6BWlK
-WE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ
-4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vEZV8N
-hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 18:da:d1:9e:26:7d:e8:bb:4a:21:58:cd:cc:6b:3b:4a
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G5
- Validity
- Not Before: Nov 8 00:00:00 2006 GMT
- Not After : Jul 16 23:59:59 2036 GMT
- Subject: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G5
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:af:24:08:08:29:7a:35:9e:60:0c:aa:e7:4b:3b:
- 4e:dc:7c:bc:3c:45:1c:bb:2b:e0:fe:29:02:f9:57:
- 08:a3:64:85:15:27:f5:f1:ad:c8:31:89:5d:22:e8:
- 2a:aa:a6:42:b3:8f:f8:b9:55:b7:b1:b7:4b:b3:fe:
- 8f:7e:07:57:ec:ef:43:db:66:62:15:61:cf:60:0d:
- a4:d8:de:f8:e0:c3:62:08:3d:54:13:eb:49:ca:59:
- 54:85:26:e5:2b:8f:1b:9f:eb:f5:a1:91:c2:33:49:
- d8:43:63:6a:52:4b:d2:8f:e8:70:51:4d:d1:89:69:
- 7b:c7:70:f6:b3:dc:12:74:db:7b:5d:4b:56:d3:96:
- bf:15:77:a1:b0:f4:a2:25:f2:af:1c:92:67:18:e5:
- f4:06:04:ef:90:b9:e4:00:e4:dd:3a:b5:19:ff:02:
- ba:f4:3c:ee:e0:8b:eb:37:8b:ec:f4:d7:ac:f2:f6:
- f0:3d:af:dd:75:91:33:19:1d:1c:40:cb:74:24:19:
- 21:93:d9:14:fe:ac:2a:52:c7:8f:d5:04:49:e4:8d:
- 63:47:88:3c:69:83:cb:fe:47:bd:2b:7e:4f:c5:95:
- ae:0e:9d:d4:d1:43:c0:67:73:e3:14:08:7e:e5:3f:
- 9f:73:b8:33:0a:cf:5d:3f:34:87:96:8a:ee:53:e8:
- 25:15
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- 1.3.6.1.5.5.7.1.12:
- 0_.].[0Y0W0U..image/gif0!0.0...+..............k...j.H.,{..0%.#http://logo.verisign.com/vslogo.gif
- X509v3 Subject Key Identifier:
- 7F:D3:65:A7:C2:DD:EC:BB:F0:30:09:F3:43:39:FA:02:AF:33:31:33
- Signature Algorithm: sha1WithRSAEncryption
- 93:24:4a:30:5f:62:cf:d8:1a:98:2f:3d:ea:dc:99:2d:bd:77:
- f6:a5:79:22:38:ec:c4:a7:a0:78:12:ad:62:0e:45:70:64:c5:
- e7:97:66:2d:98:09:7e:5f:af:d6:cc:28:65:f2:01:aa:08:1a:
- 47:de:f9:f9:7c:92:5a:08:69:20:0d:d9:3e:6d:6e:3c:0d:6e:
- d8:e6:06:91:40:18:b9:f8:c1:ed:df:db:41:aa:e0:96:20:c9:
- cd:64:15:38:81:c9:94:ee:a2:84:29:0b:13:6f:8e:db:0c:dd:
- 25:02:db:a4:8b:19:44:d2:41:7a:05:69:4a:58:4f:60:ca:7e:
- 82:6a:0b:02:aa:25:17:39:b5:db:7f:e7:84:65:2a:95:8a:bd:
- 86:de:5e:81:16:83:2d:10:cc:de:fd:a8:82:2a:6d:28:1f:0d:
- 0b:c4:e5:e7:1a:26:19:e1:f4:11:6f:10:b5:95:fc:e7:42:05:
- 32:db:ce:9d:51:5e:28:b6:9e:85:d3:5b:ef:a5:7d:45:40:72:
- 8e:b7:0e:6b:0e:06:fb:33:35:48:71:b8:9d:27:8b:c4:65:5f:
- 0d:86:76:9c:44:7a:f6:95:5c:f6:5d:32:08:33:a4:54:b6:18:
- 3f:68:5c:f2:42:4a:85:38:54:83:5f:d1:e8:2c:f2:ac:11:d6:
- a8:ed:63:6a
-SHA1 Fingerprint=4E:B6:D5:78:49:9B:1C:CF:5F:58:1E:AD:56:BE:3D:9B:67:44:A5:E5
diff --git a/luni/src/main/files/cacerts/fb126c6d.0 b/luni/src/main/files/cacerts/fb126c6d.0
deleted file mode 100644
index f69722b..0000000
--- a/luni/src/main/files/cacerts/fb126c6d.0
+++ /dev/null
@@ -1,106 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIGizCCBXOgAwIBAgIEO0XlaDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJF
-UzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJ
-R1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwHhcN
-MDEwNzA2MTYyMjQ3WhcNMjEwNzAxMTUyMjQ3WjBoMQswCQYDVQQGEwJFUzEfMB0G
-A1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScw
-JQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwggEiMA0GCSqG
-SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGKqtXETcvIorKA3Qdyu0togu8M1JAJke+
-WmmmO3I2F0zo37i7L3bhQEZ0ZQKQUgi0/6iMweDHiVYQOTPvaLRfX9ptI6GJXiKj
-SgbwJ/BXufjpTjJ3Cj9BZPPrZe52/lSqfR0grvPXdMIKX/UIKFIIzFVd0g/bmoGl
-u6GzwZTNVOAydTGRGmKy3nXiz0+J2ZGQD0EbtFpKd71ng+CT516nDOeB0/RSrFOy
-A8dEJvt55cs0YFAQexvba9dHq198aMpunUEDEO5rmXteJajCq+TA81yc477OMUxk
-Hl6AovWDfgzWyoxVjr7gvkkHD6MkQXpYHYTqWBLI4bft75PelAgxAgMBAAGjggM7
-MIIDNzAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBr
-aS5ndmEuZXMwEgYDVR0TAQH/BAgwBgEB/wIBAjCCAjQGA1UdIASCAiswggInMIIC
-IwYKKwYBBAG/VQIBADCCAhMwggHoBggrBgEFBQcCAjCCAdoeggHWAEEAdQB0AG8A
-cgBpAGQAYQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAFIA
-YQDtAHoAIABkAGUAIABsAGEAIABHAGUAbgBlAHIAYQBsAGkAdABhAHQAIABWAGEA
-bABlAG4AYwBpAGEAbgBhAC4ADQAKAEwAYQAgAEQAZQBjAGwAYQByAGEAYwBpAPMA
-bgAgAGQAZQAgAFAAcgDhAGMAdABpAGMAYQBzACAAZABlACAAQwBlAHIAdABpAGYA
-aQBjAGEAYwBpAPMAbgAgAHEAdQBlACAAcgBpAGcAZQAgAGUAbAAgAGYAdQBuAGMA
-aQBvAG4AYQBtAGkAZQBuAHQAbwAgAGQAZQAgAGwAYQAgAHAAcgBlAHMAZQBuAHQA
-ZQAgAEEAdQB0AG8AcgBpAGQAYQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEA
-YwBpAPMAbgAgAHMAZQAgAGUAbgBjAHUAZQBuAHQAcgBhACAAZQBuACAAbABhACAA
-ZABpAHIAZQBjAGMAaQDzAG4AIAB3AGUAYgAgAGgAdAB0AHAAOgAvAC8AdwB3AHcA
-LgBwAGsAaQAuAGcAdgBhAC4AZQBzAC8AYwBwAHMwJQYIKwYBBQUHAgEWGWh0dHA6
-Ly93d3cucGtpLmd2YS5lcy9jcHMwHQYDVR0OBBYEFHs100DSHHgZZu90ECjcPk+y
-eAT8MIGVBgNVHSMEgY0wgYqAFHs100DSHHgZZu90ECjcPk+yeAT8oWykajBoMQsw
-CQYDVQQGEwJFUzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0G
-A1UECxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVu
-Y2lhbmGCBDtF5WgwDQYJKoZIhvcNAQEFBQADggEBACRhTvW1yEICKrNcda3Fbcrn
-lD+laJWIwVTAEGmiEi8YPyVQqHxK6sYJ2fR1xkDar1CdPaUWu20xxsdzCkj+IHLt
-b8zog2EWRpABlUt9jppSCS/2bxzkoXHPjCpaF3ODR00PNvsETUlR4hTJZGH71BTg
-9J63NI8KJr2XXPR5OkowGcytT6CYirQxlyric21+eLj4iIlPsSKRZEv1UN4D2+XF
-ducTZnV+ZfsBn5OHiJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmC
-IoaZM3Fa6hlXPZHNqcCjbgcTpsnt+GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 994436456 (0x3b45e568)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=ES, O=Generalitat Valenciana, OU=PKIGVA, CN=Root CA Generalitat Valenciana
- Validity
- Not Before: Jul 6 16:22:47 2001 GMT
- Not After : Jul 1 15:22:47 2021 GMT
- Subject: C=ES, O=Generalitat Valenciana, OU=PKIGVA, CN=Root CA Generalitat Valenciana
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c6:2a:ab:57:11:37:2f:22:8a:ca:03:74:1d:ca:
- ed:2d:a2:0b:bc:33:52:40:26:47:be:5a:69:a6:3b:
- 72:36:17:4c:e8:df:b8:bb:2f:76:e1:40:46:74:65:
- 02:90:52:08:b4:ff:a8:8c:c1:e0:c7:89:56:10:39:
- 33:ef:68:b4:5f:5f:da:6d:23:a1:89:5e:22:a3:4a:
- 06:f0:27:f0:57:b9:f8:e9:4e:32:77:0a:3f:41:64:
- f3:eb:65:ee:76:fe:54:aa:7d:1d:20:ae:f3:d7:74:
- c2:0a:5f:f5:08:28:52:08:cc:55:5d:d2:0f:db:9a:
- 81:a5:bb:a1:b3:c1:94:cd:54:e0:32:75:31:91:1a:
- 62:b2:de:75:e2:cf:4f:89:d9:91:90:0f:41:1b:b4:
- 5a:4a:77:bd:67:83:e0:93:e7:5e:a7:0c:e7:81:d3:
- f4:52:ac:53:b2:03:c7:44:26:fb:79:e5:cb:34:60:
- 50:10:7b:1b:db:6b:d7:47:ab:5f:7c:68:ca:6e:9d:
- 41:03:10:ee:6b:99:7b:5e:25:a8:c2:ab:e4:c0:f3:
- 5c:9c:e3:be:ce:31:4c:64:1e:5e:80:a2:f5:83:7e:
- 0c:d6:ca:8c:55:8e:be:e0:be:49:07:0f:a3:24:41:
- 7a:58:1d:84:ea:58:12:c8:e1:b7:ed:ef:93:de:94:
- 08:31
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- Authority Information Access:
- OCSP - URI:http://ocsp.pki.gva.es
-
- X509v3 Basic Constraints: critical
- CA:TRUE, pathlen:2
- X509v3 Certificate Policies:
- Policy: 1.3.6.1.4.1.8149.2.1.0
- User Notice:
- Explicit Text:
- CPS: http://www.pki.gva.es/cps
-
- X509v3 Subject Key Identifier:
- 7B:35:D3:40:D2:1C:78:19:66:EF:74:10:28:DC:3E:4F:B2:78:04:FC
- X509v3 Authority Key Identifier:
- keyid:7B:35:D3:40:D2:1C:78:19:66:EF:74:10:28:DC:3E:4F:B2:78:04:FC
- DirName:/C=ES/O=Generalitat Valenciana/OU=PKIGVA/CN=Root CA Generalitat Valenciana
- serial:3B:45:E5:68
-
- Signature Algorithm: sha1WithRSAEncryption
- 24:61:4e:f5:b5:c8:42:02:2a:b3:5c:75:ad:c5:6d:ca:e7:94:
- 3f:a5:68:95:88:c1:54:c0:10:69:a2:12:2f:18:3f:25:50:a8:
- 7c:4a:ea:c6:09:d9:f4:75:c6:40:da:af:50:9d:3d:a5:16:bb:
- 6d:31:c6:c7:73:0a:48:fe:20:72:ed:6f:cc:e8:83:61:16:46:
- 90:01:95:4b:7d:8e:9a:52:09:2f:f6:6f:1c:e4:a1:71:cf:8c:
- 2a:5a:17:73:83:47:4d:0f:36:fb:04:4d:49:51:e2:14:c9:64:
- 61:fb:d4:14:e0:f4:9e:b7:34:8f:0a:26:bd:97:5c:f4:79:3a:
- 4a:30:19:cc:ad:4f:a0:98:8a:b4:31:97:2a:e2:73:6d:7e:78:
- b8:f8:88:89:4f:b1:22:91:64:4b:f5:50:de:03:db:e5:c5:76:
- e7:13:66:75:7e:65:fb:01:9f:93:87:88:9d:f9:46:57:7c:4d:
- 60:af:98:73:13:23:a4:20:91:81:fa:d0:61:66:b8:7d:d1:af:
- d6:6f:1e:6c:3d:e9:11:fd:a9:f9:82:22:86:99:33:71:5a:ea:
- 19:57:3d:91:cd:a9:c0:a3:6e:07:13:a6:c9:ed:f8:68:a3:9e:
- c3:5a:72:09:87:28:d1:c4:73:c4:73:18:5f:50:75:16:31:9f:
- b7:e8:7c:c3
-SHA1 Fingerprint=A0:73:E5:C5:BD:43:61:0D:86:4C:21:13:0A:85:58:57:CC:9C:EA:46
diff --git a/luni/src/main/files/cacerts/fde84897.0 b/luni/src/main/files/cacerts/fde84897.0
deleted file mode 100644
index c87478c..0000000
--- a/luni/src/main/files/cacerts/fde84897.0
+++ /dev/null
@@ -1,86 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNV
-BAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4X
-DTA3MDYyOTE1MTMwNVoXDTI3MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQ
-BgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwIQ2VydGlnbmEwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7qXOEm7RFHYeGifBZ4
-QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyHGxny
-gQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbw
-zBfsV1/pogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q
-130yGLMLLGq/jj8UEYkgDncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2
-JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKfIrjxwo1p3Po6WAbfAgMBAAGjgbwwgbkw
-DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQtCRZvgHyUtVF9lo53BEw
-ZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJBgNVBAYT
-AkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzj
-AQ/JSP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG
-9w0BAQUFAAOCAQEAhQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8h
-bV6lUmPOEvjvKtpv6zf+EwLHyzs+ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFnc
-fca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1kluPBS1xp81HlDQwY9qcEQCYsuu
-HWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY1gkIl2PlwS6w
-t0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw
-WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 18364802974209362175 (0xfedce3010fc948ff)
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=FR, O=Dhimyotis, CN=Certigna
- Validity
- Not Before: Jun 29 15:13:05 2007 GMT
- Not After : Jun 29 15:13:05 2027 GMT
- Subject: C=FR, O=Dhimyotis, CN=Certigna
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c8:68:f1:c9:d6:d6:b3:34:75:26:82:1e:ec:b4:
- be:ea:5c:e1:26:ed:11:47:61:e1:a2:7c:16:78:40:
- 21:e4:60:9e:5a:c8:63:e1:c4:b1:96:92:ff:18:6d:
- 69:23:e1:2b:62:f7:dd:e2:36:2f:91:07:b9:48:cf:
- 0e:ec:79:b6:2c:e7:34:4b:70:08:25:a3:3c:87:1b:
- 19:f2:81:07:0f:38:90:19:d3:11:fe:86:b4:f2:d1:
- 5e:1e:1e:96:cd:80:6c:ce:3b:31:93:b6:f2:a0:d0:
- a9:95:12:7d:a5:9a:cc:6b:c8:84:56:8a:33:a9:e7:
- 22:15:53:16:f0:cc:17:ec:57:5f:e9:a2:0a:98:09:
- de:e3:5f:9c:6f:dc:48:e3:85:0b:15:5a:a6:ba:9f:
- ac:48:e3:09:b2:f7:f4:32:de:5e:34:be:1c:78:5d:
- 42:5b:ce:0e:22:8f:4d:90:d7:7d:32:18:b3:0b:2c:
- 6a:bf:8e:3f:14:11:89:20:0e:77:14:b5:3d:94:08:
- 87:f7:25:1e:d5:b2:60:00:ec:6f:2a:28:25:6e:2a:
- 3e:18:63:17:25:3f:3e:44:20:16:f6:26:c8:25:ae:
- 05:4a:b4:e7:63:2c:f3:8c:16:53:7e:5c:fb:11:1a:
- 08:c1:46:62:9f:22:b8:f1:c2:8d:69:dc:fa:3a:58:
- 06:df
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- 1A:ED:FE:41:39:90:B4:24:59:BE:01:F2:52:D5:45:F6:5A:39:DC:11
- X509v3 Authority Key Identifier:
- keyid:1A:ED:FE:41:39:90:B4:24:59:BE:01:F2:52:D5:45:F6:5A:39:DC:11
- DirName:/C=FR/O=Dhimyotis/CN=Certigna
- serial:FE:DC:E3:01:0F:C9:48:FF
-
- X509v3 Key Usage: critical
- Certificate Sign, CRL Sign
- Netscape Cert Type:
- SSL CA, S/MIME CA, Object Signing CA
- Signature Algorithm: sha1WithRSAEncryption
- 85:03:1e:92:71:f6:42:af:e1:a3:61:9e:eb:f3:c0:0f:f2:a5:
- d4:da:95:e6:d6:be:68:36:3d:7e:6e:1f:4c:8a:ef:d1:0f:21:
- 6d:5e:a5:52:63:ce:12:f8:ef:2a:da:6f:eb:37:fe:13:02:c7:
- cb:3b:3e:22:6b:da:61:2e:7f:d4:72:3d:dd:30:e1:1e:4c:40:
- 19:8c:0f:d7:9c:d1:83:30:7b:98:59:dc:7d:c6:b9:0c:29:4c:
- a1:33:a2:eb:67:3a:65:84:d3:96:e2:ed:76:45:70:8f:b5:2b:
- de:f9:23:d6:49:6e:3c:14:b5:c6:9f:35:1e:50:d0:c1:8f:6a:
- 70:44:02:62:cb:ae:1d:68:41:a7:aa:57:e8:53:aa:07:d2:06:
- f6:d5:14:06:0b:91:03:75:2c:6c:72:b5:61:95:9a:0d:8b:b9:
- 0d:e7:f5:df:54:cd:de:e6:d8:d6:09:08:97:63:e5:c1:2e:b0:
- b7:44:26:c0:26:c0:af:55:30:9e:3b:d5:36:2a:19:04:f4:5c:
- 1e:ff:cf:2c:b7:ff:d0:fd:87:40:11:d5:11:23:bb:48:c0:21:
- a9:a4:28:2d:fd:15:f8:b0:4e:2b:f4:30:5b:21:fc:11:91:34:
- be:41:ef:7b:9d:97:75:ff:97:95:c0:96:58:2f:ea:bb:46:d7:
- bb:e4:d9:2e
-SHA1 Fingerprint=B1:2E:13:63:45:86:A4:6F:1A:B2:60:68:37:58:2D:C4:AC:FD:94:97
diff --git a/luni/src/main/files/cacerts/ff783690.0 b/luni/src/main/files/cacerts/ff783690.0
deleted file mode 100644
index 29bf947..0000000
--- a/luni/src/main/files/cacerts/ff783690.0
+++ /dev/null
@@ -1,91 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCB
-lzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug
-Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho
-dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3Qt
-SGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgxOTIyWjCBlzELMAkG
-A1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEe
-MBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8v
-d3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdh
-cmUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn
-0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlIwrthdBKWHTxqctU8EGc6Oe0rE81m65UJ
-M6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFdtqdt++BxF2uiiPsA3/4a
-MXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8i4fDidNd
-oI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqI
-DsjfPe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9Ksy
-oUhbAgMBAAGjgbkwgbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYD
-VR0OBBYEFKFyXyYbKJhDlV0HN9WFlp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0
-dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNFUkZpcnN0LUhhcmR3YXJlLmNy
-bDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUFBwMGBggrBgEF
-BQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM
-//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28Gpgoiskli
-CE7/yMgUsogWXecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gE
-CJChicsZUN/KHAG8HQQZexB2lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t
-3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kniCrVWFCVH/A7HFe7fRQ5YiuayZSS
-KqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67nfhmqA==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 44:be:0c:8b:50:00:24:b4:11:d3:36:2a:fe:65:0a:fd
- Signature Algorithm: sha1WithRSAEncryption
- Issuer: C=US, ST=UT, L=Salt Lake City, O=The USERTRUST Network, OU=http://www.usertrust.com, CN=UTN-USERFirst-Hardware
- Validity
- Not Before: Jul 9 18:10:42 1999 GMT
- Not After : Jul 9 18:19:22 2019 GMT
- Subject: C=US, ST=UT, L=Salt Lake City, O=The USERTRUST Network, OU=http://www.usertrust.com, CN=UTN-USERFirst-Hardware
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:b1:f7:c3:38:3f:b4:a8:7f:cf:39:82:51:67:d0:
- 6d:9f:d2:ff:58:f3:e7:9f:2b:ec:0d:89:54:99:b9:
- 38:99:16:f7:e0:21:79:48:c2:bb:61:74:12:96:1d:
- 3c:6a:72:d5:3c:10:67:3a:39:ed:2b:13:cd:66:eb:
- 95:09:33:a4:6c:97:b1:e8:c6:ec:c1:75:79:9c:46:
- 5e:8d:ab:d0:6a:fd:b9:2a:55:17:10:54:b3:19:f0:
- 9a:f6:f1:b1:5d:b6:a7:6d:fb:e0:71:17:6b:a2:88:
- fb:00:df:fe:1a:31:77:0c:9a:01:7a:b1:32:e3:2b:
- 01:07:38:6e:c3:a5:5e:23:bc:45:9b:7b:50:c1:c9:
- 30:8f:db:e5:2b:7a:d3:5b:fb:33:40:1e:a0:d5:98:
- 17:bc:8b:87:c3:89:d3:5d:a0:8e:b2:aa:aa:f6:8e:
- 69:88:06:c5:fa:89:21:f3:08:9d:69:2e:09:33:9b:
- 29:0d:46:0f:8c:cc:49:34:b0:69:51:bd:f9:06:cd:
- 68:ad:66:4c:bc:3e:ac:61:bd:0a:88:0e:c8:df:3d:
- ee:7c:04:4c:9d:0a:5e:6b:91:d6:ee:c7:ed:28:8d:
- ab:4d:87:89:73:d0:6e:a4:d0:1e:16:8b:14:e1:76:
- 44:03:7f:63:ac:e4:cd:49:9c:c5:92:f4:ab:32:a1:
- 48:5b
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Key Usage:
- Digital Signature, Non Repudiation, Certificate Sign, CRL Sign
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Subject Key Identifier:
- A1:72:5F:26:1B:28:98:43:95:5D:07:37:D5:85:96:9D:4B:D2:C3:45
- X509v3 CRL Distribution Points:
-
- Full Name:
- URI:http://crl.usertrust.com/UTN-USERFirst-Hardware.crl
-
- X509v3 Extended Key Usage:
- TLS Web Server Authentication, IPSec End System, IPSec Tunnel, IPSec User
- Signature Algorithm: sha1WithRSAEncryption
- 47:19:0f:de:74:c6:99:97:af:fc:ad:28:5e:75:8e:eb:2d:67:
- ee:4e:7b:2b:d7:0c:ff:f6:de:cb:55:a2:0a:e1:4c:54:65:93:
- 60:6b:9f:12:9c:ad:5e:83:2c:eb:5a:ae:c0:e4:2d:f4:00:63:
- 1d:b8:c0:6c:f2:cf:49:bb:4d:93:6f:06:a6:0a:22:b2:49:62:
- 08:4e:ff:c8:c8:14:b2:88:16:5d:e7:01:e4:12:95:e5:45:34:
- b3:8b:69:bd:cf:b4:85:8f:75:51:9e:7d:3a:38:3a:14:48:12:
- c6:fb:a7:3b:1a:8d:0d:82:40:07:e8:04:08:90:a1:89:cb:19:
- 50:df:ca:1c:01:bc:1d:04:19:7b:10:76:97:3b:ee:90:90:ca:
- c4:0e:1f:16:6e:75:ef:33:f8:d3:6f:5b:1e:96:e3:e0:74:77:
- 74:7b:8a:a2:6e:2d:dd:76:d6:39:30:82:f0:ab:9c:52:f2:2a:
- c7:af:49:5e:7e:c7:68:e5:82:81:c8:6a:27:f9:27:88:2a:d5:
- 58:50:95:1f:f0:3b:1c:57:bb:7d:14:39:62:2b:9a:c9:94:92:
- 2a:a3:22:0c:ff:89:26:7d:5f:23:2b:47:d7:15:1d:a9:6a:9e:
- 51:0d:2a:51:9e:81:f9:d4:3b:5e:70:12:7f:10:32:9c:1e:bb:
- 9d:f8:66:a8
-SHA1 Fingerprint=04:83:ED:33:99:AC:36:08:05:87:22:ED:BC:5E:46:00:E3:BE:F9:D7
diff --git a/luni/src/main/java/android/system/Os.java b/luni/src/main/java/android/system/Os.java
index a1e87c8..c43c1ba 100644
--- a/luni/src/main/java/android/system/Os.java
+++ b/luni/src/main/java/android/system/Os.java
@@ -43,6 +43,12 @@
public static FileDescriptor accept(FileDescriptor fd, InetSocketAddress peerAddress) throws ErrnoException, SocketException { return Libcore.os.accept(fd, peerAddress); }
/**
+ * TODO Change the public API by removing the overload above and unhiding this version.
+ * @hide
+ */
+ public static FileDescriptor accept(FileDescriptor fd, SocketAddress peerAddress) throws ErrnoException, SocketException { return Libcore.os.accept(fd, peerAddress); }
+
+ /**
* See <a href="http://man7.org/linux/man-pages/man2/access.2.html">access(2)</a>.
*/
public static boolean access(String path, int mode) throws ErrnoException { return Libcore.os.access(path, mode); }
@@ -540,6 +546,11 @@
public static StructUtsname uname() { return Libcore.os.uname(); }
/**
+ * @hide See <a href="http://man7.org/linux/man-pages/man2/unlink.2.html">unlink(2)</a>.
+ */
+ public static void unlink(String pathname) throws ErrnoException { Libcore.os.unlink(pathname); }
+
+ /**
* See <a href="http://man7.org/linux/man-pages/man3/unsetenv.3.html">unsetenv(3)</a>.
*/
public static void unsetenv(String name) throws ErrnoException { Libcore.os.unsetenv(name); }
diff --git a/luni/src/main/java/android/system/OsConstants.java b/luni/src/main/java/android/system/OsConstants.java
index 8832f3d..3a24856 100644
--- a/luni/src/main/java/android/system/OsConstants.java
+++ b/luni/src/main/java/android/system/OsConstants.java
@@ -238,6 +238,7 @@
public static final int ETIME = placeholder();
public static final int ETIMEDOUT = placeholder();
public static final int ETXTBSY = placeholder();
+ /** @hide */ public static final int EUSERS = placeholder();
// On Linux, EWOULDBLOCK == EAGAIN. Use EAGAIN instead, to reduce confusion.
public static final int EXDEV = placeholder();
public static final int EXIT_FAILURE = placeholder();
@@ -309,6 +310,7 @@
public static final int IP_MULTICAST_IF = placeholder();
public static final int IP_MULTICAST_LOOP = placeholder();
public static final int IP_MULTICAST_TTL = placeholder();
+ /** @hide */ public static final int IP_RECVTOS = placeholder();
public static final int IP_TOS = placeholder();
public static final int IP_TTL = placeholder();
public static final int MAP_FIXED = placeholder();
@@ -349,6 +351,7 @@
public static final int O_RDONLY = placeholder();
public static final int O_RDWR = placeholder();
public static final int O_SYNC = placeholder();
+ /** @hide */ public static final int O_DSYNC = placeholder();
public static final int O_TRUNC = placeholder();
public static final int O_WRONLY = placeholder();
public static final int POLLERR = placeholder();
@@ -489,6 +492,8 @@
public static final int S_IXOTH = placeholder();
public static final int S_IXUSR = placeholder();
public static final int TCP_NODELAY = placeholder();
+ /** @hide */ public static final int TIOCOUTQ = placeholder();
+ /** @hide */ public static final int UNIX_PATH_MAX = placeholder();
public static final int WCONTINUED = placeholder();
public static final int WEXITED = placeholder();
public static final int WNOHANG = placeholder();
diff --git a/luni/src/main/java/android/system/UnixSocketAddress.java b/luni/src/main/java/android/system/UnixSocketAddress.java
new file mode 100644
index 0000000..e0ade78
--- /dev/null
+++ b/luni/src/main/java/android/system/UnixSocketAddress.java
@@ -0,0 +1,119 @@
+/*
+ * Copyright (C) 2015 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 android.system;
+
+import java.net.SocketAddress;
+import java.nio.charset.StandardCharsets;
+import java.util.Arrays;
+
+/**
+ * A UNIX-domain (AF_UNIX / AF_LOCAL) socket address.
+ *
+ * @hide
+ */
+public final class UnixSocketAddress extends SocketAddress {
+
+ private static final int NAMED_PATH_LENGTH = OsConstants.UNIX_PATH_MAX;
+ private static final byte[] UNNAMED_PATH = new byte[0];
+
+ // See unix(7): Three types of UnixSocketAddress:
+ // 1) pathname: 0 < sun_path.length <= NAMED_PATH_LENGTH, sun_path[0] != 0.
+ // 2) unnamed: sun_path = [].
+ // 3) abstract: 0 < sun_path.length <= NAMED_PATH_LENGTH, sun_path[0] == 0.
+ private byte[] sun_path;
+
+ /** This constructor is also used from JNI. */
+ private UnixSocketAddress(byte[] sun_path) {
+ if (sun_path == null) {
+ throw new IllegalArgumentException("sun_path must not be null");
+ }
+ if (sun_path.length > NAMED_PATH_LENGTH) {
+ throw new IllegalArgumentException("sun_path exceeds the maximum length");
+ }
+
+ if (sun_path.length == 0) {
+ this.sun_path = UNNAMED_PATH;
+ } else {
+ this.sun_path = new byte[sun_path.length];
+ System.arraycopy(sun_path, 0, this.sun_path, 0, sun_path.length);
+ }
+ }
+
+ /**
+ * Creates a named, abstract AF_UNIX socket address.
+ */
+ public static UnixSocketAddress createAbstract(String name) {
+ byte[] nameBytes = name.getBytes(StandardCharsets.UTF_8);
+ // Abstract sockets have a path that starts with (byte) 0.
+ byte[] path = new byte[nameBytes.length + 1];
+ System.arraycopy(nameBytes, 0, path, 1, nameBytes.length);
+ return new UnixSocketAddress(path);
+ }
+
+ /**
+ * Creates a named, filesystem AF_UNIX socket address.
+ */
+ public static UnixSocketAddress createFileSystem(String pathName) {
+ byte[] pathNameBytes = pathName.getBytes(StandardCharsets.UTF_8);
+ // File system sockets have a path that ends with (byte) 0.
+ byte[] path = new byte[pathNameBytes.length + 1];
+ System.arraycopy(pathNameBytes, 0, path, 0, pathNameBytes.length);
+ return new UnixSocketAddress(path);
+ }
+
+ /**
+ * Creates an unnamed, filesystem AF_UNIX socket address.
+ */
+ public static UnixSocketAddress createUnnamed() {
+ return new UnixSocketAddress(UNNAMED_PATH);
+ }
+
+ /** Used for testing. */
+ public byte[] getSunPath() {
+ if (sun_path.length == 0) {
+ return sun_path;
+ }
+ byte[] sunPathCopy = new byte[sun_path.length];
+ System.arraycopy(sun_path, 0, sunPathCopy, 0, sun_path.length);
+ return sunPathCopy;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+
+ UnixSocketAddress that = (UnixSocketAddress) o;
+ return Arrays.equals(sun_path, that.sun_path);
+ }
+
+ @Override
+ public int hashCode() {
+ return Arrays.hashCode(sun_path);
+ }
+
+ @Override
+ public String toString() {
+ return "UnixSocketAddress[" +
+ "sun_path=" + Arrays.toString(sun_path) +
+ ']';
+ }
+}
diff --git a/luni/src/main/java/java/io/RandomAccessFile.java b/luni/src/main/java/java/io/RandomAccessFile.java
index 0e4fa4f..42c30c4 100644
--- a/luni/src/main/java/java/io/RandomAccessFile.java
+++ b/luni/src/main/java/java/io/RandomAccessFile.java
@@ -44,8 +44,6 @@
*/
private FileDescriptor fd;
- private boolean syncMetadata = false;
-
// The unique file channel associated with this FileInputStream (lazily
// initialized).
private FileChannel channel;
@@ -104,11 +102,11 @@
} else if (mode.equals("rw") || mode.equals("rws") || mode.equals("rwd")) {
flags = O_RDWR | O_CREAT;
if (mode.equals("rws")) {
- // Sync file and metadata with every write
- syncMetadata = true;
- } else if (mode.equals("rwd")) {
- // Sync file, but not necessarily metadata
+ // Sync data and metadata with every write
flags |= O_SYNC;
+ } else if (mode.equals("rwd")) {
+ // Sync data, but not necessarily metadata
+ flags |= O_DSYNC;
}
} else {
throw new IllegalArgumentException("Invalid mode: " + mode);
@@ -116,14 +114,6 @@
this.mode = flags;
this.fd = IoBridge.open(file.getPath(), flags);
- // if we are in "rws" mode, attempt to sync file+metadata
- if (syncMetadata) {
- try {
- fd.sync();
- } catch (IOException e) {
- // Ignored
- }
- }
guard.open("close");
}
@@ -635,10 +625,6 @@
seek(newLength);
}
- // if we are in "rws" mode, attempt to sync file+metadata
- if (syncMetadata) {
- fd.sync();
- }
}
/**
@@ -689,10 +675,6 @@
*/
public void write(byte[] buffer, int byteOffset, int byteCount) throws IOException {
IoBridge.write(fd, buffer, byteOffset, byteCount);
- // if we are in "rws" mode, attempt to sync file+metadata
- if (syncMetadata) {
- fd.sync();
- }
}
/**
diff --git a/luni/src/main/java/java/lang/IntegralToString.java b/luni/src/main/java/java/lang/IntegralToString.java
index f6234a0..a9d5aaa 100644
--- a/luni/src/main/java/java/lang/IntegralToString.java
+++ b/luni/src/main/java/java/lang/IntegralToString.java
@@ -75,7 +75,7 @@
'9', '9', '9', '9', '9', '9', '9', '9', '9', '9'
};
- /** Ones [i] contains the tens digit of the number i, 0 <= i <= 99. */
+ /** Ones [i] contains the ones digit of the number i, 0 <= i <= 99. */
private static final char[] ONES = {
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
diff --git a/luni/src/main/java/java/lang/NoClassDefFoundError.java b/luni/src/main/java/java/lang/NoClassDefFoundError.java
index b796711..d3a4149 100644
--- a/luni/src/main/java/java/lang/NoClassDefFoundError.java
+++ b/luni/src/main/java/java/lang/NoClassDefFoundError.java
@@ -42,4 +42,18 @@
public NoClassDefFoundError(String detailMessage) {
super(detailMessage);
}
+
+ /**
+ * Constructs a new {@code NoClassDefFoundError} with the current stack
+ * trace, the specified detail message and the specified cause. Used
+ * internally by the Android runtime.
+ *
+ * @param detailMessage
+ * the detail message for this error.
+ * @param throwable
+ * the cause of this error.
+ */
+ private NoClassDefFoundError(String detailMessage, Throwable throwable) {
+ super(detailMessage, throwable);
+ }
}
diff --git a/luni/src/main/java/java/lang/StrictMath.java b/luni/src/main/java/java/lang/StrictMath.java
index 2e848f2..5c9638b 100644
--- a/luni/src/main/java/java/lang/StrictMath.java
+++ b/luni/src/main/java/java/lang/StrictMath.java
@@ -300,7 +300,7 @@
int ix, hx, id;
final long bits = Double.doubleToRawLongBits(x);
- hx = (int) (bits >>> 32);
+ hx = highBits(bits);
ix = hx & 0x7fffffff;
if (ix >= 0x44100000) { /* if |x| >= 2^66 */
if (ix > 0x7ff00000 || (ix == 0x7ff00000 && (((int) bits) != 0))) {
@@ -404,12 +404,12 @@
final long yBits = Double.doubleToRawLongBits(y);
final long xBits = Double.doubleToRawLongBits(x);
- hx = (int) (xBits >>> 32); // __HI(x);
+ hx = highBits(xBits); // __HI(x);
ix = hx & 0x7fffffff;
- lx = (int) xBits; // __LO(x);
- hy = (int) (yBits >>> 32); // __HI(y);
+ lx = lowBits(xBits); // __LO(x);
+ hy = highBits(yBits); // __HI(y);
iy = hy & 0x7fffffff;
- ly = (int) yBits; // __LO(y);
+ ly = lowBits(yBits); // __LO(y);
if (((ix | ((lx | -lx) >> 31)) > 0x7ff00000)
|| ((iy | ((ly | -ly) >> 31)) > 0x7ff00000)) { /* x or y is NaN */
return x + y;
@@ -525,14 +525,14 @@
int sign; // caution: should be unsigned
long bits = Double.doubleToRawLongBits(x);
- hx = (int) (bits >>> 32);
+ hx = highBits(bits);
sign = hx & 0x80000000; /* sign= sign(x) */
hx ^= sign;
if (hx >= 0x7ff00000) {
return (x + x); /* ieee_cbrt(NaN,INF) is itself */
}
- if ((hx | ((int) bits)) == 0) {
+ if ((hx | lowBits(bits)) == 0) {
return x; /* ieee_cbrt(0) is itself */
}
@@ -599,8 +599,79 @@
* <li>{@code ceil(-infinity) = -infinity}</li>
* <li>{@code ceil(NaN) = NaN}</li>
* </ul>
+ *
+ * @param d
+ * the double value whose ceiling will be computed.
+ * @return the ceiling of the argument.
*/
- public static native double ceil(double d);
+ public static double ceil(double d) {
+ final long bits = Double.doubleToRawLongBits(d);
+ int highBits = highBits(bits); // high word of d
+ int lowBits = lowBits(bits); // low word of d
+ int exp = ((highBits >> 20) & 0x7ff) - 0x3ff; // value of exponent
+
+ /* negative exponent */
+ if (exp < 0) {
+ if (HUGE + d > 0.0) {
+ if (highBits < 0) { // if |d| < 1 return -0
+ highBits = 0x80000000;
+ } else if ((highBits | lowBits) != 0) {
+ // raise inexact if d != 0, this is ignored by Java
+ highBits = 0x3ff00000; // return 1
+ }
+ lowBits = 0;
+ }
+ }
+ /* exponent in range [0, 20) */
+ else if (exp < 20) {
+ int i = (0x000fffff) >> exp; // careful, should be unsigned
+ /* d is integral */
+ if (((highBits & i) | lowBits) == 0) {
+ return d;
+ }
+ if (HUGE + d > 0.0) { // raise inexact flag: this is ignored by Java
+ if (highBits > 0) {
+ highBits += (0x00100000) >> exp;
+ }
+ highBits &= (~i);
+ lowBits = 0;
+ }
+ }
+ /* exponent in range (51, inf) */
+ else if (exp > 51) {
+ /* inf or NaN */
+ if (exp == 0x400) {
+ return d + d;
+ }
+ return d; // d is integral
+ }
+ /* exponent in range [21,51] */
+ else {
+ int i = (0xffffffff) >>> (exp - 20); // careful, should be unsigned
+ /* d is integral */
+ if ((lowBits & i) == 0) {
+ return d;
+ }
+ /* raise inexact flag: this is ignored by Java */
+ if (HUGE + d > 0.0) {
+ if (highBits > 0) {
+ if (exp == 20) {
+ highBits += 1;
+ } else {
+ // careful, j should be unsigned
+ int j = (int)(lowBits + (1 << (52 - exp)));
+ if ((lowBits < 0) && (j >= 0)) {
+ highBits += 1; // carry occurred
+ }
+ lowBits = j;
+ }
+ }
+ lowBits &= (~i);
+ }
+ }
+ /* combine highBits and unsigned lowBits for final result */
+ return Double.longBitsToDouble(((long)highBits << 32) + (lowBits & 0xFFFFFFFFL));
+ }
private static final long ONEBITS = Double.doubleToRawLongBits(1.00000000000000000000e+00)
& 0x00000000ffffffffL;
@@ -624,7 +695,7 @@
double t, w;
int ix;
final long bits = Double.doubleToRawLongBits(x);
- ix = (int) (bits >>> 32) & 0x7fffffff;
+ ix = highBits(bits) & 0x7fffffff;
/* x is INF or NaN */
if (ix >= 0x7ff00000) {
@@ -715,8 +786,8 @@
int k = 0, xsb;
int hx; // should be unsigned, be careful!
final long bits = Double.doubleToRawLongBits(x);
- int lowBits = (int) bits;
- int highBits = (int) (bits >>> 32);
+ int lowBits = lowBits(bits);
+ int highBits = highBits(bits);
hx = highBits & 0x7fffffff;
xsb = (highBits >>> 31) & 1;
@@ -814,8 +885,8 @@
int k, xsb;
long yBits = 0;
final long bits = Double.doubleToRawLongBits(x);
- int highBits = (int) (bits >>> 32);
- int lowBits = (int) (bits);
+ int highBits = highBits(bits);
+ int lowBits = lowBits(bits);
int hx = highBits & 0x7fffffff; // caution: should be unsigned!
xsb = highBits & 0x80000000; /* sign bit of x */
y = xsb == 0 ? x : -x; /* y = |x| */
@@ -930,8 +1001,79 @@
* <li>{@code floor(-infinity) = -infinity}</li>
* <li>{@code floor(NaN) = NaN}</li>
* </ul>
+ *
+ * @param d
+ * the double value whose floor will be computed.
+ * @return the floor of the argument.
*/
- public static native double floor(double d);
+ public static double floor(double d) {
+ final long bits = Double.doubleToRawLongBits(d);
+ int highBits = highBits(bits); // high word of d
+ int lowBits = lowBits(bits); // low word of d
+ int exp = ((highBits >> 20) & 0x7ff) - 0x3ff; // value of exponent
+
+ /* negative exponent */
+ if (exp < 0) {
+ if (HUGE + d > 0.0) {
+ if (highBits >= 0) { // if |d| < 1
+ highBits = 0;
+ } else if (((highBits & 0x7fffffff) | lowBits) != 0) {
+ // raise inexact if d != 0, this is ignored by Java
+ highBits = 0xbff00000;
+ }
+ lowBits = 0;
+ }
+ }
+ /* exponent in range [0, 20) */
+ else if (exp < 20) {
+ int i = (0x000fffff) >> exp; // careful, should be unsigned
+ /* d is integral */
+ if (((highBits & i) | lowBits) == 0) {
+ return d;
+ }
+ if (HUGE + d > 0.0) { // raise inexact flag: this is ignored by Java
+ if (highBits < 0) {
+ highBits += (0x00100000) >> exp;
+ }
+ highBits &= (~i);
+ lowBits = 0;
+ }
+ }
+ /* exponent in range (51, inf) */
+ else if (exp > 51) {
+ /* inf or NaN */
+ if (exp == 0x400) {
+ return d + d;
+ }
+ return d; // d is integral
+ }
+ /* exponent in range [21,51] */
+ else {
+ int i = (0xffffffff) >>> (exp - 20); // careful, should be unsigned
+ /* d is integral */
+ if ((lowBits & i) == 0) {
+ return d;
+ }
+ /* raise inexact flag: this is ignored by java */
+ if (HUGE + d > 0.0) {
+ if (highBits < 0) {
+ if (exp == 20) {
+ highBits += 1;
+ } else {
+ // careful, j should be unsigned
+ int j = (int)(lowBits + (1 << (52 - exp)));
+ if ((lowBits < 0) && (j >= 0)) {
+ highBits += 1; // carry occurred
+ }
+ lowBits = j;
+ }
+ }
+ lowBits &= (~i);
+ }
+ }
+ /* combine highBits and unsigned lowBits for final result */
+ return Double.longBitsToDouble(((long)highBits << 32) + (lowBits & 0xFFFFFFFFL));
+ }
/**
* Returns {@code sqrt(}<i>{@code x}</i><sup>{@code 2}</sup>{@code +} <i>
@@ -1016,8 +1158,8 @@
int lx; // watch out, should be unsigned
long bits = Double.doubleToRawLongBits(x);
- hx = (int) (bits >>> 32); /* high word of x */
- lx = (int) bits; /* low word of x */
+ hx = highBits(bits); /* high word of x */
+ lx = lowBits(bits); /* low word of x */
if (hx < 0x00100000) { /* x < 2**-1022 */
if (((hx & 0x7fffffff) | lx) == 0) {
@@ -1031,7 +1173,7 @@
k -= 54;
x *= TWO54; /* subnormal number, scale up x */
bits = Double.doubleToRawLongBits(x);
- hx = (int) (bits >>> 32); /* high word of x */
+ hx = highBits(bits); /* high word of x */
}
if (hx >= 0x7ff00000) {
@@ -1119,8 +1261,8 @@
int i, k = 0, hx;
int lx; // careful: lx should be unsigned!
long bits = Double.doubleToRawLongBits(x);
- hx = (int) (bits >> 32); /* high word of x */
- lx = (int) bits; /* low word of x */
+ hx = highBits(bits); /* high word of x */
+ lx = lowBits(bits); /* low word of x */
if (hx < 0x00100000) { /* x < 2**-1022 */
if (((hx & 0x7fffffff) | lx) == 0) {
return -TWO54 / 0.0; /* ieee_log(+-0)=-inf */
@@ -1133,7 +1275,7 @@
k -= 54;
x *= TWO54; /* subnormal number, scale up x */
bits = Double.doubleToRawLongBits(x);
- hx = (int) (bits >> 32); /* high word of x */
+ hx = highBits(bits); /* high word of x */
}
if (hx >= 0x7ff00000) {
@@ -1186,7 +1328,7 @@
int k, hx, hu = 0, ax;
final long bits = Double.doubleToRawLongBits(x);
- hx = (int) (bits >>> 32); /* high word of x */
+ hx = highBits(bits); /* high word of x */
ax = hx & 0x7fffffff;
k = 1;
@@ -1221,13 +1363,13 @@
if (hx < 0x43400000) {
u = 1.0 + x;
uBits = Double.doubleToRawLongBits(u);
- hu = (int) (uBits >>> 32);
+ hu = highBits(uBits);
k = (hu >> 20) - 1023;
c = (k > 0) ? 1.0 - (u - x) : x - (u - 1.0);/* correction term */
c /= u;
} else {
uBits = Double.doubleToRawLongBits(x);
- hu = (int) (uBits >>> 32);
+ hu = highBits(uBits);
k = (hu >> 20) - 1023;
c = 0;
}
@@ -1603,7 +1745,7 @@
int ix, jx;
final long bits = Double.doubleToRawLongBits(x);
- jx = (int) (bits >>> 32);
+ jx = highBits(bits);
ix = jx & 0x7fffffff;
/* x is INF or NaN */
@@ -1720,7 +1862,7 @@
final long bits = Double.doubleToRawLongBits(x);
/* High word of |x|. */
- jx = (int) (bits >>> 32);
+ jx = highBits(bits);
ix = jx & 0x7fffffff;
/* x is INF or NaN */
@@ -2091,4 +2233,14 @@
}
return 0;
}
+
+ // Returns the high word of the argument as an int.
+ private static int highBits(long bits) {
+ return (int) (bits >>> 32);
+ }
+
+ // Returns the low word of the argument as an int.
+ private static int lowBits(long bits) {
+ return (int) bits;
+ }
}
diff --git a/luni/src/main/java/java/lang/System.java b/luni/src/main/java/java/lang/System.java
index c5d9a89..81da814 100644
--- a/luni/src/main/java/java/lang/System.java
+++ b/luni/src/main/java/java/lang/System.java
@@ -845,14 +845,22 @@
// On Android, each app gets its own temporary directory.
// (See android.app.ActivityThread.) This is just a fallback default,
// useful only on the host.
- p.put("java.io.tmpdir", "/tmp");
+ // We check first if the property has not been set already: note that it
+ // can only be set from the command line through the '-Djava.io.tmpdir=' option.
+ if (!unchangeableSystemProperties.containsKey("java.io.tmpdir")) {
+ p.put("java.io.tmpdir", "/tmp");
+ }
// Android has always had an empty "user.home" (see docs for getProperty).
// This is not useful for normal android apps which need to use android specific
// APIs such as {@code Context.getFilesDir} and {@code Context.getCacheDir} but
// we make it changeable for backward compatibility, so that they can change it
// to a writeable location if required.
- p.put("user.home", "");
+ // We check first if the property has not been set already: note that it
+ // can only be set from the command line through the '-Duser.home=' option.
+ if (!unchangeableSystemProperties.containsKey("user.home")) {
+ p.put("user.home", "");
+ }
}
private static Properties createSystemProperties() {
diff --git a/luni/src/main/java/java/lang/reflect/Array.java b/luni/src/main/java/java/lang/reflect/Array.java
index a7dacfe..72e6717 100644
--- a/luni/src/main/java/java/lang/reflect/Array.java
+++ b/luni/src/main/java/java/lang/reflect/Array.java
@@ -371,7 +371,7 @@
} else if (componentType == void.class) {
throw new IllegalArgumentException("Can't allocate an array of void");
}
- throw new AssertionError();
+ throw new AssertionError(componentType.toString());
}
/*
diff --git a/luni/src/main/java/java/math/BigDecimal.java b/luni/src/main/java/java/math/BigDecimal.java
index f735607..0e89762 100644
--- a/luni/src/main/java/java/math/BigDecimal.java
+++ b/luni/src/main/java/java/math/BigDecimal.java
@@ -2121,8 +2121,8 @@
if (x instanceof BigDecimal) {
BigDecimal x1 = (BigDecimal) x;
return x1.scale == scale
- && (bitLength < 64 ? (x1.smallValue == smallValue)
- : intVal.equals(x1.intVal));
+ && x1.bitLength == bitLength
+ && (bitLength < 64 ? (x1.smallValue == smallValue) : x1.intVal.equals(intVal));
}
return false;
}
diff --git a/luni/src/main/java/java/net/CookieManager.java b/luni/src/main/java/java/net/CookieManager.java
index b1bd832..1513a8d 100644
--- a/luni/src/main/java/java/net/CookieManager.java
+++ b/luni/src/main/java/java/net/CookieManager.java
@@ -166,6 +166,7 @@
// if the cookie doesn't have a domain, set one. The policy will do validation.
if (cookie.getDomain() == null) {
+ // RFC 2965 section 3.3.1
cookie.setDomain(uri.getHost());
}
diff --git a/luni/src/main/java/java/net/CookieStoreImpl.java b/luni/src/main/java/java/net/CookieStoreImpl.java
index 36f74a9..1f7d673 100644
--- a/luni/src/main/java/java/net/CookieStoreImpl.java
+++ b/luni/src/main/java/java/net/CookieStoreImpl.java
@@ -42,6 +42,8 @@
cookies = new ArrayList<HttpCookie>();
map.put(uri, cookies);
} else {
+ // This call to remove() relies on HttpCookie.equals() only checking the cookie identity
+ // attributes: name, path and domain (ignoring case).
cookies.remove(cookie);
}
cookies.add(cookie);
@@ -66,7 +68,8 @@
List<HttpCookie> result = new ArrayList<HttpCookie>();
// get cookies associated with given URI. If none, returns an empty list
- List<HttpCookie> cookiesForUri = map.get(uri);
+ URI uriKey = cookiesUri(uri);
+ List<HttpCookie> cookiesForUri = map.get(uriKey);
if (cookiesForUri != null) {
for (Iterator<HttpCookie> i = cookiesForUri.iterator(); i.hasNext(); ) {
HttpCookie cookie = i.next();
@@ -80,14 +83,14 @@
// get all cookies that domain matches the URI
for (Map.Entry<URI, List<HttpCookie>> entry : map.entrySet()) {
- if (uri.equals(entry.getKey())) {
+ if (uriKey.equals(entry.getKey())) {
continue; // skip the given URI; we've already handled it
}
List<HttpCookie> entryCookies = entry.getValue();
for (Iterator<HttpCookie> i = entryCookies.iterator(); i.hasNext(); ) {
HttpCookie cookie = i.next();
- if (!HttpCookie.domainMatches(cookie.getDomain(), uri.getHost())) {
+ if (!HttpCookie.domainMatches(cookie.getDomain(), uriKey.getHost())) {
continue;
}
if (cookie.hasExpired()) {
diff --git a/luni/src/main/java/java/net/HttpCookie.java b/luni/src/main/java/java/net/HttpCookie.java
index dd81fd6..5ee993c 100644
--- a/luni/src/main/java/java/net/HttpCookie.java
+++ b/luni/src/main/java/java/net/HttpCookie.java
@@ -67,17 +67,17 @@
private static final Set<String> RESERVED_NAMES = new HashSet<String>();
static {
- RESERVED_NAMES.add("comment"); // RFC 2109 RFC 2965 RFC 6265
- RESERVED_NAMES.add("commenturl"); // RFC 2965 RFC 6265
- RESERVED_NAMES.add("discard"); // RFC 2965 RFC 6265
+ RESERVED_NAMES.add("comment"); // RFC 2109 RFC 2965
+ RESERVED_NAMES.add("commenturl"); // RFC 2965
+ RESERVED_NAMES.add("discard"); // RFC 2965
RESERVED_NAMES.add("domain"); // Netscape RFC 2109 RFC 2965 RFC 6265
- RESERVED_NAMES.add("expires"); // Netscape
+ RESERVED_NAMES.add("expires"); // Netscape RFC 6265
RESERVED_NAMES.add("httponly"); // RFC 6265
RESERVED_NAMES.add("max-age"); // RFC 2109 RFC 2965 RFC 6265
RESERVED_NAMES.add("path"); // Netscape RFC 2109 RFC 2965 RFC 6265
- RESERVED_NAMES.add("port"); // RFC 2965 RFC 6265
+ RESERVED_NAMES.add("port"); // RFC 2965
RESERVED_NAMES.add("secure"); // Netscape RFC 2109 RFC 2965 RFC 6265
- RESERVED_NAMES.add("version"); // RFC 2109 RFC 2965 RFC 6265
+ RESERVED_NAMES.add("version"); // RFC 2109 RFC 2965
}
/**
diff --git a/luni/src/main/java/java/net/HttpURLConnection.java b/luni/src/main/java/java/net/HttpURLConnection.java
index 2a70729..17010dc 100644
--- a/luni/src/main/java/java/net/HttpURLConnection.java
+++ b/luni/src/main/java/java/net/HttpURLConnection.java
@@ -55,16 +55,16 @@
* <pre> {@code
* URL url = new URL("http://www.android.com/");
* HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
- * try {
+ * try {
* InputStream in = new BufferedInputStream(urlConnection.getInputStream());
* readStream(in);
- * } finally {
+ * } finally {
* urlConnection.disconnect();
- * }
+ * }
* }</pre>
*
* <h3>Secure Communication with HTTPS</h3>
- * Calling {@link URL#openConnection()} on a URL with the "https"
+ * <p>Calling {@link URL#openConnection()} on a URL with the "https"
* scheme will return an {@code HttpsURLConnection}, which allows for
* overriding the default {@link javax.net.ssl.HostnameVerifier
* HostnameVerifier} and {@link javax.net.ssl.SSLSocketFactory
@@ -77,17 +77,18 @@
* HttpsURLConnection} for more details.
*
* <h3>Response Handling</h3>
- * {@code HttpURLConnection} will follow up to five HTTP redirects. It will
- * follow redirects from one origin server to another. This implementation
+ * <p>{@code HttpURLConnection} will follow up to twenty HTTP redirects from
+ * KitKat onwards. Before KitKat it will only follow five. It will follow
+ * redirects from one origin server to another. This implementation
* doesn't follow redirects from HTTPS to HTTP or vice versa.
*
* <p>If the HTTP response indicates that an error occurred, {@link
* #getInputStream()} will throw an {@link IOException}. Use {@link
* #getErrorStream()} to read the error response. The headers can be read in
- * the normal way using {@link #getHeaderFields()},
+ * the normal way using {@link #getHeaderFields()}.
*
* <h3>Posting Content</h3>
- * To upload data to a web server, configure the connection for output using
+ * <p>To upload data to a web server, configure the connection for output using
* {@link #setDoOutput(boolean) setDoOutput(true)}.
*
* <p>For best performance, you should call either {@link
@@ -99,7 +100,7 @@
*
* <p>For example, to perform an upload: <pre> {@code
* HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
- * try {
+ * try {
* urlConnection.setDoOutput(true);
* urlConnection.setChunkedStreamingMode(0);
*
@@ -108,13 +109,13 @@
*
* InputStream in = new BufferedInputStream(urlConnection.getInputStream());
* readStream(in);
- * } finally {
+ * } finally {
* urlConnection.disconnect();
- * }
+ * }
* }</pre>
*
* <h3>Performance</h3>
- * The input and output streams returned by this class are <strong>not
+ * <p>The input and output streams returned by this class are <strong>not
* buffered</strong>. Most callers should wrap the returned streams with {@link
* java.io.BufferedInputStream BufferedInputStream} or {@link
* java.io.BufferedOutputStream BufferedOutputStream}. Callers that do only bulk
@@ -152,7 +153,7 @@
* until it is exhausted, i.e. when {@link InputStream#read} returns -1.
*
* <h3>Handling Network Sign-On</h3>
- * Some Wi-Fi networks block Internet access until the user clicks through a
+ * <p>Some Wi-Fi networks block Internet access until the user clicks through a
* sign-on page. Such sign-on pages are typically presented by using HTTP
* redirects. You can use {@link #getURL()} to test if your connection has been
* unexpectedly redirected. This check is not valid until <strong>after</strong>
@@ -161,41 +162,41 @@
* check that a response was not redirected to an unexpected host:
* <pre> {@code
* HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
- * try {
+ * try {
* InputStream in = new BufferedInputStream(urlConnection.getInputStream());
- * if (!url.getHost().equals(urlConnection.getURL().getHost())) {
+ * if (!url.getHost().equals(urlConnection.getURL().getHost())) {
* // we were redirected! Kick the user out to the browser to sign on?
- * }
+ * }
* ...
- * } finally {
+ * } finally {
* urlConnection.disconnect();
- * }
+ * }
* }</pre>
*
* <h3>HTTP Authentication</h3>
- * {@code HttpURLConnection} supports <a
+ * <p>{@code HttpURLConnection} supports <a
* href="http://www.ietf.org/rfc/rfc2617">HTTP basic authentication</a>. Use
* {@link Authenticator} to set the VM-wide authentication handler:
* <pre> {@code
- * Authenticator.setDefault(new Authenticator() {
- * protected PasswordAuthentication getPasswordAuthentication() {
+ * Authenticator.setDefault(new Authenticator() {
+ * protected PasswordAuthentication getPasswordAuthentication() {
* return new PasswordAuthentication(username, password.toCharArray());
- * }
- * });
+ * }
+ * });
* }</pre>
- * Unless paired with HTTPS, this is <strong>not</strong> a secure mechanism for
+ * <p>Unless paired with HTTPS, this is <strong>not</strong> a secure mechanism for
* user authentication. In particular, the username, password, request and
* response are all transmitted over the network without encryption.
*
* <h3>Sessions with Cookies</h3>
- * To establish and maintain a potentially long-lived session between client
+ * <p>To establish and maintain a potentially long-lived session between client
* and server, {@code HttpURLConnection} includes an extensible cookie manager.
* Enable VM-wide cookie management using {@link CookieHandler} and {@link
* CookieManager}: <pre> {@code
* CookieManager cookieManager = new CookieManager();
* CookieHandler.setDefault(cookieManager);
* }</pre>
- * By default, {@code CookieManager} accepts cookies from the <a
+ * <p>By default, {@code CookieManager} accepts cookies from the <a
* href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec1.html">origin
* server</a> only. Two other policies are included: {@link
* CookiePolicy#ACCEPT_ALL} and {@link CookiePolicy#ACCEPT_NONE}. Implement
@@ -230,7 +231,7 @@
* DELETE} and {@code TRACE}) can be used with {@link #setRequestMethod}.
*
* <h3>Proxies</h3>
- * By default, this class will connect directly to the <a
+ * <p>By default, this class will connect directly to the <a
* href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec1.html">origin
* server</a>. It can also connect via an {@link Proxy.Type#HTTP HTTP} or {@link
* Proxy.Type#SOCKS SOCKS} proxy. To use a proxy, use {@link
@@ -243,22 +244,22 @@
* until a connection is established.
*
* <h3>Response Caching</h3>
- * Android 4.0 (Ice Cream Sandwich, API level 15) includes a response cache. See
+ * <p>Android 4.0 (Ice Cream Sandwich, API level 15) includes a response cache. See
* {@code android.net.http.HttpResponseCache} for instructions on enabling HTTP
* caching in your application.
*
* <h3>Avoiding Bugs In Earlier Releases</h3>
- * Prior to Android 2.2 (Froyo), this class had some frustrating bugs. In
+ * <p>Prior to Android 2.2 (Froyo), this class had some frustrating bugs. In
* particular, calling {@code close()} on a readable {@code InputStream} could
* <a href="http://code.google.com/p/android/issues/detail?id=2939">poison the
* connection pool</a>. Work around this by disabling connection pooling:
* <pre> {@code
- * private void disableConnectionReuseIfNecessary() {
- * // Work around pre-Froyo bugs in HTTP connection reuse.
- * if (Integer.parseInt(Build.VERSION.SDK) < Build.VERSION_CODES.FROYO) {
- * System.setProperty("http.keepAlive", "false");
- * }
- * }}</pre>
+ * private void disableConnectionReuseIfNecessary() {
+ * // Work around pre-Froyo bugs in HTTP connection reuse.
+ * if (Integer.parseInt(Build.VERSION.SDK) < Build.VERSION_CODES.FROYO) {
+ * System.setProperty("http.keepAlive", "false");
+ * }
+ * }}</pre>
*
* <p>Each instance of {@code HttpURLConnection} may be used for one
* request/response pair. Instances of this class are not thread safe.
diff --git a/luni/src/main/java/java/net/IDN.java b/luni/src/main/java/java/net/IDN.java
index 4e60209..62a235e 100644
--- a/luni/src/main/java/java/net/IDN.java
+++ b/luni/src/main/java/java/net/IDN.java
@@ -16,7 +16,7 @@
package java.net;
-import libcore.icu.NativeIDN;
+import android.icu.text.IDNA;
/**
* Converts internationalized domain names between Unicode and the ASCII Compatible Encoding
@@ -61,7 +61,11 @@
* @throws IllegalArgumentException if {@code input} does not conform to <a href="http://www.ietf.org/rfc/rfc3490.txt">RFC 3490</a>
*/
public static String toASCII(String input, int flags) {
- return NativeIDN.toASCII(input, flags);
+ try {
+ return IDNA.convertIDNToASCII(input, flags).toString();
+ } catch (android.icu.text.StringPrepParseException e) {
+ throw new IllegalArgumentException("Invalid input to toASCII: " + input, e);
+ }
}
/**
@@ -91,7 +95,28 @@
* or {@code ALLOW_UNASSIGNED | USE_STD3_ASCII_RULES}
*/
public static String toUnicode(String input, int flags) {
- return NativeIDN.toUnicode(input, flags);
+ try {
+ // ICU only translates separators to ASCII for toASCII.
+ // Java expects the translation for toUnicode too.
+ return convertFullStop(IDNA.convertIDNToUnicode(input, flags)).toString();
+ } catch (android.icu.text.StringPrepParseException e) {
+ // The RI documentation explicitly states that if the conversion was unsuccessful
+ // the original string is returned.
+ return input;
+ }
+ }
+
+ private static boolean isLabelSeperator(char c) {
+ return (c == '\u3002' || c == '\uff0e' || c == '\uff61');
+ }
+
+ private static StringBuffer convertFullStop(StringBuffer input) {
+ for (int i = 0; i < input.length(); i++) {
+ if (isLabelSeperator(input.charAt(i))) {
+ input.setCharAt(i, '.');
+ }
+ }
+ return input;
}
/**
@@ -101,6 +126,6 @@
* @return the Unicode name
*/
public static String toUnicode(String input) {
- return NativeIDN.toUnicode(input, 0);
+ return toUnicode(input, 0);
}
}
diff --git a/luni/src/main/java/java/net/JarURLConnection.java b/luni/src/main/java/java/net/JarURLConnection.java
index e5c8fac..f37bb37 100644
--- a/luni/src/main/java/java/net/JarURLConnection.java
+++ b/luni/src/main/java/java/net/JarURLConnection.java
@@ -35,11 +35,24 @@
* of an archive is referred.
* <p>
* Examples:
+ * <ul>
* <li>Archive: {@code jar:http://www.example.com/applets/archive.jar!/}</li>
* <li>File Entry: {@code
* jar:http://www.example.com/applets/archive.jar!/test.class}</li>
* <li>Directory Entry: {@code
* jar:http://www.example.com/applets/archive.jar!/applets/}</li>
+ * </ul>
+ * <p>
+ * This class has different behavior depending on the {@link #getUseCaches()}
+ * setting. When caching is enabled the underlying {@code JarFile} returned from
+ * {@link #getJarFile()} is cached and shared between connections. It must not be
+ * closed by the caller. Disabling caching using {@link #setUseCaches(boolean)}
+ * will prevent sharing but in the absence of a
+ * {@code JarURLConnection.disconnect()} method the only way to close the
+ * underlying {@code JarFile} is to call {@code getJarFile().close()}
+ * or {@code getInputStream().close()}. For uncached connections, closing the
+ * {@code JarFile} can prevent various other {@link URLConnection} methods from
+ * working.
*/
public abstract class JarURLConnection extends URLConnection {
diff --git a/luni/src/main/java/java/net/MulticastSocket.java b/luni/src/main/java/java/net/MulticastSocket.java
index 24e66c5..2d8fdd6 100644
--- a/luni/src/main/java/java/net/MulticastSocket.java
+++ b/luni/src/main/java/java/net/MulticastSocket.java
@@ -41,7 +41,9 @@
* @throws IOException if an error occurs.
*/
public MulticastSocket() throws IOException {
+ super((SocketAddress) null);
setReuseAddress(true);
+ bind(null);
}
/**
@@ -51,8 +53,7 @@
* @throws IOException if an error occurs.
*/
public MulticastSocket(int port) throws IOException {
- super(port);
- setReuseAddress(true);
+ this(new InetSocketAddress(Inet6Address.ANY, port));
}
/**
@@ -64,8 +65,11 @@
* @throws IOException if an error occurs.
*/
public MulticastSocket(SocketAddress localAddress) throws IOException {
- super(localAddress);
+ super((SocketAddress) null);
setReuseAddress(true);
+ if (localAddress != null) {
+ bind(localAddress);
+ }
}
/**
diff --git a/luni/src/main/java/java/nio/ByteOrder.java b/luni/src/main/java/java/nio/ByteOrder.java
index 286c970..508c8ef 100644
--- a/luni/src/main/java/java/nio/ByteOrder.java
+++ b/luni/src/main/java/java/nio/ByteOrder.java
@@ -32,13 +32,10 @@
*/
public static final ByteOrder LITTLE_ENDIAN;
- private static native boolean isLittleEndian();
-
static {
- boolean isLittleEndian = isLittleEndian();
- BIG_ENDIAN = new ByteOrder("BIG_ENDIAN", isLittleEndian);
- LITTLE_ENDIAN = new ByteOrder("LITTLE_ENDIAN", !isLittleEndian);
- NATIVE_ORDER = isLittleEndian ? LITTLE_ENDIAN : BIG_ENDIAN;
+ BIG_ENDIAN = new ByteOrder("BIG_ENDIAN", true /* needs swap */);
+ LITTLE_ENDIAN = new ByteOrder("LITTLE_ENDIAN", false /* needs swap */);
+ NATIVE_ORDER = LITTLE_ENDIAN;
}
private final String name;
diff --git a/luni/src/main/java/java/nio/charset/ModifiedUtf8.java b/luni/src/main/java/java/nio/charset/ModifiedUtf8.java
index 019992d..51638ee 100644
--- a/luni/src/main/java/java/nio/charset/ModifiedUtf8.java
+++ b/luni/src/main/java/java/nio/charset/ModifiedUtf8.java
@@ -1,128 +1,178 @@
/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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
+ * Copyright (C) 2015 The Android Open Source Project
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * 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
*
- * 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.
+ * 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 java.nio.charset;
import java.io.UTFDataFormatException;
-import java.nio.ByteOrder;
-import libcore.io.Memory;
-import libcore.io.SizeOf;
/**
- * @hide internal use only
+ * Encoding and decoding methods for Modified UTF-8
+ *
+ * <p>Modified UTF-8 is a simple variation of UTF-8 in which {@code \u0000} is encoded as
+ * 0xc0 0x80 . This avoids the presence of bytes 0 in the output.
+ *
+ * @hide
*/
public class ModifiedUtf8 {
- /**
- * Decodes a byte array containing <i>modified UTF-8</i> bytes into a string.
- *
- * <p>Note that although this method decodes the (supposedly impossible) zero byte to U+0000,
- * that's what the RI does too.
- */
- public static String decode(byte[] in, char[] out, int offset, int utfSize) throws UTFDataFormatException {
- int count = 0, s = 0, a;
- while (count < utfSize) {
- if ((out[s] = (char) in[offset + count++]) < '\u0080') {
- s++;
- } else if (((a = out[s]) & 0xe0) == 0xc0) {
- if (count >= utfSize) {
- throw new UTFDataFormatException("bad second byte at " + count);
- }
- int b = in[offset + count++];
- if ((b & 0xC0) != 0x80) {
- throw new UTFDataFormatException("bad second byte at " + (count - 1));
- }
- out[s++] = (char) (((a & 0x1F) << 6) | (b & 0x3F));
- } else if ((a & 0xf0) == 0xe0) {
- if (count + 1 >= utfSize) {
- throw new UTFDataFormatException("bad third byte at " + (count + 1));
- }
- int b = in[offset + count++];
- int c = in[offset + count++];
- if (((b & 0xC0) != 0x80) || ((c & 0xC0) != 0x80)) {
- throw new UTFDataFormatException("bad second or third byte at " + (count - 2));
- }
- out[s++] = (char) (((a & 0x0F) << 12) | ((b & 0x3F) << 6) | (c & 0x3F));
- } else {
- throw new UTFDataFormatException("bad byte at " + (count - 1));
- }
- }
- return new String(out, 0, s);
- }
/**
- * Returns the number of bytes the modified UTF-8 representation of 's' would take. Note
- * that this is just the space for the bytes representing the characters, not the length
- * which precedes those bytes, because different callers represent the length differently,
- * as two, four, or even eight bytes. If {@code shortLength} is true, we'll throw an
- * exception if the string is too long for its length to be represented by a short.
+ * Count the number of bytes in the modified UTF-8 representation of {@code s}.
+ *
+ * <p>Additionally, if {@code shortLength} is true, throw a {@code UTFDataFormatException} if
+ * the size cannot be presented in an (unsigned) java short.
*/
public static long countBytes(String s, boolean shortLength) throws UTFDataFormatException {
- long result = 0;
- final int length = s.length();
- for (int i = 0; i < length; ++i) {
- char ch = s.charAt(i);
- if (ch != 0 && ch <= 127) { // U+0000 uses two bytes.
- ++result;
- } else if (ch <= 2047) {
- result += 2;
+ long counter = 0;
+ int strLen = s.length();
+ for (int i = 0; i < strLen; i++) {
+ char c = s.charAt(i);
+ if (c < '\u0080') {
+ counter++;
+ if (c == '\u0000') {
+ counter++;
+ }
+ } else if (c < '\u0800') {
+ counter += 2;
} else {
- result += 3;
- }
- if (shortLength && result > 65535) {
- throw new UTFDataFormatException("String more than 65535 UTF bytes long");
+ counter += 3;
}
}
- return result;
+ // Allow up to the maximum value of an unsigned short (as the value is known to be
+ // unsigned.
+ if (shortLength && counter > 0xffff) {
+ throw new UTFDataFormatException(
+ "Size of the encoded string doesn't fit in two bytes");
+ }
+ return counter;
}
/**
- * Encodes the <i>modified UTF-8</i> bytes corresponding to string {@code s} into the
- * byte array {@code dst}, starting at the given {@code offset}.
+ * Encode {@code s} into {@code dst} starting at offset {@code offset}.
+ *
+ * <p>The output buffer is guaranteed to have enough space.
*/
public static void encode(byte[] dst, int offset, String s) {
- final int length = s.length();
- for (int i = 0; i < length; i++) {
- char ch = s.charAt(i);
- if (ch != 0 && ch <= 127) { // U+0000 uses two bytes.
- dst[offset++] = (byte) ch;
- } else if (ch <= 2047) {
- dst[offset++] = (byte) (0xc0 | (0x1f & (ch >> 6)));
- dst[offset++] = (byte) (0x80 | (0x3f & ch));
+ int strLen = s.length();
+ for (int i = 0; i < strLen; i++) {
+ char c = s.charAt(i);
+ if (c < '\u0080') {
+ if (c == 0) {
+ dst[offset++] = (byte) 0xc0;
+ dst[offset++] = (byte) 0x80;
+ } else {
+ dst[offset++] = (byte) c;
+ }
+ } else if (c < '\u0800') {
+ dst[offset++] = (byte) ((c >>> 6) | 0xc0);
+ dst[offset++] = (byte) ((c & 0x3f) | 0x80);
} else {
- dst[offset++] = (byte) (0xe0 | (0x0f & (ch >> 12)));
- dst[offset++] = (byte) (0x80 | (0x3f & (ch >> 6)));
- dst[offset++] = (byte) (0x80 | (0x3f & ch));
+ dst[offset++] = (byte) ((c >>> 12) | 0xe0);
+ dst[offset++] = (byte) (((c >>> 6) & 0x3f) | 0x80);
+ dst[offset++] = (byte) ((c & 0x3f) | 0x80);
}
}
}
/**
- * Returns an array containing the <i>modified UTF-8</i> form of {@code s}, using a
- * big-endian 16-bit length. Throws UTFDataFormatException if {@code s} is too long
- * for a two-byte length.
+ * Encodes {@code s} into a buffer with the following format:
+ *
+ * <p>- the first two bytes of the buffer are the length of the modified-utf8 output
+ * (as a big endian short. A UTFDataFormatException is thrown if the encoded size cannot be
+ * represented as a short.
+ *
+ * <p>- the remainder of the buffer contains the modified-utf8 output (equivalent to
+ * {@code encode(buf, 2, s)}).
*/
public static byte[] encode(String s) throws UTFDataFormatException {
- int utfCount = (int) ModifiedUtf8.countBytes(s, true);
- byte[] result = new byte[SizeOf.SHORT + utfCount];
- Memory.pokeShort(result, 0, (short) utfCount, ByteOrder.BIG_ENDIAN);
- ModifiedUtf8.encode(result, SizeOf.SHORT, s);
- return result;
+ long size = countBytes(s, true);
+ byte[] output = new byte[(int) size + 2];
+ encode(output, 2, s);
+ output[0] = (byte) (size >>> 8);
+ output[1] = (byte) size;
+ return output;
}
- private ModifiedUtf8() {
+ /**
+ * Decodes {@code length} utf-8 bytes from {@code in} starting at offset {@code offset} to
+ * {@code out},
+ *
+ * <p>A maximum of {@code length} chars are written to the output starting at offset 0.
+ * {@code out} is assumed to have enough space for the output (a standard
+ * {@code ArrayIndexOutOfBoundsException} is thrown otherwise).
+ *
+ * <p>If a ‘0’ byte is encountered, it is converted to U+0000.
+ */
+ public static String decode(byte[] in, char[] out, int offset, int length)
+ throws UTFDataFormatException {
+ if (offset < 0 || length < 0) {
+ throw new IllegalArgumentException("Illegal arguments: offset " + offset
+ + ". Length: " + length);
+ }
+ int outputIndex = 0;
+ int limitIndex = offset + length;
+ while (offset < limitIndex) {
+ int i = in[offset] & 0xff;
+ offset++;
+ if (i < 0x80) {
+ out[outputIndex] = (char) i;
+ outputIndex++;
+ continue;
+ }
+ if (0xc0 <= i && i < 0xe0) {
+ // This branch covers the case 0 = 0xc080.
+
+ // The result is: 5 least-significant bits of i + 6 l-s bits of next input byte.
+ i = (i & 0x1f) << 6;
+ if(offset == limitIndex) {
+ throw new UTFDataFormatException("unexpected end of input");
+ }
+ // Include 6 least-significant bits of the input byte.
+ if ((in[offset] & 0xc0) != 0x80) {
+ throw new UTFDataFormatException("bad second byte at " + offset);
+ }
+ out[outputIndex] = (char) (i | (in[offset] & 0x3f));
+ offset++;
+ outputIndex++;
+ } else if(i < 0xf0) {
+ // The result is: 5 least-significant bits of i + 6 l-s bits of next input byte
+ // + 6 l-s of next to next input byte.
+ i = (i & 0x1f) << 12;
+ // Make sure there are are at least two bytes left.
+ if (offset + 1 >= limitIndex) {
+ throw new UTFDataFormatException("unexpected end of input");
+ }
+ // Include 6 least-significant bits of the input byte, with 6 bits of room
+ // for the next byte.
+ if ((in[offset] & 0xc0) != 0x80) {
+ throw new UTFDataFormatException("bad second byte at " + offset);
+ }
+ i = i | (in[offset] & 0x3f) << 6;
+ offset++;
+ // Include 6 least-significant bits of the input byte.
+ if ((in[offset] & 0xc0) != 0x80) {
+ throw new UTFDataFormatException("bad third byte at " + offset);
+ }
+ out[outputIndex] = (char) (i | (in[offset] & 0x3f));
+ offset++;
+ outputIndex++;
+ } else {
+ throw new UTFDataFormatException("Invalid UTF8 byte "
+ + (int) i + " at position " + (offset - 1));
+ }
+ }
+ return String.valueOf(out, 0, outputIndex);
}
}
diff --git a/luni/src/main/java/java/security/MessageDigest.java b/luni/src/main/java/java/security/MessageDigest.java
index 1d37a90..9870eb9 100644
--- a/luni/src/main/java/java/security/MessageDigest.java
+++ b/luni/src/main/java/java/security/MessageDigest.java
@@ -392,6 +392,12 @@
return spiImpl.engineDigest();
}
+ // engineDigest() implementation
+ @Override
+ protected int engineDigest(byte[] buf, int offset, int len) throws DigestException {
+ return spiImpl.engineDigest(buf, offset, len);
+ }
+
// engineGetDigestLength() implementation
@Override
protected int engineGetDigestLength() {
@@ -410,6 +416,12 @@
spiImpl.engineUpdate(arg0, arg1, arg2);
}
+ // engineUpdate() implementation
+ @Override
+ protected void engineUpdate(ByteBuffer input) {
+ spiImpl.engineUpdate(input);
+ }
+
// Returns a clone if the spiImpl is cloneable
@Override
public Object clone() throws CloneNotSupportedException {
diff --git a/luni/src/main/java/java/security/Signature.java b/luni/src/main/java/java/security/Signature.java
index b11abaa..7a21a46 100644
--- a/luni/src/main/java/java/security/Signature.java
+++ b/luni/src/main/java/java/security/Signature.java
@@ -687,16 +687,32 @@
}
@Override
+ protected int engineSign(byte[] outbuf, int offset, int len) throws SignatureException {
+ return getSpi().engineSign(outbuf, offset, len);
+ }
+
+ @Override
protected void engineUpdate(byte arg0) throws SignatureException {
getSpi().engineUpdate(arg0);
}
@Override
+ protected void engineUpdate(ByteBuffer input) {
+ getSpi().engineUpdate(input);
+ }
+
+ @Override
protected boolean engineVerify(byte[] arg0) throws SignatureException {
return getSpi().engineVerify(arg0);
}
@Override
+ protected boolean engineVerify(byte[] sigBytes, int offset, int length)
+ throws SignatureException {
+ return getSpi().engineVerify(sigBytes, offset, length);
+ }
+
+ @Override
protected void engineUpdate(byte[] arg0, int arg1, int arg2) throws SignatureException {
getSpi().engineUpdate(arg0, arg1, arg2);
}
@@ -707,6 +723,12 @@
}
@Override
+ protected void engineInitSign(PrivateKey arg0, SecureRandom arg1)
+ throws InvalidKeyException {
+ getSpi(arg0).engineInitSign(arg0, arg1);
+ }
+
+ @Override
protected void engineInitVerify(PublicKey arg0) throws InvalidKeyException {
getSpi(arg0).engineInitVerify(arg0);
}
@@ -717,6 +739,11 @@
}
@Override
+ protected AlgorithmParameters engineGetParameters() {
+ return getSpi().engineGetParameters();
+ }
+
+ @Override
protected void engineSetParameter(String arg0, Object arg1)
throws InvalidParameterException {
getSpi().engineSetParameter(arg0, arg1);
diff --git a/luni/src/main/java/java/text/Bidi.java b/luni/src/main/java/java/text/Bidi.java
index d73ea4a..64b1a96 100644
--- a/luni/src/main/java/java/text/Bidi.java
+++ b/luni/src/main/java/java/text/Bidi.java
@@ -17,11 +17,6 @@
package java.text;
-import java.awt.font.NumericShaper;
-import java.awt.font.TextAttribute;
-import java.util.ArrayList;
-import java.util.Arrays;
-
/**
* Implements the <a href="http://unicode.org/reports/tr9/">Unicode Bidirectional Algorithm</a>.
*
@@ -58,33 +53,28 @@
*/
public static final int DIRECTION_RIGHT_TO_LEFT = 1;
- /**
- * TODO: if we care about performance, we might just want to use an int[] instead of a Run[].
- */
- static class Run {
- private final int start;
- private final int limit;
- private final int level;
-
- public Run(int start, int limit, int level) {
- this.start = start;
- this.limit = limit;
- this.level = level;
- }
-
- public int getLevel() {
- return level;
- }
-
- public int getLimit() {
- return limit;
- }
-
- public int getStart() {
- return start;
+ private static int translateConstToIcu(int javaInt) {
+ switch (javaInt) {
+ case DIRECTION_DEFAULT_LEFT_TO_RIGHT:
+ return android.icu.text.Bidi.DIRECTION_DEFAULT_LEFT_TO_RIGHT;
+ case DIRECTION_DEFAULT_RIGHT_TO_LEFT:
+ return android.icu.text.Bidi.DIRECTION_DEFAULT_RIGHT_TO_LEFT;
+ case DIRECTION_LEFT_TO_RIGHT:
+ return android.icu.text.Bidi.DIRECTION_LEFT_TO_RIGHT;
+ case DIRECTION_RIGHT_TO_LEFT:
+ return android.icu.text.Bidi.DIRECTION_RIGHT_TO_LEFT;
+ // If the parameter was unrecognized use LEFT_TO_RIGHT.
+ default:
+ return android.icu.text.Bidi.DIRECTION_LEFT_TO_RIGHT;
}
}
+ private boolean isUnidirectional() {
+ return icuBidi.getRunCount() == 0;
+ }
+
+ private final android.icu.text.Bidi icuBidi;
+
/**
* Creates a {@code Bidi} object from the {@code
* AttributedCharacterIterator} of a paragraph text. The RUN_DIRECTION
@@ -114,65 +104,7 @@
throw new IllegalArgumentException("paragraph is null");
}
- int begin = paragraph.getBeginIndex();
- int end = paragraph.getEndIndex();
- int length = end - begin;
- char[] text = new char[length + 1]; // One more char for AttributedCharacterIterator.DONE
-
- if (length != 0) {
- text[0] = paragraph.first();
- } else {
- paragraph.first();
- }
-
- // First check the RUN_DIRECTION attribute.
- int flags = DIRECTION_DEFAULT_LEFT_TO_RIGHT;
- Object direction = paragraph.getAttribute(TextAttribute.RUN_DIRECTION);
- if (direction != null && direction instanceof Boolean) {
- if (direction.equals(TextAttribute.RUN_DIRECTION_LTR)) {
- flags = DIRECTION_LEFT_TO_RIGHT;
- } else {
- flags = DIRECTION_RIGHT_TO_LEFT;
- }
- }
-
- // Retrieve the text and gather BIDI_EMBEDDINGS
- byte[] embeddings = null;
- for (int textLimit = 1, i = 1; i < length; textLimit = paragraph
- .getRunLimit(TextAttribute.BIDI_EMBEDDING)
- - begin + 1) {
- Object embedding = paragraph.getAttribute(TextAttribute.BIDI_EMBEDDING);
- if (embedding != null && embedding instanceof Integer) {
- int embLevel = ((Integer) embedding).intValue();
-
- if (embeddings == null) {
- embeddings = new byte[length];
- }
-
- for (; i < textLimit; i++) {
- text[i] = paragraph.next();
- embeddings[i - 1] = (byte) embLevel;
- }
- } else {
- for (; i < textLimit; i++) {
- text[i] = paragraph.next();
- }
- }
- }
-
- // Apply NumericShaper to the text
- Object numericShaper = paragraph.getAttribute(TextAttribute.NUMERIC_SHAPING);
- if (numericShaper != null && numericShaper instanceof NumericShaper) {
- ((NumericShaper) numericShaper).shape(text, 0, length);
- }
-
- long bidi = 0;
- try {
- bidi = createUBiDi(text, 0, embeddings, 0, length, flags);
- readBidiInfo(bidi);
- } finally {
- ubidi_close(bidi);
- }
+ this.icuBidi = new android.icu.text.Bidi(paragraph);
}
/**
@@ -214,13 +146,11 @@
if (text == null || text.length - textStart < paragraphLength) {
throw new IllegalArgumentException();
}
-
if (embeddings != null) {
if (embeddings.length - embStart < paragraphLength) {
throw new IllegalArgumentException();
}
}
-
if (textStart < 0) {
throw new IllegalArgumentException("Negative textStart value " + textStart);
}
@@ -231,13 +161,9 @@
throw new IllegalArgumentException("Negative paragraph length " + paragraphLength);
}
- long bidi = 0;
- try {
- bidi = createUBiDi(text, textStart, embeddings, embStart, paragraphLength, flags);
- readBidiInfo(bidi);
- } finally {
- ubidi_close(bidi);
- }
+ this.icuBidi = new android.icu.text.Bidi(text, textStart, embeddings, embStart,
+ paragraphLength, translateConstToIcu(flags));
+
}
/**
@@ -261,109 +187,18 @@
(paragraph == null ? 0 : paragraph.length()), flags);
}
- // create the native UBiDi struct, need to be closed with ubidi_close().
- private static long createUBiDi(char[] text, int textStart,
- byte[] embeddings, int embStart, int paragraphLength, int flags) {
- char[] realText = null;
- byte[] realEmbeddings = null;
-
- if (text == null || text.length - textStart < paragraphLength) {
- throw new IllegalArgumentException();
- }
- realText = new char[paragraphLength];
- System.arraycopy(text, textStart, realText, 0, paragraphLength);
-
- if (embeddings != null) {
- if (embeddings.length - embStart < paragraphLength) {
- throw new IllegalArgumentException();
- }
- if (paragraphLength > 0) {
- Bidi temp = new Bidi(text, textStart, null, 0, paragraphLength, flags);
- realEmbeddings = new byte[paragraphLength];
- System.arraycopy(temp.offsetLevel, 0, realEmbeddings, 0, paragraphLength);
- for (int i = 0; i < paragraphLength; i++) {
- byte e = embeddings[i];
- if (e < 0) {
- realEmbeddings[i] = (byte) (UBIDI_LEVEL_OVERRIDE - e);
- } else if (e > 0) {
- realEmbeddings[i] = e;
- } else {
- realEmbeddings[i] |= (byte) UBIDI_LEVEL_OVERRIDE;
- }
- }
- }
- }
-
- if (flags > 1 || flags < -2) {
- flags = 0;
- }
-
- long bidi = 0;
- boolean needsDeletion = true;
- try {
- bidi = ubidi_open();
- ubidi_setPara(bidi, realText, paragraphLength, flags, realEmbeddings);
- needsDeletion = false;
- } finally {
- if (needsDeletion) {
- ubidi_close(bidi);
- }
- }
- return bidi;
+ private Bidi(android.icu.text.Bidi icuBidi) {
+ this.icuBidi = icuBidi;
}
- /* private constructor used by createLineBidi() */
- private Bidi(long pBidi) {
- readBidiInfo(pBidi);
- }
-
- // read info from the native UBiDi struct
- private void readBidiInfo(long pBidi) {
- length = ubidi_getLength(pBidi);
-
- offsetLevel = (length == 0) ? null : ubidi_getLevels(pBidi);
-
- baseLevel = ubidi_getParaLevel(pBidi);
-
- int runCount = ubidi_countRuns(pBidi);
- if (runCount == 0) {
- unidirectional = true;
- runs = null;
- } else if (runCount < 0) {
- runs = null;
- } else {
- runs = ubidi_getRuns(pBidi);
-
- // Simplified case for one run which has the base level
- if (runCount == 1 && runs[0].getLevel() == baseLevel) {
- unidirectional = true;
- runs = null;
- }
- }
-
- direction = ubidi_getDirection(pBidi);
- }
-
- private int baseLevel;
-
- private int length;
-
- private byte[] offsetLevel;
-
- private Run[] runs;
-
- private int direction;
-
- private boolean unidirectional;
-
/**
* Returns whether the base level is from left to right.
*
* @return true if the base level is from left to right.
*/
public boolean baseIsLeftToRight() {
- return baseLevel % 2 == 0 ? true : false;
+ return icuBidi.baseIsLeftToRight();
}
/**
@@ -382,55 +217,36 @@
* than the length of this object's paragraph text.
*/
public Bidi createLineBidi(int lineStart, int lineLimit) {
- if (lineStart < 0 || lineLimit < 0 || lineLimit > length || lineStart > lineLimit) {
+ if (lineStart < 0 || lineLimit < 0 || lineLimit > getLength() || lineStart > lineLimit) {
throw new IllegalArgumentException("Invalid ranges (start=" + lineStart + ", " +
- "limit=" + lineLimit + ", length=" + length + ")");
+ "limit=" + lineLimit + ", length=" + getLength() + ")");
}
- char[] text = new char[this.length];
- Arrays.fill(text, 'a');
- byte[] embeddings = new byte[this.length];
- for (int i = 0; i < embeddings.length; i++) {
- embeddings[i] = (byte) -this.offsetLevel[i];
+ // In the special case where the start and end positions are the same, we return a new bidi
+ // instance which is empty. Note that the default constructor for an empty ICU4J bidi
+ // instance is not the same as passing in empty values. This way allows one to call
+ // .getLength() for example and return a correct value instead of an IllegalStateException
+ // being thrown, which happens in the case of using the empty constructor.
+ if (lineStart == lineLimit) {
+ return new Bidi(new android.icu.text.Bidi(new char[] {}, 0, new byte[] {}, 0, 0,
+ translateConstToIcu(DIRECTION_LEFT_TO_RIGHT)));
}
- int dir = this.baseIsLeftToRight()
- ? Bidi.DIRECTION_LEFT_TO_RIGHT
- : Bidi.DIRECTION_RIGHT_TO_LEFT;
- long parent = 0;
- try {
- parent = createUBiDi(text, 0, embeddings, 0, this.length, dir);
- if (lineStart == lineLimit) {
- return createEmptyLineBidi(parent);
- }
- return new Bidi(ubidi_setLine(parent, lineStart, lineLimit));
- } finally {
- ubidi_close(parent);
- }
- }
-
- private Bidi createEmptyLineBidi(long parent) {
- // ICU4C doesn't allow this case, but the RI does.
- Bidi result = new Bidi(parent);
- result.length = 0;
- result.offsetLevel = null;
- result.runs = null;
- result.unidirectional = true;
- return result;
+ return new Bidi(icuBidi.createLineBidi(lineStart, lineLimit));
}
/**
* Returns the base level.
*/
public int getBaseLevel() {
- return baseLevel;
+ return icuBidi.getBaseLevel();
}
/**
* Returns the length of the text.
*/
public int getLength() {
- return length;
+ return icuBidi.getLength();
}
/**
@@ -438,9 +254,9 @@
*/
public int getLevelAt(int offset) {
try {
- return offsetLevel[offset] & ~UBIDI_LEVEL_OVERRIDE;
- } catch (RuntimeException e) {
- return baseLevel;
+ return icuBidi.getLevelAt(offset);
+ } catch (IllegalArgumentException e) {
+ return getBaseLevel();
}
}
@@ -448,28 +264,43 @@
* Returns the number of runs in the text, at least 1.
*/
public int getRunCount() {
- return unidirectional ? 1 : runs.length;
+ return isUnidirectional() ? 1 : icuBidi.getRunCount();
}
/**
* Returns the level of the given run.
*/
public int getRunLevel(int run) {
- return unidirectional ? baseLevel : runs[run].getLevel();
+ // Paper over a the ICU4J behaviour of strictly enforcing run must be strictly less than
+ // the number of runs. Done to maintain compatibility with previous C implementation.
+ if (run == getRunCount()) {
+ return getBaseLevel();
+ }
+ return isUnidirectional() ? icuBidi.getBaseLevel() : icuBidi.getRunLevel(run);
}
/**
* Returns the limit offset of the given run.
*/
public int getRunLimit(int run) {
- return unidirectional ? length : runs[run].getLimit();
+ // Paper over a the ICU4J behaviour of strictly enforcing run must be strictly less than
+ // the number of runs. Done to maintain compatibility with previous C implementation.
+ if (run == getRunCount()) {
+ return getBaseLevel();
+ }
+ return isUnidirectional() ? icuBidi.getLength() : icuBidi.getRunLimit(run);
}
/**
* Returns the start offset of the given run.
*/
public int getRunStart(int run) {
- return unidirectional ? 0 : runs[run].getStart();
+ // Paper over a the ICU4J behaviour of strictly enforcing run must be strictly less than
+ // the number of runs. Done to maintain compatibility with previous C implementation.
+ if (run == getRunCount()) {
+ return getBaseLevel();
+ }
+ return isUnidirectional() ? 0 : icuBidi.getRunStart(run);
}
/**
@@ -477,14 +308,14 @@
* direction and the text direction is from left to right.
*/
public boolean isLeftToRight() {
- return direction == UBiDiDirection_UBIDI_LTR;
+ return icuBidi.isLeftToRight();
}
/**
* Returns true if the text direction is mixed.
*/
public boolean isMixed() {
- return direction == UBiDiDirection_UBIDI_MIXED;
+ return icuBidi.isMixed();
}
/**
@@ -492,7 +323,7 @@
* direction and the text direction is from right to left.
*/
public boolean isRightToLeft() {
- return direction == UBiDiDirection_UBIDI_RTL;
+ return icuBidi.isRightToLeft();
}
/**
@@ -519,6 +350,7 @@
*/
public static void reorderVisually(byte[] levels, int levelStart,
Object[] objects, int objectStart, int count) {
+
if (count < 0 || levelStart < 0 || objectStart < 0
|| count > levels.length - levelStart
|| count > objects.length - objectStart) {
@@ -527,17 +359,7 @@
", objectStart=" + objectStart + ", count=" + count + ")");
}
- byte[] realLevels = new byte[count];
- System.arraycopy(levels, levelStart, realLevels, 0, count);
-
- int[] indices = ubidi_reorderVisual(realLevels, count);
-
- ArrayList<Object> result = new ArrayList<Object>(count);
- for (int i = 0; i < count; i++) {
- result.add(objects[objectStart + indices[i]]);
- }
-
- System.arraycopy(result.toArray(), 0, objects, objectStart, count);
+ android.icu.text.Bidi.reorderVisually(levels, levelStart, objects, objectStart, count);
}
/**
@@ -562,33 +384,13 @@
throw new IllegalArgumentException();
}
- Bidi bidi = new Bidi(text, start, null, 0, limit - start, 0);
- return !bidi.isLeftToRight();
+ return android.icu.text.Bidi.requiresBidi(text, start, limit);
}
@Override
public String toString() {
return getClass().getName()
- + "[direction: " + direction + " baseLevel: " + baseLevel
- + " length: " + length + " runs: " + Arrays.toString(runs) + "]";
+ + "[direction: " + icuBidi.getDirection() + " baseLevel: " + icuBidi.getBaseLevel()
+ + " length: " + icuBidi.getLength() + " runs: " + icuBidi.getRunCount() + "]";
}
-
- // ICU4C constants.
- private static final int UBIDI_LEVEL_OVERRIDE = 0x80;
- private static final int UBiDiDirection_UBIDI_LTR = 0;
- private static final int UBiDiDirection_UBIDI_RTL = 1;
- private static final int UBiDiDirection_UBIDI_MIXED = 2;
-
- // ICU4C functions.
- private static native long ubidi_open();
- private static native void ubidi_close(long pBiDi);
- private static native void ubidi_setPara(long pBiDi, char[] text, int length, int paraLevel, byte[] embeddingLevels);
- private static native long ubidi_setLine(final long pParaBiDi, int start, int limit);
- private static native int ubidi_getDirection(final long pBiDi);
- private static native int ubidi_getLength(final long pBiDi);
- private static native byte ubidi_getParaLevel(final long pBiDi);
- private static native byte[] ubidi_getLevels(long pBiDi);
- private static native int ubidi_countRuns(long pBiDi);
- private static native Bidi.Run[] ubidi_getRuns(long pBidi);
- private static native int[] ubidi_reorderVisual(byte[] levels, int length);
}
diff --git a/luni/src/main/java/java/text/BreakIterator.java b/luni/src/main/java/java/text/BreakIterator.java
index 051ea15..77cc037 100644
--- a/luni/src/main/java/java/text/BreakIterator.java
+++ b/luni/src/main/java/java/text/BreakIterator.java
@@ -240,7 +240,7 @@
* <p>Note that Android does not support user-supplied locale service providers.
*/
public static Locale[] getAvailableLocales() {
- return com.ibm.icu.text.BreakIterator.getAvailableLocales();
+ return android.icu.text.BreakIterator.getAvailableLocales();
}
/**
@@ -259,7 +259,7 @@
*/
public static BreakIterator getCharacterInstance(Locale locale) {
return new IcuIteratorWrapper(
- com.ibm.icu.text.BreakIterator.getCharacterInstance(locale));
+ android.icu.text.BreakIterator.getCharacterInstance(locale));
}
/**
@@ -278,7 +278,7 @@
*/
public static BreakIterator getLineInstance(Locale locale) {
return new IcuIteratorWrapper(
- com.ibm.icu.text.BreakIterator.getLineInstance(locale));
+ android.icu.text.BreakIterator.getLineInstance(locale));
}
/**
@@ -297,7 +297,7 @@
*/
public static BreakIterator getSentenceInstance(Locale locale) {
return new IcuIteratorWrapper(
- com.ibm.icu.text.BreakIterator.getSentenceInstance(locale));
+ android.icu.text.BreakIterator.getSentenceInstance(locale));
}
/**
@@ -316,7 +316,7 @@
*/
public static BreakIterator getWordInstance(Locale locale) {
return new IcuIteratorWrapper(
- com.ibm.icu.text.BreakIterator.getWordInstance(locale));
+ android.icu.text.BreakIterator.getWordInstance(locale));
}
/**
diff --git a/luni/src/main/java/java/text/CollationElementIterator.java b/luni/src/main/java/java/text/CollationElementIterator.java
index 4f75a9a..41d078d 100644
--- a/luni/src/main/java/java/text/CollationElementIterator.java
+++ b/luni/src/main/java/java/text/CollationElementIterator.java
@@ -17,8 +17,6 @@
package java.text;
-import libcore.icu.CollationElementIteratorICU;
-
/**
* Created by a {@code RuleBasedCollator} to iterate through a string. The
* result of each iteration is a 32-bit collation element that defines the
@@ -57,11 +55,19 @@
* beginning of the source string has been reached, and there are no more
* valid collation elements to return.
*/
- public static final int NULLORDER = -1;
+ public static final int NULLORDER = android.icu.text.CollationElementIterator.NULLORDER;
- private CollationElementIteratorICU icuIterator;
+ /**
+ * This constant is returned by the iterator in the methods {@code next()}
+ * and {@code previous()} when a collation element result is to be ignored.
+ * @hide
+ */
+ public static final int IGNORABLE = 0;
- CollationElementIterator(CollationElementIteratorICU iterator) {
+ // The ICU version of this class that we proxy to.
+ private final android.icu.text.CollationElementIterator icuIterator;
+
+ CollationElementIterator(android.icu.text.CollationElementIterator iterator) {
this.icuIterator = iterator;
}
@@ -126,7 +132,7 @@
* the element of the collation.
*/
public static final int primaryOrder(int order) {
- return CollationElementIteratorICU.primaryOrder(order);
+ return android.icu.text.CollationElementIterator.primaryOrder(order);
}
/**
@@ -150,7 +156,7 @@
* the element of the collator.
*/
public static final short secondaryOrder(int order) {
- return (short) CollationElementIteratorICU.secondaryOrder(order);
+ return (short) android.icu.text.CollationElementIterator.secondaryOrder(order);
}
/**
@@ -209,6 +215,6 @@
* the element of the collation.
*/
public static final short tertiaryOrder(int order) {
- return (short) CollationElementIteratorICU.tertiaryOrder(order);
+ return (short) android.icu.text.CollationElementIterator.tertiaryOrder(order);
}
}
diff --git a/luni/src/main/java/java/text/Collator.java b/luni/src/main/java/java/text/Collator.java
index 58d7047..e2d0e67 100644
--- a/luni/src/main/java/java/text/Collator.java
+++ b/luni/src/main/java/java/text/Collator.java
@@ -20,7 +20,6 @@
import java.util.Comparator;
import java.util.Locale;
import libcore.icu.ICU;
-import libcore.icu.RuleBasedCollatorICU;
/**
* Performs locale-sensitive string comparison. A concrete subclass,
@@ -143,11 +142,12 @@
/**
* Constant used to specify the collation strength.
*/
+ // Note that this differs from the ICU equivalent and must be mapped.
public static final int IDENTICAL = 3;
- RuleBasedCollatorICU icuColl;
+ android.icu.text.Collator icuColl;
- Collator(RuleBasedCollatorICU icuColl) {
+ Collator(android.icu.text.Collator icuColl) {
this.icuColl = icuColl;
}
@@ -155,7 +155,8 @@
* Constructs a new {@code Collator} instance.
*/
protected Collator() {
- icuColl = new RuleBasedCollatorICU(Locale.getDefault());
+ icuColl = (android.icu.text.RuleBasedCollator)
+ android.icu.text.RuleBasedCollator.getInstance(Locale.getDefault());
}
/**
@@ -169,7 +170,7 @@
public Object clone() {
try {
Collator clone = (Collator) super.clone();
- clone.icuColl = (RuleBasedCollatorICU) icuColl.clone();
+ clone.icuColl = (android.icu.text.Collator) icuColl.clone();
return clone;
} catch (CloneNotSupportedException e) {
throw new AssertionError(e);
@@ -288,7 +289,8 @@
if (locale == null) {
throw new NullPointerException("locale == null");
}
- return new RuleBasedCollator(new RuleBasedCollatorICU(locale));
+ return new RuleBasedCollator((android.icu.text.RuleBasedCollator)
+ android.icu.text.Collator.getInstance(locale));
}
/**
@@ -298,7 +300,9 @@
* IDENTICAL.
*/
public int getStrength() {
- return strength_ICU_Java(icuColl.getStrength());
+ // The value for IDENTICAL in ICU differs from that used in this class.
+ int value = icuColl.getStrength();
+ return (value == android.icu.text.Collator.IDENTICAL) ? IDENTICAL : value;
}
@Override
@@ -329,15 +333,19 @@
* if the provided strength value is not valid.
*/
public void setStrength(int value) {
- icuColl.setStrength(strength_Java_ICU(value));
+ // The ICU value for IDENTICAL differs from that defined in this class.
+ if (value == IDENTICAL) {
+ value = android.icu.text.Collator.IDENTICAL;
+ }
+ icuColl.setStrength(value);
}
private int decompositionMode_Java_ICU(int mode) {
switch (mode) {
case Collator.CANONICAL_DECOMPOSITION:
- return RuleBasedCollatorICU.VALUE_ON;
+ return android.icu.text.Collator.CANONICAL_DECOMPOSITION;
case Collator.NO_DECOMPOSITION:
- return RuleBasedCollatorICU.VALUE_OFF;
+ return android.icu.text.Collator.NO_DECOMPOSITION;
}
throw new IllegalArgumentException("Bad mode: " + mode);
}
@@ -345,46 +353,13 @@
private int decompositionMode_ICU_Java(int mode) {
int javaMode = mode;
switch (mode) {
- case RuleBasedCollatorICU.VALUE_OFF:
+ case android.icu.text.Collator.NO_DECOMPOSITION:
javaMode = Collator.NO_DECOMPOSITION;
break;
- case RuleBasedCollatorICU.VALUE_ON:
+ case android.icu.text.Collator.CANONICAL_DECOMPOSITION:
javaMode = Collator.CANONICAL_DECOMPOSITION;
break;
}
return javaMode;
}
-
- private int strength_Java_ICU(int value) {
- switch (value) {
- case Collator.PRIMARY:
- return RuleBasedCollatorICU.VALUE_PRIMARY;
- case Collator.SECONDARY:
- return RuleBasedCollatorICU.VALUE_SECONDARY;
- case Collator.TERTIARY:
- return RuleBasedCollatorICU.VALUE_TERTIARY;
- case Collator.IDENTICAL:
- return RuleBasedCollatorICU.VALUE_IDENTICAL;
- }
- throw new IllegalArgumentException("Bad strength: " + value);
- }
-
- private int strength_ICU_Java(int value) {
- int javaValue = value;
- switch (value) {
- case RuleBasedCollatorICU.VALUE_PRIMARY:
- javaValue = Collator.PRIMARY;
- break;
- case RuleBasedCollatorICU.VALUE_SECONDARY:
- javaValue = Collator.SECONDARY;
- break;
- case RuleBasedCollatorICU.VALUE_TERTIARY:
- javaValue = Collator.TERTIARY;
- break;
- case RuleBasedCollatorICU.VALUE_IDENTICAL:
- javaValue = Collator.IDENTICAL;
- break;
- }
- return javaValue;
- }
}
diff --git a/luni/src/main/java/java/text/DecimalFormat.java b/luni/src/main/java/java/text/DecimalFormat.java
index 554fd74..bb7ce37 100644
--- a/luni/src/main/java/java/text/DecimalFormat.java
+++ b/luni/src/main/java/java/text/DecimalFormat.java
@@ -26,8 +26,9 @@
import java.math.RoundingMode;
import java.util.Currency;
import java.util.Locale;
+
+import android.icu.math.MathContext;
import libcore.icu.LocaleData;
-import libcore.icu.NativeDecimalFormat;
/**
* A concrete subclass of {@link NumberFormat} that formats decimal numbers. It
@@ -507,10 +508,10 @@
private transient DecimalFormatSymbols symbols;
- private transient NativeDecimalFormat ndf;
-
private transient RoundingMode roundingMode = RoundingMode.HALF_EVEN;
+ private transient android.icu.text.DecimalFormat icuDecimalFormat;
+
/**
* Constructs a new {@code DecimalFormat} for formatting and parsing numbers
* for the user's default locale.
@@ -519,7 +520,7 @@
public DecimalFormat() {
Locale locale = Locale.getDefault();
this.symbols = new DecimalFormatSymbols(locale);
- initNative(LocaleData.get(locale).numberPattern);
+ initIcu(LocaleData.get(locale).numberPattern);
}
/**
@@ -548,25 +549,36 @@
*/
public DecimalFormat(String pattern, DecimalFormatSymbols value) {
this.symbols = (DecimalFormatSymbols) value.clone();
- initNative(pattern);
+ initIcu(pattern);
}
// Used by NumberFormat.getInstance because cloning DecimalFormatSymbols is slow.
DecimalFormat(String pattern, Locale locale) {
this.symbols = new DecimalFormatSymbols(locale);
- initNative(pattern);
+ initIcu(pattern);
}
- private void initNative(String pattern) {
- try {
- this.ndf = new NativeDecimalFormat(pattern, symbols);
- } catch (IllegalArgumentException ex) {
- throw new IllegalArgumentException(pattern);
- }
- super.setMaximumFractionDigits(ndf.getMaximumFractionDigits());
- super.setMaximumIntegerDigits(ndf.getMaximumIntegerDigits());
- super.setMinimumFractionDigits(ndf.getMinimumFractionDigits());
- super.setMinimumIntegerDigits(ndf.getMinimumIntegerDigits());
+ // Path for instances created with a locale and no pattern. This ensures that in locales with
+ // specific number formatting needs such as the case with ar_AE which has a minus sign of more
+ // than one char, we get the correct pattern which contains the left to right symbol and the
+ // minus sign.
+ DecimalFormat(android.icu.text.DecimalFormat icuDF) {
+ this.icuDecimalFormat = icuDF;
+
+ this.symbols = DecimalFormatSymbols.fromIcuInstance(icuDF.getDecimalFormatSymbols());
+ super.setMaximumFractionDigits(icuDecimalFormat.getMaximumFractionDigits());
+ super.setMaximumIntegerDigits(icuDecimalFormat.getMaximumIntegerDigits());
+ super.setMinimumFractionDigits(icuDecimalFormat.getMinimumFractionDigits());
+ super.setMinimumIntegerDigits(icuDecimalFormat.getMinimumIntegerDigits());
+ }
+
+ private void initIcu(String pattern) {
+ this.icuDecimalFormat = new android.icu.text.DecimalFormat(
+ pattern, symbols.getIcuDecimalFormatSymbols());
+ super.setMaximumFractionDigits(icuDecimalFormat.getMaximumFractionDigits());
+ super.setMaximumIntegerDigits(icuDecimalFormat.getMaximumIntegerDigits());
+ super.setMinimumFractionDigits(icuDecimalFormat.getMinimumFractionDigits());
+ super.setMinimumIntegerDigits(icuDecimalFormat.getMinimumIntegerDigits());
}
/**
@@ -579,8 +591,8 @@
* if the pattern cannot be parsed.
*/
public void applyLocalizedPattern(String pattern) {
- ndf.applyLocalizedPattern(pattern);
- updateFieldsFromNative();
+ icuDecimalFormat.applyLocalizedPattern(pattern);
+ updateFieldsFromIcu();
}
/**
@@ -593,18 +605,18 @@
* if the pattern cannot be parsed.
*/
public void applyPattern(String pattern) {
- // The underlying ICU4C accepts a super-set of the pattern spec documented by the Android
+ // The underlying ICU4J accepts a super-set of the pattern spec documented by the Android
// APIs. For example, rounding increments (pattern characters '1'-'9'). They will work but
// see class doc for issues with serialization/deserialization they may cause.
- ndf.applyPattern(pattern);
- updateFieldsFromNative();
+ icuDecimalFormat.applyPattern(pattern);
+ updateFieldsFromIcu();
}
- private void updateFieldsFromNative() {
- maximumIntegerDigits = ndf.getMaximumIntegerDigits();
- minimumIntegerDigits = ndf.getMinimumIntegerDigits();
- maximumFractionDigits = ndf.getMaximumFractionDigits();
- minimumFractionDigits = ndf.getMinimumFractionDigits();
+ private void updateFieldsFromIcu() {
+ maximumIntegerDigits = icuDecimalFormat.getMaximumIntegerDigits();
+ minimumIntegerDigits = icuDecimalFormat.getMinimumIntegerDigits();
+ maximumFractionDigits = icuDecimalFormat.getMaximumFractionDigits();
+ minimumFractionDigits = icuDecimalFormat.getMinimumFractionDigits();
}
/**
@@ -614,7 +626,7 @@
@Override
public Object clone() {
DecimalFormat clone = (DecimalFormat) super.clone();
- clone.ndf = (NativeDecimalFormat) ndf.clone();
+ clone.icuDecimalFormat = (android.icu.text.DecimalFormat) icuDecimalFormat.clone();
clone.symbols = (DecimalFormatSymbols) symbols.clone();
return clone;
}
@@ -639,8 +651,26 @@
return false;
}
DecimalFormat other = (DecimalFormat) object;
- return (this.ndf == null ? other.ndf == null : this.ndf.equals(other.ndf)) &&
- getDecimalFormatSymbols().equals(other.getDecimalFormatSymbols());
+
+ if (this.icuDecimalFormat == null) {
+ return other.icuDecimalFormat == null;
+ }
+
+ // The following is sufficient as ICU checks the sub-patterns which get data from the
+ // parsed pattern, as well as the internal symbols set on the DecimalFormat object.
+ // ICU does not, however check the rounding increment in its .equals(). Thus we check that
+ // after ICU's equals has returned true.
+ return this.icuDecimalFormat.equals(other.icuDecimalFormat)
+ && compareIcuRoundingIncrement(other.icuDecimalFormat);
+ }
+
+ private boolean compareIcuRoundingIncrement(android.icu.text.DecimalFormat other) {
+ BigDecimal increment = this.icuDecimalFormat.getRoundingIncrement();
+ if (increment != null) {
+ return (other.getRoundingIncrement() != null)
+ && increment.equals(other.getRoundingIncrement());
+ }
+ return other.getRoundingIncrement() == null;
}
/**
@@ -662,7 +692,36 @@
if (object == null) {
throw new NullPointerException("object == null");
}
- return ndf.formatToCharacterIterator(object);
+ // Note: formatToCharacterIterator cannot be used directly because it returns attributes
+ // in terms of its own class: icu.text.NumberFormat instead of java.text.NumberFormat.
+ // http://bugs.icu-project.org/trac/ticket/11931 Proposes to use the NumberFormat constants.
+
+ AttributedCharacterIterator original = icuDecimalFormat.formatToCharacterIterator(object);
+
+ // Extract the text out of the ICU iterator.
+ StringBuilder textBuilder = new StringBuilder(
+ original.getEndIndex() - original.getBeginIndex());
+
+ for (int i = original.getBeginIndex(); i < original.getEndIndex(); i++) {
+ textBuilder.append(original.current());
+ original.next();
+ }
+
+ AttributedString result = new AttributedString(textBuilder.toString());
+
+ for (int i = original.getBeginIndex(); i < original.getEndIndex(); i++) {
+ original.setIndex(i);
+
+ for (AttributedCharacterIterator.Attribute attribute
+ : original.getAttributes().keySet()) {
+ int start = original.getRunStart();
+ int end = original.getRunLimit();
+ Field javaAttr = toJavaFieldAttribute(attribute);
+ result.addAttribute(javaAttr, javaAttr, start, end);
+ }
+ }
+
+ return result.getIterator();
}
private void checkBufferAndFieldPosition(StringBuffer buffer, FieldPosition position) {
@@ -676,35 +735,131 @@
@Override
public StringBuffer format(double value, StringBuffer buffer, FieldPosition position) {
+ FieldPosition icuFieldPosition = getIcuFieldPosition(position);
checkBufferAndFieldPosition(buffer, position);
- buffer.append(ndf.formatDouble(value, position));
+ icuDecimalFormat.format(value, buffer, icuFieldPosition);
+ position.setBeginIndex(icuFieldPosition.getBeginIndex());
+ position.setEndIndex(icuFieldPosition.getEndIndex());
return buffer;
}
@Override
public StringBuffer format(long value, StringBuffer buffer, FieldPosition position) {
+ FieldPosition icuFieldPosition = getIcuFieldPosition(position);
checkBufferAndFieldPosition(buffer, position);
- buffer.append(ndf.formatLong(value, position));
+ icuDecimalFormat.format(value, buffer, icuFieldPosition);
+ position.setBeginIndex(icuFieldPosition.getBeginIndex());
+ position.setEndIndex(icuFieldPosition.getEndIndex());
return buffer;
}
@Override
public final StringBuffer format(Object number, StringBuffer buffer, FieldPosition position) {
checkBufferAndFieldPosition(buffer, position);
+ FieldPosition icuFieldPosition = getIcuFieldPosition(position);
if (number instanceof BigInteger) {
BigInteger bigInteger = (BigInteger) number;
- char[] chars = (bigInteger.bitLength() < 64)
- ? ndf.formatLong(bigInteger.longValue(), position)
- : ndf.formatBigInteger(bigInteger, position);
- buffer.append(chars);
- return buffer;
+ icuDecimalFormat.format(
+ (bigInteger.bitLength() < 64) ? bigInteger.longValue() : bigInteger,
+ buffer, icuFieldPosition);
+ position.setBeginIndex(icuFieldPosition.getBeginIndex());
+ position.setEndIndex(icuFieldPosition.getEndIndex());
+ return buffer;
} else if (number instanceof BigDecimal) {
- buffer.append(ndf.formatBigDecimal((BigDecimal) number, position));
+ icuDecimalFormat.format((BigDecimal) number, buffer, icuFieldPosition);
+ position.setBeginIndex(icuFieldPosition.getBeginIndex());
+ position.setEndIndex(icuFieldPosition.getEndIndex());
return buffer;
}
return super.format(number, buffer, position);
}
+
+ /**
+ * Converts between field positions used by Java/ICU.
+ * @param fp The java.text.NumberFormat.Field field position
+ * @return The android.icu.text.NumberFormat.Field field position
+ */
+ private static FieldPosition getIcuFieldPosition(FieldPosition fp) {
+ if (fp.getFieldAttribute() == null) return fp;
+
+ android.icu.text.NumberFormat.Field attribute;
+ if (fp.getFieldAttribute() == Field.INTEGER) {
+ attribute = android.icu.text.NumberFormat.Field.INTEGER;
+ } else if (fp.getFieldAttribute() == Field.FRACTION) {
+ attribute = android.icu.text.NumberFormat.Field.FRACTION;
+ } else if (fp.getFieldAttribute() == Field.DECIMAL_SEPARATOR) {
+ attribute = android.icu.text.NumberFormat.Field.DECIMAL_SEPARATOR;
+ } else if (fp.getFieldAttribute() == Field.EXPONENT_SYMBOL) {
+ attribute = android.icu.text.NumberFormat.Field.EXPONENT_SYMBOL;
+ } else if (fp.getFieldAttribute() == Field.EXPONENT_SIGN) {
+ attribute = android.icu.text.NumberFormat.Field.EXPONENT_SIGN;
+ } else if (fp.getFieldAttribute() == Field.EXPONENT) {
+ attribute = android.icu.text.NumberFormat.Field.EXPONENT;
+ } else if (fp.getFieldAttribute() == Field.GROUPING_SEPARATOR) {
+ attribute = android.icu.text.NumberFormat.Field.GROUPING_SEPARATOR;
+ } else if (fp.getFieldAttribute() == Field.CURRENCY) {
+ attribute = android.icu.text.NumberFormat.Field.CURRENCY;
+ } else if (fp.getFieldAttribute() == Field.PERCENT) {
+ attribute = android.icu.text.NumberFormat.Field.PERCENT;
+ } else if (fp.getFieldAttribute() == Field.PERMILLE) {
+ attribute = android.icu.text.NumberFormat.Field.PERMILLE;
+ } else if (fp.getFieldAttribute() == Field.SIGN) {
+ attribute = android.icu.text.NumberFormat.Field.SIGN;
+ } else {
+ throw new IllegalArgumentException("Unexpected field position attribute type.");
+ }
+
+ FieldPosition icuFieldPosition = new FieldPosition(attribute);
+ icuFieldPosition.setBeginIndex(fp.getBeginIndex());
+ icuFieldPosition.setEndIndex(fp.getEndIndex());
+ return icuFieldPosition;
+ }
+
+ /**
+ * Converts the Attribute that ICU returns in its AttributedCharacterIterator
+ * responses to the type that java uses.
+ * @param icuAttribute The android.icu.text.NumberFormat.Field field.
+ * @return Field converted to a java.text.NumberFormat.Field field.
+ */
+ private static Field toJavaFieldAttribute(AttributedCharacterIterator.Attribute icuAttribute) {
+ if (icuAttribute.getName().equals(Field.INTEGER.getName())) {
+ return Field.INTEGER;
+ }
+ if (icuAttribute.getName().equals(Field.CURRENCY.getName())) {
+ return Field.CURRENCY;
+ }
+ if (icuAttribute.getName().equals(Field.DECIMAL_SEPARATOR.getName())) {
+ return Field.DECIMAL_SEPARATOR;
+ }
+ if (icuAttribute.getName().equals(Field.EXPONENT.getName())) {
+ return Field.EXPONENT;
+ }
+ if (icuAttribute.getName().equals(Field.EXPONENT_SIGN.getName())) {
+ return Field.EXPONENT_SIGN;
+ }
+ if (icuAttribute.getName().equals(Field.EXPONENT_SYMBOL.getName())) {
+ return Field.EXPONENT_SYMBOL;
+ }
+ if (icuAttribute.getName().equals(Field.FRACTION.getName())) {
+ return Field.FRACTION;
+ }
+ if (icuAttribute.getName().equals(Field.GROUPING_SEPARATOR.getName())) {
+ return Field.GROUPING_SEPARATOR;
+ }
+ if (icuAttribute.getName().equals(Field.SIGN.getName())) {
+ return Field.SIGN;
+ }
+ if (icuAttribute.getName().equals(Field.PERCENT.getName())) {
+ return Field.PERCENT;
+ }
+ if (icuAttribute.getName().equals(Field.PERMILLE.getName())) {
+ return Field.PERMILLE;
+ }
+ throw new IllegalArgumentException("Unrecognized attribute: " + icuAttribute.getName());
+ }
+
+
/**
* Returns the {@code DecimalFormatSymbols} used by this decimal format.
*
@@ -712,7 +867,7 @@
* format.
*/
public DecimalFormatSymbols getDecimalFormatSymbols() {
- return (DecimalFormatSymbols) symbols.clone();
+ return DecimalFormatSymbols.fromIcuInstance(icuDecimalFormat.getDecimalFormatSymbols());
}
/**
@@ -734,7 +889,7 @@
* @return the number of digits grouped together.
*/
public int getGroupingSize() {
- return ndf.getGroupingSize();
+ return icuDecimalFormat.getGroupingSize();
}
/**
@@ -743,7 +898,7 @@
* @return the negative prefix.
*/
public String getNegativePrefix() {
- return ndf.getNegativePrefix();
+ return icuDecimalFormat.getNegativePrefix();
}
/**
@@ -752,7 +907,7 @@
* @return the negative suffix.
*/
public String getNegativeSuffix() {
- return ndf.getNegativeSuffix();
+ return icuDecimalFormat.getNegativeSuffix();
}
/**
@@ -761,7 +916,7 @@
* @return the positive prefix.
*/
public String getPositivePrefix() {
- return ndf.getPositivePrefix();
+ return icuDecimalFormat.getPositivePrefix();
}
/**
@@ -770,7 +925,7 @@
* @return the positive suffix.
*/
public String getPositiveSuffix() {
- return ndf.getPositiveSuffix();
+ return icuDecimalFormat.getPositiveSuffix();
}
@Override
@@ -786,7 +941,7 @@
* {@code false} otherwise.
*/
public boolean isDecimalSeparatorAlwaysShown() {
- return ndf.isDecimalSeparatorAlwaysShown();
+ return icuDecimalFormat.isDecimalSeparatorAlwaysShown();
}
/**
@@ -798,7 +953,7 @@
* {@code Double}.
*/
public boolean isParseBigDecimal() {
- return ndf.isParseBigDecimal();
+ return icuDecimalFormat.isParseBigDecimal();
}
/**
@@ -820,12 +975,12 @@
// fulfill most of the format and parse feature. And this method is
// delegated to the wrapped instance of NativeDecimalFormat.
super.setParseIntegerOnly(value);
- ndf.setParseIntegerOnly(value);
+ icuDecimalFormat.setParseIntegerOnly(value);
}
@Override
public boolean isParseIntegerOnly() {
- return ndf.isParseIntegerOnly();
+ return icuDecimalFormat.isParseIntegerOnly();
}
private static final Double NEGATIVE_ZERO_DOUBLE = new Double(-0.0);
@@ -855,7 +1010,8 @@
*/
@Override
public Number parse(String string, ParsePosition position) {
- Number number = ndf.parse(string, position);
+ // This might return android.icu.math.BigDecimal, java.math.BigInteger or a primitive type.
+ Number number = icuDecimalFormat.parse(string, position);
if (number == null) {
return null;
}
@@ -868,19 +1024,21 @@
return new BigDecimal(number.toString());
}
- if (number instanceof BigInteger) {
- return new BigDecimal(number.toString());
+ if ((number instanceof Double) &&
+ (((Double) number).isNaN() || ((Double) number).isInfinite())) {
+ return number;
}
- return number;
+ if (number instanceof android.icu.math.BigDecimal) {
+ return ((android.icu.math.BigDecimal) number).toBigDecimal();
+ }
}
- if ((number instanceof BigDecimal) || (number instanceof BigInteger)) {
- return new Double(number.doubleValue());
+ if ((number instanceof android.icu.math.BigDecimal) || (number instanceof BigInteger)) {
+ return number.doubleValue();
}
if (this.isParseIntegerOnly() && number.equals(NEGATIVE_ZERO_DOUBLE)) {
- return Long.valueOf(0);
+ return 0L;
}
return number;
-
}
/**
@@ -888,9 +1046,8 @@
*/
public void setDecimalFormatSymbols(DecimalFormatSymbols value) {
if (value != null) {
- // The Java object is canonical, and we copy down to native code.
this.symbols = (DecimalFormatSymbols) value.clone();
- ndf.setDecimalFormatSymbols(this.symbols);
+ icuDecimalFormat.setDecimalFormatSymbols(symbols.getIcuDecimalFormatSymbols());
}
}
@@ -900,9 +1057,15 @@
*/
@Override
public void setCurrency(Currency currency) {
+ // Set the international currency symbol, and currency symbol on the DecimalFormatSymbols
+ // object and tell ICU to use that. Trying to set the currency on icuDecimalFormat will
+ // cause the fractional digits to be updated.
Currency instance = Currency.getInstance(currency.getCurrencyCode());
- symbols.setCurrency(instance);
- ndf.setCurrency(symbols.getCurrencySymbol(), currency.getCurrencyCode());
+ if (instance != null) {
+ symbols.setCurrency(instance);
+ }
+
+ icuDecimalFormat.setDecimalFormatSymbols(symbols.getIcuDecimalFormatSymbols());
}
/**
@@ -910,7 +1073,7 @@
* digits.
*/
public void setDecimalSeparatorAlwaysShown(boolean value) {
- ndf.setDecimalSeparatorAlwaysShown(value);
+ icuDecimalFormat.setDecimalSeparatorAlwaysShown(value);
}
/**
@@ -919,7 +1082,7 @@
* size can only be set with a pattern.
*/
public void setGroupingSize(int value) {
- ndf.setGroupingSize(value);
+ icuDecimalFormat.setGroupingSize(value);
}
/**
@@ -928,7 +1091,7 @@
*/
@Override
public void setGroupingUsed(boolean value) {
- ndf.setGroupingUsed(value);
+ icuDecimalFormat.setGroupingUsed(value);
}
/**
@@ -937,7 +1100,7 @@
*/
@Override
public boolean isGroupingUsed() {
- return ndf.isGroupingUsed();
+ return icuDecimalFormat.isGroupingUsed();
}
/**
@@ -948,8 +1111,8 @@
@Override
public void setMaximumFractionDigits(int value) {
super.setMaximumFractionDigits(value);
- ndf.setMaximumFractionDigits(getMaximumFractionDigits());
- // Changing the maximum fraction digits needs to update ICU4C's rounding configuration.
+ icuDecimalFormat.setMaximumFractionDigits(getMaximumFractionDigits());
+ // Changing the maximum fraction digits needs to update ICU4J's rounding configuration.
setRoundingMode(roundingMode);
}
@@ -961,7 +1124,7 @@
@Override
public void setMaximumIntegerDigits(int value) {
super.setMaximumIntegerDigits(value);
- ndf.setMaximumIntegerDigits(getMaximumIntegerDigits());
+ icuDecimalFormat.setMaximumIntegerDigits(getMaximumIntegerDigits());
}
/**
@@ -972,7 +1135,7 @@
@Override
public void setMinimumFractionDigits(int value) {
super.setMinimumFractionDigits(value);
- ndf.setMinimumFractionDigits(getMinimumFractionDigits());
+ icuDecimalFormat.setMinimumFractionDigits(getMinimumFractionDigits());
}
/**
@@ -983,7 +1146,7 @@
@Override
public void setMinimumIntegerDigits(int value) {
super.setMinimumIntegerDigits(value);
- ndf.setMinimumIntegerDigits(getMinimumIntegerDigits());
+ icuDecimalFormat.setMinimumIntegerDigits(getMinimumIntegerDigits());
}
/**
@@ -993,7 +1156,7 @@
* "123" would be parsed as 1.23.
*/
public int getMultiplier() {
- return ndf.getMultiplier();
+ return icuDecimalFormat.getMultiplier();
}
/**
@@ -1003,35 +1166,35 @@
* "123" would be parsed as 1.23.
*/
public void setMultiplier(int value) {
- ndf.setMultiplier(value);
+ icuDecimalFormat.setMultiplier(value);
}
/**
* Sets the prefix which is formatted or parsed before a negative number.
*/
public void setNegativePrefix(String value) {
- ndf.setNegativePrefix(value);
+ icuDecimalFormat.setNegativePrefix(value);
}
/**
* Sets the suffix which is formatted or parsed after a negative number.
*/
public void setNegativeSuffix(String value) {
- ndf.setNegativeSuffix(value);
+ icuDecimalFormat.setNegativeSuffix(value);
}
/**
* Sets the prefix which is formatted or parsed before a positive number.
*/
public void setPositivePrefix(String value) {
- ndf.setPositivePrefix(value);
+ icuDecimalFormat.setPositivePrefix(value);
}
/**
* Sets the suffix which is formatted or parsed after a positive number.
*/
public void setPositiveSuffix(String value) {
- ndf.setPositiveSuffix(value);
+ icuDecimalFormat.setPositiveSuffix(value);
}
/**
@@ -1043,7 +1206,7 @@
* {@code BigDecimal}; {@code false} otherwise.
*/
public void setParseBigDecimal(boolean newValue) {
- ndf.setParseBigDecimal(newValue);
+ icuDecimalFormat.setParseBigDecimal(newValue);
}
/**
@@ -1053,7 +1216,7 @@
* @return the localized pattern.
*/
public String toLocalizedPattern() {
- return ndf.toLocalizedPattern();
+ return icuDecimalFormat.toLocalizedPattern();
}
/**
@@ -1063,7 +1226,7 @@
* @return the non-localized pattern.
*/
public String toPattern() {
- return ndf.toPattern();
+ return icuDecimalFormat.toPattern();
}
// the fields list to be serialized
@@ -1104,27 +1267,27 @@
*/
private void writeObject(ObjectOutputStream stream) throws IOException, ClassNotFoundException {
ObjectOutputStream.PutField fields = stream.putFields();
- fields.put("positivePrefix", ndf.getPositivePrefix());
- fields.put("positiveSuffix", ndf.getPositiveSuffix());
- fields.put("negativePrefix", ndf.getNegativePrefix());
- fields.put("negativeSuffix", ndf.getNegativeSuffix());
- fields.put("posPrefixPattern", (String) null);
- fields.put("posSuffixPattern", (String) null);
- fields.put("negPrefixPattern", (String) null);
- fields.put("negSuffixPattern", (String) null);
- fields.put("multiplier", ndf.getMultiplier());
- fields.put("groupingSize", (byte) ndf.getGroupingSize());
- fields.put("groupingUsed", ndf.isGroupingUsed());
- fields.put("decimalSeparatorAlwaysShown", ndf.isDecimalSeparatorAlwaysShown());
- fields.put("parseBigDecimal", ndf.isParseBigDecimal());
+ fields.put("positivePrefix", icuDecimalFormat.getPositivePrefix());
+ fields.put("positiveSuffix", icuDecimalFormat.getPositiveSuffix());
+ fields.put("negativePrefix", icuDecimalFormat.getNegativePrefix());
+ fields.put("negativeSuffix", icuDecimalFormat.getNegativeSuffix());
+ fields.put("posPrefixPattern", null);
+ fields.put("posSuffixPattern", null);
+ fields.put("negPrefixPattern", null);
+ fields.put("negSuffixPattern", null);
+ fields.put("multiplier", icuDecimalFormat.getMultiplier());
+ fields.put("groupingSize", (byte) icuDecimalFormat.getGroupingSize());
+ fields.put("groupingUsed", icuDecimalFormat.isGroupingUsed());
+ fields.put("decimalSeparatorAlwaysShown", icuDecimalFormat.isDecimalSeparatorAlwaysShown());
+ fields.put("parseBigDecimal", icuDecimalFormat.isParseBigDecimal());
fields.put("roundingMode", roundingMode);
fields.put("symbols", symbols);
fields.put("useExponentialNotation", false);
fields.put("minExponentDigits", (byte) 0);
- fields.put("maximumIntegerDigits", ndf.getMaximumIntegerDigits());
- fields.put("minimumIntegerDigits", ndf.getMinimumIntegerDigits());
- fields.put("maximumFractionDigits", ndf.getMaximumFractionDigits());
- fields.put("minimumFractionDigits", ndf.getMinimumFractionDigits());
+ fields.put("maximumIntegerDigits", icuDecimalFormat.getMaximumIntegerDigits());
+ fields.put("minimumIntegerDigits", icuDecimalFormat.getMinimumIntegerDigits());
+ fields.put("maximumFractionDigits", icuDecimalFormat.getMaximumFractionDigits());
+ fields.put("minimumFractionDigits", icuDecimalFormat.getMinimumFractionDigits());
fields.put("serialVersionOnStream", 4);
stream.writeFields();
}
@@ -1144,15 +1307,27 @@
ObjectInputStream.GetField fields = stream.readFields();
this.symbols = (DecimalFormatSymbols) fields.get("symbols", null);
- initNative("");
- ndf.setPositivePrefix((String) fields.get("positivePrefix", ""));
- ndf.setPositiveSuffix((String) fields.get("positiveSuffix", ""));
- ndf.setNegativePrefix((String) fields.get("negativePrefix", "-"));
- ndf.setNegativeSuffix((String) fields.get("negativeSuffix", ""));
- ndf.setMultiplier(fields.get("multiplier", 1));
- ndf.setGroupingSize(fields.get("groupingSize", (byte) 3));
- ndf.setGroupingUsed(fields.get("groupingUsed", true));
- ndf.setDecimalSeparatorAlwaysShown(fields.get("decimalSeparatorAlwaysShown", false));
+ initIcu("");
+
+ // Calling setPositive<Prefix|Suffix> will cause quotes to be inserted at the beginning
+ // or end of the pattern, so only call it if there is actually something to put there.
+ String positivePrefix = (String) fields.get("positivePrefix", "");
+ if (!positivePrefix.equals("")) {
+ setPositivePrefix(positivePrefix);
+ }
+
+ String positiveSuffix = (String) fields.get("positiveSuffix", "");
+ if (!positiveSuffix.equals("")) {
+ setPositiveSuffix(positiveSuffix);
+ }
+
+ setNegativePrefix((String) fields.get("negativePrefix", "-"));
+ setNegativeSuffix((String) fields.get("negativeSuffix", ""));
+
+ setMultiplier(fields.get("multiplier", 1));
+ setGroupingSize(fields.get("groupingSize", (byte) 3));
+ setGroupingUsed(fields.get("groupingUsed", true));
+ setDecimalSeparatorAlwaysShown(fields.get("decimalSeparatorAlwaysShown", false));
setRoundingMode((RoundingMode) fields.get("roundingMode", RoundingMode.HALF_EVEN));
@@ -1160,17 +1335,23 @@
final int minimumIntegerDigits = fields.get("minimumIntegerDigits", 309);
final int maximumFractionDigits = fields.get("maximumFractionDigits", 340);
final int minimumFractionDigits = fields.get("minimumFractionDigits", 340);
- // Tell ICU what we want, then ask it what we can have, and then
- // set that in our Java object. This isn't RI-compatible, but then very little of our
+ // ICU has its own logic about what these values can be set to. We set the desired value
+ // on icuDecimalFormat and then update NumberFormat's idea of the limits to what ICU has
+ // allowed to be set. This isn't RI-compatible, but then very little of our
// behavior in this area is, and it's not obvious how we can second-guess ICU (or tell
- // it to just do exactly what we ask). We only need to do this with maximumIntegerDigits
- // because ICU doesn't seem to have its own ideas about the other options.
- ndf.setMaximumIntegerDigits(maximumIntegerDigits);
- super.setMaximumIntegerDigits(ndf.getMaximumIntegerDigits());
+ // it to just do exactly what we ask).
+ icuDecimalFormat.setMaximumIntegerDigits(maximumIntegerDigits);
+ setMaximumIntegerDigits(icuDecimalFormat.getMaximumIntegerDigits());
- setMinimumIntegerDigits(minimumIntegerDigits);
+ icuDecimalFormat.setMinimumIntegerDigits(minimumIntegerDigits);
+ setMinimumIntegerDigits(icuDecimalFormat.getMinimumIntegerDigits());
+
+ icuDecimalFormat.setMaximumFractionDigits(maximumFractionDigits);
+ setMaximumFractionDigits(icuDecimalFormat.getMaximumFractionDigits());
+
+ icuDecimalFormat.setMinimumFractionDigits(minimumFractionDigits);
setMinimumFractionDigits(minimumFractionDigits);
- setMaximumFractionDigits(maximumFractionDigits);
+
setParseBigDecimal(fields.get("parseBigDecimal", false));
if (fields.get("serialVersionOnStream", 0) < 3) {
@@ -1190,6 +1371,33 @@
}
/**
+ * Convert RoundingMode into an integer representation which ICU's DecimalFormat understands.
+ * @param rm RoundingMode to use.
+ * @return an integer representing a RoundingMode for ICU.
+ */
+ private static int convertRoundingMode(RoundingMode rm) {
+ switch (rm) {
+ case UP:
+ return MathContext.ROUND_UP;
+ case DOWN:
+ return MathContext.ROUND_DOWN;
+ case CEILING:
+ return MathContext.ROUND_CEILING;
+ case FLOOR:
+ return MathContext.ROUND_FLOOR;
+ case HALF_UP:
+ return MathContext.ROUND_HALF_UP;
+ case HALF_DOWN:
+ return MathContext.ROUND_HALF_DOWN;
+ case HALF_EVEN:
+ return MathContext.ROUND_HALF_EVEN;
+ case UNNECESSARY:
+ return MathContext.ROUND_UNNECESSARY;
+ }
+ throw new IllegalArgumentException("Invalid rounding mode specified");
+ }
+
+ /**
* Sets the {@code RoundingMode} used by this {@code NumberFormat}.
* @since 1.6
*/
@@ -1201,9 +1409,23 @@
// DecimalFormat does not allow specification of a rounding increment. If anything other
// than 0.0 is used here the resulting DecimalFormat cannot be deserialized because the
// serialization format does not include rounding increment information.
- double roundingIncrement = 0.0;
- ndf.setRoundingMode(roundingMode, roundingIncrement);
+ icuDecimalFormat.setRoundingMode(convertRoundingMode(roundingMode));
}
- public String toString() { return ndf.toString(); }
+ public String toString() {
+ return getClass().getName() + "[\"" + toPattern() + "\"" +
+ ",isDecimalSeparatorAlwaysShown=" + isDecimalSeparatorAlwaysShown() +
+ ",groupingSize=" + getGroupingSize() +
+ ",multiplier=" + getMultiplier() +
+ ",negativePrefix=" + getNegativePrefix() +
+ ",negativeSuffix=" + getNegativeSuffix() +
+ ",positivePrefix=" + getPositivePrefix() +
+ ",positiveSuffix=" + getPositiveSuffix() +
+ ",maxIntegerDigits=" + getMaximumIntegerDigits() +
+ ",maxFractionDigits=" + getMaximumFractionDigits() +
+ ",minIntegerDigits=" + getMinimumIntegerDigits() +
+ ",minFractionDigits=" + getMinimumFractionDigits() +
+ ",grouping=" + isGroupingUsed() +
+ "]";
+ }
}
diff --git a/luni/src/main/java/java/text/DecimalFormatSymbols.java b/luni/src/main/java/java/text/DecimalFormatSymbols.java
index 006d37b..c35d938 100644
--- a/luni/src/main/java/java/text/DecimalFormatSymbols.java
+++ b/luni/src/main/java/java/text/DecimalFormatSymbols.java
@@ -57,6 +57,8 @@
private transient Locale locale;
private transient String exponentSeparator;
+ private transient android.icu.text.DecimalFormatSymbols cachedIcuDFS = null;
+
/**
* Constructs a new {@code DecimalFormatSymbols} containing the symbols for
* the user's default locale.
@@ -112,6 +114,77 @@
}
/**
+ * Convert an instance of this class to the ICU version so that it can be used with ICU4J.
+ * @hide
+ */
+ protected android.icu.text.DecimalFormatSymbols getIcuDecimalFormatSymbols() {
+ if (cachedIcuDFS != null) {
+ return cachedIcuDFS;
+ }
+
+ cachedIcuDFS = new android.icu.text.DecimalFormatSymbols(this.locale);
+ cachedIcuDFS.setZeroDigit(zeroDigit);
+ cachedIcuDFS.setDigit(digit);
+ cachedIcuDFS.setDecimalSeparator(decimalSeparator);
+ cachedIcuDFS.setGroupingSeparator(groupingSeparator);
+ cachedIcuDFS.setPatternSeparator(patternSeparator);
+ cachedIcuDFS.setPercent((percent.length() > 1) ? '%' : percent.charAt(0));
+ cachedIcuDFS.setMonetaryDecimalSeparator(monetarySeparator);
+ cachedIcuDFS.setMinusSign((minusSign.length() > 1) ? '-' : minusSign.charAt(0));
+ cachedIcuDFS.setInfinity(infinity);
+ cachedIcuDFS.setNaN(NaN);
+ cachedIcuDFS.setExponentSeparator(exponentSeparator);
+
+ try {
+ cachedIcuDFS.setCurrency(
+ android.icu.util.Currency.getInstance(currency.getCurrencyCode()));
+ } catch (NullPointerException e) {
+ currency = Currency.getInstance("XXX");
+ }
+
+ cachedIcuDFS.setCurrencySymbol(currencySymbol);
+ cachedIcuDFS.setInternationalCurrencySymbol(intlCurrencySymbol);
+
+ return cachedIcuDFS;
+ }
+
+ /**
+ * Create an instance of DecimalFormatSymbols using the ICU equivalent of this class.
+ * @hide
+ */
+ protected static DecimalFormatSymbols fromIcuInstance(
+ android.icu.text.DecimalFormatSymbols dfs) {
+ DecimalFormatSymbols result = new DecimalFormatSymbols(dfs.getLocale());
+ result.setZeroDigit(dfs.getZeroDigit());
+ result.setDigit(dfs.getDigit());
+ result.setDecimalSeparator(dfs.getDecimalSeparator());
+ result.setGroupingSeparator(dfs.getGroupingSeparator());
+ result.setPatternSeparator(dfs.getPatternSeparator());
+ result.setPercent(dfs.getPercent());
+ result.setPerMill(dfs.getPerMill());
+ result.setMonetaryDecimalSeparator(dfs.getMonetaryDecimalSeparator());
+ result.setMinusSign(dfs.getMinusSign());
+ result.setInfinity(dfs.getInfinity());
+ result.setNaN(dfs.getNaN());
+ result.setExponentSeparator(dfs.getExponentSeparator());
+
+ try {
+ if (dfs.getCurrency() != null) {
+ result.setCurrency(Currency.getInstance(dfs.getCurrency().getCurrencyCode()));
+ } else {
+ result.setCurrency(Currency.getInstance("XXX"));
+ }
+ } catch (IllegalArgumentException e) {
+ result.setCurrency(Currency.getInstance("XXX"));
+ }
+
+ result.setCurrencySymbol(dfs.getCurrencySymbol());
+ result.setInternationalCurrencySymbol(dfs.getInternationalCurrencySymbol());
+ return result;
+ }
+
+
+ /**
* Returns a new {@code DecimalFormatSymbols} instance for the user's default locale.
* See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>".
*
@@ -428,9 +501,11 @@
if (currency == null) {
throw new NullPointerException("currency == null");
}
+
this.currency = currency;
intlCurrencySymbol = currency.getCurrencyCode();
currencySymbol = currency.getSymbol(locale);
+ cachedIcuDFS = null;
}
/**
@@ -462,6 +537,7 @@
currency = null;
}
intlCurrencySymbol = value;
+ cachedIcuDFS = null;
}
/**
@@ -472,6 +548,7 @@
*/
public void setCurrencySymbol(String value) {
this.currencySymbol = value;
+ cachedIcuDFS = null;
}
/**
@@ -482,6 +559,7 @@
*/
public void setDecimalSeparator(char value) {
this.decimalSeparator = value;
+ cachedIcuDFS = null;
}
/**
@@ -492,6 +570,7 @@
*/
public void setDigit(char value) {
this.digit = value;
+ cachedIcuDFS = null;
}
/**
@@ -502,6 +581,7 @@
*/
public void setGroupingSeparator(char value) {
this.groupingSeparator = value;
+ cachedIcuDFS = null;
}
/**
@@ -512,6 +592,7 @@
*/
public void setInfinity(String value) {
this.infinity = value;
+ cachedIcuDFS = null;
}
/**
@@ -522,6 +603,7 @@
*/
public void setMinusSign(char value) {
this.minusSign = String.valueOf(value);
+ cachedIcuDFS = null;
}
/**
@@ -533,6 +615,7 @@
*/
public void setMonetaryDecimalSeparator(char value) {
this.monetarySeparator = value;
+ cachedIcuDFS = null;
}
/**
@@ -543,6 +626,7 @@
*/
public void setNaN(String value) {
this.NaN = value;
+ cachedIcuDFS = null;
}
/**
@@ -554,6 +638,7 @@
*/
public void setPatternSeparator(char value) {
this.patternSeparator = value;
+ cachedIcuDFS = null;
}
/**
@@ -564,6 +649,7 @@
*/
public void setPercent(char value) {
this.percent = String.valueOf(value);
+ cachedIcuDFS = null;
}
/**
@@ -574,6 +660,7 @@
*/
public void setPerMill(char value) {
this.perMill = value;
+ cachedIcuDFS = null;
}
/**
@@ -584,6 +671,7 @@
*/
public void setZeroDigit(char value) {
this.zeroDigit = value;
+ cachedIcuDFS = null;
}
/**
@@ -595,6 +683,7 @@
throw new NullPointerException("value == null");
}
this.exponentSeparator = value;
+ cachedIcuDFS = null;
}
private static final ObjectStreamField[] serialPersistentFields = {
diff --git a/luni/src/main/java/java/text/IcuIteratorWrapper.java b/luni/src/main/java/java/text/IcuIteratorWrapper.java
index b863fa7..636a34e 100644
--- a/luni/src/main/java/java/text/IcuIteratorWrapper.java
+++ b/luni/src/main/java/java/text/IcuIteratorWrapper.java
@@ -27,9 +27,9 @@
class IcuIteratorWrapper extends BreakIterator {
/* The wrapped ICU implementation. Non-final for #clone() */
- private com.ibm.icu.text.BreakIterator wrapped;
+ private android.icu.text.BreakIterator wrapped;
- IcuIteratorWrapper(com.ibm.icu.text.BreakIterator iterator) {
+ IcuIteratorWrapper(android.icu.text.BreakIterator iterator) {
wrapped = iterator;
}
@@ -113,7 +113,7 @@
@Override public Object clone() {
IcuIteratorWrapper cloned = (IcuIteratorWrapper) super.clone();
- cloned.wrapped = (com.ibm.icu.text.BreakIterator) wrapped.clone();
+ cloned.wrapped = (android.icu.text.BreakIterator) wrapped.clone();
return cloned;
}
}
diff --git a/luni/src/main/java/java/text/Normalizer.java b/luni/src/main/java/java/text/Normalizer.java
index 2e6647e..8157302 100644
--- a/luni/src/main/java/java/text/Normalizer.java
+++ b/luni/src/main/java/java/text/Normalizer.java
@@ -16,8 +16,6 @@
package java.text;
-import libcore.icu.NativeNormalizer;
-
/**
* Provides normalization functions according to
* <a href="http://www.unicode.org/unicode/reports/tr15/tr15-23.html">Unicode Standard Annex #15:
@@ -36,22 +34,32 @@
/**
* Normalization Form D - Canonical Decomposition.
*/
- NFD,
+ NFD(android.icu.text.Normalizer.NFD),
/**
* Normalization Form C - Canonical Decomposition, followed by Canonical Composition.
*/
- NFC,
+ NFC(android.icu.text.Normalizer.NFC),
/**
* Normalization Form KD - Compatibility Decomposition.
*/
- NFKD,
+ NFKD(android.icu.text.Normalizer.NFKD),
/**
* Normalization Form KC - Compatibility Decomposition, followed by Canonical Composition.
*/
- NFKC;
+ NFKC(android.icu.text.Normalizer.NFKC);
+
+ private final android.icu.text.Normalizer.Mode icuForm;
+
+ Form(android.icu.text.Normalizer.Mode icuForm) {
+ this.icuForm = icuForm;
+ }
+
+ android.icu.text.Normalizer.Mode getIcuForm() {
+ return icuForm;
+ }
}
/**
@@ -63,7 +71,7 @@
* @return true if normalized according to <code>form</code>
*/
public static boolean isNormalized(CharSequence src, Form form) {
- return NativeNormalizer.isNormalized(src, form);
+ return android.icu.text.Normalizer.isNormalized(src.toString(), form.getIcuForm(), 0);
}
/**
@@ -75,7 +83,7 @@
* @return string normalized according to <code>form</code>
*/
public static String normalize(CharSequence src, Form form) {
- return NativeNormalizer.normalize(src, form);
+ return android.icu.text.Normalizer.normalize(src.toString(), form.getIcuForm());
}
private Normalizer() {}
diff --git a/luni/src/main/java/java/text/NumberFormat.java b/luni/src/main/java/java/text/NumberFormat.java
index 2526ffc..e2c2c96 100644
--- a/luni/src/main/java/java/text/NumberFormat.java
+++ b/luni/src/main/java/java/text/NumberFormat.java
@@ -384,7 +384,9 @@
throw new NullPointerException("locale == null");
}
- NumberFormat result = getInstance(LocaleData.get(locale).integerPattern, locale);
+ android.icu.text.DecimalFormat icuDF = (android.icu.text.DecimalFormat)
+ android.icu.text.NumberFormat.getIntegerInstance(locale);
+ NumberFormat result = new DecimalFormat(icuDF);
result.setParseIntegerOnly(true);
return result;
}
@@ -480,7 +482,9 @@
if (locale == null) {
throw new NullPointerException("locale == null");
}
- return getInstance(LocaleData.get(locale).numberPattern, locale);
+ android.icu.text.DecimalFormat icuDF = (android.icu.text.DecimalFormat)
+ android.icu.text.NumberFormat.getNumberInstance(locale);
+ return new DecimalFormat(icuDF);
}
/**
@@ -519,7 +523,10 @@
throw new NullPointerException("locale == null");
}
- return getInstance(LocaleData.get(locale).percentPattern, locale);
+ android.icu.text.DecimalFormat icuDF = (android.icu.text.DecimalFormat)
+ android.icu.text.NumberFormat.getPercentInstance(locale);
+
+ return new DecimalFormat(icuDF);
}
@Override
diff --git a/luni/src/main/java/java/text/RuleBasedCollator.java b/luni/src/main/java/java/text/RuleBasedCollator.java
index 4e84ef7..8b2c40b 100644
--- a/luni/src/main/java/java/text/RuleBasedCollator.java
+++ b/luni/src/main/java/java/text/RuleBasedCollator.java
@@ -17,7 +17,7 @@
package java.text;
-import libcore.icu.RuleBasedCollatorICU;
+import libcore.icu.CollationKeyICU;
/**
* A concrete subclass of {@link Collator}.
@@ -76,7 +76,8 @@
* {@code ParseException}.
*/
public class RuleBasedCollator extends Collator {
- RuleBasedCollator(RuleBasedCollatorICU wrapper) {
+
+ RuleBasedCollator(android.icu.text.RuleBasedCollator wrapper) {
super(wrapper);
}
@@ -98,11 +99,12 @@
* syntax.
*/
public RuleBasedCollator(String rules) throws ParseException {
+
if (rules == null) {
throw new NullPointerException("rules == null");
}
try {
- icuColl = new RuleBasedCollatorICU(rules);
+ icuColl = new android.icu.text.RuleBasedCollator(rules);
} catch (Exception e) {
if (e instanceof ParseException) {
throw (ParseException) e;
@@ -111,7 +113,9 @@
* -1 means it's not a ParseException. Maybe IOException thrown when
* an error occurred while reading internal data.
*/
- throw new ParseException(e.getMessage(), -1);
+ ParseException pe = new ParseException(e.getMessage(), -1);
+ pe.initCause(e);
+ throw pe;
}
}
@@ -128,7 +132,7 @@
if (source == null) {
throw new NullPointerException("source == null");
}
- return new CollationElementIterator(icuColl.getCollationElementIterator(source));
+ return new CollationElementIterator(collAsICU().getCollationElementIterator(source));
}
/**
@@ -142,7 +146,7 @@
if (source == null) {
throw new NullPointerException("source == null");
}
- return new CollationElementIterator(icuColl.getCollationElementIterator(source));
+ return new CollationElementIterator(collAsICU().getCollationElementIterator(source));
}
/**
@@ -153,7 +157,7 @@
* The string forms of the collation rules are omitted to save space on the device.
*/
public String getRules() {
- return icuColl.getRules();
+ return collAsICU().getRules();
}
/**
@@ -202,12 +206,15 @@
*/
@Override
public CollationKey getCollationKey(String source) {
- return icuColl.getCollationKey(source);
+ if (source == null) {
+ return null;
+ }
+ return new CollationKeyICU(source, icuColl.getCollationKey(source));
}
@Override
public int hashCode() {
- return icuColl.getRules().hashCode();
+ return icuColl.hashCode();
}
/**
@@ -229,4 +236,9 @@
}
return super.equals(obj);
}
+
+ private android.icu.text.RuleBasedCollator collAsICU() {
+ return (android.icu.text.RuleBasedCollator) icuColl;
+ }
+
}
diff --git a/luni/src/main/java/java/util/Locale.java b/luni/src/main/java/java/util/Locale.java
index 9b0cd87..dc20986 100644
--- a/luni/src/main/java/java/util/Locale.java
+++ b/luni/src/main/java/java/util/Locale.java
@@ -2226,7 +2226,13 @@
}
}
- final String languageCode = Builder.normalizeAndValidateLanguage(subtags[0], strict);
+ // The BCP-47 language tag "und" is mapped to the Locale languageCode "" here in
+ // forLanguageTag() for compatibility with JDK behaviour.
+ String languageCode = Builder.normalizeAndValidateLanguage(subtags[0], strict);
+ if (UNDETERMINED_LANGUAGE.equals(languageCode)) {
+ languageCode = "";
+ }
+
String scriptCode = "";
int nextSubtag = 1;
if (lastSubtag > nextSubtag) {
diff --git a/luni/src/main/java/java/util/jar/StrictJarFile.java b/luni/src/main/java/java/util/jar/StrictJarFile.java
index 132e023..2baef2e 100644
--- a/luni/src/main/java/java/util/jar/StrictJarFile.java
+++ b/luni/src/main/java/java/util/jar/StrictJarFile.java
@@ -43,6 +43,8 @@
*/
public final class StrictJarFile {
+ private final String fileName;
+
private final long nativeHandle;
// NOTE: It's possible to share a file descriptor with the native
@@ -57,25 +59,35 @@
private boolean closed;
public StrictJarFile(String fileName) throws IOException, SecurityException {
+ this.fileName = fileName;
this.nativeHandle = nativeOpenJarFile(fileName);
this.raf = new RandomAccessFile(fileName, "r");
try {
// Read the MANIFEST and signature files up front and try to
// parse them. We never want to accept a JAR File with broken signatures
- // or manifests, so it's best to throw as early as possible.
+ // or manifests, so it's best to throw as early as possible. It is valid
+ // for a jar file to be missing a manifest and it's treated the same
+ // as any other unsigned jar.
HashMap<String, byte[]> metaEntries = getMetaEntries();
- StrictJarManifest manifest =
- new StrictJarManifest(metaEntries.get(JarFile.MANIFEST_NAME), true);
- this.verifier = new StrictJarVerifier(fileName, manifest, metaEntries);
- Set<String> files = manifest.getEntries().keySet();
- for (String file : files) {
- if (findEntry(file) == null) {
- throw new SecurityException(fileName + ": File " + file + " in manifest does not exist");
+ byte[] manifestBytes = metaEntries.get(JarFile.MANIFEST_NAME);
+ if (manifestBytes == null) {
+ // this.manifest = null;
+ this.verifier = null;
+ isSigned = false;
+ } else {
+ StrictJarManifest manifest =
+ new StrictJarManifest(manifestBytes, true);
+ this.verifier = new StrictJarVerifier(fileName, manifest, metaEntries);
+ Set<String> files = manifest.getEntries().keySet();
+ for (String file : files) {
+ if (findEntry(file) == null) {
+ throw new SecurityException(
+ fileName + ": File " + file + " in manifest does not exist");
+ }
}
+ isSigned = verifier.readCertificates() && verifier.isSignedJar();
}
-
- isSigned = verifier.readCertificates() && verifier.isSignedJar();
} catch (IOException | SecurityException e) {
nativeClose(this.nativeHandle);
IoUtils.closeQuietly(this.raf);
@@ -85,6 +97,10 @@
guard.open("close");
}
+ public String getName() {
+ return fileName;
+ }
+
public Iterator<ZipEntry> iterator() throws IOException {
return new EntryIterator(nativeHandle, "");
}
diff --git a/luni/src/main/java/java/util/zip/InflaterInputStream.java b/luni/src/main/java/java/util/zip/InflaterInputStream.java
index e5ad3db..a558f34 100644
--- a/luni/src/main/java/java/util/zip/InflaterInputStream.java
+++ b/luni/src/main/java/java/util/zip/InflaterInputStream.java
@@ -193,6 +193,8 @@
} else {
if ((len = in.read(buf)) > 0) {
inf.setInput(buf, 0, len);
+ } else if (len == -1) {
+ throw new EOFException("Unexpected end of stream.");
}
}
}
diff --git a/luni/src/main/java/java/util/zip/ZipInputStream.java b/luni/src/main/java/java/util/zip/ZipInputStream.java
index f3ca74e..f254ba2 100644
--- a/luni/src/main/java/java/util/zip/ZipInputStream.java
+++ b/luni/src/main/java/java/util/zip/ZipInputStream.java
@@ -112,7 +112,11 @@
@Override
public void close() throws IOException {
if (!closed) {
- closeEntry(); // Close the current entry
+ try {
+ closeEntry(); // Close the current entry
+ } catch (IOException ignored) {
+ }
+
super.close();
}
}
diff --git a/luni/src/main/java/javax/crypto/Cipher.java b/luni/src/main/java/javax/crypto/Cipher.java
index b27ea88..a23635a 100644
--- a/luni/src/main/java/javax/crypto/Cipher.java
+++ b/luni/src/main/java/javax/crypto/Cipher.java
@@ -380,17 +380,18 @@
* </code>
* <p>
*/
- private static String[] checkTransformation(String transformation)
+ private static String[] checkTransformation(String transform)
throws NoSuchAlgorithmException {
+ String transformUC = transform.toUpperCase(Locale.US);
// ignore an extra prefix / characters such as in
// "/DES/CBC/PKCS5Padding" http://b/3387688
- if (transformation.startsWith("/")) {
- transformation = transformation.substring(1);
+ if (transformUC.startsWith("/")) {
+ transformUC = transformUC.substring(1);
}
// 'transformation' should be of the form "algorithm/mode/padding".
- String[] pieces = transformation.split("/");
+ String[] pieces = transformUC.split("/");
if (pieces.length > 3) {
- throw invalidTransformation(transformation);
+ throw invalidTransformation(transform);
}
// Empty or missing pieces are represented by null.
String[] result = new String[3];
@@ -402,10 +403,10 @@
}
// You MUST specify an algorithm.
if (result[0] == null) {
- throw invalidTransformation(transformation);
+ throw invalidTransformation(transform);
}
if (!(result[1] == null && result[2] == null) && (result[1] == null || result[2] == null)) {
- throw invalidTransformation(transformation);
+ throw invalidTransformation(transform);
}
return result;
}
@@ -512,8 +513,9 @@
// Try each of the transforms and keep track of the first exception
// encountered.
Exception cause = null;
- for (Transform transform : transforms) {
- if (provider != null) {
+
+ if (provider != null) {
+ for (Transform transform : transforms) {
Provider.Service service = provider.getService(SERVICE, transform.name);
if (service == null) {
continue;
@@ -521,22 +523,40 @@
return tryTransformWithProvider(initParams, transformParts, transform.needToSet,
service);
}
- ArrayList<Provider.Service> services = ENGINE.getServices(transform.name);
- if (services == null || services.isEmpty()) {
- continue;
- }
+ } else {
+ ArrayList<Provider.Service> services = ENGINE.getServices();
for (Provider.Service service : services) {
- if (initParams == null || initParams.key == null
- || service.supportsParameter(initParams.key)) {
- try {
- Engine.SpiAndProvider sap = tryTransformWithProvider(initParams,
- transformParts, transform.needToSet, service);
- if (sap != null) {
- return sap;
+ String serviceAlgorithmUC = service.getAlgorithm().toUpperCase(Locale.US);
+ for (Transform transform : transforms) {
+ // Check that this service offers the algorithm we're after
+ // since none of the services have been filtered yet.
+ boolean matchesAlgorithm = false;
+ if (transform.name.equals(serviceAlgorithmUC)) {
+ matchesAlgorithm = true;
+ } else {
+ for (String alias : Engine.door.getAliases(service)) {
+ if (transform.name.equals(alias.toUpperCase(Locale.US))) {
+ matchesAlgorithm = true;
+ break;
+ }
}
- } catch (Exception e) {
- if (cause == null) {
- cause = e;
+ }
+ if (!matchesAlgorithm) {
+ continue;
+ }
+
+ if (initParams == null || initParams.key == null
+ || service.supportsParameter(initParams.key)) {
+ try {
+ Engine.SpiAndProvider sap = tryTransformWithProvider(initParams,
+ transformParts, transform.needToSet, service);
+ if (sap != null) {
+ return sap;
+ }
+ } catch (Exception e) {
+ if (cause == null) {
+ cause = e;
+ }
}
}
}
diff --git a/luni/src/main/java/javax/net/SocketFactory.java b/luni/src/main/java/javax/net/SocketFactory.java
index cfdde41..8269044 100644
--- a/luni/src/main/java/javax/net/SocketFactory.java
+++ b/luni/src/main/java/javax/net/SocketFactory.java
@@ -45,6 +45,14 @@
}
/**
+ * Set the default socket factory. For use in tests.
+ * @hide
+ */
+ public static synchronized void setDefault(SocketFactory socketFactory) {
+ defaultFactory = socketFactory;
+ }
+
+ /**
* Creates a new {@code SocketFactory} instance.
*/
protected SocketFactory() {
diff --git a/luni/src/main/java/libcore/icu/AlphabeticIndex.java b/luni/src/main/java/libcore/icu/AlphabeticIndex.java
deleted file mode 100644
index 322384d..0000000
--- a/luni/src/main/java/libcore/icu/AlphabeticIndex.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (C) 2013 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 libcore.icu;
-
-import java.util.Locale;
-
-/**
- * Exposes icu4c's AlphabeticIndex.
- */
-public final class AlphabeticIndex {
-
- /**
- * Exposes icu4c's ImmutableIndex (new to icu 51). This exposes a read-only,
- * thread safe snapshot view of an AlphabeticIndex at the moment it was
- * created, and allows for random access to buckets by index.
- */
- public static final class ImmutableIndex {
- private long peer;
-
- private ImmutableIndex(long peer) {
- this.peer = peer;
- }
-
- @Override protected synchronized void finalize() throws Throwable {
- try {
- destroy(peer);
- peer = 0;
- } finally {
- super.finalize();
- }
- }
-
- /**
- * Returns the number of the label buckets in this index.
- */
- public int getBucketCount() {
- return getBucketCount(peer);
- }
-
- /**
- * Returns the index of the bucket in which 's' should appear.
- * Function is synchronized because underlying routine walks an iterator
- * whose state is maintained inside the index object.
- */
- public int getBucketIndex(String s) {
- return getBucketIndex(peer, s);
- }
-
- /**
- * Returns the label for the bucket at the given index (as returned by getBucketIndex).
- */
- public String getBucketLabel(int index) {
- return getBucketLabel(peer, index);
- }
-
- private static native int getBucketCount(long peer);
- private static native int getBucketIndex(long peer, String s);
- private static native String getBucketLabel(long peer, int index);
- }
-
- private long peer;
-
- /**
- * Creates a new AlphabeticIndex for the given locale.
- */
- public AlphabeticIndex(Locale locale) {
- peer = create(locale.toString());
- }
-
- @Override protected synchronized void finalize() throws Throwable {
- try {
- destroy(peer);
- peer = 0;
- } finally {
- super.finalize();
- }
- }
-
- /**
- * Returns the max number of the label buckets allowed in this index.
- */
- public synchronized int getMaxLabelCount() {
- return getMaxLabelCount(peer);
- }
-
- /**
- * Sets the max number of the label buckets in this index.
- * (ICU 51 default is 99)
- */
- public synchronized AlphabeticIndex setMaxLabelCount(int count) {
- setMaxLabelCount(peer, count);
- return this;
- }
-
- /**
- * Adds the index characters from the given locale to the index.
- * The labels are added to those that are already in the index;
- * they do not replace the existing index characters.
- * The collation order for this index is not changed;
- * it remains that of the locale that was originally specified
- * when creating this index.
- */
- public synchronized AlphabeticIndex addLabels(Locale locale) {
- addLabels(peer, locale.toString());
- return this;
- }
-
- /**
- * Adds the index characters in the range between the specified start and
- * end code points, inclusive.
- */
- public synchronized AlphabeticIndex addLabelRange(int codePointStart, int codePointEnd) {
- addLabelRange(peer, codePointStart, codePointEnd);
- return this;
- }
-
- /**
- * Returns the number of the label buckets in this index.
- */
- public synchronized int getBucketCount() {
- return getBucketCount(peer);
- }
-
- /**
- * Returns the index of the bucket in which 's' should appear.
- * Function is synchronized because underlying routine walks an iterator
- * whose state is maintained inside the index object.
- */
- public synchronized int getBucketIndex(String s) {
- return getBucketIndex(peer, s);
- }
-
- /**
- * Returns the label for the bucket at the given index (as returned by getBucketIndex).
- */
- public synchronized String getBucketLabel(int index) {
- return getBucketLabel(peer, index);
- }
-
- /**
- * Returns an ImmutableIndex created from this AlphabeticIndex.
- */
- public synchronized ImmutableIndex getImmutableIndex() {
- return new ImmutableIndex(buildImmutableIndex(peer));
- }
-
- private static native long create(String locale);
- private static native void destroy(long peer);
- private static native int getMaxLabelCount(long peer);
- private static native void setMaxLabelCount(long peer, int count);
- private static native void addLabels(long peer, String locale);
- private static native void addLabelRange(long peer, int codePointStart, int codePointEnd);
- private static native int getBucketCount(long peer);
- private static native int getBucketIndex(long peer, String s);
- private static native String getBucketLabel(long peer, int index);
- private static native long buildImmutableIndex(long peer);
-}
diff --git a/luni/src/main/java/libcore/icu/DateIntervalFormat.java b/luni/src/main/java/libcore/icu/DateIntervalFormat.java
index 7e7ad01..ebbc669 100644
--- a/luni/src/main/java/libcore/icu/DateIntervalFormat.java
+++ b/luni/src/main/java/libcore/icu/DateIntervalFormat.java
@@ -16,8 +16,8 @@
package libcore.icu;
-import com.ibm.icu.util.Calendar;
-import com.ibm.icu.util.ULocale;
+import android.icu.util.Calendar;
+import android.icu.util.ULocale;
import java.text.FieldPosition;
import java.util.TimeZone;
@@ -32,7 +32,7 @@
private static final FormatterCache CACHED_FORMATTERS = new FormatterCache();
- static class FormatterCache extends BasicLruCache<String, com.ibm.icu.text.DateIntervalFormat> {
+ static class FormatterCache extends BasicLruCache<String, android.icu.text.DateIntervalFormat> {
FormatterCache() {
super(8);
}
@@ -49,14 +49,14 @@
// We create a java.util.TimeZone here to use libcore's data and libcore's olson ID / pseudo-tz
// logic.
TimeZone tz = (olsonId != null) ? TimeZone.getTimeZone(olsonId) : TimeZone.getDefault();
- com.ibm.icu.util.TimeZone icuTimeZone = DateUtilsBridge.icuTimeZone(tz);
+ android.icu.util.TimeZone icuTimeZone = DateUtilsBridge.icuTimeZone(tz);
ULocale icuLocale = ULocale.getDefault();
return formatDateRange(icuLocale, icuTimeZone, startMs, endMs, flags);
}
// This is our slightly more sensible internal API. (A truly sane replacement would take a
// skeleton instead of int flags.)
- public static String formatDateRange(ULocale icuLocale, com.ibm.icu.util.TimeZone icuTimeZone,
+ public static String formatDateRange(ULocale icuLocale, android.icu.util.TimeZone icuTimeZone,
long startMs, long endMs, int flags) {
Calendar startCalendar = DateUtilsBridge.createIcuCalendar(icuTimeZone, icuLocale, startMs);
Calendar endCalendar;
@@ -80,21 +80,21 @@
String skeleton = DateUtilsBridge.toSkeleton(startCalendar, endCalendar, flags);
synchronized (CACHED_FORMATTERS) {
- com.ibm.icu.text.DateIntervalFormat formatter =
+ android.icu.text.DateIntervalFormat formatter =
getFormatter(skeleton, icuLocale, icuTimeZone);
return formatter.format(startCalendar, endCalendar, new StringBuffer(),
new FieldPosition(0)).toString();
}
}
- private static com.ibm.icu.text.DateIntervalFormat getFormatter(String skeleton, ULocale locale,
- com.ibm.icu.util.TimeZone icuTimeZone) {
+ private static android.icu.text.DateIntervalFormat getFormatter(String skeleton, ULocale locale,
+ android.icu.util.TimeZone icuTimeZone) {
String key = skeleton + "\t" + locale + "\t" + icuTimeZone;
- com.ibm.icu.text.DateIntervalFormat formatter = CACHED_FORMATTERS.get(key);
+ android.icu.text.DateIntervalFormat formatter = CACHED_FORMATTERS.get(key);
if (formatter != null) {
return formatter;
}
- formatter = com.ibm.icu.text.DateIntervalFormat.getInstance(skeleton, locale);
+ formatter = android.icu.text.DateIntervalFormat.getInstance(skeleton, locale);
formatter.setTimeZone(icuTimeZone);
CACHED_FORMATTERS.put(key, formatter);
return formatter;
diff --git a/luni/src/main/java/libcore/icu/DateTimeFormat.java b/luni/src/main/java/libcore/icu/DateTimeFormat.java
index 7323c26..2809625 100644
--- a/luni/src/main/java/libcore/icu/DateTimeFormat.java
+++ b/luni/src/main/java/libcore/icu/DateTimeFormat.java
@@ -16,12 +16,12 @@
package libcore.icu;
-import com.ibm.icu.text.DateFormat;
-import com.ibm.icu.text.DateTimePatternGenerator;
-import com.ibm.icu.text.DisplayContext;
-import com.ibm.icu.text.SimpleDateFormat;
-import com.ibm.icu.util.Calendar;
-import com.ibm.icu.util.ULocale;
+import android.icu.text.DateFormat;
+import android.icu.text.DateTimePatternGenerator;
+import android.icu.text.DisplayContext;
+import android.icu.text.SimpleDateFormat;
+import android.icu.util.Calendar;
+import android.icu.util.ULocale;
import libcore.util.BasicLruCache;
diff --git a/luni/src/main/java/libcore/icu/DateUtilsBridge.java b/luni/src/main/java/libcore/icu/DateUtilsBridge.java
index 88faa90..6e28874 100644
--- a/luni/src/main/java/libcore/icu/DateUtilsBridge.java
+++ b/luni/src/main/java/libcore/icu/DateUtilsBridge.java
@@ -16,10 +16,10 @@
package libcore.icu;
-import com.ibm.icu.impl.JavaTimeZone;
-import com.ibm.icu.util.Calendar;
-import com.ibm.icu.util.GregorianCalendar;
-import com.ibm.icu.util.ULocale;
+import android.icu.impl.JavaTimeZone;
+import android.icu.util.Calendar;
+import android.icu.util.GregorianCalendar;
+import android.icu.util.ULocale;
/**
* Common methods and constants for the various ICU formatters used to support
@@ -50,13 +50,13 @@
* writing the libcore implementation is faster but restricted to 1902 - 2038.
* Callers must not modify the {@code tz} after calling this method.
*/
- public static com.ibm.icu.util.TimeZone icuTimeZone(java.util.TimeZone tz) {
+ public static android.icu.util.TimeZone icuTimeZone(java.util.TimeZone tz) {
JavaTimeZone javaTimeZone = new JavaTimeZone(tz, null);
javaTimeZone.freeze(); // Optimization - allows the timezone to be copied cheaply.
return javaTimeZone;
}
- public static Calendar createIcuCalendar(com.ibm.icu.util.TimeZone icuTimeZone, ULocale icuLocale,
+ public static Calendar createIcuCalendar(android.icu.util.TimeZone icuTimeZone, ULocale icuLocale,
long timeInMillis) {
Calendar calendar = new GregorianCalendar(icuTimeZone, icuLocale);
calendar.setTimeInMillis(timeInMillis);
diff --git a/luni/src/main/java/libcore/icu/NativeIDN.java b/luni/src/main/java/libcore/icu/NativeIDN.java
deleted file mode 100644
index db93379..0000000
--- a/luni/src/main/java/libcore/icu/NativeIDN.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * 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 libcore.icu;
-
-public final class NativeIDN {
- public static String toASCII(String s, int flags) {
- return convert(s, flags, true);
- }
-
- public static String toUnicode(String s, int flags) {
- try {
- return convert(s, flags, false);
- } catch (IllegalArgumentException ex) {
- // The RI documentation explicitly states that this method can't fail.
- // ICU4C disagrees, as does the RI in practice.
- // The RI just returns the input string if it can't
- return s;
- }
- }
-
- private static String convert(String s, int flags, boolean toAscii) {
- if (s == null) {
- throw new NullPointerException("s == null");
- }
- return convertImpl(s, flags, toAscii);
- }
- private static native String convertImpl(String s, int flags, boolean toAscii);
-
- private NativeIDN() {}
-}
diff --git a/luni/src/main/java/libcore/icu/NativeNormalizer.java b/luni/src/main/java/libcore/icu/NativeNormalizer.java
deleted file mode 100644
index a5d8da2..0000000
--- a/luni/src/main/java/libcore/icu/NativeNormalizer.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * 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 libcore.icu;
-
-import java.text.Normalizer.Form;
-
-public final class NativeNormalizer {
- public static boolean isNormalized(CharSequence src, Form form) {
- return isNormalizedImpl(src.toString(), toUNormalizationMode(form));
- }
-
- public static String normalize(CharSequence src, Form form) {
- return normalizeImpl(src.toString(), toUNormalizationMode(form));
- }
-
- private static int toUNormalizationMode(Form form) {
- // Translates Java enum constants to ICU int constants.
- // See UNormalizationMode in "unicode/unorm.h". Stable API since ICU 2.0.
- switch (form) {
- case NFC: return 4;
- case NFD: return 2;
- case NFKC: return 5;
- case NFKD: return 3;
- }
- throw new AssertionError("unknown Normalizer.Form " + form);
- }
-
- private static native String normalizeImpl(String src, int form);
-
- private static native boolean isNormalizedImpl(String src, int form);
-
- private NativeNormalizer() {}
-}
diff --git a/luni/src/main/java/libcore/icu/NativePluralRules.java b/luni/src/main/java/libcore/icu/NativePluralRules.java
deleted file mode 100644
index f9fe74b..0000000
--- a/luni/src/main/java/libcore/icu/NativePluralRules.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * 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 libcore.icu;
-
-import java.util.Locale;
-
-/**
- * Provides access to ICU's
- * <a href="http://icu-project.org/apiref/icu4c/classPluralRules.html">PluralRules</a> class.
- * This is not necessary for Java API, but is used by frameworks/base's resources system to
- * ease localization of strings to languages with complex grammatical rules regarding number.
- */
-public final class NativePluralRules {
- public static final int ZERO = 0;
- public static final int ONE = 1;
- public static final int TWO = 2;
- public static final int FEW = 3;
- public static final int MANY = 4;
- public static final int OTHER = 5;
-
- private final long address;
-
- private NativePluralRules(long address) {
- this.address = address;
- }
-
- @Override protected void finalize() throws Throwable {
- try {
- finalizeImpl(address);
- } finally {
- super.finalize();
- }
- }
-
- public static NativePluralRules forLocale(Locale locale) {
- return new NativePluralRules(forLocaleImpl(locale.toString()));
- }
-
- /**
- * Returns the constant defined in this class corresponding
- * to the first rule that matches the given value.
- */
- public int quantityForInt(int value) {
- // Pre-L compatibility. http://b/18429565.
- if (value < 0) {
- return OTHER;
- }
- return quantityForIntImpl(address, value);
- }
-
- private static native void finalizeImpl(long address);
- private static native long forLocaleImpl(String localeName);
- private static native int quantityForIntImpl(long address, int value);
-}
diff --git a/luni/src/main/java/libcore/icu/RelativeDateTimeFormatter.java b/luni/src/main/java/libcore/icu/RelativeDateTimeFormatter.java
index e2afa61..a9ead7a 100644
--- a/luni/src/main/java/libcore/icu/RelativeDateTimeFormatter.java
+++ b/luni/src/main/java/libcore/icu/RelativeDateTimeFormatter.java
@@ -19,9 +19,9 @@
import java.util.Locale;
import libcore.util.BasicLruCache;
-import com.ibm.icu.text.DisplayContext;
-import com.ibm.icu.util.Calendar;
-import com.ibm.icu.util.ULocale;
+import android.icu.text.DisplayContext;
+import android.icu.util.Calendar;
+import android.icu.util.ULocale;
import static libcore.icu.DateUtilsBridge.FORMAT_ABBREV_ALL;
import static libcore.icu.DateUtilsBridge.FORMAT_ABBREV_MONTH;
@@ -52,7 +52,7 @@
private static final FormatterCache CACHED_FORMATTERS = new FormatterCache();
static class FormatterCache
- extends BasicLruCache<String, com.ibm.icu.text.RelativeDateTimeFormatter> {
+ extends BasicLruCache<String, android.icu.text.RelativeDateTimeFormatter> {
FormatterCache() {
super(8);
}
@@ -65,7 +65,7 @@
* This is the internal API that implements the functionality of
* DateUtils.getRelativeTimeSpanString(long, long, long, int), which is to
* return a string describing 'time' as a time relative to 'now' such as
- * '5 minutes ago', or 'in 2 days'. More examples can be found in DateUtils'
+ * '5 minutes ago', or 'In 2 days'. More examples can be found in DateUtils'
* doc.
*
* In the implementation below, it selects the appropriate time unit based on
@@ -105,30 +105,30 @@
throw new NullPointerException("tz == null");
}
ULocale icuLocale = ULocale.forLocale(locale);
- com.ibm.icu.util.TimeZone icuTimeZone = DateUtilsBridge.icuTimeZone(tz);
+ android.icu.util.TimeZone icuTimeZone = DateUtilsBridge.icuTimeZone(tz);
return getRelativeTimeSpanString(icuLocale, icuTimeZone, time, now, minResolution, flags,
displayContext);
}
private static String getRelativeTimeSpanString(ULocale icuLocale,
- com.ibm.icu.util.TimeZone icuTimeZone, long time, long now, long minResolution, int flags,
+ android.icu.util.TimeZone icuTimeZone, long time, long now, long minResolution, int flags,
DisplayContext displayContext) {
long duration = Math.abs(now - time);
boolean past = (now >= time);
- com.ibm.icu.text.RelativeDateTimeFormatter.Style style;
+ android.icu.text.RelativeDateTimeFormatter.Style style;
if ((flags & (FORMAT_ABBREV_RELATIVE | FORMAT_ABBREV_ALL)) != 0) {
- style = com.ibm.icu.text.RelativeDateTimeFormatter.Style.SHORT;
+ style = android.icu.text.RelativeDateTimeFormatter.Style.SHORT;
} else {
- style = com.ibm.icu.text.RelativeDateTimeFormatter.Style.LONG;
+ style = android.icu.text.RelativeDateTimeFormatter.Style.LONG;
}
- com.ibm.icu.text.RelativeDateTimeFormatter.Direction direction;
+ android.icu.text.RelativeDateTimeFormatter.Direction direction;
if (past) {
- direction = com.ibm.icu.text.RelativeDateTimeFormatter.Direction.LAST;
+ direction = android.icu.text.RelativeDateTimeFormatter.Direction.LAST;
} else {
- direction = com.ibm.icu.text.RelativeDateTimeFormatter.Direction.NEXT;
+ direction = android.icu.text.RelativeDateTimeFormatter.Direction.NEXT;
}
// 'relative' defaults to true as we are generating relative time span
@@ -136,24 +136,24 @@
// a quantity, such as 'Yesterday', etc.
boolean relative = true;
int count;
- com.ibm.icu.text.RelativeDateTimeFormatter.RelativeUnit unit;
- com.ibm.icu.text.RelativeDateTimeFormatter.AbsoluteUnit aunit = null;
+ android.icu.text.RelativeDateTimeFormatter.RelativeUnit unit;
+ android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit aunit = null;
if (duration < MINUTE_IN_MILLIS && minResolution < MINUTE_IN_MILLIS) {
count = (int)(duration / SECOND_IN_MILLIS);
- unit = com.ibm.icu.text.RelativeDateTimeFormatter.RelativeUnit.SECONDS;
+ unit = android.icu.text.RelativeDateTimeFormatter.RelativeUnit.SECONDS;
} else if (duration < HOUR_IN_MILLIS && minResolution < HOUR_IN_MILLIS) {
count = (int)(duration / MINUTE_IN_MILLIS);
- unit = com.ibm.icu.text.RelativeDateTimeFormatter.RelativeUnit.MINUTES;
+ unit = android.icu.text.RelativeDateTimeFormatter.RelativeUnit.MINUTES;
} else if (duration < DAY_IN_MILLIS && minResolution < DAY_IN_MILLIS) {
// Even if 'time' actually happened yesterday, we don't format it as
// "Yesterday" in this case. Unless the duration is longer than a day,
// or minResolution is specified as DAY_IN_MILLIS by user.
count = (int)(duration / HOUR_IN_MILLIS);
- unit = com.ibm.icu.text.RelativeDateTimeFormatter.RelativeUnit.HOURS;
+ unit = android.icu.text.RelativeDateTimeFormatter.RelativeUnit.HOURS;
} else if (duration < WEEK_IN_MILLIS && minResolution < WEEK_IN_MILLIS) {
count = Math.abs(dayDistance(icuTimeZone, time, now));
- unit = com.ibm.icu.text.RelativeDateTimeFormatter.RelativeUnit.DAYS;
+ unit = android.icu.text.RelativeDateTimeFormatter.RelativeUnit.DAYS;
if (count == 2) {
// Some locales have special terms for "2 days ago". Return them if
@@ -167,15 +167,15 @@
synchronized (CACHED_FORMATTERS) {
str = getFormatter(icuLocale, style, displayContext)
.format(
- com.ibm.icu.text.RelativeDateTimeFormatter.Direction.LAST_2,
- com.ibm.icu.text.RelativeDateTimeFormatter.AbsoluteUnit.DAY);
+ android.icu.text.RelativeDateTimeFormatter.Direction.LAST_2,
+ android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit.DAY);
}
} else {
synchronized (CACHED_FORMATTERS) {
str = getFormatter(icuLocale, style, displayContext)
.format(
- com.ibm.icu.text.RelativeDateTimeFormatter.Direction.NEXT_2,
- com.ibm.icu.text.RelativeDateTimeFormatter.AbsoluteUnit.DAY);
+ android.icu.text.RelativeDateTimeFormatter.Direction.NEXT_2,
+ android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit.DAY);
}
}
if (str != null && !str.isEmpty()) {
@@ -184,17 +184,17 @@
// Fall back to show something like "2 days ago".
} else if (count == 1) {
// Show "Yesterday / Tomorrow" instead of "1 day ago / In 1 day".
- aunit = com.ibm.icu.text.RelativeDateTimeFormatter.AbsoluteUnit.DAY;
+ aunit = android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit.DAY;
relative = false;
} else if (count == 0) {
// Show "Today" if time and now are on the same day.
- aunit = com.ibm.icu.text.RelativeDateTimeFormatter.AbsoluteUnit.DAY;
- direction = com.ibm.icu.text.RelativeDateTimeFormatter.Direction.THIS;
+ aunit = android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit.DAY;
+ direction = android.icu.text.RelativeDateTimeFormatter.Direction.THIS;
relative = false;
}
} else if (minResolution == WEEK_IN_MILLIS) {
count = (int)(duration / WEEK_IN_MILLIS);
- unit = com.ibm.icu.text.RelativeDateTimeFormatter.RelativeUnit.WEEKS;
+ unit = android.icu.text.RelativeDateTimeFormatter.RelativeUnit.WEEKS;
} else {
Calendar timeCalendar = DateUtilsBridge.createIcuCalendar(icuTimeZone, icuLocale, time);
// The duration is longer than a week and minResolution is not
@@ -218,7 +218,7 @@
}
synchronized (CACHED_FORMATTERS) {
- com.ibm.icu.text.RelativeDateTimeFormatter formatter =
+ android.icu.text.RelativeDateTimeFormatter formatter =
getFormatter(icuLocale, style, displayContext);
if (relative) {
return formatter.format(count, direction, unit);
@@ -267,18 +267,18 @@
throw new NullPointerException("tz == null");
}
ULocale icuLocale = ULocale.forLocale(locale);
- com.ibm.icu.util.TimeZone icuTimeZone = DateUtilsBridge.icuTimeZone(tz);
+ android.icu.util.TimeZone icuTimeZone = DateUtilsBridge.icuTimeZone(tz);
long duration = Math.abs(now - time);
// It doesn't make much sense to have results like: "1 week ago, 10:50 AM".
if (transitionResolution > WEEK_IN_MILLIS) {
transitionResolution = WEEK_IN_MILLIS;
}
- com.ibm.icu.text.RelativeDateTimeFormatter.Style style;
+ android.icu.text.RelativeDateTimeFormatter.Style style;
if ((flags & (FORMAT_ABBREV_RELATIVE | FORMAT_ABBREV_ALL)) != 0) {
- style = com.ibm.icu.text.RelativeDateTimeFormatter.Style.SHORT;
+ style = android.icu.text.RelativeDateTimeFormatter.Style.SHORT;
} else {
- style = com.ibm.icu.text.RelativeDateTimeFormatter.Style.LONG;
+ style = android.icu.text.RelativeDateTimeFormatter.Style.LONG;
}
Calendar timeCalendar = DateUtilsBridge.createIcuCalendar(icuTimeZone, icuLocale, time);
@@ -334,13 +334,13 @@
* getFormatter() may have been evicted by the time of the call to
* formatter->action().
*/
- private static com.ibm.icu.text.RelativeDateTimeFormatter getFormatter(
- ULocale locale, com.ibm.icu.text.RelativeDateTimeFormatter.Style style,
+ private static android.icu.text.RelativeDateTimeFormatter getFormatter(
+ ULocale locale, android.icu.text.RelativeDateTimeFormatter.Style style,
DisplayContext displayContext) {
String key = locale + "\t" + style + "\t" + displayContext;
- com.ibm.icu.text.RelativeDateTimeFormatter formatter = CACHED_FORMATTERS.get(key);
+ android.icu.text.RelativeDateTimeFormatter formatter = CACHED_FORMATTERS.get(key);
if (formatter == null) {
- formatter = com.ibm.icu.text.RelativeDateTimeFormatter.getInstance(
+ formatter = android.icu.text.RelativeDateTimeFormatter.getInstance(
locale, null, style, displayContext);
CACHED_FORMATTERS.put(key, formatter);
}
@@ -348,12 +348,12 @@
}
// Return the date difference for the two times in a given timezone.
- private static int dayDistance(com.ibm.icu.util.TimeZone icuTimeZone, long startTime,
+ private static int dayDistance(android.icu.util.TimeZone icuTimeZone, long startTime,
long endTime) {
return julianDay(icuTimeZone, endTime) - julianDay(icuTimeZone, startTime);
}
- private static int julianDay(com.ibm.icu.util.TimeZone icuTimeZone, long time) {
+ private static int julianDay(android.icu.util.TimeZone icuTimeZone, long time) {
long utcMs = time + icuTimeZone.getOffset(time);
return (int) (utcMs / DAY_IN_MS) + EPOCH_JULIAN_DAY;
}
diff --git a/luni/src/main/java/libcore/icu/TimeZoneNames.java b/luni/src/main/java/libcore/icu/TimeZoneNames.java
index 3413a5d..daa915e 100644
--- a/luni/src/main/java/libcore/icu/TimeZoneNames.java
+++ b/luni/src/main/java/libcore/icu/TimeZoneNames.java
@@ -22,6 +22,7 @@
import java.util.HashMap;
import java.util.Locale;
import java.util.TimeZone;
+import java.util.concurrent.TimeUnit;
import libcore.util.BasicLruCache;
import libcore.util.ZoneInfoDB;
@@ -58,7 +59,7 @@
}
@Override protected String[][] create(Locale locale) {
- long start = System.currentTimeMillis();
+ long start = System.nanoTime();
// Set up the 2D array used to hold the names. The first column contains the Olson ids.
String[][] result = new String[availableTimeZoneIds.length][5];
@@ -66,17 +67,17 @@
result[i][0] = availableTimeZoneIds[i];
}
- long nativeStart = System.currentTimeMillis();
+ long nativeStart = System.nanoTime();
fillZoneStrings(locale.toString(), result);
- long nativeEnd = System.currentTimeMillis();
+ long nativeEnd = System.nanoTime();
internStrings(result);
// Ending up in this method too often is an easy way to make your app slow, so we ensure
// it's easy to tell from the log (a) what we were doing, (b) how long it took, and
// (c) that it's all ICU's fault.
- long end = System.currentTimeMillis();
- long nativeDuration = nativeEnd - nativeStart;
- long duration = end - start;
+ long end = System.nanoTime();
+ long nativeDuration = TimeUnit.NANOSECONDS.toMillis(nativeEnd - nativeStart);
+ long duration = TimeUnit.NANOSECONDS.toMillis(end - start);
System.logI("Loaded time zone names for \"" + locale + "\" in " + duration + "ms" +
" (" + nativeDuration + "ms in ICU)");
return result;
diff --git a/luni/src/main/java/libcore/icu/Transliterator.java b/luni/src/main/java/libcore/icu/Transliterator.java
deleted file mode 100644
index 77b5ba7..0000000
--- a/luni/src/main/java/libcore/icu/Transliterator.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (C) 2013 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 libcore.icu;
-
-/**
- * Exposes icu4c's Transliterator.
- */
-public final class Transliterator {
- private long peer;
-
- /**
- * Creates a new Transliterator for the given id.
- */
- public Transliterator(String id) {
- peer = create(id);
- }
-
- @Override protected synchronized void finalize() throws Throwable {
- try {
- destroy(peer);
- peer = 0;
- } finally {
- super.finalize();
- }
- }
-
- /**
- * Returns the ids of all known transliterators.
- */
- public static native String[] getAvailableIDs();
-
- /**
- * Transliterates the specified string.
- */
- public String transliterate(String s) {
- return transliterate(peer, s);
- }
-
- private static native long create(String id);
- private static native void destroy(long peer);
- private static native String transliterate(long peer, String s);
-}
diff --git a/luni/src/main/java/libcore/io/BlockGuardOs.java b/luni/src/main/java/libcore/io/BlockGuardOs.java
index 532493a..0923c85 100644
--- a/luni/src/main/java/libcore/io/BlockGuardOs.java
+++ b/luni/src/main/java/libcore/io/BlockGuardOs.java
@@ -28,6 +28,7 @@
import java.io.InterruptedIOException;
import java.net.InetAddress;
import java.net.InetSocketAddress;
+import java.net.SocketAddress;
import java.net.SocketException;
import java.nio.ByteBuffer;
import static android.system.OsConstants.*;
@@ -58,7 +59,7 @@
}
}
- @Override public FileDescriptor accept(FileDescriptor fd, InetSocketAddress peerAddress) throws ErrnoException, SocketException {
+ @Override public FileDescriptor accept(FileDescriptor fd, SocketAddress peerAddress) throws ErrnoException, SocketException {
BlockGuard.getThreadPolicy().onNetwork();
return tagSocket(os.accept(fd, peerAddress));
}
diff --git a/luni/src/main/java/libcore/io/ClassPathURLStreamHandler.java b/luni/src/main/java/libcore/io/ClassPathURLStreamHandler.java
new file mode 100644
index 0000000..2443da5
--- /dev/null
+++ b/luni/src/main/java/libcore/io/ClassPathURLStreamHandler.java
@@ -0,0 +1,223 @@
+/*
+ * Copyright (C) 2015 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 libcore.io;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FilterInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.JarURLConnection;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLStreamHandler;
+import java.util.jar.JarFile;
+import java.util.jar.StrictJarFile;
+import java.util.zip.ZipEntry;
+import sun.net.www.protocol.jar.Handler;
+
+/**
+ * A {@link URLStreamHandler} for a specific class path {@link JarFile}. This class avoids the need
+ * to open a jar file multiple times to read resources if the jar file can be held open. The
+ * {@link URLConnection} objects created are a subclass of {@link JarURLConnection}.
+ *
+ * <p>Use {@link #getEntryUrlOrNull(String)} to obtain a URL backed by this stream handler.
+ */
+public class ClassPathURLStreamHandler extends Handler {
+ private final String fileUri;
+ private final StrictJarFile strictJarFile;
+ /**
+ * Created on demand if somebody calls {@link JarURLConnection#getJarFile()} and
+ * {@link URLConnection#getUseCaches()} is true.
+ */
+ private JarFile jarFile;
+
+ public ClassPathURLStreamHandler(String jarFileName) throws IOException {
+ // We use StrictJarFile because it is much less heap memory hungry than ZipFile / JarFile.
+ strictJarFile = new StrictJarFile(jarFileName);
+
+ // File.toURI() is compliant with RFC 1738 in always creating absolute path names. If we
+ // construct the URL by concatenating strings, we might end up with illegal URLs for relative
+ // names.
+ this.fileUri = new File(jarFileName).toURI().toString();
+ }
+
+ /**
+ * Obtains a cached {@link JarFile} that points to the same jar file as {@link #strictJarFile}.
+ */
+ JarFile getSharedJarFile() throws IOException {
+ synchronized (this) {
+ if (jarFile == null) {
+ jarFile = new JarFile(strictJarFile.getName());
+ }
+ }
+ return jarFile;
+ }
+
+ /**
+ * Returns a URL backed by this stream handler for the named resource, or {@code null} if the
+ * entry cannot be found under the exact name presented.
+ */
+ public URL getEntryUrlOrNull(String entryName) {
+ if (findEntryWithDirectoryFallback(strictJarFile, entryName) != null) {
+ try {
+ // We rely on the URL/the stream handler to deal with any url encoding necessary here, and
+ // we assume it is completely reversible.
+ return new URL("jar", null, -1, fileUri + "!/" + entryName, this);
+ } catch (MalformedURLException e) {
+ throw new RuntimeException("Invalid entry name", e);
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns true if an entry with the specified name exists and is stored (not compressed),
+ * and false otherwise.
+ */
+ public boolean isEntryStored(String entryName) {
+ ZipEntry entry = strictJarFile.findEntry(entryName);
+ return entry != null && entry.getMethod() == ZipEntry.STORED;
+ }
+
+ @Override
+ protected URLConnection openConnection(URL url) throws IOException {
+ return new ClassPathURLConnection(url);
+ }
+
+ /** Used from tests to indicate this stream handler is finished with. */
+ public void close() throws IOException {
+ strictJarFile.close();
+ if (jarFile != null) {
+ jarFile.close();
+ }
+ }
+
+ /**
+ * Finds an entry with the specified name in the {@code jarFile}. If an exact match isn't found it
+ * will also try with "/" appended, if appropriate. This is to maintain compatibility with
+ * {@link sun.net.www.protocol.jar.Handler} and its treatment of directory entries.
+ */
+ static ZipEntry findEntryWithDirectoryFallback(StrictJarFile jarFile, String entryName) {
+ ZipEntry entry = jarFile.findEntry(entryName);
+ if (entry == null && !entryName.endsWith("/") ) {
+ entry = jarFile.findEntry(entryName + "/");
+ }
+ return entry;
+ }
+
+ private class ClassPathURLConnection extends JarURLConnection {
+ // The StrictJarFile instance is shared across URLConnections and must not be closed.
+ private final StrictJarFile strictJarFile;
+
+ private ZipEntry jarEntry;
+ private InputStream jarInput;
+ private boolean closed;
+
+ /**
+ * Indicates the behavior of the {@link #jarFile}. If true, the reference is shared and should
+ * not be closed. If false, it must be closed.
+ */
+ private boolean jarFileMustBehaveAsCached;
+ private JarFile jarFile;
+
+ public ClassPathURLConnection(URL url) throws MalformedURLException {
+ super(url);
+ this.strictJarFile = ClassPathURLStreamHandler.this.strictJarFile;
+ }
+
+ @Override
+ public void connect() throws IOException {
+ if (!connected) {
+ this.jarEntry = findEntryWithDirectoryFallback(strictJarFile, getEntryName());
+ if (jarEntry == null) {
+ throw new FileNotFoundException(
+ "URL does not correspond to an entry in the zip file. URL=" + url
+ + ", zipfile=" + strictJarFile.getName());
+ }
+ jarFileMustBehaveAsCached = getUseCaches();
+ connected = true;
+ }
+ }
+
+ @Override
+ public JarFile getJarFile() throws IOException {
+ connect();
+
+ // This is more expensive than JarURLConnectionImpl because we only pretend that we wrap a
+ // JarFile. We do cache in the surrounding class if jarFileMustBehaveAsCached is true to
+ // preserve garbage collection semantics to avoid leak warnings.
+ String jarFileName = strictJarFile.getName();
+ if (jarFileMustBehaveAsCached) {
+ jarFile = ClassPathURLStreamHandler.this.getSharedJarFile();
+ } else {
+ jarFile = new JarFile(jarFileName);
+ }
+ return jarFile;
+ }
+
+ @Override
+ public InputStream getInputStream() throws IOException {
+ if (closed) {
+ throw new IllegalStateException("JarURLConnection InputStream has been closed");
+ }
+ connect();
+ if (jarInput != null) {
+ return jarInput;
+ }
+ return jarInput = new FilterInputStream(strictJarFile.getInputStream(jarEntry)) {
+ @Override
+ public void close() throws IOException {
+ super.close();
+ // If the jar file is not cached closing the input stream will close the URLConnection and
+ // any JarFile returned from getJarFile().
+ if (jarFile != null && !jarFileMustBehaveAsCached) {
+ jarFile.close();
+ closed = true;
+ }
+ }
+ };
+ }
+
+ /**
+ * Returns the content type of the entry based on the name of the entry. Returns
+ * non-null results ("content/unknown" for unknown types).
+ *
+ * @return the content type
+ */
+ @Override
+ public String getContentType() {
+ String cType = guessContentTypeFromName(getEntryName());
+ if (cType == null) {
+ cType = "content/unknown";
+ }
+ return cType;
+ }
+
+ @Override
+ public int getContentLength() {
+ try {
+ connect();
+ return (int) getJarEntry().getSize();
+ } catch (IOException e) {
+ // Ignored
+ }
+ return -1;
+ }
+ }
+}
diff --git a/luni/src/main/java/libcore/io/ForwardingOs.java b/luni/src/main/java/libcore/io/ForwardingOs.java
index cb77573..2dfb418 100644
--- a/luni/src/main/java/libcore/io/ForwardingOs.java
+++ b/luni/src/main/java/libcore/io/ForwardingOs.java
@@ -50,7 +50,7 @@
this.os = os;
}
- public FileDescriptor accept(FileDescriptor fd, InetSocketAddress peerAddress) throws ErrnoException, SocketException { return os.accept(fd, peerAddress); }
+ public FileDescriptor accept(FileDescriptor fd, SocketAddress peerAddress) throws ErrnoException, SocketException { return os.accept(fd, peerAddress); }
public boolean access(String path, int mode) throws ErrnoException { return os.access(path, mode); }
public InetAddress[] android_getaddrinfo(String node, StructAddrinfo hints, int netId) throws GaiException { return os.android_getaddrinfo(node, hints, netId); }
public void bind(FileDescriptor fd, InetAddress address, int port) throws ErrnoException, SocketException { os.bind(fd, address, port); }
@@ -169,6 +169,7 @@
public void tcsendbreak(FileDescriptor fd, int duration) throws ErrnoException { os.tcsendbreak(fd, duration); }
public int umask(int mask) { return os.umask(mask); }
public StructUtsname uname() { return os.uname(); }
+ public void unlink(String pathname) throws ErrnoException { os.unlink(pathname); }
public void unsetenv(String name) throws ErrnoException { os.unsetenv(name); }
public int waitpid(int pid, MutableInt status, int options) throws ErrnoException { return os.waitpid(pid, status, options); }
public int write(FileDescriptor fd, ByteBuffer buffer) throws ErrnoException, InterruptedIOException { return os.write(fd, buffer); }
diff --git a/luni/src/main/java/libcore/io/IoBridge.java b/luni/src/main/java/libcore/io/IoBridge.java
index fcb30dd..acf9b39 100644
--- a/luni/src/main/java/libcore/io/IoBridge.java
+++ b/luni/src/main/java/libcore/io/IoBridge.java
@@ -42,6 +42,8 @@
import java.net.UnknownHostException;
import java.nio.ByteBuffer;
import java.util.Arrays;
+import java.util.concurrent.TimeUnit;
+
import static android.system.OsConstants.*;
/**
@@ -149,7 +151,7 @@
IoUtils.setBlocking(fd, false);
// 2. call connect(2) non-blocking.
- long finishTimeMs = System.currentTimeMillis() + timeoutMs;
+ long finishTimeNanos = System.nanoTime() + TimeUnit.MILLISECONDS.toNanos(timeoutMs);
try {
Libcore.os.connect(fd, inetAddress, port);
IoUtils.setBlocking(fd, true); // 4. set the socket back to blocking.
@@ -164,7 +166,8 @@
// 3. loop using poll(2).
int remainingTimeoutMs;
do {
- remainingTimeoutMs = (int) (finishTimeMs - System.currentTimeMillis());
+ remainingTimeoutMs =
+ (int) TimeUnit.NANOSECONDS.toMillis(finishTimeNanos - System.nanoTime());
if (remainingTimeoutMs <= 0) {
throw new SocketTimeoutException(connectDetail(inetAddress, port, timeoutMs, null));
}
diff --git a/luni/src/main/java/libcore/io/Os.java b/luni/src/main/java/libcore/io/Os.java
index 6d28b95..3cae357 100644
--- a/luni/src/main/java/libcore/io/Os.java
+++ b/luni/src/main/java/libcore/io/Os.java
@@ -41,7 +41,7 @@
import java.nio.ByteBuffer;
public interface Os {
- public FileDescriptor accept(FileDescriptor fd, InetSocketAddress peerAddress) throws ErrnoException, SocketException;
+ public FileDescriptor accept(FileDescriptor fd, SocketAddress peerAddress) throws ErrnoException, SocketException;
public boolean access(String path, int mode) throws ErrnoException;
public InetAddress[] android_getaddrinfo(String node, StructAddrinfo hints, int netId) throws GaiException;
public void bind(FileDescriptor fd, InetAddress address, int port) throws ErrnoException, SocketException;
@@ -162,6 +162,7 @@
public void tcsendbreak(FileDescriptor fd, int duration) throws ErrnoException;
public int umask(int mask);
public StructUtsname uname();
+ public void unlink(String pathname) throws ErrnoException;
public void unsetenv(String name) throws ErrnoException;
public int waitpid(int pid, MutableInt status, int options) throws ErrnoException;
public int write(FileDescriptor fd, ByteBuffer buffer) throws ErrnoException, InterruptedIOException;
diff --git a/luni/src/main/java/libcore/io/Posix.java b/luni/src/main/java/libcore/io/Posix.java
index 151809d..b8bbc85 100644
--- a/luni/src/main/java/libcore/io/Posix.java
+++ b/luni/src/main/java/libcore/io/Posix.java
@@ -44,7 +44,7 @@
public final class Posix implements Os {
Posix() { }
- public native FileDescriptor accept(FileDescriptor fd, InetSocketAddress peerAddress) throws ErrnoException, SocketException;
+ public native FileDescriptor accept(FileDescriptor fd, SocketAddress peerAddress) throws ErrnoException, SocketException;
public native boolean access(String path, int mode) throws ErrnoException;
public native InetAddress[] android_getaddrinfo(String node, StructAddrinfo hints, int netId) throws GaiException;
public native void bind(FileDescriptor fd, InetAddress address, int port) throws ErrnoException, SocketException;
@@ -252,6 +252,7 @@
}
private native int umaskImpl(int mask);
public native StructUtsname uname();
+ public native void unlink(String pathname) throws ErrnoException;
public native void unsetenv(String name) throws ErrnoException;
public native int waitpid(int pid, MutableInt status, int options) throws ErrnoException;
public int write(FileDescriptor fd, ByteBuffer buffer) throws ErrnoException, InterruptedIOException {
diff --git a/luni/src/main/java/libcore/net/UriCodec.java b/luni/src/main/java/libcore/net/UriCodec.java
index 03143a3..8efa366 100644
--- a/luni/src/main/java/libcore/net/UriCodec.java
+++ b/luni/src/main/java/libcore/net/UriCodec.java
@@ -375,4 +375,4 @@
return decode(
s, false /* convertPlus */, StandardCharsets.UTF_8, true /* throwOnFailure */);
}
-}
+}
\ No newline at end of file
diff --git a/luni/src/main/java/libcore/util/ZoneInfoDB.java b/luni/src/main/java/libcore/util/ZoneInfoDB.java
index fd8570c..d2cb9ab 100644
--- a/luni/src/main/java/libcore/util/ZoneInfoDB.java
+++ b/luni/src/main/java/libcore/util/ZoneInfoDB.java
@@ -18,17 +18,11 @@
import android.system.ErrnoException;
import java.io.IOException;
-import java.io.RandomAccessFile;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-import java.nio.channels.FileChannel.MapMode;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import java.util.TimeZone;
import libcore.io.BufferIterator;
-import libcore.io.IoUtils;
import libcore.io.MemoryMappedFile;
/**
@@ -253,6 +247,13 @@
public boolean hasTimeZone(String id) throws IOException {
return cache.get(id) != null;
}
+
+ @Override protected void finalize() throws Throwable {
+ if (mappedFile != null) {
+ mappedFile.close();
+ }
+ super.finalize();
+ }
}
private ZoneInfoDB() {
diff --git a/luni/src/main/java/org/apache/harmony/security/fortress/Engine.java b/luni/src/main/java/org/apache/harmony/security/fortress/Engine.java
index 1c794e5..3c929c4 100644
--- a/luni/src/main/java/org/apache/harmony/security/fortress/Engine.java
+++ b/luni/src/main/java/org/apache/harmony/security/fortress/Engine.java
@@ -152,6 +152,14 @@
}
/**
+ * Returns a list of all providers for this type of service or {@code null}
+ * if no matches were found.
+ */
+ public ArrayList<Provider.Service> getServices() {
+ return Services.getServices(serviceName);
+ }
+
+ /**
* Returns a list of all possible matches for a given algorithm. Returns
* {@code null} if no matches were found.
*/
diff --git a/luni/src/main/java/org/apache/harmony/security/fortress/Services.java b/luni/src/main/java/org/apache/harmony/security/fortress/Services.java
index 234f4a2..232b6d2 100644
--- a/luni/src/main/java/org/apache/harmony/security/fortress/Services.java
+++ b/luni/src/main/java/org/apache/harmony/security/fortress/Services.java
@@ -21,7 +21,7 @@
import java.security.Security;
import java.util.ArrayList;
import java.util.HashMap;
-import java.util.Locale;
+import java.util.Iterator;
/**
@@ -134,12 +134,37 @@
}
/**
+ * Looks up the requested service by type. The service {@code type} and
+ * should be provided in the same format used when registering a service
+ * with a provider, for example, "KeyFactory". Callers can cache the
+ * returned service information but such caches should be validated against
+ * the result of Service.getCacheVersion() before use. Returns {@code null}
+ * if there are no services of the given {@code type} found.
+ */
+ public static synchronized ArrayList<Provider.Service> getServices(String type) {
+ ArrayList<Provider.Service> services = null;
+ for (Provider p : providers) {
+ Iterator<Provider.Service> i = p.getServices().iterator();
+ while (i.hasNext()) {
+ Provider.Service s = i.next();
+ if (type.equals(s.getType())) {
+ if (services == null) {
+ services = new ArrayList<>(providers.size());
+ }
+ services.add(s);
+ }
+ }
+ }
+ return services;
+ }
+
+ /**
* Looks up the requested service by type and algorithm. The service
* {@code type} and should be provided in the same format used when
- * registering a service with a provider, for example, "KeyFactory.RSA".
- * Callers can cache the returned service information but such caches should
- * be validated against the result of Service.getCacheVersion() before use.
- * Returns {@code null} if there are no services found.
+ * registering a service with a provider, for example, "KeyFactory" and
+ * "RSA". Callers can cache the returned service information but such caches
+ * should be validated against the result of Service.getCacheVersion()
+ * before use. Returns {@code null} if there are no services found.
*/
public static synchronized ArrayList<Provider.Service> getServices(String type,
String algorithm) {
diff --git a/luni/src/main/java/org/apache/harmony/security/utils/AlgNameMapper.java b/luni/src/main/java/org/apache/harmony/security/utils/AlgNameMapper.java
index c9580c9..871014c 100644
--- a/luni/src/main/java/org/apache/harmony/security/utils/AlgNameMapper.java
+++ b/luni/src/main/java/org/apache/harmony/security/utils/AlgNameMapper.java
@@ -86,14 +86,33 @@
static {
for (String[] element : knownAlgMappings) {
- String algUC = element[1].toUpperCase(Locale.US);
- alg2OidMap.put(algUC, element[0]);
- oid2AlgMap.put(element[0], algUC);
- // map upper case alg name to its original name
- algAliasesMap.put(algUC, element[1]);
+ addMapping(element[0], element[1]);
}
}
+ /**
+ * Adds a mapping to the internal table. Will overwrite any entry already
+ * present. Visible for testing.
+ */
+ public static void addMapping(String oid, String name) {
+ String nameUC = name.toUpperCase(Locale.ROOT);
+ alg2OidMap.put(nameUC, oid);
+ oid2AlgMap.put(oid, nameUC);
+ // map upper case alg name to its original name
+ algAliasesMap.put(nameUC, name);
+ }
+
+ /**
+ * Removes a mapping from the internal table. Visible for testing.
+ */
+ public static void removeMapping(String oid, String name) {
+ String nameUC = name.toUpperCase(Locale.ROOT);
+ alg2OidMap.remove(nameUC);
+ oid2AlgMap.remove(oid);
+ // map upper case alg name to its original name
+ algAliasesMap.remove(nameUC);
+ }
+
// No instances
private AlgNameMapper() {
}
@@ -125,7 +144,7 @@
checkCacheVersion();
// alg2OidMap map contains upper case keys
- String result = alg2OidMap.get(algName.toUpperCase(Locale.US));
+ String result = alg2OidMap.get(algName.toUpperCase(Locale.ROOT));
if (result != null) {
return result;
}
@@ -143,7 +162,7 @@
* Returns algName for OID
*
* @param oid OID to be mapped
- * @return algorithm name
+ * @return algorithm name or {@code null} if not found.
*/
public static String map2AlgName(String oid) {
checkCacheVersion();
@@ -171,7 +190,7 @@
* @return algorithm name
*/
public static String getStandardName(String algName) {
- return algAliasesMap.get(algName.toUpperCase(Locale.US));
+ return algAliasesMap.get(algName.toUpperCase(Locale.ROOT));
}
// Searches given provider for mappings like
@@ -184,11 +203,11 @@
for (String service : serviceName) {
String keyPrfix2find = "Alg.Alias." + service + ".";
for (Entry<Object, Object> me : entrySet) {
- String key = (String)me.getKey();
+ String key = (String) me.getKey();
if (key.startsWith(keyPrfix2find)) {
String alias = key.substring(keyPrfix2find.length());
- String alg = (String)me.getValue();
- String algUC = alg.toUpperCase(Locale.US);
+ String alg = (String) me.getValue();
+ String algUC = alg.toUpperCase(Locale.ROOT);
if (isOID(alias)) {
if (alias.startsWith("OID.")) {
alias = alias.substring(4);
@@ -206,9 +225,9 @@
// map upper case alg name to its original name
algAliasesMap.put(algUC, alg);
}
- // Do not override known standard names
- } else if (!algAliasesMap.containsKey(alias.toUpperCase(Locale.US))) {
- algAliasesMap.put(alias.toUpperCase(Locale.US), alg);
+ // Do not override known standard names
+ } else if (!algAliasesMap.containsKey(alias.toUpperCase(Locale.ROOT))) {
+ algAliasesMap.put(alias.toUpperCase(Locale.ROOT), alg);
}
}
}
diff --git a/luni/src/main/java/org/apache/harmony/security/x501/AttributeTypeAndValue.java b/luni/src/main/java/org/apache/harmony/security/x501/AttributeTypeAndValue.java
index 171d9c2..71afa9d 100644
--- a/luni/src/main/java/org/apache/harmony/security/x501/AttributeTypeAndValue.java
+++ b/luni/src/main/java/org/apache/harmony/security/x501/AttributeTypeAndValue.java
@@ -251,9 +251,10 @@
sb.append('=');
if (value.escapedString == value.getHexString()) {
sb.append(value.getHexString().toUpperCase(Locale.US));
- } else if (value.escapedString.length() != value.rawString.length()) {
+ } else if (value.escapedString.length() != value.rawString.length()
+ || value.hasQEN) {
// was escaped
- value.appendQEString(sb);
+ value.appendQuotedString(sb);
} else {
sb.append(value.escapedString);
}
diff --git a/luni/src/main/java/org/apache/harmony/security/x501/AttributeValue.java b/luni/src/main/java/org/apache/harmony/security/x501/AttributeValue.java
index b3eb200..b38b78a 100644
--- a/luni/src/main/java/org/apache/harmony/security/x501/AttributeValue.java
+++ b/luni/src/main/java/org/apache/harmony/security/x501/AttributeValue.java
@@ -51,16 +51,16 @@
public byte[] bytes; //FIXME remove??? bytes to be encoded
- public boolean hasQE; // raw string contains '"' or '\'
+ public boolean hasQEN; // raw string contains '"', '\' or '\n'
public final String rawString;
- public AttributeValue(String parsedString, boolean hasQorE, ObjectIdentifier oid) {
+ public AttributeValue(String parsedString, boolean mustBeOutputWithQuotes, ObjectIdentifier oid) {
wasEncoded = false;
- this.hasQE = hasQorE;
+ this.hasQEN = mustBeOutputWithQuotes;
this.rawString = parsedString;
- this.escapedString = makeEscaped(rawString); // overwrites hasQE
+ this.escapedString = makeEscaped(rawString); // overwrites hasQEN
int tag;
if (oid == AttributeTypeAndValue.EMAILADDRESS || oid == AttributeTypeAndValue.DC) {
@@ -180,9 +180,9 @@
return (Collection<?>) new ASN1SetOf(type).decode(encoded);
}
- public void appendQEString(StringBuilder sb) {
+ public void appendQuotedString(StringBuilder sb) {
sb.append('"');
- if (hasQE) {
+ if (hasQEN) {
char c;
for (int i = 0; i < rawString.length(); i++) {
c = rawString.charAt(i);
@@ -247,11 +247,16 @@
case '"':
case '\\':
- hasQE = true;
buf.append('\\');
buf.append(ch);
+ hasQEN = true;
break;
-
+ case '\n':
+ // New line is treated specially in other contexts (that's we need to set hasQEN)
+ // but shouldn't be escaped (see rfc2253, rfc 1779 and RI).
+ buf.append(ch);
+ hasQEN = true;
+ break;
case ',':
case '+':
case '<':
diff --git a/luni/src/main/java/org/apache/harmony/security/x509/DNParser.java b/luni/src/main/java/org/apache/harmony/security/x509/DNParser.java
index 2f6fcb9..f15cc81 100644
--- a/luni/src/main/java/org/apache/harmony/security/x509/DNParser.java
+++ b/luni/src/main/java/org/apache/harmony/security/x509/DNParser.java
@@ -50,8 +50,8 @@
/** distinguished name chars */
private final char[] chars;
- /** raw string contains '"' or '\' */
- private boolean hasQE;
+ /** raw string contains '"', '\' or '\n' */
+ private boolean hasQEN;
/** DER encoding of currently parsed item */
private byte[] encoded;
@@ -67,7 +67,7 @@
* Returns the next attribute type: (ALPHA 1*keychar) / oid
*/
private String nextAT() throws IOException {
- hasQE = false; // reset
+ hasQEN = false; // reset
// skip preceding space chars, they can present after
// comma or semicolon (compatibility with RFC 1779)
@@ -271,7 +271,11 @@
switch (ch) {
case '"':
case '\\':
- hasQE = true;
+ // <CR> Is not a special character in RFC2253, but it is in RFC1779. The Javadoc in the RI for
+ // X500Principal says that names are according to RFC2253 but ones according to RFC1779
+ // should also be accepted.
+ case '\n':
+ hasQEN = true;
return ch;
case ',':
case '=':
@@ -403,7 +407,7 @@
switch (chars[pos]) {
case '"':
- atav.add(new AttributeTypeAndValue(oid, new AttributeValue(quotedAV(), hasQE, oid)));
+ atav.add(new AttributeTypeAndValue(oid, new AttributeValue(quotedAV(), hasQEN, oid)));
break;
case '#':
atav.add(new AttributeTypeAndValue(oid, new AttributeValue(hexAV(), encoded)));
@@ -416,7 +420,7 @@
break;
default:
atav.add(new AttributeTypeAndValue(oid,
- new AttributeValue(escapedAV(), hasQE, oid)));
+ new AttributeValue(escapedAV(), hasQEN, oid)));
}
if (pos >= chars.length) {
diff --git a/luni/src/main/native/AsynchronousCloseMonitor.cpp b/luni/src/main/native/AsynchronousCloseMonitor.cpp
index 31cde00..6c9b2e5 100644
--- a/luni/src/main/native/AsynchronousCloseMonitor.cpp
+++ b/luni/src/main/native/AsynchronousCloseMonitor.cpp
@@ -38,11 +38,7 @@
* The specific signal chosen here is arbitrary, but bionic needs to know so that SIGRTMIN
* starts at a higher value.
*/
-#if defined(__APPLE__)
-static const int BLOCKED_THREAD_SIGNAL = SIGUSR2;
-#else
static const int BLOCKED_THREAD_SIGNAL = __SIGRTMIN + 2;
-#endif
static void blockedThreadSignalHandler(int /*signal*/) {
// Do nothing. We only sent this signal for its side-effect of interrupting syscalls.
diff --git a/luni/src/main/native/NetworkUtilities.cpp b/luni/src/main/native/NetworkUtilities.cpp
index ee52fd6..e357b4a 100644
--- a/luni/src/main/native/NetworkUtilities.cpp
+++ b/luni/src/main/native/NetworkUtilities.cpp
@@ -61,10 +61,6 @@
addressLength = 16;
sin_port = ntohs(sin6.sin6_port);
scope_id = sin6.sin6_scope_id;
- } else if (ss.ss_family == AF_UNIX) {
- const sockaddr_un& sun = reinterpret_cast<const sockaddr_un&>(ss);
- rawAddress = &sun.sun_path;
- addressLength = strlen(sun.sun_path);
} else {
// We can't throw SocketException. We aren't meant to see bad addresses, so seeing one
// really does imply an internal error.
@@ -83,14 +79,6 @@
env->SetByteArrayRegion(byteArray.get(), 0, addressLength,
reinterpret_cast<const jbyte*>(rawAddress));
- if (ss.ss_family == AF_UNIX) {
- // Note that we get here for AF_UNIX sockets on accept(2). The unix(7) man page claims
- // that the peer's sun_path will contain the path, but in practice it doesn't, and the
- // peer length is returned as 2 (meaning only the sun_family field was set).
- static jmethodID ctor = env->GetMethodID(JniConstants::inetUnixAddressClass, "<init>", "([B)V");
- return env->NewObject(JniConstants::inetUnixAddressClass, ctor, byteArray.get());
- }
-
static jmethodID getByAddressMethod = env->GetStaticMethodID(JniConstants::inetAddressClass,
"getByAddress", "(Ljava/lang/String;[BI)Ljava/net/InetAddress;");
if (getByAddressMethod == NULL) {
@@ -121,7 +109,7 @@
}
// Check this is an address family we support.
- if (ss.ss_family != AF_INET && ss.ss_family != AF_INET6 && ss.ss_family != AF_UNIX) {
+ if (ss.ss_family != AF_INET && ss.ss_family != AF_INET6) {
jniThrowExceptionFmt(env, "java/lang/IllegalArgumentException",
"inetAddressToSockaddr bad family: %i", ss.ss_family);
return false;
@@ -135,25 +123,6 @@
return false;
}
- // Handle the AF_UNIX special case.
- if (ss.ss_family == AF_UNIX) {
- sockaddr_un& sun = reinterpret_cast<sockaddr_un&>(ss);
-
- size_t path_length = env->GetArrayLength(addressBytes.get());
- if (path_length >= sizeof(sun.sun_path)) {
- jniThrowExceptionFmt(env, "java/lang/IllegalArgumentException",
- "inetAddressToSockaddr path too long for AF_UNIX: %i", path_length);
- return false;
- }
-
- // Copy the bytes...
- jbyte* dst = reinterpret_cast<jbyte*>(&sun.sun_path);
- memset(dst, 0, sizeof(sun.sun_path));
- env->GetByteArrayRegion(addressBytes.get(), 0, path_length, dst);
- sa_len = sizeof(sun.sun_path);
- return true;
- }
-
// TODO: bionic's getnameinfo(3) seems to want its length parameter to be exactly
// sizeof(sockaddr_in) for an IPv4 address and sizeof (sockaddr_in6) for an
// IPv6 address. Fix getnameinfo so it accepts sizeof(sockaddr_storage), and
diff --git a/luni/src/main/native/NetworkUtilities.h b/luni/src/main/native/NetworkUtilities.h
index 6b720d4..db1ad1f 100644
--- a/luni/src/main/native/NetworkUtilities.h
+++ b/luni/src/main/native/NetworkUtilities.h
@@ -17,25 +17,24 @@
#include "jni.h"
#include <sys/socket.h>
-// Convert from sockaddr_storage to Inet4Address (AF_INET), Inet6Address (AF_INET6), or
-// InetUnixAddress (AF_UNIX). If 'port' is non-NULL and the address family includes a notion
+// Convert from sockaddr_storage to Inet4Address (AF_INET) or Inet6Address (AF_INET6).
+// If 'port' is non-NULL and the address family includes a notion
// of port number, *port will be set to the port number.
jobject sockaddrToInetAddress(JNIEnv* env, const sockaddr_storage& ss, int* port);
-// Convert from InetAddress to sockaddr_storage. An InetUnixAddress will be converted to
-// an AF_UNIX sockaddr_un. An Inet6Address will be converted to an AF_INET6 sockaddr_in6.
-// An Inet4Address will be converted to an IPv4-mapped AF_INET6 sockaddr_in6. This is what
-// you want if you're about to perform an operation on a socket, since all our sockets
-// are AF_INET6.
+// Convert from InetAddress to sockaddr_storage. An Inet6Address will be converted to an
+// AF_INET6 sockaddr_in6. An Inet4Address will be converted to an IPv4-mapped AF_INET6
+// sockaddr_in6. This is what you want if you're about to perform an operation on a socket,
+// since all our sockets are AF_INET6.
bool inetAddressToSockaddr(JNIEnv* env, jobject inetAddress, int port,
sockaddr_storage& ss, socklen_t& sa_len);
-// Convert from InetAddress to sockaddr_storage. An InetUnixAddress will be converted to
-// an AF_UNIX sockaddr_un. An Inet6Address will be converted to an AF_INET6 sockaddr_in6.
-// An Inet4Address will be converted to a sockaddr_in. This is probably only useful for
-// getnameinfo(2), where we'll be presenting the result to the user and the user may actually
-// care whether the original address was pure IPv4 or an IPv4-mapped IPv6 address, and
-// for the MCAST_JOIN_GROUP, MCAST_LEAVE_GROUP, and other multicast socket options.
+// Convert from InetAddress to sockaddr_storage. An Inet6Address will be converted to an
+// AF_INET6 sockaddr_in6. An Inet4Address will be converted to a sockaddr_in. This is probably
+// only useful for getnameinfo(2), where we'll be presenting the result to the user and the
+// user may actually care whether the original address was pure IPv4 or an IPv4-mapped IPv6
+// address, and for the MCAST_JOIN_GROUP, MCAST_LEAVE_GROUP, and other multicast socket
+// options.
bool inetAddressToSockaddrVerbatim(JNIEnv* env, jobject inetAddress, int port,
sockaddr_storage& ss, socklen_t& sa_len);
diff --git a/luni/src/main/native/Portability.h b/luni/src/main/native/Portability.h
index 5900cb0..4df3353 100644
--- a/luni/src/main/native/Portability.h
+++ b/luni/src/main/native/Portability.h
@@ -17,64 +17,10 @@
#ifndef PORTABILITY_H_included
#define PORTABILITY_H_included
-#if defined(__APPLE__)
-
-// Mac OS.
-#include <AvailabilityMacros.h> // For MAC_OS_X_VERSION_MAX_ALLOWED
-
-#include <libkern/OSByteOrder.h>
-#define bswap_16 OSSwapInt16
-#define bswap_32 OSSwapInt32
-#define bswap_64 OSSwapInt64
-
-#include <crt_externs.h>
-#define environ (*_NSGetEnviron())
-
-// Mac OS has a 64-bit off_t and no 32-bit compatibility cruft.
-#define flock64 flock
-#define ftruncate64 ftruncate
-#define isnanf __inline_isnanf
-#define lseek64 lseek
-#define pread64 pread
-#define pwrite64 pwrite
-
-// TODO: Darwin appears to have an fdatasync syscall.
-static inline int fdatasync(int fd) { return fsync(fd); }
-
-// For Linux-compatible sendfile(3).
-#include <sys/socket.h>
-#include <sys/types.h>
-static inline ssize_t sendfile(int out_fd, int in_fd, off_t* offset, size_t count) {
- off_t in_out_count = count;
- int result = sendfile(in_fd, out_fd, *offset, &in_out_count, NULL, 0);
- if (result == -1) {
- return -1;
- }
- return in_out_count;
-}
-
-// For mincore(3).
-#define _DARWIN_C_SOURCE
-#include <sys/mman.h>
-#undef _DARWIN_C_SOURCE
-static inline int mincore(void* addr, size_t length, unsigned char* vec) {
- return mincore(addr, length, reinterpret_cast<char*>(vec));
-}
-
-// For statfs(3).
-#include <sys/param.h>
-#include <sys/mount.h>
-
-#else
-
-// Bionic or glibc.
-
#include <byteswap.h>
#include <sys/sendfile.h>
#include <sys/statvfs.h>
-#endif
-
#include <netdb.h>
#if defined(__BIONIC__)
extern "C" int android_getaddrinfofornet(const char*, const char*, const struct addrinfo*, unsigned, unsigned, struct addrinfo**);
diff --git a/luni/src/main/native/Register.cpp b/luni/src/main/native/Register.cpp
index e11e25e..5130675 100644
--- a/luni/src/main/native/Register.cpp
+++ b/luni/src/main/native/Register.cpp
@@ -39,15 +39,10 @@
REGISTER(register_java_util_jar_StrictJarFile);
REGISTER(register_java_util_regex_Matcher);
REGISTER(register_java_util_regex_Pattern);
- REGISTER(register_libcore_icu_AlphabeticIndex);
REGISTER(register_libcore_icu_ICU);
REGISTER(register_libcore_icu_NativeCollation);
REGISTER(register_libcore_icu_NativeConverter);
- REGISTER(register_libcore_icu_NativeIDN);
- REGISTER(register_libcore_icu_NativeNormalizer);
- REGISTER(register_libcore_icu_NativePluralRules);
REGISTER(register_libcore_icu_TimeZoneNames);
- REGISTER(register_libcore_icu_Transliterator);
REGISTER(register_libcore_io_AsynchronousCloseMonitor);
REGISTER(register_libcore_io_Memory);
REGISTER(register_libcore_io_Posix);
diff --git a/luni/src/main/native/android_system_OsConstants.cpp b/luni/src/main/native/android_system_OsConstants.cpp
index a11ea76..fb912a7 100644
--- a/luni/src/main/native/android_system_OsConstants.cpp
+++ b/luni/src/main/native/android_system_OsConstants.cpp
@@ -30,11 +30,10 @@
#include <stdlib.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
-#ifndef __APPLE__
#include <sys/prctl.h>
-#endif
#include <sys/socket.h>
#include <sys/stat.h>
+#include <sys/un.h>
#include <sys/wait.h>
#include <sys/xattr.h>
#include <unistd.h>
@@ -43,10 +42,8 @@
#include <linux/if_ether.h>
// After the others because these are not necessarily self-contained in glibc.
-#ifndef __APPLE__
#include <linux/if_addr.h>
#include <linux/rtnetlink.h>
-#endif
#include <net/if.h> // After <sys/socket.h> to work around a Mac header file bug.
@@ -211,6 +208,7 @@
initConstant(env, c, "ETIME", ETIME);
initConstant(env, c, "ETIMEDOUT", ETIMEDOUT);
initConstant(env, c, "ETXTBSY", ETXTBSY);
+ initConstant(env, c, "EUSERS", EUSERS);
#if EWOULDBLOCK != EAGAIN
#error EWOULDBLOCK != EAGAIN
#endif
@@ -332,6 +330,7 @@
initConstant(env, c, "IP_MULTICAST_IF", IP_MULTICAST_IF);
initConstant(env, c, "IP_MULTICAST_LOOP", IP_MULTICAST_LOOP);
initConstant(env, c, "IP_MULTICAST_TTL", IP_MULTICAST_TTL);
+ initConstant(env, c, "IP_RECVTOS", IP_RECVTOS);
initConstant(env, c, "IP_TOS", IP_TOS);
initConstant(env, c, "IP_TTL", IP_TTL);
initConstant(env, c, "MAP_FIXED", MAP_FIXED);
@@ -384,6 +383,7 @@
initConstant(env, c, "O_RDONLY", O_RDONLY);
initConstant(env, c, "O_RDWR", O_RDWR);
initConstant(env, c, "O_SYNC", O_SYNC);
+ initConstant(env, c, "O_DSYNC", O_DSYNC);
initConstant(env, c, "O_TRUNC", O_TRUNC);
initConstant(env, c, "O_WRONLY", O_WRONLY);
initConstant(env, c, "POLLERR", POLLERR);
@@ -414,7 +414,6 @@
// members. The best we can do (barring UAPI / kernel version checks) is
// to hope they exist on all host linuxes we're building on. These
// constants have been around since 2.6.35 at least, so we should be ok.
-#if !defined(__APPLE__)
initConstant(env, c, "RT_SCOPE_HOST", RT_SCOPE_HOST);
initConstant(env, c, "RT_SCOPE_LINK", RT_SCOPE_LINK);
initConstant(env, c, "RT_SCOPE_NOWHERE", RT_SCOPE_NOWHERE);
@@ -433,7 +432,6 @@
initConstant(env, c, "RTMGRP_NEIGH", RTMGRP_NEIGH);
initConstant(env, c, "RTMGRP_NOTIFY", RTMGRP_NOTIFY);
initConstant(env, c, "RTMGRP_TC", RTMGRP_TC);
-#endif
initConstant(env, c, "SEEK_CUR", SEEK_CUR);
initConstant(env, c, "SEEK_END", SEEK_END);
initConstant(env, c, "SEEK_SET", SEEK_SET);
@@ -550,6 +548,9 @@
initConstant(env, c, "S_IXOTH", S_IXOTH);
initConstant(env, c, "S_IXUSR", S_IXUSR);
initConstant(env, c, "TCP_NODELAY", TCP_NODELAY);
+ initConstant(env, c, "TIOCOUTQ", TIOCOUTQ);
+ // UNIX_PATH_MAX is mentioned in some versions of unix(7), but not actually declared.
+ initConstant(env, c, "UNIX_PATH_MAX", sizeof(sockaddr_un::sun_path));
initConstant(env, c, "WCONTINUED", WCONTINUED);
initConstant(env, c, "WEXITED", WEXITED);
initConstant(env, c, "WNOHANG", WNOHANG);
diff --git a/luni/src/main/native/cbigint.cpp b/luni/src/main/native/cbigint.cpp
index 6943ca2..c202ed7 100644
--- a/luni/src/main/native/cbigint.cpp
+++ b/luni/src/main/native/cbigint.cpp
@@ -18,31 +18,9 @@
#include <string.h>
#include "cbigint.h"
-#if defined(__linux__) || defined(__APPLE__)
-#define USE_LL
-#endif
-
-#if __BYTE_ORDER == __LITTLE_ENDIAN
-#define at(i) (i)
-#else
-#define at(i) ((i)^1)
-/* the sequence for halfAt is -1, 2, 1, 4, 3, 6, 5, 8... */
-/* and it should correspond to 0, 1, 2, 3, 4, 5, 6, 7... */
-#define halfAt(i) (-((-(i)) ^ 1))
-#endif
-
#define HIGH_IN_U64(u64) ((u64) >> 32)
-#if defined(USE_LL)
#define LOW_IN_U64(u64) ((u64) & 0x00000000FFFFFFFFLL)
-#else
-#if defined(USE_L)
-#define LOW_IN_U64(u64) ((u64) & 0x00000000FFFFFFFFL)
-#else
-#define LOW_IN_U64(u64) ((u64) & 0x00000000FFFFFFFF)
-#endif /* USE_L */
-#endif /* USE_LL */
-#if defined(USE_LL)
#define TEN_E1 (0xALL)
#define TEN_E2 (0x64LL)
#define TEN_E3 (0x3E8LL)
@@ -53,54 +31,15 @@
#define TEN_E8 (0x5F5E100LL)
#define TEN_E9 (0x3B9ACA00LL)
#define TEN_E19 (0x8AC7230489E80000LL)
-#else
-#if defined(USE_L)
-#define TEN_E1 (0xAL)
-#define TEN_E2 (0x64L)
-#define TEN_E3 (0x3E8L)
-#define TEN_E4 (0x2710L)
-#define TEN_E5 (0x186A0L)
-#define TEN_E6 (0xF4240L)
-#define TEN_E7 (0x989680L)
-#define TEN_E8 (0x5F5E100L)
-#define TEN_E9 (0x3B9ACA00L)
-#define TEN_E19 (0x8AC7230489E80000L)
-#else
-#define TEN_E1 (0xA)
-#define TEN_E2 (0x64)
-#define TEN_E3 (0x3E8)
-#define TEN_E4 (0x2710)
-#define TEN_E5 (0x186A0)
-#define TEN_E6 (0xF4240)
-#define TEN_E7 (0x989680)
-#define TEN_E8 (0x5F5E100)
-#define TEN_E9 (0x3B9ACA00)
-#define TEN_E19 (0x8AC7230489E80000)
-#endif /* USE_L */
-#endif /* USE_LL */
#define TIMES_TEN(x) (((x) << 3) + ((x) << 1))
#define bitSection(x, mask, shift) (((x) & (mask)) >> (shift))
#define CREATE_DOUBLE_BITS(normalizedM, e) (((normalizedM) & MANTISSA_MASK) | ((static_cast<uint64_t>((e) + E_OFFSET)) << 52))
-#if defined(USE_LL)
#define MANTISSA_MASK (0x000FFFFFFFFFFFFFLL)
#define EXPONENT_MASK (0x7FF0000000000000LL)
#define NORMAL_MASK (0x0010000000000000LL)
#define SIGN_MASK (0x8000000000000000LL)
-#else
-#if defined(USE_L)
-#define MANTISSA_MASK (0x000FFFFFFFFFFFFFL)
-#define EXPONENT_MASK (0x7FF0000000000000L)
-#define NORMAL_MASK (0x0010000000000000L)
-#define SIGN_MASK (0x8000000000000000L)
-#else
-#define MANTISSA_MASK (0x000FFFFFFFFFFFFF)
-#define EXPONENT_MASK (0x7FF0000000000000)
-#define NORMAL_MASK (0x0010000000000000)
-#define SIGN_MASK (0x8000000000000000)
-#endif /* USE_L */
-#endif /* USE_LL */
#define E_OFFSET (1075)
@@ -229,53 +168,28 @@
do
{
product =
- HIGH_IN_U64 (product) + result[at (resultIndex)] +
+ HIGH_IN_U64 (product) + result[resultIndex] +
arg2 * LOW_U32_FROM_PTR (arg1 + index);
- result[at (resultIndex)] = LOW_U32_FROM_VAR (product);
+ result[resultIndex] = LOW_U32_FROM_VAR (product);
++resultIndex;
product =
- HIGH_IN_U64 (product) + result[at (resultIndex)] +
+ HIGH_IN_U64 (product) + result[resultIndex] +
arg2 * HIGH_U32_FROM_PTR (arg1 + index);
- result[at (resultIndex)] = LOW_U32_FROM_VAR (product);
+ result[resultIndex] = LOW_U32_FROM_VAR (product);
++resultIndex;
}
while (++index < length);
- result[at (resultIndex)] += HIGH_U32_FROM_VAR (product);
- if (result[at (resultIndex)] < HIGH_U32_FROM_VAR (product))
+ result[resultIndex] += HIGH_U32_FROM_VAR (product);
+ if (result[resultIndex] < HIGH_U32_FROM_VAR (product))
{
/* must be careful with ++ operator and macro expansion */
++resultIndex;
- while (++result[at (resultIndex)] == 0)
+ while (++result[resultIndex] == 0)
++resultIndex;
}
}
-#if __BYTE_ORDER != __LITTLE_ENDIAN
-void simpleMultiplyAddHighPrecisionBigEndianFix(uint64_t* arg1, int32_t length, uint64_t arg2, uint32_t* result) {
- /* Assumes result can hold the product and arg2 only holds 32 bits of information */
- int32_t index = 0;
- int32_t resultIndex = 0;
- uint64_t product = 0;
-
- do {
- product = HIGH_IN_U64(product) + result[halfAt(resultIndex)] + arg2 * LOW_U32_FROM_PTR(arg1 + index);
- result[halfAt(resultIndex)] = LOW_U32_FROM_VAR(product);
- ++resultIndex;
- product = HIGH_IN_U64(product) + result[halfAt(resultIndex)] + arg2 * HIGH_U32_FROM_PTR(arg1 + index);
- result[halfAt(resultIndex)] = LOW_U32_FROM_VAR(product);
- ++resultIndex;
- } while (++index < length);
-
- result[halfAt(resultIndex)] += HIGH_U32_FROM_VAR(product);
- if (result[halfAt(resultIndex)] < HIGH_U32_FROM_VAR(product)) {
- /* must be careful with ++ operator and macro expansion */
- ++resultIndex;
- while (++result[halfAt(resultIndex)] == 0) ++resultIndex;
- }
-}
-#endif
-
void
multiplyHighPrecision (uint64_t * arg1, int32_t length1, uint64_t * arg2, int32_t length2,
uint64_t * result, int32_t length)
@@ -304,11 +218,7 @@
{
simpleMultiplyAddHighPrecision (arg1, length1, LOW_IN_U64 (arg2[count]),
resultIn32 + (++index));
-#if __BYTE_ORDER == __LITTLE_ENDIAN
simpleMultiplyAddHighPrecision(arg1, length1, HIGH_IN_U64(arg2[count]), resultIn32 + (++index));
-#else
- simpleMultiplyAddHighPrecisionBigEndianFix(arg1, length1, HIGH_IN_U64(arg2[count]), resultIn32 + (++index));
-#endif
}
}
@@ -374,7 +284,6 @@
if (*y == 0)
return 0;
-#if defined(USE_LL)
if (*y & 0xFFFFFFFF00000000LL)
{
x = HIGH_U32_FROM_PTR (y);
@@ -385,31 +294,6 @@
x = LOW_U32_FROM_PTR (y);
result = 0;
}
-#else
-#if defined(USE_L)
- if (*y & 0xFFFFFFFF00000000L)
- {
- x = HIGH_U32_FROM_PTR (y);
- result = 32;
- }
- else
- {
- x = LOW_U32_FROM_PTR (y);
- result = 0;
- }
-#else
- if (*y & 0xFFFFFFFF00000000)
- {
- x = HIGH_U32_FROM_PTR (y);
- result = 32;
- }
- else
- {
- x = LOW_U32_FROM_PTR (y);
- result = 0;
- }
-#endif /* USE_L */
-#endif /* USE_LL */
if (x & 0xFFFF0000)
{
@@ -445,7 +329,6 @@
if (*y == 0)
return 0;
-#if defined(USE_LL)
if (*y & 0x00000000FFFFFFFFLL)
{
x = LOW_U32_FROM_PTR (y);
@@ -456,31 +339,6 @@
x = HIGH_U32_FROM_PTR (y);
result = 32;
}
-#else
-#if defined(USE_L)
- if (*y & 0x00000000FFFFFFFFL)
- {
- x = LOW_U32_FROM_PTR (y);
- result = 0;
- }
- else
- {
- x = HIGH_U32_FROM_PTR (y);
- result = 32;
- }
-#else
- if (*y & 0x00000000FFFFFFFF)
- {
- x = LOW_U32_FROM_PTR (y);
- result = 0;
- }
- else
- {
- x = HIGH_U32_FROM_PTR (y);
- result = 32;
- }
-#endif /* USE_L */
-#endif /* USE_LL */
if (!(x & 0xFFFF))
{
diff --git a/luni/src/main/native/java_lang_ProcessManager.cpp b/luni/src/main/native/java_lang_ProcessManager.cpp
index 3a97ac6..efa5e77 100644
--- a/luni/src/main/native/java_lang_ProcessManager.cpp
+++ b/luni/src/main/native/java_lang_ProcessManager.cpp
@@ -38,11 +38,6 @@
static void CloseNonStandardFds(int status_pipe_fd) {
// On Cygwin, Linux, and Solaris, the best way to close iterates over "/proc/self/fd/".
const char* fd_path = "/proc/self/fd";
-#if defined(__APPLE__)
- // On Mac OS, there's "/dev/fd/" which Linux seems to link to "/proc/self/fd/",
- // but which on Solaris appears to be something quite different.
- fd_path = "/dev/fd";
-#endif
// Keep track of the system properties fd so we don't close it.
int properties_fd = -1;
diff --git a/luni/src/main/native/java_lang_StrictMath.cpp b/luni/src/main/native/java_lang_StrictMath.cpp
index e8c6dfb..d0bb8ce 100644
--- a/luni/src/main/native/java_lang_StrictMath.cpp
+++ b/luni/src/main/native/java_lang_StrictMath.cpp
@@ -42,14 +42,6 @@
return ieee_remainder(a, b);
}
-static jdouble StrictMath_floor(JNIEnv*, jclass, jdouble a) {
- return ieee_floor(a);
-}
-
-static jdouble StrictMath_ceil(JNIEnv*, jclass, jdouble a) {
- return ieee_ceil(a);
-}
-
static jdouble StrictMath_rint(JNIEnv*, jclass, jdouble a) {
return ieee_rint(a);
}
@@ -68,9 +60,7 @@
static JNINativeMethod gMethods[] = {
NATIVE_METHOD(StrictMath, IEEEremainder, "!(DD)D"),
- NATIVE_METHOD(StrictMath, ceil, "!(D)D"),
NATIVE_METHOD(StrictMath, cos, "!(D)D"),
- NATIVE_METHOD(StrictMath, floor, "!(D)D"),
NATIVE_METHOD(StrictMath, hypot, "!(DD)D"),
NATIVE_METHOD(StrictMath, nextafter, "!(DD)D"),
NATIVE_METHOD(StrictMath, pow, "!(DD)D"),
diff --git a/luni/src/main/native/java_lang_System.cpp b/luni/src/main/native/java_lang_System.cpp
index 306adab..1ba230a 100644
--- a/luni/src/main/native/java_lang_System.cpp
+++ b/luni/src/main/native/java_lang_System.cpp
@@ -34,7 +34,7 @@
#include <time.h>
#include <unistd.h>
-#if defined(HAVE_ANDROID_OS)
+#if defined(__ANDROID__)
extern "C" void android_get_LD_LIBRARY_PATH(char*, size_t);
#endif
@@ -91,7 +91,7 @@
#endif
const char* library_path = getenv("LD_LIBRARY_PATH");
-#if defined(HAVE_ANDROID_OS)
+#if defined(__ANDROID__)
if (library_path == NULL) {
android_get_LD_LIBRARY_PATH(path, sizeof(path));
library_path = path;
@@ -113,15 +113,9 @@
}
static jlong System_nanoTime(JNIEnv*, jclass) {
-#if defined(__linux__)
timespec now;
clock_gettime(CLOCK_MONOTONIC, &now);
return now.tv_sec * 1000000000LL + now.tv_nsec;
-#else // __APPLE__
- timeval now;
- gettimeofday(&now, NULL);
- return static_cast<jlong>(now.tv_sec) * 1000000000LL + now.tv_usec * 1000LL;
-#endif
}
static JNINativeMethod gMethods[] = {
diff --git a/luni/src/main/native/java_nio_ByteOrder.cpp b/luni/src/main/native/java_nio_ByteOrder.cpp
deleted file mode 100644
index 3269bc2..0000000
--- a/luni/src/main/native/java_nio_ByteOrder.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * 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.
- */
-
-#define LOG_TAG "ByteOrder"
-
-#include "JNIHelp.h"
-#include "JniConstants.h"
-
-static jboolean ByteOrder_isLittleEndian(JNIEnv*, jclass) {
- int i = 1;
- return *reinterpret_cast<jbyte*>(&i) == 1;
-}
-
-static JNINativeMethod gMethods[] = {
- NATIVE_METHOD(ByteOrder, isLittleEndian, "!()Z"),
-};
-void register_java_nio_ByteOrder(JNIEnv* env) {
- jniRegisterNativeMethods(env, "java/nio/ByteOrder", gMethods, NELEM(gMethods));
-}
diff --git a/luni/src/main/native/java_text_Bidi.cpp b/luni/src/main/native/java_text_Bidi.cpp
deleted file mode 100644
index 6a3e751..0000000
--- a/luni/src/main/native/java_text_Bidi.cpp
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.
- */
-
-#define LOG_TAG "Bidi"
-
-#include "IcuUtilities.h"
-#include "JNIHelp.h"
-#include "JniConstants.h"
-#include "JniException.h"
-#include "ScopedPrimitiveArray.h"
-#include "unicode/ubidi.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <memory>
-
-struct BiDiData {
- BiDiData(UBiDi* biDi) : mBiDi(biDi) {
- }
-
- ~BiDiData() {
- ubidi_close(mBiDi);
- }
-
- UBiDiLevel* embeddingLevels() {
- return reinterpret_cast<UBiDiLevel*>(&mEmbeddingLevels[0]);
- }
-
- void setEmbeddingLevels(jbyte* newEmbeddingLevels) {
- mEmbeddingLevels.reset(newEmbeddingLevels);
- }
-
- UBiDi* uBiDi() {
- return mBiDi;
- }
-
-private:
- UBiDi* mBiDi;
- std::unique_ptr<jbyte[]> mEmbeddingLevels;
-
- // Disallow copy and assignment.
- BiDiData(const BiDiData&);
- void operator=(const BiDiData&);
-};
-
-static BiDiData* biDiData(jlong ptr) {
- return reinterpret_cast<BiDiData*>(static_cast<uintptr_t>(ptr));
-}
-
-static UBiDi* uBiDi(jlong ptr) {
- return reinterpret_cast<BiDiData*>(static_cast<uintptr_t>(ptr))->uBiDi();
-}
-
-static jlong Bidi_ubidi_open(JNIEnv*, jclass) {
- return reinterpret_cast<uintptr_t>(new BiDiData(ubidi_open()));
-}
-
-static void Bidi_ubidi_close(JNIEnv*, jclass, jlong ptr) {
- delete biDiData(ptr);
-}
-
-static void Bidi_ubidi_setPara(JNIEnv* env, jclass, jlong ptr, jcharArray text, jint length, jint paraLevel, jbyteArray newEmbeddingLevels) {
- BiDiData* data = biDiData(ptr);
- // Copy the new embedding levels from the Java heap to the native heap.
- if (newEmbeddingLevels != NULL) {
- jbyte* dst;
- data->setEmbeddingLevels(dst = new jbyte[length]);
- env->GetByteArrayRegion(newEmbeddingLevels, 0, length, dst);
- } else {
- data->setEmbeddingLevels(NULL);
- }
- ScopedCharArrayRO chars(env, text);
- if (chars.get() == NULL) {
- return;
- }
- UErrorCode err = U_ZERO_ERROR;
- ubidi_setPara(data->uBiDi(), chars.get(), length, paraLevel, data->embeddingLevels(), &err);
- maybeThrowIcuException(env, "ubidi_setPara", err);
-}
-
-static jlong Bidi_ubidi_setLine(JNIEnv* env, jclass, jlong ptr, jint start, jint limit) {
- UErrorCode status = U_ZERO_ERROR;
- UBiDi* sized = ubidi_openSized(limit - start, 0, &status);
- if (maybeThrowIcuException(env, "ubidi_openSized", status)) {
- return 0;
- }
- std::unique_ptr<BiDiData> lineData(new BiDiData(sized));
- ubidi_setLine(uBiDi(ptr), start, limit, lineData->uBiDi(), &status);
- maybeThrowIcuException(env, "ubidi_setLine", status);
- return reinterpret_cast<uintptr_t>(lineData.release());
-}
-
-static jint Bidi_ubidi_getDirection(JNIEnv*, jclass, jlong ptr) {
- return ubidi_getDirection(uBiDi(ptr));
-}
-
-static jint Bidi_ubidi_getLength(JNIEnv*, jclass, jlong ptr) {
- return ubidi_getLength(uBiDi(ptr));
-}
-
-static jbyte Bidi_ubidi_getParaLevel(JNIEnv*, jclass, jlong ptr) {
- return ubidi_getParaLevel(uBiDi(ptr));
-}
-
-static jbyteArray Bidi_ubidi_getLevels(JNIEnv* env, jclass, jlong ptr) {
- UErrorCode status = U_ZERO_ERROR;
- const UBiDiLevel* levels = ubidi_getLevels(uBiDi(ptr), &status);
- if (maybeThrowIcuException(env, "ubidi_getLevels", status)) {
- return NULL;
- }
- int len = ubidi_getLength(uBiDi(ptr));
- jbyteArray result = env->NewByteArray(len);
- env->SetByteArrayRegion(result, 0, len, reinterpret_cast<const jbyte*>(levels));
- return result;
-}
-
-static jint Bidi_ubidi_countRuns(JNIEnv* env, jclass, jlong ptr) {
- UErrorCode status = U_ZERO_ERROR;
- int count = ubidi_countRuns(uBiDi(ptr), &status);
- maybeThrowIcuException(env, "ubidi_countRuns", status);
- return count;
-}
-
-/**
- * TODO: if we care about performance, we might just want to use an int[] instead of a Run[].
- */
-static jobjectArray Bidi_ubidi_getRuns(JNIEnv* env, jclass, jlong ptr) {
- UBiDi* ubidi = uBiDi(ptr);
- UErrorCode status = U_ZERO_ERROR;
- int runCount = ubidi_countRuns(ubidi, &status);
- if (maybeThrowIcuException(env, "ubidi_countRuns", status)) {
- return NULL;
- }
- static jmethodID bidiRunConstructor =
- env->GetMethodID(JniConstants::bidiRunClass, "<init>", "(III)V");
- jobjectArray runs = env->NewObjectArray(runCount, JniConstants::bidiRunClass, NULL);
- UBiDiLevel level = 0;
- int start = 0;
- int limit = 0;
- for (int i = 0; i < runCount; ++i) {
- ubidi_getLogicalRun(ubidi, start, &limit, &level);
- jobject run = env->NewObject(JniConstants::bidiRunClass, bidiRunConstructor, start, limit, level);
- env->SetObjectArrayElement(runs, i, run);
- start = limit;
- }
- return runs;
-}
-
-static jintArray Bidi_ubidi_reorderVisual(JNIEnv* env, jclass, jbyteArray javaLevels, jint length) {
- ScopedByteArrayRO levelBytes(env, javaLevels);
- if (levelBytes.get() == NULL) {
- return NULL;
- }
-
- const UBiDiLevel* levels = reinterpret_cast<const UBiDiLevel*>(levelBytes.get());
-
- std::unique_ptr<int[]> indexMap(new int[length]);
- ubidi_reorderVisual(levels, length, &indexMap[0]);
-
- jintArray result = env->NewIntArray(length);
- env->SetIntArrayRegion(result, 0, length, &indexMap[0]);
- return result;
-}
-
-static JNINativeMethod gMethods[] = {
- NATIVE_METHOD(Bidi, ubidi_close, "(J)V"),
- NATIVE_METHOD(Bidi, ubidi_countRuns, "(J)I"),
- NATIVE_METHOD(Bidi, ubidi_getDirection, "(J)I"),
- NATIVE_METHOD(Bidi, ubidi_getLength, "(J)I"),
- NATIVE_METHOD(Bidi, ubidi_getLevels, "(J)[B"),
- NATIVE_METHOD(Bidi, ubidi_getParaLevel, "(J)B"),
- NATIVE_METHOD(Bidi, ubidi_getRuns, "(J)[Ljava/text/Bidi$Run;"),
- NATIVE_METHOD(Bidi, ubidi_open, "()J"),
- NATIVE_METHOD(Bidi, ubidi_reorderVisual, "([BI)[I"),
- NATIVE_METHOD(Bidi, ubidi_setLine, "(JII)J"),
- NATIVE_METHOD(Bidi, ubidi_setPara, "(J[CII[B)V"),
-};
-void register_java_text_Bidi(JNIEnv* env) {
- jniRegisterNativeMethods(env, "java/text/Bidi", gMethods, NELEM(gMethods));
-}
diff --git a/luni/src/main/native/java_util_jar_StrictJarFile.cpp b/luni/src/main/native/java_util_jar_StrictJarFile.cpp
index 70b8de0..f7f15f4 100644
--- a/luni/src/main/native/java_util_jar_StrictJarFile.cpp
+++ b/luni/src/main/native/java_util_jar_StrictJarFile.cpp
@@ -96,11 +96,11 @@
int32_t error = 0;
if (prefixChars.size() == 0) {
error = StartIteration(reinterpret_cast<ZipArchiveHandle>(nativeHandle),
- handle->CookieAddress(), NULL);
+ handle->CookieAddress(), NULL, NULL);
} else {
- ZipEntryName entry_name(prefixChars.c_str());
+ ZipString entry_name(prefixChars.c_str());
error = StartIteration(reinterpret_cast<ZipArchiveHandle>(nativeHandle),
- handle->CookieAddress(), &entry_name);
+ handle->CookieAddress(), &entry_name, NULL);
}
if (error) {
@@ -113,7 +113,7 @@
static jobject StrictJarFile_nativeNextEntry(JNIEnv* env, jobject, jlong iterationHandle) {
ZipEntry data;
- ZipEntryName entryName;
+ ZipString entryName;
IterationHandle* handle = reinterpret_cast<IterationHandle*>(iterationHandle);
const int32_t error = Next(*handle->CookieAddress(), &data, &entryName);
@@ -139,7 +139,7 @@
ZipEntry data;
const int32_t error = FindEntry(reinterpret_cast<ZipArchiveHandle>(nativeHandle),
- ZipEntryName(entryNameChars.c_str()), &data);
+ ZipString(entryNameChars.c_str()), &data);
if (error) {
return NULL;
}
diff --git a/luni/src/main/native/libcore_icu_AlphabeticIndex.cpp b/luni/src/main/native/libcore_icu_AlphabeticIndex.cpp
deleted file mode 100644
index acc247b..0000000
--- a/luni/src/main/native/libcore_icu_AlphabeticIndex.cpp
+++ /dev/null
@@ -1,206 +0,0 @@
-/*
- * Copyright (C) 2013 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.
- */
-
-#define LOG_TAG "AlphabeticIndex"
-
-#include "IcuUtilities.h"
-#include "JNIHelp.h"
-#include "JniConstants.h"
-#include "JniException.h"
-#include "ScopedIcuLocale.h"
-#include "ScopedJavaUnicodeString.h"
-#include "unicode/alphaindex.h"
-#include "unicode/uniset.h"
-
-static icu::AlphabeticIndex* fromPeer(jlong peer) {
- return reinterpret_cast<icu::AlphabeticIndex*>(static_cast<uintptr_t>(peer));
-}
-
-static jlong AlphabeticIndex_create(JNIEnv* env, jclass, jstring javaLocaleName) {
- UErrorCode status = U_ZERO_ERROR;
- ScopedIcuLocale icuLocale(env, javaLocaleName);
- if (!icuLocale.valid()) {
- return 0;
- }
- icu::AlphabeticIndex* ai = new icu::AlphabeticIndex(icuLocale.locale(), status);
- if (maybeThrowIcuException(env, "AlphabeticIndex", status)) {
- return 0;
- }
- return reinterpret_cast<uintptr_t>(ai);
-}
-
-static void AlphabeticIndex_destroy(JNIEnv*, jclass, jlong peer) {
- delete fromPeer(peer);
-}
-
-static jint AlphabeticIndex_getMaxLabelCount(JNIEnv*, jclass, jlong peer) {
- icu::AlphabeticIndex* ai = fromPeer(peer);
- return ai->getMaxLabelCount();
-}
-
-static void AlphabeticIndex_setMaxLabelCount(JNIEnv* env, jclass, jlong peer, jint count) {
- icu::AlphabeticIndex* ai = fromPeer(peer);
- UErrorCode status = U_ZERO_ERROR;
- ai->setMaxLabelCount(count, status);
- maybeThrowIcuException(env, "AlphabeticIndex::setMaxLabelCount", status);
-}
-
-static void AlphabeticIndex_addLabels(JNIEnv* env, jclass, jlong peer, jstring javaLocaleName) {
- icu::AlphabeticIndex* ai = fromPeer(peer);
- ScopedIcuLocale icuLocale(env, javaLocaleName);
- if (!icuLocale.valid()) {
- return;
- }
- UErrorCode status = U_ZERO_ERROR;
- ai->addLabels(icuLocale.locale(), status);
- maybeThrowIcuException(env, "AlphabeticIndex::addLabels", status);
-}
-
-static void AlphabeticIndex_addLabelRange(JNIEnv* env, jclass, jlong peer,
- jint codePointStart, jint codePointEnd) {
- icu::AlphabeticIndex* ai = fromPeer(peer);
- UErrorCode status = U_ZERO_ERROR;
- ai->addLabels(icu::UnicodeSet(codePointStart, codePointEnd), status);
- maybeThrowIcuException(env, "AlphabeticIndex::addLabels", status);
-}
-
-static jint AlphabeticIndex_getBucketCount(JNIEnv* env, jclass, jlong peer) {
- icu::AlphabeticIndex* ai = fromPeer(peer);
- UErrorCode status = U_ZERO_ERROR;
- jint result = ai->getBucketCount(status);
- if (maybeThrowIcuException(env, "AlphabeticIndex::getBucketCount", status)) {
- return -1;
- }
- return result;
-}
-
-static jint AlphabeticIndex_getBucketIndex(JNIEnv* env, jclass, jlong peer, jstring javaString) {
- icu::AlphabeticIndex* ai = fromPeer(peer);
- ScopedJavaUnicodeString string(env, javaString);
- if (!string.valid()) {
- return -1;
- }
- UErrorCode status = U_ZERO_ERROR;
- jint result = ai->getBucketIndex(string.unicodeString(), status);
- if (maybeThrowIcuException(env, "AlphabeticIndex::getBucketIndex", status)) {
- return -1;
- }
- return result;
-}
-
-static jstring AlphabeticIndex_getBucketLabel(JNIEnv* env, jclass, jlong peer, jint index) {
- if (index < 0) {
- jniThrowExceptionFmt(env, "java/lang/IllegalArgumentException", "Invalid index: %d", index);
- return NULL;
- }
-
- // Iterate to the nth bucket.
- icu::AlphabeticIndex* ai = fromPeer(peer);
- UErrorCode status = U_ZERO_ERROR;
- ai->resetBucketIterator(status);
- if (maybeThrowIcuException(env, "AlphabeticIndex::resetBucketIterator", status)) {
- return NULL;
- }
- for (jint i = 0; i <= index; ++i) {
- if (!ai->nextBucket(status)) {
- jniThrowExceptionFmt(env, "java/lang/IllegalArgumentException", "Invalid index: %d", index);
- return NULL;
- }
- if (maybeThrowIcuException(env, "AlphabeticIndex::nextBucket", status)) {
- return NULL;
- }
- }
-
- // Return "" for the underflow/inflow/overflow buckets.
- if (ai->getBucketLabelType() != U_ALPHAINDEX_NORMAL) {
- return env->NewStringUTF("");
- }
-
- const icu::UnicodeString& label(ai->getBucketLabel());
- return env->NewString(label.getBuffer(), label.length());
-}
-
-static jlong AlphabeticIndex_buildImmutableIndex(JNIEnv* env, jclass, jlong peer) {
- icu::AlphabeticIndex* ai = fromPeer(peer);
- UErrorCode status = U_ZERO_ERROR;
- icu::AlphabeticIndex::ImmutableIndex* ii = ai->buildImmutableIndex(status);
- if (maybeThrowIcuException(env, "AlphabeticIndex::buildImmutableIndex", status)) {
- return 0;
- }
- return reinterpret_cast<uintptr_t>(ii);
-}
-
-static icu::AlphabeticIndex::ImmutableIndex* immutableIndexFromPeer(jlong peer) {
- return reinterpret_cast<icu::AlphabeticIndex::ImmutableIndex*>(static_cast<uintptr_t>(peer));
-}
-
-static jint ImmutableIndex_getBucketCount(JNIEnv*, jclass, jlong peer) {
- icu::AlphabeticIndex::ImmutableIndex* ii = immutableIndexFromPeer(peer);
- return ii->getBucketCount();
-}
-
-static jint ImmutableIndex_getBucketIndex(JNIEnv* env, jclass, jlong peer, jstring javaString) {
- icu::AlphabeticIndex::ImmutableIndex* ii = immutableIndexFromPeer(peer);
- ScopedJavaUnicodeString string(env, javaString);
- if (!string.valid()) {
- return -1;
- }
- UErrorCode status = U_ZERO_ERROR;
- jint result = ii->getBucketIndex(string.unicodeString(), status);
- if (maybeThrowIcuException(env, "AlphabeticIndex::ImmutableIndex::getBucketIndex", status)) {
- return -1;
- }
- return result;
-}
-
-static jstring ImmutableIndex_getBucketLabel(JNIEnv* env, jclass, jlong peer, jint index) {
- icu::AlphabeticIndex::ImmutableIndex* ii = immutableIndexFromPeer(peer);
- const icu::AlphabeticIndex::Bucket* bucket = ii->getBucket(index);
- if (bucket == NULL) {
- jniThrowExceptionFmt(env, "java/lang/IllegalArgumentException", "Invalid index: %d", index);
- return NULL;
- }
-
- // Return "" for the underflow/inflow/overflow buckets.
- if (bucket->getLabelType() != U_ALPHAINDEX_NORMAL) {
- return env->NewStringUTF("");
- }
-
- const icu::UnicodeString& label(bucket->getLabel());
- return env->NewString(label.getBuffer(), label.length());
-}
-
-static JNINativeMethod gMethods[] = {
- NATIVE_METHOD(AlphabeticIndex, create, "(Ljava/lang/String;)J"),
- NATIVE_METHOD(AlphabeticIndex, destroy, "(J)V"),
- NATIVE_METHOD(AlphabeticIndex, getMaxLabelCount, "(J)I"),
- NATIVE_METHOD(AlphabeticIndex, setMaxLabelCount, "(JI)V"),
- NATIVE_METHOD(AlphabeticIndex, addLabels, "(JLjava/lang/String;)V"),
- NATIVE_METHOD(AlphabeticIndex, addLabelRange, "(JII)V"),
- NATIVE_METHOD(AlphabeticIndex, getBucketCount, "(J)I"),
- NATIVE_METHOD(AlphabeticIndex, getBucketIndex, "(JLjava/lang/String;)I"),
- NATIVE_METHOD(AlphabeticIndex, getBucketLabel, "(JI)Ljava/lang/String;"),
- NATIVE_METHOD(AlphabeticIndex, buildImmutableIndex, "(J)J"),
-};
-static JNINativeMethod gImmutableIndexMethods[] = {
- NATIVE_METHOD(ImmutableIndex, getBucketCount, "(J)I"),
- NATIVE_METHOD(ImmutableIndex, getBucketIndex, "(JLjava/lang/String;)I"),
- NATIVE_METHOD(ImmutableIndex, getBucketLabel, "(JI)Ljava/lang/String;"),
-};
-void register_libcore_icu_AlphabeticIndex(JNIEnv* env) {
- jniRegisterNativeMethods(env, "libcore/icu/AlphabeticIndex", gMethods, NELEM(gMethods));
- jniRegisterNativeMethods(env, "libcore/icu/AlphabeticIndex$ImmutableIndex", gImmutableIndexMethods, NELEM(gImmutableIndexMethods));
-}
diff --git a/luni/src/main/native/libcore_icu_NativeDecimalFormat.cpp b/luni/src/main/native/libcore_icu_NativeDecimalFormat.cpp
index 8c4a411..ef658ea 100644
--- a/luni/src/main/native/libcore_icu_NativeDecimalFormat.cpp
+++ b/luni/src/main/native/libcore_icu_NativeDecimalFormat.cpp
@@ -227,7 +227,8 @@
}
static jcharArray formatResult(JNIEnv* env, const icu::UnicodeString& s, icu::FieldPositionIterator* fpi, jobject javaFieldPositionIterator) {
- static jmethodID gFPI_setData = env->GetMethodID(JniConstants::fieldPositionIteratorClass, "setData", "([I)V");
+ static jmethodID gFPI_setData = env->GetMethodID(
+ env->FindClass("libcore/icu/NativeDecimalFormat$FieldPositionIterator"), "setData", "([I)V");
if (fpi != NULL) {
std::vector<int32_t> data;
diff --git a/luni/src/main/native/libcore_icu_NativeIDN.cpp b/luni/src/main/native/libcore_icu_NativeIDN.cpp
deleted file mode 100644
index 43f3ce5..0000000
--- a/luni/src/main/native/libcore_icu_NativeIDN.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * 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.
- */
-
-#define LOG_TAG "NativeIDN"
-
-#include "JNIHelp.h"
-#include "JniConstants.h"
-#include "ScopedStringChars.h"
-#include "unicode/uidna.h"
-
-static bool isLabelSeparator(const UChar ch) {
- switch (ch) {
- case 0x3002: // ideographic full stop
- case 0xff0e: // fullwidth full stop
- case 0xff61: // halfwidth ideographic full stop
- return true;
- default:
- return false;
- }
-}
-
-static jstring NativeIDN_convertImpl(JNIEnv* env, jclass, jstring javaSrc, jint flags, jboolean toAscii) {
- ScopedStringChars src(env, javaSrc);
- if (src.get() == NULL) {
- return NULL;
- }
- UChar dst[256];
- UErrorCode status = U_ZERO_ERROR;
-
- // We're stuck implementing IDNA-2003 for now since that's what we specify.
- //
- // TODO: Change our spec to IDNA-2008 + UTS-46 compatibility processing if
- // it's safe enough.
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
- size_t resultLength = toAscii
- ? uidna_IDNToASCII(src.get(), src.size(), &dst[0], sizeof(dst), flags, NULL, &status)
- : uidna_IDNToUnicode(src.get(), src.size(), &dst[0], sizeof(dst), flags, NULL, &status);
-#pragma GCC diagnostic pop
-
- if (U_FAILURE(status)) {
- jniThrowException(env, "java/lang/IllegalArgumentException", u_errorName(status));
- return NULL;
- }
- if (!toAscii) {
- // ICU only translates separators to ASCII for toASCII.
- // Java expects the translation for toUnicode too.
- // We may as well do this here, while the string is still mutable.
- for (size_t i = 0; i < resultLength; ++i) {
- if (isLabelSeparator(dst[i])) {
- dst[i] = '.';
- }
- }
- }
- return env->NewString(&dst[0], resultLength);
-}
-
-static JNINativeMethod gMethods[] = {
- NATIVE_METHOD(NativeIDN, convertImpl, "(Ljava/lang/String;IZ)Ljava/lang/String;"),
-};
-void register_libcore_icu_NativeIDN(JNIEnv* env) {
- jniRegisterNativeMethods(env, "libcore/icu/NativeIDN", gMethods, NELEM(gMethods));
-}
diff --git a/luni/src/main/native/libcore_icu_NativeNormalizer.cpp b/luni/src/main/native/libcore_icu_NativeNormalizer.cpp
deleted file mode 100644
index 2d5e282..0000000
--- a/luni/src/main/native/libcore_icu_NativeNormalizer.cpp
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * 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.
- */
-
-#define LOG_TAG "NativeNormalizer"
-
-#include "IcuUtilities.h"
-#include "JNIHelp.h"
-#include "JniConstants.h"
-#include "JniException.h"
-#include "ScopedJavaUnicodeString.h"
-#include "unicode/normlzr.h"
-
-static jstring NativeNormalizer_normalizeImpl(JNIEnv* env, jclass, jstring s, jint intMode) {
- ScopedJavaUnicodeString src(env, s);
- if (!src.valid()) {
- return NULL;
- }
- UNormalizationMode mode = static_cast<UNormalizationMode>(intMode);
- UErrorCode status = U_ZERO_ERROR;
- icu::UnicodeString dst;
- icu::Normalizer::normalize(src.unicodeString(), mode, 0, dst, status);
- maybeThrowIcuException(env, "Normalizer::normalize", status);
- return dst.isBogus() ? NULL : env->NewString(dst.getBuffer(), dst.length());
-}
-
-static jboolean NativeNormalizer_isNormalizedImpl(JNIEnv* env, jclass, jstring s, jint intMode) {
- ScopedJavaUnicodeString src(env, s);
- if (!src.valid()) {
- return JNI_FALSE;
- }
- UNormalizationMode mode = static_cast<UNormalizationMode>(intMode);
- UErrorCode status = U_ZERO_ERROR;
- UBool result = icu::Normalizer::isNormalized(src.unicodeString(), mode, status);
- maybeThrowIcuException(env, "Normalizer::isNormalized", status);
- return result;
-}
-
-static JNINativeMethod gMethods[] = {
- NATIVE_METHOD(NativeNormalizer, normalizeImpl, "(Ljava/lang/String;I)Ljava/lang/String;"),
- NATIVE_METHOD(NativeNormalizer, isNormalizedImpl, "(Ljava/lang/String;I)Z"),
-};
-void register_libcore_icu_NativeNormalizer(JNIEnv* env) {
- jniRegisterNativeMethods(env, "libcore/icu/NativeNormalizer", gMethods, NELEM(gMethods));
-}
diff --git a/luni/src/main/native/libcore_icu_NativePluralRules.cpp b/luni/src/main/native/libcore_icu_NativePluralRules.cpp
deleted file mode 100644
index f278485..0000000
--- a/luni/src/main/native/libcore_icu_NativePluralRules.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * 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.
- */
-
-#define LOG_TAG "NativePluralRules"
-
-#include "IcuUtilities.h"
-#include "JNIHelp.h"
-#include "JniConstants.h"
-#include "JniException.h"
-#include "ScopedUtfChars.h"
-#include "unicode/plurrule.h"
-
-#include <string>
-
-static icu::PluralRules* toPluralRules(jlong address) {
- return reinterpret_cast<icu::PluralRules*>(static_cast<uintptr_t>(address));
-}
-
-static void NativePluralRules_finalizeImpl(JNIEnv*, jclass, jlong address) {
- delete toPluralRules(address);
-}
-
-static jlong NativePluralRules_forLocaleImpl(JNIEnv* env, jclass, jstring javaLocaleName) {
- // The icu4c PluralRules returns a "other: n" default rule for the deprecated locales Java uses.
- // Work around this by translating back to the current language codes.
- std::string localeName(ScopedUtfChars(env, javaLocaleName).c_str());
- if (localeName[0] == 'i' && localeName[1] == 'w') {
- localeName[0] = 'h';
- localeName[1] = 'e';
- } else if (localeName[0] == 'i' && localeName[1] == 'n') {
- localeName[0] = 'i';
- localeName[1] = 'd';
- } else if (localeName[0] == 'j' && localeName[1] == 'i') {
- localeName[0] = 'y';
- localeName[1] = 'i';
- }
-
- icu::Locale locale = icu::Locale::createFromName(localeName.c_str());
- UErrorCode status = U_ZERO_ERROR;
- icu::PluralRules* result = icu::PluralRules::forLocale(locale, status);
- maybeThrowIcuException(env, "PluralRules::forLocale", status);
- return reinterpret_cast<uintptr_t>(result);
-}
-
-static jint NativePluralRules_quantityForIntImpl(JNIEnv*, jclass, jlong address, jint value) {
- icu::UnicodeString keyword = toPluralRules(address)->select(value);
- if (keyword == "zero") {
- return 0;
- } else if (keyword == "one") {
- return 1;
- } else if (keyword == "two") {
- return 2;
- } else if (keyword == "few") {
- return 3;
- } else if (keyword == "many") {
- return 4;
- } else {
- return 5;
- }
-}
-
-static JNINativeMethod gMethods[] = {
- NATIVE_METHOD(NativePluralRules, finalizeImpl, "(J)V"),
- NATIVE_METHOD(NativePluralRules, forLocaleImpl, "(Ljava/lang/String;)J"),
- NATIVE_METHOD(NativePluralRules, quantityForIntImpl, "(JI)I"),
-};
-void register_libcore_icu_NativePluralRules(JNIEnv* env) {
- jniRegisterNativeMethods(env, "libcore/icu/NativePluralRules", gMethods, NELEM(gMethods));
-}
diff --git a/luni/src/main/native/libcore_icu_Transliterator.cpp b/luni/src/main/native/libcore_icu_Transliterator.cpp
deleted file mode 100644
index ae21565..0000000
--- a/luni/src/main/native/libcore_icu_Transliterator.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) 2013 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.
- */
-
-#define LOG_TAG "Transliterator"
-
-#include "IcuUtilities.h"
-#include "JNIHelp.h"
-#include "JniConstants.h"
-#include "JniException.h"
-#include "ScopedJavaUnicodeString.h"
-#include "unicode/translit.h"
-
-static icu::Transliterator* fromPeer(jlong peer) {
- return reinterpret_cast<icu::Transliterator*>(static_cast<uintptr_t>(peer));
-}
-
-static jlong Transliterator_create(JNIEnv* env, jclass, jstring javaId) {
- ScopedJavaUnicodeString id(env, javaId);
- if (!id.valid()) {
- return 0;
- }
- UErrorCode status = U_ZERO_ERROR;
- icu::Transliterator* t = icu::Transliterator::createInstance(id.unicodeString(), UTRANS_FORWARD, status);
- if (maybeThrowIcuException(env, "Transliterator::createInstance", status)) {
- return 0;
- }
- return reinterpret_cast<uintptr_t>(t);
-}
-
-static void Transliterator_destroy(JNIEnv*, jclass, jlong peer) {
- delete fromPeer(peer);
-}
-
-static jobjectArray Transliterator_getAvailableIDs(JNIEnv* env, jclass) {
- UErrorCode status = U_ZERO_ERROR;
- icu::StringEnumeration* e = icu::Transliterator::getAvailableIDs(status);
- return fromStringEnumeration(env, status, "Transliterator::getAvailableIDs", e);
-}
-
-static jstring Transliterator_transliterate(JNIEnv* env, jclass, jlong peer, jstring javaString) {
- icu::Transliterator* t = fromPeer(peer);
- ScopedJavaUnicodeString string(env, javaString);
- if (!string.valid()) {
- return NULL;
- }
-
- icu::UnicodeString& s(string.unicodeString());
- t->transliterate(s);
- return env->NewString(s.getBuffer(), s.length());
-}
-
-static JNINativeMethod gMethods[] = {
- NATIVE_METHOD(Transliterator, create, "(Ljava/lang/String;)J"),
- NATIVE_METHOD(Transliterator, destroy, "(J)V"),
- NATIVE_METHOD(Transliterator, getAvailableIDs, "()[Ljava/lang/String;"),
- NATIVE_METHOD(Transliterator, transliterate, "(JLjava/lang/String;)Ljava/lang/String;"),
-};
-void register_libcore_icu_Transliterator(JNIEnv* env) {
- jniRegisterNativeMethods(env, "libcore/icu/Transliterator", gMethods, NELEM(gMethods));
-}
diff --git a/luni/src/main/native/libcore_io_Posix.cpp b/luni/src/main/native/libcore_io_Posix.cpp
index 92477f1..27fa0d7 100644
--- a/luni/src/main/native/libcore_io_Posix.cpp
+++ b/luni/src/main/native/libcore_io_Posix.cpp
@@ -45,18 +45,14 @@
#include <stdlib.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
-#ifndef __APPLE__
#include <sys/prctl.h>
-#endif
#include <sys/socket.h>
#include <sys/stat.h>
-#ifdef __APPLE__
-#include <sys/statvfs.h>
-#endif
#include <sys/syscall.h>
#include <sys/time.h>
#include <sys/types.h>
#include <sys/uio.h>
+#include <sys/un.h>
#include <sys/utsname.h>
#include <sys/wait.h>
#include <sys/xattr.h>
@@ -139,9 +135,9 @@
*/
#define NET_FAILURE_RETRY(jni_env, return_type, syscall_name, java_fd, ...) ({ \
return_type _rc = -1; \
+ int _syscallErrno; \
do { \
bool _wasSignaled; \
- int _syscallErrno; \
{ \
int _fd = jniGetFDFromFileDescriptor(jni_env, java_fd); \
AsynchronousCloseMonitor _monitor(_fd); \
@@ -160,6 +156,10 @@
break; \
} \
} while (_rc == -1); /* _syscallErrno == EINTR && !_wasSignaled */ \
+ if (_rc == -1) { \
+ /* If the syscall failed, re-set errno: throwing an exception might have modified it. */ \
+ errno = _syscallErrno; \
+ } \
_rc; })
/**
@@ -174,9 +174,9 @@
*/
#define IO_FAILURE_RETRY(jni_env, return_type, syscall_name, java_fd, ...) ({ \
return_type _rc = -1; \
+ int _syscallErrno; \
do { \
bool _wasSignaled; \
- int _syscallErrno; \
{ \
int _fd = jniGetFDFromFileDescriptor(jni_env, java_fd); \
AsynchronousCloseMonitor _monitor(_fd); \
@@ -195,6 +195,10 @@
break; \
} \
} while (_rc == -1); /* && _syscallErrno == EINTR && !_wasSignaled */ \
+ if (_rc == -1) { \
+ /* If the syscall failed, re-set errno: throwing an exception might have modified it. */ \
+ errno = _syscallErrno; \
+ } \
_rc; })
#define NULL_ADDR_OK true
@@ -317,8 +321,40 @@
std::vector<ScopedT*> mScopedBuffers;
};
-static jobject makeSocketAddress(JNIEnv* env, const sockaddr_storage& ss) {
- if (ss.ss_family == AF_INET || ss.ss_family == AF_INET6 || ss.ss_family == AF_UNIX) {
+/**
+ * Returns a jbyteArray containing the sockaddr_un.sun_path from ss. As per unix(7) sa_len should be
+ * the length of ss as returned by getsockname(2), getpeername(2), or accept(2).
+ * If the returned array is of length 0 the sockaddr_un refers to an unnamed socket.
+ * A null pointer is returned in the event of an error. See unix(7) for more information.
+ */
+static jbyteArray getUnixSocketPath(JNIEnv* env, const sockaddr_storage& ss,
+ const socklen_t& sa_len) {
+ if (ss.ss_family != AF_UNIX) {
+ jniThrowExceptionFmt(env, "java/lang/IllegalArgumentException",
+ "getUnixSocketPath unsupported ss_family: %i", ss.ss_family);
+ return NULL;
+ }
+
+ const struct sockaddr_un* un_addr = reinterpret_cast<const struct sockaddr_un*>(&ss);
+ // The length of sun_path is sa_len minus the length of the overhead (ss_family).
+ // See unix(7) for details. This calculation must match that of socket_make_sockaddr_un() in
+ // socket_local_client.c and javaUnixSocketAddressToSockaddr() to interoperate.
+ size_t pathLength = sa_len - offsetof(struct sockaddr_un, sun_path);
+
+ jbyteArray javaSunPath = env->NewByteArray(pathLength);
+ if (javaSunPath == NULL) {
+ return NULL;
+ }
+
+ if (pathLength > 0) {
+ env->SetByteArrayRegion(javaSunPath, 0, pathLength,
+ reinterpret_cast<const jbyte*>(&un_addr->sun_path));
+ }
+ return javaSunPath;
+}
+
+static jobject makeSocketAddress(JNIEnv* env, const sockaddr_storage& ss, const socklen_t sa_len) {
+ if (ss.ss_family == AF_INET || ss.ss_family == AF_INET6) {
jint port;
jobject inetAddress = sockaddrToInetAddress(env, ss, &port);
if (inetAddress == NULL) {
@@ -327,6 +363,15 @@
static jmethodID ctor = env->GetMethodID(JniConstants::inetSocketAddressClass,
"<init>", "(Ljava/net/InetAddress;I)V");
return env->NewObject(JniConstants::inetSocketAddressClass, ctor, inetAddress, port);
+ } else if (ss.ss_family == AF_UNIX) {
+ static jmethodID ctor = env->GetMethodID(JniConstants::unixSocketAddressClass,
+ "<init>", "([B)V");
+
+ jbyteArray javaSunPath = getUnixSocketPath(env, ss, sa_len);
+ if (!javaSunPath) {
+ return NULL;
+ }
+ return env->NewObject(JniConstants::unixSocketAddressClass, ctor, javaSunPath);
} else if (ss.ss_family == AF_NETLINK) {
const struct sockaddr_nl* nl_addr = reinterpret_cast<const struct sockaddr_nl*>(&ss);
static jmethodID ctor = env->GetMethodID(JniConstants::netlinkSocketAddressClass,
@@ -381,13 +426,6 @@
}
static jobject makeStructStatVfs(JNIEnv* env, const struct statvfs& sb) {
-#if defined(__APPLE__)
- // Mac OS has no f_namelen field in struct statfs.
- jlong max_name_length = 255; // __DARWIN_MAXNAMLEN
-#else
- jlong max_name_length = static_cast<jlong>(sb.f_namemax);
-#endif
-
static jmethodID ctor = env->GetMethodID(JniConstants::structStatVfsClass, "<init>",
"(JJJJJJJJJJJ)V");
return env->NewObject(JniConstants::structStatVfsClass, ctor,
@@ -401,7 +439,7 @@
static_cast<jlong>(sb.f_favail),
static_cast<jlong>(sb.f_fsid),
static_cast<jlong>(sb.f_flag),
- max_name_length);
+ static_cast<jlong>(sb.f_namemax));
}
static jobject makeStructLinger(JNIEnv* env, const struct linger& l) {
@@ -416,13 +454,8 @@
}
static jobject makeStructUcred(JNIEnv* env, const struct ucred& u __unused) {
-#ifdef __APPLE__
- jniThrowException(env, "java/lang/UnsupportedOperationException", "unimplemented support for ucred on a Mac");
- return NULL;
-#else
static jmethodID ctor = env->GetMethodID(JniConstants::structUcredClass, "<init>", "(III)V");
return env->NewObject(JniConstants::structUcredClass, ctor, u.pid, u.uid, u.gid);
-#endif
}
static jobject makeStructUtsname(JNIEnv* env, const struct utsname& buf) {
@@ -448,8 +481,25 @@
return true;
}
-static bool fillInetSocketAddress(JNIEnv* env, jint rc, jobject javaInetSocketAddress, const sockaddr_storage& ss) {
- if (rc == -1 || javaInetSocketAddress == NULL) {
+static bool fillUnixSocketAddress(JNIEnv* env, jobject javaUnixSocketAddress,
+ const sockaddr_storage& ss, const socklen_t& sa_len) {
+ if (javaUnixSocketAddress == NULL) {
+ return true;
+ }
+ jbyteArray javaSunPath = getUnixSocketPath(env, ss, sa_len);
+ if (!javaSunPath) {
+ return false;
+ }
+
+ static jfieldID sunPathFid =
+ env->GetFieldID(JniConstants::unixSocketAddressClass, "sun_path", "[B");
+ env->SetObjectField(javaUnixSocketAddress, sunPathFid, javaSunPath);
+ return true;
+}
+
+static bool fillInetSocketAddress(JNIEnv* env, jobject javaInetSocketAddress,
+ const sockaddr_storage& ss) {
+ if (javaInetSocketAddress == NULL) {
return true;
}
// Fill out the passed-in InetSocketAddress with the sender's IP address and port number.
@@ -470,6 +520,23 @@
return true;
}
+static bool fillSocketAddress(JNIEnv* env, jobject javaSocketAddress, const sockaddr_storage& ss,
+ const socklen_t& sa_len) {
+ if (javaSocketAddress == NULL) {
+ return true;
+ }
+
+ if (env->IsInstanceOf(javaSocketAddress, JniConstants::inetSocketAddressClass)) {
+ return fillInetSocketAddress(env, javaSocketAddress, ss);
+ } else if (env->IsInstanceOf(javaSocketAddress, JniConstants::unixSocketAddressClass)) {
+ return fillUnixSocketAddress(env, javaSocketAddress, ss, sa_len);
+ }
+ jniThrowException(env, "java/lang/UnsupportedOperationException",
+ "unsupported SocketAddress subclass");
+ return false;
+
+}
+
static void javaInetSocketAddressToInetAddressAndPort(
JNIEnv* env, jobject javaInetSocketAddress, jobject& javaInetAddress, jint& port) {
static jfieldID holderFid = env->GetFieldID(JniConstants::inetSocketAddressClass, "holder",
@@ -507,6 +574,31 @@
return true;
}
+static bool javaUnixSocketAddressToSockaddr(
+ JNIEnv* env, jobject javaUnixSocketAddress, sockaddr_storage& ss, socklen_t& sa_len) {
+ static jfieldID sunPathFid = env->GetFieldID(
+ JniConstants::unixSocketAddressClass, "sun_path", "[B");
+
+ struct sockaddr_un* un_addr = reinterpret_cast<struct sockaddr_un*>(&ss);
+ memset (un_addr, 0, sizeof(sockaddr_un));
+ un_addr->sun_family = AF_UNIX;
+
+ jbyteArray javaSunPath = (jbyteArray) env->GetObjectField(javaUnixSocketAddress, sunPathFid);
+ jsize pathLength = env->GetArrayLength(javaSunPath);
+ if ((size_t) pathLength > sizeof(sockaddr_un::sun_path)) {
+ jniThrowExceptionFmt(env, "java/lang/IllegalArgumentException",
+ "sun_path too long: max=%i, is=%i",
+ sizeof(sockaddr_un::sun_path), pathLength);
+ return false;
+ }
+ env->GetByteArrayRegion(javaSunPath, 0, pathLength, (jbyte*) un_addr->sun_path);
+ // sa_len is sun_path plus the length of the overhead (ss_family_t). See unix(7) for
+ // details. This calculation must match that of socket_make_sockaddr_un() in
+ // socket_local_client.c and getUnixSocketPath() to interoperate.
+ sa_len = offsetof(struct sockaddr_un, sun_path) + pathLength;
+ return true;
+}
+
static bool javaPacketSocketAddressToSockaddr(
JNIEnv* env, jobject javaSocketAddress, sockaddr_storage& ss, socklen_t& sa_len) {
static jfieldID protocolFid = env->GetFieldID(
@@ -556,6 +648,8 @@
return javaInetSocketAddressToSockaddr(env, javaSocketAddress, ss, sa_len);
} else if (env->IsInstanceOf(javaSocketAddress, JniConstants::packetSocketAddressClass)) {
return javaPacketSocketAddressToSockaddr(env, javaSocketAddress, ss, sa_len);
+ } else if (env->IsInstanceOf(javaSocketAddress, JniConstants::unixSocketAddressClass)) {
+ return javaUnixSocketAddressToSockaddr(env, javaSocketAddress, ss, sa_len);
}
jniThrowException(env, "java/lang/UnsupportedOperationException",
"unsupported SocketAddress subclass");
@@ -589,7 +683,7 @@
throwErrnoException(env, is_sockname ? "getsockname" : "getpeername");
return NULL;
}
- return makeSocketAddress(env, ss);
+ return makeSocketAddress(env, ss, byteCount);
}
class Passwd {
@@ -628,14 +722,14 @@
struct passwd* mResult;
};
-static jobject Posix_accept(JNIEnv* env, jobject, jobject javaFd, jobject javaInetSocketAddress) {
+static jobject Posix_accept(JNIEnv* env, jobject, jobject javaFd, jobject javaSocketAddress) {
sockaddr_storage ss;
socklen_t sl = sizeof(ss);
memset(&ss, 0, sizeof(ss));
- sockaddr* peer = (javaInetSocketAddress != NULL) ? reinterpret_cast<sockaddr*>(&ss) : NULL;
- socklen_t* peerLength = (javaInetSocketAddress != NULL) ? &sl : 0;
+ sockaddr* peer = (javaSocketAddress != NULL) ? reinterpret_cast<sockaddr*>(&ss) : NULL;
+ socklen_t* peerLength = (javaSocketAddress != NULL) ? &sl : 0;
jint clientFd = NET_FAILURE_RETRY(env, int, accept, javaFd, peer, peerLength);
- if (clientFd == -1 || !fillInetSocketAddress(env, clientFd, javaInetSocketAddress, ss)) {
+ if (clientFd == -1 || !fillSocketAddress(env, javaSocketAddress, ss, *peerLength)) {
close(clientFd);
return NULL;
}
@@ -1053,15 +1147,7 @@
}
static jint Posix_gettid(JNIEnv* env __unused, jobject) {
-#if defined(__APPLE__)
- uint64_t owner;
- int rc = pthread_threadid_np(NULL, &owner); // Requires Mac OS 10.6
- if (rc != 0) {
- throwErrnoException(env, "gettid");
- return 0;
- }
- return static_cast<jint>(owner);
-#elif defined(__BIONIC__)
+#if defined(__BIONIC__)
return TEMP_FAILURE_RETRY(gettid());
#else
return syscall(__NR_gettid);
@@ -1253,10 +1339,6 @@
}
static jobjectArray Posix_pipe2(JNIEnv* env, jobject, jint flags __unused) {
-#ifdef __APPLE__
- jniThrowException(env, "java/lang/UnsupportedOperationException", "no pipe2 on Mac OS");
- return NULL;
-#else
int fds[2];
throwIfMinusOne(env, "pipe2", TEMP_FAILURE_RETRY(pipe2(&fds[0], flags)));
jobjectArray result = env->NewObjectArray(2, JniConstants::fileDescriptorClass, NULL);
@@ -1274,7 +1356,6 @@
}
}
return result;
-#endif
}
static jint Posix_poll(JNIEnv* env, jobject, jobjectArray javaStructs, jint timeoutMs) {
@@ -1360,32 +1441,22 @@
static void Posix_posix_fallocate(JNIEnv* env, jobject, jobject javaFd __unused,
jlong offset __unused, jlong length __unused) {
-#ifdef __APPLE__
- jniThrowException(env, "java/lang/UnsupportedOperationException",
- "fallocate doesn't exist on a Mac");
-#else
int fd = jniGetFDFromFileDescriptor(env, javaFd);
while ((errno = posix_fallocate64(fd, offset, length)) == EINTR) {
}
if (errno != 0) {
throwErrnoException(env, "posix_fallocate");
}
-#endif
}
static jint Posix_prctl(JNIEnv* env, jobject, jint option __unused, jlong arg2 __unused,
jlong arg3 __unused, jlong arg4 __unused, jlong arg5 __unused) {
-#ifdef __APPLE__
- jniThrowException(env, "java/lang/UnsupportedOperationException", "prctl doesn't exist on a Mac");
- return 0;
-#else
int result = TEMP_FAILURE_RETRY(prctl(static_cast<int>(option),
static_cast<unsigned long>(arg2),
static_cast<unsigned long>(arg3),
static_cast<unsigned long>(arg4),
static_cast<unsigned long>(arg5)));
return throwIfMinusOne(env, "prctl", result);
-#endif
}
static jint Posix_preadBytes(JNIEnv* env, jobject, jobject javaFd, jobject javaBytes, jint byteOffset, jint byteCount, jlong offset) {
@@ -1445,7 +1516,10 @@
sockaddr* from = (javaInetSocketAddress != NULL) ? reinterpret_cast<sockaddr*>(&ss) : NULL;
socklen_t* fromLength = (javaInetSocketAddress != NULL) ? &sl : 0;
jint recvCount = NET_FAILURE_RETRY(env, ssize_t, recvfrom, javaFd, bytes.get() + byteOffset, byteCount, flags, from, fromLength);
- fillInetSocketAddress(env, recvCount, javaInetSocketAddress, ss);
+ if (recvCount == -1) {
+ return recvCount;
+ }
+ fillInetSocketAddress(env, javaInetSocketAddress, ss);
return recvCount;
}
@@ -1599,12 +1673,6 @@
throwIfMinusOne(env, "setsockopt", TEMP_FAILURE_RETRY(setsockopt(fd, level, option, &value, sizeof(value))));
}
-#if defined(__APPLE__) && MAC_OS_X_VERSION_MAX_ALLOWED < 1070
-// Mac OS didn't support modern multicast APIs until 10.7.
-static void Posix_setsockoptIpMreqn(JNIEnv*, jobject, jobject, jint, jint, jint) { abort(); }
-static void Posix_setsockoptGroupReq(JNIEnv*, jobject, jobject, jint, jint, jobject) { abort(); }
-static void Posix_setsockoptGroupSourceReq(JNIEnv*, jobject, jobject, jint, jint, jobject) { abort(); }
-#else
static void Posix_setsockoptIpMreqn(JNIEnv* env, jobject, jobject javaFd, jint level, jint option, jint value) {
ip_mreqn req;
memset(&req, 0, sizeof(req));
@@ -1687,7 +1755,6 @@
}
throwIfMinusOne(env, "setsockopt", rc);
}
-#endif
static void Posix_setsockoptLinger(JNIEnv* env, jobject, jobject javaFd, jint level, jint option, jobject javaLinger) {
static jfieldID lOnoffFid = env->GetFieldID(JniConstants::structLingerClass, "l_onoff", "I");
@@ -1828,6 +1895,14 @@
return makeStructUtsname(env, buf);
}
+static void Posix_unlink(JNIEnv* env, jobject, jstring javaPathname) {
+ ScopedUtfChars pathname(env, javaPathname);
+ if (pathname.c_str() == NULL) {
+ return;
+ }
+ throwIfMinusOne(env, "unlink", unlink(pathname.c_str()));
+}
+
static void Posix_unsetenv(JNIEnv* env, jobject, jstring javaName) {
ScopedUtfChars name(env, javaName);
if (name.c_str() == NULL) {
@@ -1866,7 +1941,7 @@
{ #functionName, signature, reinterpret_cast<void*>(className ## _ ## functionName ## variant) }
static JNINativeMethod gMethods[] = {
- NATIVE_METHOD(Posix, accept, "(Ljava/io/FileDescriptor;Ljava/net/InetSocketAddress;)Ljava/io/FileDescriptor;"),
+ NATIVE_METHOD(Posix, accept, "(Ljava/io/FileDescriptor;Ljava/net/SocketAddress;)Ljava/io/FileDescriptor;"),
NATIVE_METHOD(Posix, access, "(Ljava/lang/String;I)Z"),
NATIVE_METHOD(Posix, android_getaddrinfo, "(Ljava/lang/String;Landroid/system/StructAddrinfo;I)[Ljava/net/InetAddress;"),
NATIVE_METHOD(Posix, bind, "(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V"),
@@ -1980,6 +2055,7 @@
NATIVE_METHOD(Posix, tcsendbreak, "(Ljava/io/FileDescriptor;I)V"),
NATIVE_METHOD(Posix, umaskImpl, "(I)I"),
NATIVE_METHOD(Posix, uname, "()Landroid/system/StructUtsname;"),
+ NATIVE_METHOD(Posix, unlink, "(Ljava/lang/String;)V"),
NATIVE_METHOD(Posix, unsetenv, "(Ljava/lang/String;)V"),
NATIVE_METHOD(Posix, waitpid, "(ILandroid/util/MutableInt;I)I"),
NATIVE_METHOD(Posix, writeBytes, "(Ljava/io/FileDescriptor;Ljava/lang/Object;II)I"),
diff --git a/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp b/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
index 48defc1..f6f812c 100644
--- a/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
+++ b/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
@@ -31,7 +31,7 @@
#include <memory>
#include <string.h>
-#include <libexpat/expat.h>
+#include <expat.h>
#define BUCKET_COUNT 128
diff --git a/luni/src/main/native/sub.mk b/luni/src/main/native/sub.mk
index b8955d7..d0b1c34 100644
--- a/luni/src/main/native/sub.mk
+++ b/luni/src/main/native/sub.mk
@@ -16,19 +16,14 @@
cbigint.cpp \
java_lang_StringToReal.cpp \
java_math_NativeBN.cpp \
- java_nio_ByteOrder.cpp \
java_util_jar_StrictJarFile.cpp \
java_util_regex_Matcher.cpp \
java_util_regex_Pattern.cpp \
- libcore_icu_AlphabeticIndex.cpp \
libcore_icu_ICU.cpp \
libcore_icu_NativeCollation.cpp \
libcore_icu_NativeConverter.cpp \
- libcore_icu_NativeIDN.cpp \
- libcore_icu_NativeNormalizer.cpp \
- libcore_icu_NativePluralRules.cpp \
+ libcore_icu_NativeDecimalFormat.cpp \
libcore_icu_TimeZoneNames.cpp \
- libcore_icu_Transliterator.cpp \
libcore_io_AsynchronousCloseMonitor.cpp \
libcore_io_Memory.cpp \
libcore_io_Posix.cpp \
diff --git a/luni/src/test/java/android/system/UnixSocketAddressTest.java b/luni/src/test/java/android/system/UnixSocketAddressTest.java
new file mode 100644
index 0000000..f1b7fc2
--- /dev/null
+++ b/luni/src/test/java/android/system/UnixSocketAddressTest.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2015 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 android.system;
+
+import junit.framework.TestCase;
+
+import java.nio.charset.StandardCharsets;
+import java.util.Arrays;
+
+public class UnixSocketAddressTest extends TestCase {
+
+ public void testFilesystemSunPath() throws Exception {
+ String path = "/foo/bar";
+ UnixSocketAddress sa = UnixSocketAddress.createFileSystem(path);
+
+ byte[] abstractNameBytes = path.getBytes(StandardCharsets.UTF_8);
+ byte[] expected = new byte[abstractNameBytes.length + 1];
+ // See unix(7)
+ System.arraycopy(abstractNameBytes, 0, expected, 0, abstractNameBytes.length);
+ assertTrue(Arrays.equals(expected, sa.getSunPath()));
+ }
+
+ public void testUnnamedSunPath() throws Exception {
+ UnixSocketAddress sa = UnixSocketAddress.createUnnamed();
+ assertEquals(0, sa.getSunPath().length);
+ }
+
+ public void testAbstractSunPath() throws Exception {
+ String abstractName = "abstract";
+ UnixSocketAddress sa = UnixSocketAddress.createAbstract(abstractName);
+ byte[] abstractNameBytes = abstractName.getBytes(StandardCharsets.UTF_8);
+ byte[] expected = new byte[abstractNameBytes.length + 1];
+ // See unix(7)
+ System.arraycopy(abstractNameBytes, 0, expected, 1, abstractNameBytes.length);
+ assertTrue(Arrays.equals(expected, sa.getSunPath()));
+ }
+}
diff --git a/luni/src/test/java/com/android/org/bouncycastle/crypto/digests/DigestTest.java b/luni/src/test/java/com/android/org/bouncycastle/crypto/digests/DigestTest.java
index 8708214..fce8507 100644
--- a/luni/src/test/java/com/android/org/bouncycastle/crypto/digests/DigestTest.java
+++ b/luni/src/test/java/com/android/org/bouncycastle/crypto/digests/DigestTest.java
@@ -19,6 +19,7 @@
import junit.framework.TestCase;
import com.android.org.bouncycastle.crypto.Digest;
import com.android.org.bouncycastle.crypto.ExtendedDigest;
+import tests.util.SummaryStatistics;
/**
* Implements unit tests for our JNI wrapper around OpenSSL. We use the
@@ -36,6 +37,7 @@
* @param newDigest The new digest implementation, provided by OpenSSL
*/
public void doTestMessageDigest(Digest oldDigest, Digest newDigest) {
+ final int WARMUP = 10;
final int ITERATIONS = 100;
byte[] data = new byte[1024];
@@ -54,27 +56,31 @@
data[i] = (byte)i;
}
- long oldTime = 0;
- long newTime = 0;
+ SummaryStatistics oldTime = new SummaryStatistics();
+ SummaryStatistics newTime = new SummaryStatistics();
- for (int j = 0; j < ITERATIONS; j++) {
- long t0 = System.currentTimeMillis();
+ for (int j = 0; j < ITERATIONS + WARMUP; j++) {
+ long t0 = System.nanoTime();
for (int i = 0; i < 4; i++) {
oldDigest.update(data, 0, data.length);
}
int oldLength = oldDigest.doFinal(oldHash, 0);
- long t1 = System.currentTimeMillis();
+ long t1 = System.nanoTime();
- oldTime = oldTime + (t1 - t0);
+ if (j >= WARMUP) {
+ oldTime.add(t1 - t0);
+ }
- long t2 = System.currentTimeMillis();
+ long t2 = System.nanoTime();
for (int i = 0; i < 4; i++) {
newDigest.update(data, 0, data.length);
}
int newLength = newDigest.doFinal(newHash, 0);
- long t3 = System.currentTimeMillis();
+ long t3 = System.nanoTime();
- newTime = newTime + (t3 - t2);
+ if (j >= WARMUP) {
+ newTime.add(t3 - t2);
+ }
assertEquals("Hash sizes must be equal", oldLength, newLength);
@@ -83,10 +89,13 @@
}
}
- System.out.println("Time for " + ITERATIONS + " x old hash processing: " + oldTime + " ms");
- System.out.println("Time for " + ITERATIONS + " x new hash processing: " + newTime + " ms");
+ System.out.println("Time for " + ITERATIONS + " x old hash processing: "
+ + oldTime.toString());
+ System.out.println("Time for " + ITERATIONS + " x new hash processing: "
+ + newTime.toString());
- assertTrue("New hash should be faster", newTime < oldTime);
+ assertTrue("New hash should be faster:\nold=" + oldTime.toString() + "\nnew="
+ + newTime.toString(), newTime.mean() < oldTime.mean());
}
/**
diff --git a/luni/src/test/java/dalvik/system/JniTest.java b/luni/src/test/java/dalvik/system/JniTest.java
index 37e687d..19f820e 100644
--- a/luni/src/test/java/dalvik/system/JniTest.java
+++ b/luni/src/test/java/dalvik/system/JniTest.java
@@ -361,8 +361,6 @@
assertEquals(Object.class, envGetSuperclass(String.class));
assertEquals(null, envGetSuperclass(Object.class));
assertEquals(null, envGetSuperclass(int.class));
-
- // incorrect! the spec says this should be null. http://b/5652725
- assertEquals(Object.class, envGetSuperclass(Runnable.class));
+ assertEquals(null, envGetSuperclass(Runnable.class));
}
}
diff --git a/luni/src/test/java/libcore/icu/AlphabeticIndexTest.java b/luni/src/test/java/libcore/icu/AlphabeticIndexTest.java
deleted file mode 100644
index 6c7452d..0000000
--- a/luni/src/test/java/libcore/icu/AlphabeticIndexTest.java
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
- * Copyright (C) 2013 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 libcore.icu;
-
-import java.util.Locale;
-
-public class AlphabeticIndexTest extends junit.framework.TestCase {
- private static AlphabeticIndex.ImmutableIndex createIndex(Locale locale) {
- return new AlphabeticIndex(locale).addLabels(Locale.US).getImmutableIndex();
- }
-
- private static void assertHasLabel(AlphabeticIndex.ImmutableIndex ii, String string, String expectedLabel) {
- int index = ii.getBucketIndex(string);
- String label = ii.getBucketLabel(index);
- assertEquals(expectedLabel, label);
- }
-
- public void test_en() throws Exception {
- // English [A-Z]
- AlphabeticIndex.ImmutableIndex en = createIndex(Locale.ENGLISH);
- assertHasLabel(en, "Allen", "A");
- assertHasLabel(en, "allen", "A");
- }
-
- public void test_ja() throws Exception {
- AlphabeticIndex.ImmutableIndex ja = createIndex(Locale.JAPANESE);
-
- // Japanese
- // sorts hiragana/katakana, Kanji/Chinese, English, other
- // …, あ, か, さ, た, な, は, ま, や, ら, わ, …
- // hiragana "a"
- assertHasLabel(ja, "Allen", "A");
- assertHasLabel(ja, "\u3041", "\u3042");
- // katakana "a"
- assertHasLabel(ja, "\u30a1", "\u3042");
-
- // Kanji (sorts to inflow section)
- assertHasLabel(ja, "\u65e5", "");
-
- // http://bugs.icu-project.org/trac/ticket/10423 / http://b/10809397
- assertHasLabel(ja, "\u95c7", "");
- assertHasLabel(ja, "\u308f", "わ");
-
- // English
- assertHasLabel(ja, "Smith", "S");
-
- // Chinese (sorts to inflow section)
- assertHasLabel(ja, "\u6c88" /* Shen/Chen */, "");
-
- // Korean Hangul (sorts to overflow section)
- assertHasLabel(ja, "\u1100", "");
- }
-
- public void test_ko() throws Exception {
- // Korean (sorts Korean, then English)
- // …, ᄀ, ᄂ, ᄃ, ᄅ, ᄆ, ᄇ, ᄉ, ᄋ, ᄌ, ᄎ, ᄏ, ᄐ, ᄑ, ᄒ, …
- AlphabeticIndex.ImmutableIndex ko = createIndex(Locale.KOREAN);
- assertHasLabel(ko, "\u1100", "\u3131");
- assertHasLabel(ko, "\u3131", "\u3131");
- assertHasLabel(ko, "\u1101", "\u3131");
- assertHasLabel(ko, "\u1161", "\u314e");
- }
-
- public void test_cs() throws Exception {
- // Czech
- // …, [A-C], Č,[D-H], CH, [I-R], Ř, S, Š, [T-Z], Ž, …
- AlphabeticIndex.ImmutableIndex cs = createIndex(new Locale("cs"));
- assertHasLabel(cs, "Cena", "C");
- assertHasLabel(cs, "Čáp", "\u010c");
- assertHasLabel(cs, "Ruda", "R");
- assertHasLabel(cs, "Řada", "\u0158");
- assertHasLabel(cs, "Selka", "S");
- assertHasLabel(cs, "Šála", "\u0160");
- assertHasLabel(cs, "Zebra", "Z");
- assertHasLabel(cs, "Žába", "\u017d");
- assertHasLabel(cs, "Chata", "CH");
- }
-
- public void test_fr() throws Exception {
- // French: [A-Z] (no accented chars)
- AlphabeticIndex.ImmutableIndex fr = createIndex(Locale.FRENCH);
- assertHasLabel(fr, "Øfer", "O");
- assertHasLabel(fr, "Œster", "O");
- }
-
- public void test_da() throws Exception {
- // Danish: [A-Z], Æ, Ø, Å
- AlphabeticIndex.ImmutableIndex da = createIndex(new Locale("da"));
- assertHasLabel(da, "Ænes", "\u00c6");
- assertHasLabel(da, "Øfer", "\u00d8");
- assertHasLabel(da, "Œster", "\u00d8");
- assertHasLabel(da, "Ågård", "\u00c5");
- }
-
- public void test_de() throws Exception {
- // German: [A-Z] (no ß or umlauted characters in standard alphabet)
- AlphabeticIndex.ImmutableIndex de = createIndex(Locale.GERMAN);
- assertHasLabel(de, "ßind", "S");
- // We no longer split out "S", "Sch", and "St".
- assertHasLabel(de, "Sacher", "S");
- assertHasLabel(de, "Schiller", "S");
- assertHasLabel(de, "Steiff", "S");
- }
-
- public void test_th() throws Exception {
- // Thai (sorts English then Thai)
- // …, ก, ข, ฃ, ค, ฅ, ฆ, ง, จ, ฉ, ช, ซ, ฌ, ญ, ฎ, ฏ, ฐ, ฑ, ฒ, ณ, ด, ต, ถ, ท, ธ, น, บ, ป, ผ, ฝ, พ, ฟ, ภ, ม, ย, ร, ฤ, ล, ฦ, ว, ศ, ษ, ส, ห, ฬ, อ, ฮ, …,
- AlphabeticIndex.ImmutableIndex th = createIndex(new Locale("th"));
- assertHasLabel(th, "\u0e2d\u0e07\u0e04\u0e4c\u0e40\u0e25\u0e47\u0e01", "\u0e2d");
- assertHasLabel(th, "\u0e2a\u0e34\u0e07\u0e2b\u0e40\u0e2a\u0e19\u0e35", "\u0e2a");
- }
-
- public void test_ar() throws Exception {
- // Arabic (sorts English then Arabic)
- // …, ا, ب, ت, ث, ج, ح, خ, د, ذ, ر, ز, س, ش, ص, ض, ط, ظ, ع, غ, ف, ق, ك, ل, م, ن, ه, و, ي, …
- AlphabeticIndex.ImmutableIndex ar = createIndex(new Locale("ar"));
- assertHasLabel(ar, "\u0646\u0648\u0631", /* Noor */ "\u0646");
- }
-
- public void test_he() throws Exception {
- // Hebrew (sorts English then Hebrew)
- // …, א, ב, ג, ד, ה, ו, ז, ח, ט, י, כ, ל, מ, נ, ס, ע, פ, צ, ק, ר, ש, ת, …
- AlphabeticIndex.ImmutableIndex he = createIndex(new Locale("he"));
- assertHasLabel(he, "\u05e4\u05e8\u05d9\u05d3\u05de\u05df", "\u05e4");
- }
-
- public void test_zh_CN() throws Exception {
- // Simplified Chinese (default collator Pinyin): [A-Z]
- AlphabeticIndex.ImmutableIndex zh_CN = createIndex(new Locale("zh", "CN"));
-
- // Jia/Gu: should be, usually, 'J' for name collator and 'G' for apps/other
- assertHasLabel(zh_CN, "\u8d3e", "J");
-
- // Shen/Chen (simplified): should usually be 'S' for names and 'C' for apps/other.
- // icu4c does not specialize for names and defaults to 'C'.
- // Some OEMs prefer to default to 'S'.
- // We allow either to pass CTS since neither choice is right all the time.
- // assertHasLabel(zh_CN, "\u6c88", "C");
- String shenChenLabel = zh_CN.getBucketLabel(zh_CN.getBucketIndex("\u6c88"));
- assertTrue(shenChenLabel.equals("C") || shenChenLabel.equals("S"));
-
- // Shen/Chen (traditional)
- assertHasLabel(zh_CN, "\u700b", "S");
- }
-
- public void test_zh_HK() throws Exception {
- // Traditional Chinese (strokes).
- // …, [1-33, 35, 36, 39, 48]劃, …
- // Shen/Chen
- AlphabeticIndex.ImmutableIndex zh_HK = createIndex(new Locale("zh", "HK"));
- assertHasLabel(zh_HK, "\u6c88", "7\u5283");
- assertHasLabel(zh_HK, "\u700b", "18\u5283");
- // Jia/Gu
- assertHasLabel(zh_HK, "\u8d3e", "10\u5283");
- }
-
- public void test_constructor_NPE() throws Exception {
- try {
- new AlphabeticIndex(null);
- fail();
- } catch (NullPointerException expected) {
- }
- }
-
- public void test_addLabels_NPE() throws Exception {
- AlphabeticIndex ai = new AlphabeticIndex(Locale.US);
- try {
- ai.addLabels(null);
- fail();
- } catch (NullPointerException expected) {
- }
- }
-
- // ICU 51 default max label count is 99. Test to make sure can create an
- // index with a larger number of labels.
- public void test_setMaxLabelCount() throws Exception {
- final int MAX_LABEL_COUNT = 500;
- AlphabeticIndex ai = new AlphabeticIndex(Locale.US)
- .setMaxLabelCount(MAX_LABEL_COUNT)
- .addLabels(Locale.JAPANESE)
- .addLabels(Locale.KOREAN)
- .addLabels(new Locale("th"))
- .addLabels(new Locale("ar"))
- .addLabels(new Locale("he"))
- .addLabels(new Locale("el"))
- .addLabels(new Locale("ru"));
- assertEquals(MAX_LABEL_COUNT, ai.getMaxLabelCount());
- assertEquals(208, ai.getBucketCount());
- AlphabeticIndex.ImmutableIndex ii = ai.getImmutableIndex();
- assertEquals(ai.getBucketCount(), ii.getBucketCount());
- }
-
- public void test_getBucketIndex_NPE() throws Exception {
- AlphabeticIndex.ImmutableIndex ii = createIndex(Locale.US);
- try {
- ii.getBucketIndex(null);
- fail();
- } catch (NullPointerException expected) {
- }
- }
-
- public void test_getBucketLabel_invalid() throws Exception {
- AlphabeticIndex.ImmutableIndex ii = createIndex(Locale.US);
- try {
- ii.getBucketLabel(-1);
- fail();
- } catch (IllegalArgumentException expected) {
- }
-
- try {
- ii.getBucketLabel(123456);
- fail();
- } catch (IllegalArgumentException expected) {
- }
- }
-}
diff --git a/luni/src/test/java/libcore/icu/DateIntervalFormatTest.java b/luni/src/test/java/libcore/icu/DateIntervalFormatTest.java
index a34ef62..40ad179 100644
--- a/luni/src/test/java/libcore/icu/DateIntervalFormatTest.java
+++ b/luni/src/test/java/libcore/icu/DateIntervalFormatTest.java
@@ -152,16 +152,16 @@
assertEquals("19–22 de enero de 2009", formatDateRange(es_ES, tz, fixedTime, fixedTime + 3 * DAY, 0));
assertEquals("19–22 ene. 2009", formatDateRange(es_ES, tz, fixedTime, fixedTime + 3 * DAY, FORMAT_SHOW_DATE | FORMAT_ABBREV_ALL));
- assertEquals("lun., 19 ene.–jue., 22 ene. 2009", formatDateRange(es_ES, tz, fixedTime, fixedTime + 3 * DAY, FORMAT_SHOW_WEEKDAY | FORMAT_ABBREV_ALL));
+ assertEquals("lun., 19 ene. – jue., 22 ene. 2009", formatDateRange(es_ES, tz, fixedTime, fixedTime + 3 * DAY, FORMAT_SHOW_WEEKDAY | FORMAT_ABBREV_ALL));
assertEquals("lunes, 19 de enero–jueves, 22 de enero de 2009", formatDateRange(es_ES, tz, fixedTime, fixedTime + 3 * DAY, FORMAT_SHOW_WEEKDAY));
assertEquals("19 de enero–22 de abril de 2009", formatDateRange(es_ES, tz, fixedTime, fixedTime + 3 * MONTH, 0));
- assertEquals("19 ene.–22 abr. 2009", formatDateRange(es_ES, tz, fixedTime, fixedTime + 3 * MONTH, FORMAT_SHOW_DATE | FORMAT_ABBREV_ALL));
- assertEquals("lun., 19 ene.–mié., 22 abr. 2009", formatDateRange(es_ES, tz, fixedTime, fixedTime + 3 * MONTH, FORMAT_SHOW_WEEKDAY | FORMAT_ABBREV_ALL));
+ assertEquals("19 ene. – 22 abr. 2009", formatDateRange(es_ES, tz, fixedTime, fixedTime + 3 * MONTH, FORMAT_SHOW_DATE | FORMAT_ABBREV_ALL));
+ assertEquals("lun., 19 ene. – mié., 22 abr. 2009", formatDateRange(es_ES, tz, fixedTime, fixedTime + 3 * MONTH, FORMAT_SHOW_WEEKDAY | FORMAT_ABBREV_ALL));
assertEquals("enero–abril de 2009", formatDateRange(es_ES, tz, fixedTime, fixedTime + 3 * MONTH, FORMAT_NO_MONTH_DAY));
- assertEquals("19 ene. 2009–9 feb. 2012", formatDateRange(es_ES, tz, fixedTime, fixedTime + 3 * YEAR, FORMAT_SHOW_DATE | FORMAT_ABBREV_ALL));
- assertEquals("ene. 2009–feb. 2012", formatDateRange(es_ES, tz, fixedTime, fixedTime + 3 * YEAR, FORMAT_NO_MONTH_DAY | FORMAT_ABBREV_ALL));
+ assertEquals("19 ene. 2009 – 9 feb. 2012", formatDateRange(es_ES, tz, fixedTime, fixedTime + 3 * YEAR, FORMAT_SHOW_DATE | FORMAT_ABBREV_ALL));
+ assertEquals("ene. 2009 – feb. 2012", formatDateRange(es_ES, tz, fixedTime, fixedTime + 3 * YEAR, FORMAT_NO_MONTH_DAY | FORMAT_ABBREV_ALL));
assertEquals("19 de enero de 2009–9 de febrero de 2012", formatDateRange(es_ES, tz, fixedTime, fixedTime + 3 * YEAR, 0));
assertEquals("lunes, 19 de enero de 2009–jueves, 9 de febrero de 2012", formatDateRange(es_ES, tz, fixedTime, fixedTime + 3 * YEAR, FORMAT_SHOW_WEEKDAY));
}
diff --git a/luni/src/test/java/libcore/icu/LocaleDataTest.java b/luni/src/test/java/libcore/icu/LocaleDataTest.java
index 09c3f0f..54b6074 100644
--- a/luni/src/test/java/libcore/icu/LocaleDataTest.java
+++ b/luni/src/test/java/libcore/icu/LocaleDataTest.java
@@ -92,9 +92,9 @@
assertEquals("вс", l.shortWeekdayNames[1]);
assertEquals("вс", l.tinyWeekdayNames[1]);
- // Russian stand-alone weekday names get an initial capital.
- assertEquals("Воскресенье", l.longStandAloneWeekdayNames[1]);
- assertEquals("Вс", l.shortStandAloneWeekdayNames[1]);
+ // Russian stand-alone weekday names have no initial capital since CLDR 28/ICU 56.
+ assertEquals("воскресенье", l.longStandAloneWeekdayNames[1]);
+ assertEquals("вс", l.shortStandAloneWeekdayNames[1]);
assertEquals("В", l.tinyStandAloneWeekdayNames[1]);
}
diff --git a/luni/src/test/java/libcore/icu/NativePluralRulesTest.java b/luni/src/test/java/libcore/icu/NativePluralRulesTest.java
deleted file mode 100644
index 76179b4..0000000
--- a/luni/src/test/java/libcore/icu/NativePluralRulesTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2009 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 libcore.icu;
-
-import java.util.Locale;
-
-public class NativePluralRulesTest extends junit.framework.TestCase {
- public void testNegatives() throws Exception {
- // icu4c's behavior changed, but we prefer to preserve compatibility.
- NativePluralRules en_US = NativePluralRules.forLocale(new Locale("en", "US"));
- assertEquals(NativePluralRules.OTHER, en_US.quantityForInt(2));
- assertEquals(NativePluralRules.ONE, en_US.quantityForInt(1));
- assertEquals(NativePluralRules.OTHER, en_US.quantityForInt(0));
- assertEquals(NativePluralRules.OTHER, en_US.quantityForInt(-1));
- assertEquals(NativePluralRules.OTHER, en_US.quantityForInt(-2));
-
- NativePluralRules ar = NativePluralRules.forLocale(new Locale("ar"));
- assertEquals(NativePluralRules.ZERO, ar.quantityForInt(0));
- assertEquals(NativePluralRules.OTHER, ar.quantityForInt(-1)); // Not ONE.
- assertEquals(NativePluralRules.OTHER, ar.quantityForInt(-2)); // Not TWO.
- assertEquals(NativePluralRules.OTHER, ar.quantityForInt(-3)); // Not FEW.
- assertEquals(NativePluralRules.OTHER, ar.quantityForInt(-11)); // Not MANY.
- assertEquals(NativePluralRules.OTHER, ar.quantityForInt(-100));
- }
-
- public void testEnglish() throws Exception {
- NativePluralRules npr = NativePluralRules.forLocale(new Locale("en", "US"));
- assertEquals(NativePluralRules.OTHER, npr.quantityForInt(0));
- assertEquals(NativePluralRules.ONE, npr.quantityForInt(1));
- assertEquals(NativePluralRules.OTHER, npr.quantityForInt(2));
- }
-
- public void testCzech() throws Exception {
- NativePluralRules npr = NativePluralRules.forLocale(new Locale("cs", "CZ"));
- assertEquals(NativePluralRules.OTHER, npr.quantityForInt(0));
- assertEquals(NativePluralRules.ONE, npr.quantityForInt(1));
- assertEquals(NativePluralRules.FEW, npr.quantityForInt(2));
- assertEquals(NativePluralRules.FEW, npr.quantityForInt(3));
- assertEquals(NativePluralRules.FEW, npr.quantityForInt(4));
- assertEquals(NativePluralRules.OTHER, npr.quantityForInt(5));
- }
-
- public void testArabic() throws Exception {
- NativePluralRules npr = NativePluralRules.forLocale(new Locale("ar"));
- assertEquals(NativePluralRules.ZERO, npr.quantityForInt(0));
- assertEquals(NativePluralRules.ONE, npr.quantityForInt(1));
- assertEquals(NativePluralRules.TWO, npr.quantityForInt(2));
- for (int i = 3; i <= 10; ++i) {
- assertEquals(NativePluralRules.FEW, npr.quantityForInt(i));
- }
- assertEquals(NativePluralRules.MANY, npr.quantityForInt(11));
- assertEquals(NativePluralRules.MANY, npr.quantityForInt(99));
- assertEquals(NativePluralRules.OTHER, npr.quantityForInt(100));
- assertEquals(NativePluralRules.OTHER, npr.quantityForInt(101));
- assertEquals(NativePluralRules.OTHER, npr.quantityForInt(102));
- assertEquals(NativePluralRules.FEW, npr.quantityForInt(103));
- assertEquals(NativePluralRules.MANY, npr.quantityForInt(111));
- }
-
- public void testHebrew() throws Exception {
- // java.util.Locale will translate "he" to the deprecated "iw".
- NativePluralRules he = NativePluralRules.forLocale(new Locale("he"));
- assertEquals(NativePluralRules.ONE, he.quantityForInt(1));
- assertEquals(NativePluralRules.TWO, he.quantityForInt(2));
- assertEquals(NativePluralRules.OTHER, he.quantityForInt(3));
- assertEquals(NativePluralRules.OTHER, he.quantityForInt(10));
- }
-}
-
diff --git a/luni/src/test/java/libcore/icu/TransliteratorTest.java b/luni/src/test/java/libcore/icu/TransliteratorTest.java
index 9ced2de..626d951 100644
--- a/luni/src/test/java/libcore/icu/TransliteratorTest.java
+++ b/luni/src/test/java/libcore/icu/TransliteratorTest.java
@@ -16,18 +16,24 @@
package libcore.icu;
+import android.icu.text.Transliterator;
+
+import java.util.Enumeration;
+
public class TransliteratorTest extends junit.framework.TestCase {
public void testAll() throws Exception {
- for (String id : Transliterator.getAvailableIDs()) {
+ Enumeration<String> ids = Transliterator.getAvailableIDs();
+ while (ids.hasMoreElements()) {
+ String id = ids.nextElement();
System.err.println(id);
- Transliterator t = new Transliterator(id);
+ Transliterator t = Transliterator.getInstance(id);
t.transliterate("hello");
}
}
public void test_Unknown() throws Exception {
try {
- Transliterator t = new Transliterator("Unknown");
+ Transliterator t = Transliterator.getInstance("Unknown");
fail();
} catch (RuntimeException expected) {
}
@@ -35,29 +41,20 @@
public void test_null_id() throws Exception {
try {
- Transliterator t = new Transliterator(null);
- fail();
- } catch (NullPointerException expected) {
- }
- }
-
- public void test_null_string() throws Exception {
- try {
- Transliterator t = new Transliterator("Any-Upper");
- t.transliterate(null);
+ Transliterator t = Transliterator.getInstance(null);
fail();
} catch (NullPointerException expected) {
}
}
public void test_Any_Upper() throws Exception {
- Transliterator t = new Transliterator("Any-Upper");
+ Transliterator t = Transliterator.getInstance("Any-Upper");
assertEquals("HELLO WORLD!", t.transliterate("HeLlO WoRlD!"));
assertEquals("STRASSE", t.transliterate("Straße"));
}
public void test_Any_Lower() throws Exception {
- Transliterator t = new Transliterator("Any-Lower");
+ Transliterator t = Transliterator.getInstance("Any-Lower");
assertEquals("hello world!", t.transliterate("HeLlO WoRlD!"));
}
@@ -65,34 +62,34 @@
String greek = "Καλημέρα κόσμε!";
// Transliterate Greek to Latin, then to plain ASCII.
- Transliterator t = new Transliterator("Greek-Latin");
+ Transliterator t = Transliterator.getInstance("Greek-Latin");
String latin = t.transliterate(greek);
- t = new Transliterator("Latin-Ascii");
+ t = Transliterator.getInstance("Latin-Ascii");
String ascii = t.transliterate(latin);
assertEquals("Kalēméra kósme!", latin);
assertEquals("Kalemera kosme!", ascii);
// Use alternative transliteration variants.
- t = new Transliterator("Greek-Latin/BGN");
+ t = Transliterator.getInstance("Greek-Latin/BGN");
assertEquals("Kaliméra kósme!", t.transliterate(greek));
- t = new Transliterator("Greek-Latin/UNGEGN");
+ t = Transliterator.getInstance("Greek-Latin/UNGEGN");
assertEquals("Kali̱méra kósme!",t.transliterate(greek));
}
public void test_Han_Latin() throws Exception {
- Transliterator t = new Transliterator("Han-Latin");
+ Transliterator t = Transliterator.getInstance("Han-Latin");
assertEquals("hàn zì/hàn zì", t.transliterate("汉字/漢字"));
assertEquals("chén", t.transliterate("\u6c88"));
assertEquals("shěn", t.transliterate("\u700b"));
assertEquals("jiǎ", t.transliterate("\u8d3e"));
- t = new Transliterator("Han-Latin/Names");
+ t = Transliterator.getInstance("Han-Latin/Names");
assertEquals("shěn", t.transliterate("\u6c88"));
assertEquals("shěn", t.transliterate("\u700b"));
assertEquals("jiǎ", t.transliterate("\u8d3e"));
- t = new Transliterator("Han-Latin/Names; Latin-Ascii; Any-Upper");
+ t = Transliterator.getInstance("Han-Latin/Names; Latin-Ascii; Any-Upper");
assertEquals("SHEN", t.transliterate("\u6c88"));
assertEquals("SHEN", t.transliterate("\u700b"));
assertEquals("JIA", t.transliterate("\u8d3e"));
diff --git a/luni/src/test/java/libcore/io/Base64Test.java b/luni/src/test/java/libcore/io/Base64Test.java
index e59cbbe..6cfe186 100644
--- a/luni/src/test/java/libcore/io/Base64Test.java
+++ b/luni/src/test/java/libcore/io/Base64Test.java
@@ -31,21 +31,17 @@
public final class Base64Test extends TestCase {
- public void testDecodeEmpty() throws Exception {
- assertEquals("[]", Arrays.toString(Base64.decode(new byte[0])));
+ public void testEncodeDecode() throws Exception {
+ assertEncodeDecode("");
+ assertEncodeDecode("Eg==", 0x12);
+ assertEncodeDecode("EjQ=", 0x12, 0x34);
+ assertEncodeDecode("EjRW", 0x12, 0x34, 0x56);
+ assertEncodeDecode("EjRWeA==", 0x12, 0x34, 0x56, 0x78);
+ assertEncodeDecode("EjRWeJo=", 0x12, 0x34, 0x56, 0x78, 0x9A);
+ assertEncodeDecode("EjRWeJq8", 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc);
}
- public void testEncode() throws Exception {
- assertEncoded("");
- assertEncoded("Eg==", 0x12);
- assertEncoded("EjQ=", 0x12, 0x34 );
- assertEncoded("EjRW", 0x12, 0x34, 0x56);
- assertEncoded("EjRWeA==", 0x12, 0x34, 0x56, 0x78);
- assertEncoded("EjRWeJo=", 0x12, 0x34, 0x56, 0x78, 0x9A);
- assertEncoded("EjRWeJq8", 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc);
- }
-
- public void testEncode_DoesNotWrap() throws Exception {
+ public void testEncode_doesNotWrap() throws Exception {
int[] data = new int[61];
Arrays.fill(data, 0xff);
String expected = "///////////////////////////////////////////////////////////////////////"
@@ -296,14 +292,6 @@
assertEquals(expectedString, actualString);
}
- public void assertEncoded(String expected , int... data) {
- byte[] dataBytes = new byte[data.length];
- for (int i = 0; i < data.length; i++) {
- dataBytes[i] = (byte) data[i];
- }
- assertEquals(expected, Base64.encode(dataBytes));
- }
-
private static String intsToString(int[] toConvert, int length) {
String[] out = new String[length];
for (int i = 0; i < length; i++) {
@@ -312,3 +300,4 @@
return Arrays.toString(out);
}
}
+
diff --git a/luni/src/test/java/libcore/io/ClassPathURLStreamHandlerTest.java b/luni/src/test/java/libcore/io/ClassPathURLStreamHandlerTest.java
new file mode 100644
index 0000000..9992aeb
--- /dev/null
+++ b/luni/src/test/java/libcore/io/ClassPathURLStreamHandlerTest.java
@@ -0,0 +1,205 @@
+/*
+ * Copyright (C) 2015 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 libcore.io;
+
+import junit.framework.TestCase;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.net.JarURLConnection;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLStreamHandler;
+import java.net.UnknownServiceException;
+import java.util.Arrays;
+
+import tests.support.resource.Support_Resources;
+
+public class ClassPathURLStreamHandlerTest extends TestCase {
+
+ // A well formed jar file with 6 entries.
+ private static final String JAR = "ClassPathURLStreamHandlerTest.jar";
+ private static final String ENTRY_IN_ROOT = "root.txt";
+ private static final String DIR_ENTRY_WITHOUT_SLASH = "foo";
+ private static final String DIR_ENTRY_WITH_SLASH = DIR_ENTRY_WITHOUT_SLASH + "/";
+ private static final String ENTRY_IN_SUBDIR = "foo/bar/baz.txt";
+ private static final String ENTRY_STORED = "stored_file.txt";
+ private static final String ENTRY_WITH_SPACES_ENCODED = "file%20with%20spaces.txt";
+ private static final String ENTRY_WITH_SPACES_UNENCODED = "file with spaces.txt";
+ private static final String ENTRY_THAT_NEEDS_ESCAPING = "file_with_percent20_%20.txt";
+ private static final String ENTRY_WITH_RELATIVE_PATH = "foo/../foo/bar/baz.txt";
+ private static final String MISSING_ENTRY = "Wrong.resource";
+
+ private File jarFile;
+
+ @Override
+ protected void setUp() {
+ File resources = Support_Resources.createTempFolder();
+ Support_Resources.copyFile(resources, null, JAR);
+ jarFile = new File(resources, JAR);
+ }
+
+ public void testConstructor() throws Exception {
+ try {
+ ClassPathURLStreamHandler streamHandler = new ClassPathURLStreamHandler("Missing.file");
+ fail("Should throw IOException");
+ } catch (IOException expected) {
+ }
+
+ String fileName = jarFile.getCanonicalPath();
+ ClassPathURLStreamHandler streamHandler = new ClassPathURLStreamHandler(fileName);
+ streamHandler.close();
+ }
+
+ public void testGetEntryOrNull() throws Exception {
+ String fileName = jarFile.getCanonicalPath();
+ ClassPathURLStreamHandler streamHandler = new ClassPathURLStreamHandler(fileName);
+
+ assertNotNull(streamHandler.getEntryUrlOrNull(ENTRY_IN_ROOT));
+ assertNotNull(streamHandler.getEntryUrlOrNull(ENTRY_IN_SUBDIR));
+ assertNotNull(streamHandler.getEntryUrlOrNull(ENTRY_WITH_SPACES_UNENCODED));
+ assertNotNull(streamHandler.getEntryUrlOrNull(ENTRY_THAT_NEEDS_ESCAPING));
+
+ // getEntryOrNull() performs a lookup with and without trailing slash to handle directories.
+ // http://b/22527772
+ URL urlWithoutSlash = streamHandler.getEntryUrlOrNull(DIR_ENTRY_WITHOUT_SLASH);
+ assertNotNull(urlWithoutSlash);
+ assertTrue(urlWithoutSlash.toString().endsWith(DIR_ENTRY_WITHOUT_SLASH));
+
+ URL urlWithSlash = streamHandler.getEntryUrlOrNull(DIR_ENTRY_WITH_SLASH);
+ assertNotNull(urlWithSlash);
+ assertTrue(urlWithSlash.toString().endsWith(DIR_ENTRY_WITH_SLASH));
+
+ assertNull(streamHandler.getEntryUrlOrNull(MISSING_ENTRY));
+ assertNull(streamHandler.getEntryUrlOrNull("/" + ENTRY_IN_ROOT));
+ assertNull(streamHandler.getEntryUrlOrNull("/" + ENTRY_IN_SUBDIR));
+ assertNull(streamHandler.getEntryUrlOrNull(ENTRY_WITH_SPACES_ENCODED));
+ assertNull(streamHandler.getEntryUrlOrNull(ENTRY_WITH_RELATIVE_PATH));
+ assertNull(streamHandler.getEntryUrlOrNull("/" + DIR_ENTRY_WITHOUT_SLASH));
+ assertNull(streamHandler.getEntryUrlOrNull("/" + DIR_ENTRY_WITH_SLASH));
+ streamHandler.close();
+ }
+
+ public void testIsEntryStored() throws IOException {
+ String fileName = jarFile.getCanonicalPath();
+ ClassPathURLStreamHandler streamHandler = new ClassPathURLStreamHandler(fileName);
+
+ assertFalse(streamHandler.isEntryStored("this/file/does/not/exist.txt"));
+ // This one is compressed
+ assertFalse(streamHandler.isEntryStored(ENTRY_IN_SUBDIR));
+ assertTrue(streamHandler.isEntryStored(ENTRY_STORED));
+
+ // isEntryStored is used internally and requires an exact name match.
+ assertFalse(streamHandler.isEntryStored(DIR_ENTRY_WITHOUT_SLASH));
+ // Directory entries are just stored, empty entries with "/" on the end of the name, so
+ // "true".
+ assertTrue(streamHandler.isEntryStored(DIR_ENTRY_WITH_SLASH));
+ }
+
+ public void testOpenConnection() throws Exception {
+ String fileName = jarFile.getCanonicalPath();
+ ClassPathURLStreamHandler streamHandler = new ClassPathURLStreamHandler(fileName);
+
+ assertOpenConnectionOk(jarFile, ENTRY_IN_ROOT, streamHandler);
+ assertOpenConnectionOk(jarFile, ENTRY_IN_SUBDIR, streamHandler);
+ assertOpenConnectionOk(jarFile, ENTRY_WITH_SPACES_ENCODED, streamHandler);
+ assertOpenConnectionOk(jarFile, ENTRY_WITH_SPACES_UNENCODED, streamHandler);
+ assertOpenConnectionOk(jarFile, DIR_ENTRY_WITH_SLASH, streamHandler);
+ assertOpenConnectionOk(jarFile, DIR_ENTRY_WITHOUT_SLASH, streamHandler);
+
+ assertOpenConnectionConnectFails(jarFile, ENTRY_WITH_RELATIVE_PATH, streamHandler);
+ assertOpenConnectionConnectFails(jarFile, MISSING_ENTRY, streamHandler);
+ assertOpenConnectionConnectFails(jarFile, ENTRY_THAT_NEEDS_ESCAPING, streamHandler);
+
+ streamHandler.close();
+ }
+
+ private void assertOpenConnectionConnectFails(
+ File jarFile, String entryName, URLStreamHandler streamHandler) throws IOException {
+
+ URL standardUrl = createJarUrl(jarFile, entryName, null /* use default stream handler */);
+ try {
+ standardUrl.openConnection().connect();
+ fail();
+ } catch (FileNotFoundException expected) {
+ }
+
+ URL actualUrl = createJarUrl(jarFile, entryName, streamHandler);
+ try {
+ actualUrl.openConnection().connect();
+ fail();
+ } catch (FileNotFoundException expected) {
+ }
+ }
+
+ private static void assertOpenConnectionOk(File jarFile, String entryName,
+ ClassPathURLStreamHandler streamHandler) throws IOException {
+ URL standardUrl = createJarUrl(jarFile, entryName, null /* use default stream handler */);
+ URLConnection standardUrlConnection = standardUrl.openConnection();
+ assertNotNull(standardUrlConnection);
+
+ URL actualUrl = createJarUrl(jarFile, entryName, streamHandler);
+ URLConnection actualUrlConnection = actualUrl.openConnection();
+ assertNotNull(actualUrlConnection);
+ assertBehaviorSame(standardUrlConnection, actualUrlConnection);
+ }
+
+ private static void assertBehaviorSame(URLConnection standardURLConnection,
+ URLConnection actualUrlConnection) throws IOException {
+
+ JarURLConnection standardJarUrlConnection = (JarURLConnection) standardURLConnection;
+ JarURLConnection actualJarUrlConnection = (JarURLConnection) actualUrlConnection;
+
+ byte[] actualBytes = Streams.readFully(actualJarUrlConnection.getInputStream());
+ byte[] standardBytes = Streams.readFully(standardJarUrlConnection.getInputStream());
+ assertEquals(Arrays.toString(standardBytes), Arrays.toString(actualBytes));
+
+ try {
+ actualJarUrlConnection.getOutputStream();
+ fail();
+ } catch (UnknownServiceException expected) {
+ }
+
+ assertEquals(
+ standardJarUrlConnection.getJarFile().getName(),
+ actualJarUrlConnection.getJarFile().getName());
+
+ assertEquals(
+ standardJarUrlConnection.getJarEntry().getName(),
+ actualJarUrlConnection.getJarEntry().getName());
+
+ assertEquals(
+ standardJarUrlConnection.getJarFileURL(),
+ actualJarUrlConnection.getJarFileURL());
+
+ assertEquals(
+ standardJarUrlConnection.getContentType(),
+ actualJarUrlConnection.getContentType());
+
+ assertEquals(
+ standardJarUrlConnection.getContentLength(),
+ actualJarUrlConnection.getContentLength());
+ }
+
+ private static URL createJarUrl(File jarFile, String entryName, URLStreamHandler streamHandler)
+ throws MalformedURLException {
+ return new URL("jar", null, -1, jarFile.toURI() + "!/" + entryName, streamHandler);
+ }
+
+}
diff --git a/luni/src/test/java/libcore/io/OsTest.java b/luni/src/test/java/libcore/io/OsTest.java
index 94303e0..d2c4058 100644
--- a/luni/src/test/java/libcore/io/OsTest.java
+++ b/luni/src/test/java/libcore/io/OsTest.java
@@ -22,6 +22,8 @@
import android.system.PacketSocketAddress;
import android.system.StructTimeval;
import android.system.StructUcred;
+import android.system.UnixSocketAddress;
+
import java.io.File;
import java.io.FileDescriptor;
import java.io.FileInputStream;
@@ -30,10 +32,8 @@
import java.net.Inet6Address;
import java.net.InetAddress;
import java.net.InetSocketAddress;
-import java.net.InetUnixAddress;
import java.net.NetworkInterface;
import java.net.ServerSocket;
-import java.net.SocketAddress;
import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
@@ -70,19 +70,25 @@
public void testUnixDomainSockets_in_file_system() throws Exception {
String path = System.getProperty("java.io.tmpdir") + "/test_unix_socket";
new File(path).delete();
- checkUnixDomainSocket(new InetUnixAddress(path), false);
+ checkUnixDomainSocket(UnixSocketAddress.createFileSystem(path), false);
}
public void testUnixDomainSocket_abstract_name() throws Exception {
// Linux treats a sun_path starting with a NUL byte as an abstract name. See unix(7).
- byte[] path = "/abstract_name_unix_socket".getBytes("UTF-8");
- path[0] = 0;
- checkUnixDomainSocket(new InetUnixAddress(path), true);
+ checkUnixDomainSocket(UnixSocketAddress.createAbstract("/abstract_name_unix_socket"), true);
}
- private void checkUnixDomainSocket(final InetUnixAddress address, final boolean isAbstract) throws Exception {
+ public void testUnixDomainSocket_unnamed() throws Exception {
+ final FileDescriptor fd = Libcore.os.socket(AF_UNIX, SOCK_STREAM, 0);
+ // unix(7) says an unbound socket is unnamed.
+ checkNoSockName(fd);
+ Libcore.os.close(fd);
+ }
+
+ private void checkUnixDomainSocket(final UnixSocketAddress address, final boolean isAbstract)
+ throws Exception {
final FileDescriptor serverFd = Libcore.os.socket(AF_UNIX, SOCK_STREAM, 0);
- Libcore.os.bind(serverFd, address, 0);
+ Libcore.os.bind(serverFd, address);
Libcore.os.listen(serverFd, 5);
checkSockName(serverFd, isAbstract, address);
@@ -90,7 +96,7 @@
Thread server = new Thread(new Runnable() {
public void run() {
try {
- InetSocketAddress peerAddress = new InetSocketAddress();
+ UnixSocketAddress peerAddress = UnixSocketAddress.createUnnamed();
FileDescriptor clientFd = Libcore.os.accept(serverFd, peerAddress);
checkSockName(clientFd, isAbstract, address);
checkNoName(peerAddress);
@@ -119,7 +125,7 @@
FileDescriptor clientFd = Libcore.os.socket(AF_UNIX, SOCK_STREAM, 0);
- Libcore.os.connect(clientFd, address, 0);
+ Libcore.os.connect(clientFd, address);
checkNoSockName(clientFd);
String string = "hello, world!";
@@ -135,26 +141,25 @@
Libcore.os.close(clientFd);
}
- private void checkSockName(FileDescriptor fd, boolean isAbstract, InetAddress address) throws Exception {
- InetSocketAddress isa = (InetSocketAddress) Libcore.os.getsockname(fd);
+ private static void checkSockName(FileDescriptor fd, boolean isAbstract,
+ UnixSocketAddress address) throws Exception {
+ UnixSocketAddress isa = (UnixSocketAddress) Libcore.os.getsockname(fd);
+ assertEquals(address, isa);
if (isAbstract) {
- checkNoName(isa);
- } else {
- assertEquals(address, isa.getAddress());
+ assertEquals(0, isa.getSunPath()[0]);
}
}
- private void checkNoName(SocketAddress sa) {
- InetSocketAddress isa = (InetSocketAddress) sa;
- assertEquals(0, isa.getAddress().getAddress().length);
+ private void checkNoName(UnixSocketAddress usa) {
+ assertEquals(0, usa.getSunPath().length);
}
private void checkNoPeerName(FileDescriptor fd) throws Exception {
- checkNoName(Libcore.os.getpeername(fd));
+ checkNoName((UnixSocketAddress) Libcore.os.getpeername(fd));
}
private void checkNoSockName(FileDescriptor fd) throws Exception {
- checkNoName(Libcore.os.getsockname(fd));
+ checkNoName((UnixSocketAddress) Libcore.os.getsockname(fd));
}
public void test_strsignal() throws Exception {
@@ -220,7 +225,7 @@
}
static void checkByteBufferPositions_sendto_recvfrom(
- int family, InetAddress loopback) throws Exception {
+ int family, InetAddress loopback) throws Exception {
final FileDescriptor serverFd = Libcore.os.socket(family, SOCK_STREAM, 0);
Libcore.os.bind(serverFd, loopback, 0);
Libcore.os.listen(serverFd, 5);
@@ -253,13 +258,13 @@
}
});
-
server.start();
FileDescriptor clientFd = Libcore.os.socket(family, SOCK_STREAM, 0);
Libcore.os.connect(clientFd, address.getAddress(), address.getPort());
- final byte[] bytes = "good bye, cruel black hole with fancy distortion".getBytes(StandardCharsets.US_ASCII);
+ final byte[] bytes = "good bye, cruel black hole with fancy distortion"
+ .getBytes(StandardCharsets.US_ASCII);
assertTrue(bytes.length > 24);
ByteBuffer input = ByteBuffer.wrap(bytes);
@@ -341,11 +346,11 @@
}
public void test_sendtoSocketAddress_af_inet() throws Exception {
- checkSendToSocketAddress(AF_INET, InetAddress.getByName("127.0.0.1"));
+ checkSendToSocketAddress(AF_INET, InetAddress.getByName("127.0.0.1"));
}
public void test_sendtoSocketAddress_af_inet6() throws Exception {
- checkSendToSocketAddress(AF_INET6, InetAddress.getByName("::1"));
+ checkSendToSocketAddress(AF_INET6, InetAddress.getByName("::1"));
}
public void test_socketFamilies() throws Exception {
@@ -373,11 +378,11 @@
private static void assertArrayEquals(byte[] expected, byte[] actual) {
assertTrue("Expected=" + Arrays.toString(expected) + ", actual=" + Arrays.toString(actual),
- Arrays.equals(expected, actual));
+ Arrays.equals(expected, actual));
}
private static void checkSocketPing(FileDescriptor fd, InetAddress to, byte[] packet,
- byte type, byte responseType, boolean useSendto) throws Exception {
+ byte type, byte responseType, boolean useSendto) throws Exception {
int len = packet.length;
packet[0] = type;
if (useSendto) {
@@ -407,8 +412,8 @@
final byte ICMP_ECHO = 8, ICMP_ECHOREPLY = 0;
final byte ICMPV6_ECHO_REQUEST = (byte) 128, ICMPV6_ECHO_REPLY = (byte) 129;
final byte[] packet = ("\000\000\000\000" + // ICMP type, code.
- "\000\000\000\003" + // ICMP ID (== port), sequence number.
- "Hello myself").getBytes(StandardCharsets.US_ASCII);
+ "\000\000\000\003" + // ICMP ID (== port), sequence number.
+ "Hello myself").getBytes(StandardCharsets.US_ASCII);
FileDescriptor fd = Libcore.os.socket(AF_INET6, SOCK_DGRAM, IPPROTO_ICMPV6);
InetAddress ipv6Loopback = InetAddress.getByName("::1");
@@ -421,58 +426,89 @@
checkSocketPing(fd, ipv4Loopback, packet, ICMP_ECHO, ICMP_ECHOREPLY, false);
}
- private static void assertPartial(byte[] expected, byte[] actual) {
- for (int i = 0; i < expected.length; i++) {
- if (expected[i] != actual[i]) {
- fail("Expected " + Arrays.toString(expected) + " but found "
- + Arrays.toString(actual));
- }
- }
+ public void test_Ipv4Fallback() throws Exception {
+ // This number of iterations gives a ~60% chance of creating the conditions that caused
+ // http://b/23088314 without making test times too long. On a hammerhead running MRZ37C using
+ // vogar, this test takes about 4s.
+ final int ITERATIONS = 10000;
+ for (int i = 0; i < ITERATIONS; i++) {
+ FileDescriptor mUdpSock = Libcore.os.socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
+ try {
+ Libcore.os.bind(mUdpSock, Inet4Address.ANY, 0);
+ } catch(ErrnoException e) {
+ fail("ErrnoException after " + i + " iterations: " + e);
+ } finally {
+ Libcore.os.close(mUdpSock);
+ }
}
+ }
- public void test_xattr() throws Exception {
- final String NAME_TEST = "user.meow";
+ public void test_unlink() throws Exception {
+ File f = File.createTempFile("OsTest", "tst");
+ assertTrue(f.exists());
+ Libcore.os.unlink(f.getAbsolutePath());
+ assertFalse(f.exists());
- final byte[] VALUE_CAKE = "cake cake cake".getBytes(StandardCharsets.UTF_8);
- final byte[] VALUE_PIE = "pie".getBytes(StandardCharsets.UTF_8);
-
- File file = File.createTempFile("xattr", "test");
- String path = file.getAbsolutePath();
-
- byte[] tmp = new byte[1024];
- try {
- try {
- Libcore.os.getxattr(path, NAME_TEST, tmp);
- fail("Expected ENODATA");
- } catch (ErrnoException e) {
- assertEquals(OsConstants.ENODATA, e.errno);
- }
-
- Libcore.os.setxattr(path, NAME_TEST, VALUE_CAKE, OsConstants.XATTR_CREATE);
- assertEquals(VALUE_CAKE.length, Libcore.os.getxattr(path, NAME_TEST, tmp));
- assertPartial(VALUE_CAKE, tmp);
-
- try {
- Libcore.os.setxattr(path, NAME_TEST, VALUE_PIE, OsConstants.XATTR_CREATE);
- fail("Expected EEXIST");
- } catch (ErrnoException e) {
- assertEquals(OsConstants.EEXIST, e.errno);
- }
-
- Libcore.os.setxattr(path, NAME_TEST, VALUE_PIE, OsConstants.XATTR_REPLACE);
- assertEquals(VALUE_PIE.length, Libcore.os.getxattr(path, NAME_TEST, tmp));
- assertPartial(VALUE_PIE, tmp);
-
- Libcore.os.removexattr(path, NAME_TEST);
- try {
- Libcore.os.getxattr(path, NAME_TEST, tmp);
- fail("Expected ENODATA");
- } catch (ErrnoException e) {
- assertEquals(OsConstants.ENODATA, e.errno);
- }
-
- } finally {
- file.delete();
- }
+ try {
+ Libcore.os.unlink(f.getAbsolutePath());
+ fail();
+ } catch (ErrnoException e) {
+ assertEquals(OsConstants.ENOENT, e.errno);
}
+ }
+
+ public void test_xattr() throws Exception {
+ final String NAME_TEST = "user.meow";
+
+ final byte[] VALUE_CAKE = "cake cake cake".getBytes(StandardCharsets.UTF_8);
+ final byte[] VALUE_PIE = "pie".getBytes(StandardCharsets.UTF_8);
+
+ File file = File.createTempFile("xattr", "test");
+ String path = file.getAbsolutePath();
+
+ byte[] tmp = new byte[1024];
+ try {
+ try {
+ Libcore.os.getxattr(path, NAME_TEST, tmp);
+ fail("Expected ENODATA");
+ } catch (ErrnoException e) {
+ assertEquals(OsConstants.ENODATA, e.errno);
+ }
+
+ Libcore.os.setxattr(path, NAME_TEST, VALUE_CAKE, OsConstants.XATTR_CREATE);
+ assertEquals(VALUE_CAKE.length, Libcore.os.getxattr(path, NAME_TEST, tmp));
+ assertStartsWith(VALUE_CAKE, tmp);
+
+ try {
+ Libcore.os.setxattr(path, NAME_TEST, VALUE_PIE, OsConstants.XATTR_CREATE);
+ fail("Expected EEXIST");
+ } catch (ErrnoException e) {
+ assertEquals(OsConstants.EEXIST, e.errno);
+ }
+
+ Libcore.os.setxattr(path, NAME_TEST, VALUE_PIE, OsConstants.XATTR_REPLACE);
+ assertEquals(VALUE_PIE.length, Libcore.os.getxattr(path, NAME_TEST, tmp));
+ assertStartsWith(VALUE_PIE, tmp);
+
+ Libcore.os.removexattr(path, NAME_TEST);
+ try {
+ Libcore.os.getxattr(path, NAME_TEST, tmp);
+ fail("Expected ENODATA");
+ } catch (ErrnoException e) {
+ assertEquals(OsConstants.ENODATA, e.errno);
+ }
+
+ } finally {
+ file.delete();
+ }
+ }
+
+ private static void assertStartsWith(byte[] expectedContents, byte[] container) {
+ for (int i = 0; i < expectedContents.length; i++) {
+ if (expectedContents[i] != container[i]) {
+ fail("Expected " + Arrays.toString(expectedContents) + " but found "
+ + Arrays.toString(expectedContents));
+ }
+ }
+ }
}
diff --git a/luni/src/test/java/libcore/java/io/FileTest.java b/luni/src/test/java/libcore/java/io/FileTest.java
index b4101f9..482d9dd 100644
--- a/luni/src/test/java/libcore/java/io/FileTest.java
+++ b/luni/src/test/java/libcore/java/io/FileTest.java
@@ -24,6 +24,11 @@
import libcore.io.Libcore;
public class FileTest extends junit.framework.TestCase {
+
+ static {
+ System.loadLibrary("javacoretests");
+ }
+
private static File createTemporaryDirectory() throws Exception {
String base = System.getProperty("java.io.tmpdir");
File directory = new File(base, UUID.randomUUID().toString());
@@ -271,4 +276,31 @@
assertFalse(badParent.exists());
assertFalse(badParent.mkdirs());
}
+
+ // http://b/23523042 : Test that creating a directory and file with
+ // a surrogate pair in the name works as expected and roundtrips correctly.
+ public void testFilesWithSurrogatePairs() throws Exception {
+ File base = createTemporaryDirectory();
+ // U+13000 encodes to the surrogate pair D80C + DC00 in UTF16
+ // and the 4 byte UTF-8 sequence [ 0xf0, 0x93, 0x80, 0x80 ]. The
+ // file name must be encoded using the 4 byte UTF-8 sequence before
+ // it reaches the file system.
+ File subDir = new File(base, "dir_\uD80C\uDC00");
+ assertTrue(subDir.mkdir());
+ File subFile = new File(subDir, "file_\uD80C\uDC00");
+ assertTrue(subFile.createNewFile());
+
+ File[] files = base.listFiles();
+ assertEquals(1, files.length);
+ assertEquals("dir_\uD80C\uDC00", files[0].getName());
+
+ files = subDir.listFiles();
+ assertEquals(1, files.length);
+ assertEquals("file_\uD80C\uDC00", files[0].getName());
+
+ // Throws on error.
+ nativeTestFilesWithSurrogatePairs(base.getAbsolutePath());
+ }
+
+ private static native void nativeTestFilesWithSurrogatePairs(String base);
}
diff --git a/luni/src/test/java/libcore/java/lang/ClassTest.java b/luni/src/test/java/libcore/java/lang/ClassTest.java
index 15298ea..8d085b9 100644
--- a/luni/src/test/java/libcore/java/lang/ClassTest.java
+++ b/luni/src/test/java/libcore/java/lang/ClassTest.java
@@ -50,4 +50,25 @@
public void test_getGenericSuperclass_returnsObjectForArrays() {
assertSame(Object.class, (new Integer[0]).getClass().getGenericSuperclass());
}
+
+ interface A {
+ public static String name = "A";
+ }
+ interface B {
+ public static String name = "B";
+ }
+ class X implements A { }
+ class Y extends X implements B { }
+ public void test_getField() {
+ try {
+ assertEquals(A.class.getField("name"), X.class.getField("name"));
+ } catch (NoSuchFieldException e) {
+ fail("Got exception");
+ }
+ try {
+ assertEquals(B.class.getField("name"), Y.class.getField("name"));
+ } catch (NoSuchFieldException e) {
+ fail("Got exception");
+ }
+ }
}
diff --git a/luni/src/test/java/libcore/java/lang/NoClassDefFoundErrorTest.java b/luni/src/test/java/libcore/java/lang/NoClassDefFoundErrorTest.java
new file mode 100644
index 0000000..3986378
--- /dev/null
+++ b/luni/src/test/java/libcore/java/lang/NoClassDefFoundErrorTest.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2015 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 libcore.java.lang;
+
+public class NoClassDefFoundErrorTest extends junit.framework.TestCase {
+ // The Android runtime requires a constructor accepting a cause.
+ public void test_NoClassDefFoundError_constructor_with_cause() throws Exception {
+ Class<NoClassDefFoundError> klass = NoClassDefFoundError.class;
+ // This will succeed if the constructor is declared in NoClassDefFoundError.
+ klass.getDeclaredConstructor(String.class, Throwable.class);
+ }
+}
diff --git a/luni/src/test/java/libcore/java/lang/OldAndroidMonitorTest.java b/luni/src/test/java/libcore/java/lang/OldAndroidMonitorTest.java
index 4760c6d..8ef507a 100755
--- a/luni/src/test/java/libcore/java/lang/OldAndroidMonitorTest.java
+++ b/luni/src/test/java/libcore/java/lang/OldAndroidMonitorTest.java
@@ -18,6 +18,8 @@
import junit.framework.TestCase;
+import java.util.concurrent.CountDownLatch;
+
public class OldAndroidMonitorTest extends TestCase {
public void testWaitArgumentsTest() throws Exception {
@@ -102,363 +104,69 @@
}
}
- private class Interrupter extends Thread {
- private final Waiter waiter;
+ /**
+ * A thread that blocks forever on {@code wait()} until it's interrupted.
+ */
+ static class Waiter extends Thread {
+ private final Object lock;
+ private final CountDownLatch cdl;
+ private boolean wasInterrupted;
- Interrupter(String name, Waiter waiter) {
- super(name);
- this.waiter = waiter;
- }
-
- public void run() {
- try {
- run_inner();
- } catch (Throwable t) {
- OldAndroidMonitorTest.errorException = t;
- OldAndroidMonitorTest.testThread.interrupt();
- }
- }
-
- private void run_inner() {
- // System.out.println("InterruptTest: starting waiter");
- waiter.start();
-
- try {
- Thread.currentThread().sleep(500);
- } catch (InterruptedException ex) {
- throw new RuntimeException("Test sleep interrupted.", ex);
- }
-
- /* Waiter is spinning, and its monitor should still be thin.
- */
- // System.out.println("Test interrupting waiter");
- waiter.interrupt();
- waiter.spin = false;
-
- for (int i = 0; i < 3; i++) {
- /* Wait for the waiter to start waiting.
- */
- synchronized (waiter.interrupterLock) {
- try {
- waiter.interrupterLock.wait();
- } catch (InterruptedException ex) {
- throw new RuntimeException("Test wait interrupted.", ex);
- }
- }
-
- /* Before interrupting, grab the waiter lock, which
- * guarantees that the waiter is already sitting in wait().
- */
- synchronized (waiter) {
- //System.out.println("Test interrupting waiter (" + i + ")");
- waiter.interrupt();
- }
- }
-
- // System.out.println("Test waiting for waiter to die.");
- try {
- waiter.join();
- } catch (InterruptedException ex) {
- throw new RuntimeException("Test join interrupted.", ex);
- }
- // System.out.println("InterruptTest done.");
- }
+ public Waiter(Object lock, CountDownLatch cdl) {
+ this.lock = lock;
+ this.cdl = cdl;
+ wasInterrupted = false;
}
- private class Waiter extends Thread {
- Object interrupterLock = new Object();
- volatile boolean spin = true;
-
- Waiter(String name) {
- super(name);
- }
-
- public void run() {
- try {
- run_inner();
- } catch (Throwable t) {
- OldAndroidMonitorTest.errorException = t;
- OldAndroidMonitorTest.testThread.interrupt();
- }
- }
-
- void run_inner() {
- // System.out.println("Waiter spinning");
- while (spin) {
- // We're going to get interrupted while we spin.
- }
-
- if (interrupted()) {
- // System.out.println("Waiter done spinning; interrupted.");
- } else {
- throw new RuntimeException("Thread not interrupted " +
- "during spin");
- }
-
- synchronized (this) {
- boolean sawEx = false;
-
- try {
- synchronized (interrupterLock) {
- interrupterLock.notify();
- }
- // System.out.println("Waiter calling wait()");
- this.wait();
- } catch (InterruptedException ex) {
- sawEx = true;
- // System.out.println("wait(): Waiter caught " + ex);
- }
- // System.out.println("wait() finished");
-
- if (!sawEx) {
- throw new RuntimeException("Thread not interrupted " +
- "during wait()");
- }
- }
- synchronized (this) {
- boolean sawEx = false;
-
- try {
- synchronized (interrupterLock) {
- interrupterLock.notify();
- }
- // System.out.println("Waiter calling wait(1000)");
- this.wait(1000);
- } catch (InterruptedException ex) {
- sawEx = true;
- // System.out.println("wait(1000): Waiter caught " + ex);
- }
- // System.out.println("wait(1000) finished");
-
- if (!sawEx) {
- throw new RuntimeException("Thread not interrupted " +
- "during wait(1000)");
- }
- }
- synchronized (this) {
- boolean sawEx = false;
-
- try {
- synchronized (interrupterLock) {
- interrupterLock.notify();
- }
- // System.out.println("Waiter calling wait(1000, 5000)");
- this.wait(1000, 5000);
- } catch (InterruptedException ex) {
- sawEx = true;
- // System.out.println("wait(1000, 5000): Waiter caught " + ex);
- }
- // System.out.println("wait(1000, 5000) finished");
-
- if (!sawEx) {
- throw new RuntimeException("Thread not interrupted " +
- "during wait(1000, 5000)");
- }
- }
-
- // System.out.println("Waiter returning");
- }
- }
-
- private static Throwable errorException;
- private static Thread testThread;
-
- // TODO: Flaky test. Add back MediumTest annotation once fixed
- public void testInterruptTest() throws Exception {
-
-
- testThread = Thread.currentThread();
- errorException = null;
-
- Waiter waiter = new Waiter("InterruptTest Waiter");
- Interrupter interrupter =
- new Interrupter("InterruptTest Interrupter", waiter);
- interrupter.start();
-
- try {
- interrupter.join();
- waiter.join();
- } catch (InterruptedException ex) {
- throw new RuntimeException("Test join interrupted.", ex);
- }
-
- if (errorException != null) {
- throw new RuntimeException("InterruptTest failed",
- errorException);
- }
-
-
-
-
- }
-
- private static void deepWait(int depth, Object lock) {
- synchronized (lock) {
- if (depth > 0) {
- deepWait(depth - 1, lock);
- } else {
- String threadName = Thread.currentThread().getName();
- try {
- // System.out.println(threadName + " waiting");
- lock.wait();
- // System.out.println(threadName + " done waiting");
- } catch (InterruptedException ex) {
- // System.out.println(threadName + " interrupted.");
- }
- }
- }
- }
-
- private class Worker extends Thread {
- Object lock;
- int id;
-
- Worker(int id, Object lock) {
- super("Worker(" + id + ")");
- this.id = id;
- this.lock = lock;
- }
-
- public void run() {
- int iterations = 0;
-
- while (OldAndroidMonitorTest.running) {
- OldAndroidMonitorTest.deepWait(id, lock);
- iterations++;
- }
- // System.out.println(getName() + " done after " + iterations + " iterations.");
- }
- }
-
- private static Object commonLock = new Object();
- private static Boolean running = false;
-
-
- public void testNestedMonitors() throws Exception {
- final int NUM_WORKERS = 5;
-
- Worker w[] = new Worker[NUM_WORKERS];
- int i;
-
- for (i = 0; i < NUM_WORKERS; i++) {
- w[i] = new Worker(i * 2 - 1, new Object());
- }
-
- running = true;
-
- // System.out.println("NestedMonitors: starting workers");
- for (i = 0; i < NUM_WORKERS; i++) {
- w[i].start();
- }
-
- try {
- Thread.currentThread().sleep(1000);
- } catch (InterruptedException ex) {
- // System.out.println("Test sleep interrupted.");
- }
-
- for (i = 0; i < 100; i++) {
- for (int j = 0; j < NUM_WORKERS; j++) {
- synchronized (w[j].lock) {
- w[j].lock.notify();
- }
- }
- }
-
- // System.out.println("NesterMonitors: stopping workers");
- running = false;
- for (i = 0; i < NUM_WORKERS; i++) {
- synchronized (w[i].lock) {
- w[i].lock.notifyAll();
- }
- }
- }
-
- private static class CompareAndExchange extends Thread {
- static Object toggleLock = null;
- static int toggle = -1;
- static Boolean running = false;
-
+ @Override
public void run() {
- toggleLock = new Object();
- toggle = -1;
-
- Worker w1 = new Worker(0, 1);
- Worker w2 = new Worker(2, 3);
- Worker w3 = new Worker(4, 5);
- Worker w4 = new Worker(6, 7);
-
- running = true;
-
- // System.out.println("CompareAndExchange: starting workers");
-
- w1.start();
- w2.start();
- w3.start();
- w4.start();
-
- try {
- this.sleep(10000);
- } catch (InterruptedException ex) {
- // System.out.println(getName() + " interrupted.");
- }
-
- // System.out.println("MonitorTest: stopping workers");
- running = false;
-
- toggleLock = null;
- }
-
- class Worker extends Thread {
- int i1;
- int i2;
-
- Worker(int i1, int i2) {
- super("Worker(" + i1 + ", " + i2 + ")");
- this.i1 = i1;
- this.i2 = i2;
- }
-
- public void run() {
- int iterations = 0;
-
- /* Latch this because run() may set the static field to
- * null at some point.
- */
- Object toggleLock = CompareAndExchange.toggleLock;
-
- // System.out.println(getName() + " running");
+ synchronized (lock) {
try {
- while (CompareAndExchange.running) {
- synchronized (toggleLock) {
- int test;
- int check;
-
- if (CompareAndExchange.toggle == i1) {
- this.sleep(5 + i2);
- CompareAndExchange.toggle = test = i2;
- } else {
- this.sleep(5 + i1);
- CompareAndExchange.toggle = test = i1;
- }
- if ((check = CompareAndExchange.toggle) != test) {
-// System.out.println("Worker(" + i1 + ", " +
-// i2 + ") " + "test " + test +
-// " != toggle " + check);
- throw new RuntimeException(
- "locked value changed");
- }
- }
-
- iterations++;
+ cdl.countDown();
+ while (true) {
+ lock.wait();
}
} catch (InterruptedException ex) {
- // System.out.println(getName() + " interrupted.");
+ wasInterrupted = true;
}
-
-// System.out.println(getName() + " done after " +
-// iterations + " iterations.");
}
}
+
+ public boolean wasInterrupted() {
+ synchronized (lock) {
+ return wasInterrupted;
+ }
+ }
+ }
+
+ public void testInterrupt() throws Exception {
+ final Object lock = new Object();
+ final CountDownLatch cdl = new CountDownLatch(1);
+ final Waiter waiter = new Waiter(lock, cdl);
+
+ waiter.start();
+
+ // Wait for the "waiter" to start and acquire |lock| for the first time.
+ try {
+ cdl.await();
+ } catch (InterruptedException ie) {
+ fail();
+ }
+
+ // Interrupt |waiter| after we acquire |lock|. This ensures that |waiter| is
+ // currently blocked on a call to "wait".
+ synchronized (lock) {
+ waiter.interrupt();
+ }
+
+ // Wait for the waiter to complete.
+ try {
+ waiter.join();
+ } catch (InterruptedException ie) {
+ fail();
+ }
+
+ // Assert than an InterruptedException was thrown.
+ assertTrue(waiter.wasInterrupted());
}
}
diff --git a/luni/src/test/java/libcore/java/math/BigDecimalTest.java b/luni/src/test/java/libcore/java/math/BigDecimalTest.java
index d307b14..cdfab6c 100644
--- a/luni/src/test/java/libcore/java/math/BigDecimalTest.java
+++ b/luni/src/test/java/libcore/java/math/BigDecimalTest.java
@@ -96,4 +96,16 @@
assertEquals("1.20", a.abs(new MathContext(3,RoundingMode.HALF_UP)).toPlainString());
assertEquals("1.200002", a.toPlainString());
}
+
+ // https://code.google.com/p/android/issues/detail?id=191227
+ public void test191227() {
+ BigDecimal zero = BigDecimal.ZERO;
+ zero = zero.setScale(2, RoundingMode.HALF_EVEN);
+
+ BigDecimal other = BigDecimal.valueOf(999999998000000001.00);
+ other = other.setScale(2, RoundingMode.HALF_EVEN);
+
+ assertFalse(zero.equals(other));
+ assertFalse(other.equals(zero));
+ }
}
diff --git a/luni/src/test/java/libcore/java/net/CookiesTest.java b/luni/src/test/java/libcore/java/net/CookiesTest.java
index f14a91e..11418d0 100644
--- a/luni/src/test/java/libcore/java/net/CookiesTest.java
+++ b/luni/src/test/java/libcore/java/net/CookiesTest.java
@@ -44,6 +44,18 @@
private static final Map<String, List<String>> EMPTY_COOKIES_MAP = Collections.emptyMap();
+ private CookieHandler defaultHandler;
+
+ @Override public void setUp() throws Exception {
+ super.setUp();
+ defaultHandler = CookieHandler.getDefault();
+ }
+
+ @Override public void tearDown() throws Exception {
+ CookieHandler.setDefault(defaultHandler);
+ super.tearDown();
+ }
+
public void testNetscapeResponse() throws Exception {
CookieManager cookieManager = new CookieManager(null, ACCEPT_ORIGINAL_SERVER);
CookieHandler.setDefault(cookieManager);
@@ -243,19 +255,62 @@
|| (cookieHeaders.size() == 1 && cookieHeaders.get("Cookie").isEmpty()));
}
+ public void testCookieManagerGet_schemeChecks() throws Exception {
+ CookieManager cookieManager = new CookieManager();
+
+ cookieManager.put(new URI("http://a.com/"), cookieHeaders("a1=android"));
+ cookieManager.put(new URI("https://a.com/"), cookieHeaders("a2=android"));
+ cookieManager.put(new URI("https://a.com/"), cookieHeaders("a3=android; Secure"));
+
+ assertManagerCookiesMatch(cookieManager, "http://a.com/", "a1=android; a2=android");
+ assertManagerCookiesMatch(cookieManager, "https://a.com/",
+ "a1=android; a2=android; a3=android");
+ }
+
+ public void testCookieManagerGet_hostChecks() throws Exception {
+ CookieManager cookieManager = new CookieManager();
+
+ cookieManager.put(new URI("http://a.com/"), cookieHeaders("a1=android"));
+ cookieManager.put(new URI("http://b.com/"), cookieHeaders("b1=android"));
+
+ assertManagerCookiesMatch(cookieManager, "http://a.com/", "a1=android");
+ assertManagerCookiesMatch(cookieManager, "http://b.com/", "b1=android");
+ }
+
+ public void testCookieManagerGet_portChecks() throws Exception {
+ CookieManager cookieManager = new CookieManager();
+
+ cookieManager.put(new URI("http://a.com:443/"), cookieHeaders("a1=android"));
+ cookieManager.put(new URI("http://a.com:8080/"), cookieHeaders("a2=android"));
+ cookieManager.put(new URI("http://a.com:8080/"), cookieHeaders("a3=android; Port=8080"));
+
+ assertManagerCookiesMatch(cookieManager, "http://a.com/", "a1=android; a2=android");
+ assertManagerCookiesMatch(cookieManager, "http://a.com:8080/",
+ "a1=android; a2=android; a3=android");
+ }
+
+ public void testCookieManagerGet_pathChecks() throws Exception {
+ CookieManager cookieManager = new CookieManager();
+
+ cookieManager.put(new URI("http://a.com/"), cookieHeaders("a1=android"));
+ cookieManager.put(new URI("http://a.com/path1"),
+ cookieHeaders("a2=android; Path=\"/path1\""));
+ cookieManager.put(new URI("http://a.com/path2"),
+ cookieHeaders("a3=android; Path=\"/path2\""));
+
+ assertManagerCookiesMatch(cookieManager, "http://a.com/notpath", "a1=android");
+ assertManagerCookiesMatch(cookieManager, "http://a.com/path1", "a1=android; a2=android");
+ }
+
public void testSendingCookiesFromStore() throws Exception {
MockWebServer server = new MockWebServer();
server.enqueue(new MockResponse());
server.play();
CookieManager cookieManager = new CookieManager(null, ACCEPT_ORIGINAL_SERVER);
- HttpCookie cookieA = new HttpCookie("a", "android");
- cookieA.setDomain(server.getCookieDomain());
- cookieA.setPath("/");
+ HttpCookie cookieA = createCookie("a", "android", server.getCookieDomain(), "/");
cookieManager.getCookieStore().add(server.getUrl("/").toURI(), cookieA);
- HttpCookie cookieB = new HttpCookie("b", "banana");
- cookieB.setDomain(server.getCookieDomain());
- cookieB.setPath("/");
+ HttpCookie cookieB = createCookie("b", "banana", server.getCookieDomain(), "/");
cookieManager.getCookieStore().add(server.getUrl("/").toURI(), cookieB);
CookieHandler.setDefault(cookieManager);
@@ -280,9 +335,7 @@
redirectSource.play();
CookieManager cookieManager = new CookieManager(null, ACCEPT_ORIGINAL_SERVER);
- HttpCookie cookie = new HttpCookie("c", "cookie");
- cookie.setDomain(redirectSource.getCookieDomain());
- cookie.setPath("/");
+ HttpCookie cookie = createCookie("c", "cookie", redirectSource.getCookieDomain(), "/");
String portList = Integer.toString(redirectSource.getPort());
cookie.setPortlist(portList);
cookieManager.getCookieStore().add(redirectSource.getUrl("/").toURI(), cookie);
@@ -312,7 +365,8 @@
public void testHeadersSentToCookieHandler() throws IOException, InterruptedException {
final Map<String, List<String>> cookieHandlerHeaders = new HashMap<String, List<String>>();
CookieHandler.setDefault(new CookieManager() {
- @Override public Map<String, List<String>> get(URI uri,
+ @Override
+ public Map<String, List<String>> get(URI uri,
Map<String, List<String>> requestHeaders) throws IOException {
cookieHandlerHeaders.putAll(requestHeaders);
Map<String, List<String>> result = new HashMap<String, List<String>>();
@@ -430,12 +484,8 @@
public void testCookieStoreNullUris() {
CookieStore cookieStore = new CookieManager().getCookieStore();
- HttpCookie cookieA = new HttpCookie("a", "android");
- cookieA.setDomain(".android.com");
- cookieA.setPath("/source");
- HttpCookie cookieB = new HttpCookie("b", "banana");
- cookieA.setDomain("code.google.com");
- cookieA.setPath("/p/android");
+ HttpCookie cookieA = createCookie("a", "android", ".android.com", "/source");
+ HttpCookie cookieB = createCookie("b", "banana", "code.google.com", "/p/android");
try {
cookieStore.add(null, cookieA);
@@ -477,9 +527,7 @@
public void testCookieStoreAddAcceptsConflictingUri() throws URISyntaxException {
CookieStore cookieStore = new CookieManager().getCookieStore();
- HttpCookie cookieA = new HttpCookie("a", "android");
- cookieA.setDomain(".android.com");
- cookieA.setPath("/source/");
+ HttpCookie cookieA = createCookie("a", "android", ".android.com", "/source/");
cookieStore.add(new URI("http://google.com/source/"), cookieA);
assertEquals(Arrays.asList(cookieA), cookieStore.getCookies());
}
@@ -535,6 +583,128 @@
assertEquals(Arrays.asList(new URI("http://a.com")), cookieStore.getURIs());
}
+ public void testCookieStoreGet() throws Exception {
+ CookieStore cookieStore = new CookieManager().getCookieStore();
+ HttpCookie cookiePort1 = createCookie("a1", "android", "a.com", "/path1");
+ HttpCookie cookiePort2 = createCookie("a2", "android", "a.com", "/path2");
+ HttpCookie secureCookie = createCookie("a3", "android", "a.com", "/path3");
+ secureCookie.setSecure(true);
+ HttpCookie notSecureCookie = createCookie("a4", "android", "a.com", "/path4");
+
+ HttpCookie bCookie = createCookie("b1", "android", "b.com", "/path5");
+
+ cookieStore.add(new URI("http://a.com:443/path1"), cookiePort1);
+ cookieStore.add(new URI("http://a.com:8080/path2"), cookiePort2);
+ cookieStore.add(new URI("https://a.com:443/path3"), secureCookie);
+ cookieStore.add(new URI("https://a.com:443/path4"), notSecureCookie);
+ cookieStore.add(new URI("https://b.com:8080/path5"), bCookie);
+
+ List<HttpCookie> expectedStoreCookies = new ArrayList<>();
+ expectedStoreCookies.add(cookiePort1);
+ expectedStoreCookies.add(cookiePort2);
+ expectedStoreCookies.add(secureCookie);
+ expectedStoreCookies.add(notSecureCookie);
+
+ // The default CookieStore implementation on Android is currently responsible for matching
+ // the host/domain but not handling other cookie rules: it ignores the scheme (e.g. "secure"
+ // checks), port and path.
+ // The tests below fail on the RI. It looks like in the RI it is CookieStoreImpl that is
+ // enforcing "secure" checks.
+ assertEquals(expectedStoreCookies, cookieStore.get(new URI("http://a.com:443/anypath")));
+ assertEquals(expectedStoreCookies, cookieStore.get(new URI("http://a.com:8080/anypath")));
+ assertEquals(expectedStoreCookies, cookieStore.get(new URI("https://a.com/anypath")));
+ assertEquals(expectedStoreCookies, cookieStore.get(new URI("http://a.com/anypath")));
+ }
+
+ /**
+ * Regression test for http://b/25682357 /
+ * https://code.google.com/p/android/issues/detail?id=193475
+ * CookieStoreImpl.get(URI) not handling ports properly in the absence of an explicit cookie
+ * Domain.
+ */
+ public void testCookieStoreGetWithPort() throws Exception {
+ CookieStore cookieStore = new CookieManager().getCookieStore();
+ HttpCookie cookie = new HttpCookie("theme", "light");
+ // Deliberately not setting the cookie domain or path.
+ cookieStore.add(new URI("http://a.com:12345"), cookie);
+
+ // CookieStoreImpl must ignore the port during retrieval when domain is not set.
+ assertEquals(1, cookieStore.get(new URI("http://a.com:12345/path1")).size());
+ assertEquals(1, cookieStore.get(new URI("http://a.com/path1")).size());
+ }
+
+ public void testCookieStoreGetWithSecure() throws Exception {
+ CookieStore cookieStore = new CookieManager().getCookieStore();
+ HttpCookie cookie = createCookie("theme", "light", "a.com", "/path");
+ cookie.setSecure(true);
+ cookieStore.add(new URI("https://a.com/path"), cookie);
+
+ // CookieStoreImpl on Android ignores the "Secure" attribute. The RI implements the secure
+ // check in CookieStoreImpl. For safety / app compatibility, if this is changed Android
+ // should probably implement it in both places.
+ assertEquals(1, cookieStore.get(new URI("http://a.com/path")).size());
+ assertEquals(1, cookieStore.get(new URI("https://a.com/path")).size());
+ }
+
+ public void testCookieStoreEviction() throws Exception {
+ CookieStore cookieStore = new CookieManager().getCookieStore();
+ HttpCookie themeCookie = createCookie("theme", "light", "a.com", "/");
+ cookieStore.add(new URI("http://a.com/"), themeCookie);
+
+ HttpCookie sidCookie = createCookie("sid", "mysid", "a.com", "/");
+ cookieStore.add(new URI("http://a.com/"), sidCookie);
+
+ HttpCookie replacementThemeCookie = createCookie("theme", "dark", "a.com", "/");
+ cookieStore.add(new URI("http://a.com/"), replacementThemeCookie);
+
+ // toString() is used below to avoid confusion with assertEquals():
+ // HttpCookie.equals() is implemented so that it only checks name, path and domain
+ // attributes but we also want to check the value.
+ assertEquals(
+ "[sid=\"mysid\";$Path=\"/\";$Domain=\"a.com\", "
+ + "theme=\"dark\";$Path=\"/\";$Domain=\"a.com\"]",
+ cookieStore.get(new URI("http://a.com/")).toString());
+
+ HttpCookie replacementSidCookie = createCookie("sid", "mynewsid", "A.cOm", "/");
+ cookieStore.add(new URI("http://a.com/"), replacementSidCookie);
+
+ assertEquals(
+ "[theme=\"dark\";$Path=\"/\";$Domain=\"a.com\", "
+ + "sid=\"mynewsid\";$Path=\"/\";$Domain=\"a.com\"]",
+ cookieStore.get(new URI("http://a.com/")).toString());
+ }
+
+ /**
+ * CookieStoreImpl has a strict requirement on HttpCookie.equals() to enable replacement of
+ * cookies with the same name.
+ */
+ public void testCookieEquality() throws Exception {
+ HttpCookie baseCookie = createCookie("theme", "light", "a.com", "/");
+
+ // None of the attributes immediately below should affect equality otherwise CookieStoreImpl
+ // eviction will not work as intended.
+ HttpCookie valueCookie = createCookie("theme", "light", "a.com", "/");
+ valueCookie.setValue("dark");
+ valueCookie.setPortlist("1234");
+ valueCookie.setSecure(true);
+ valueCookie.setComment("comment");
+ valueCookie.setCommentURL("commentURL");
+ valueCookie.setDiscard(true);
+ valueCookie.setMaxAge(12345L);
+ valueCookie.setVersion(1);
+ assertEquals(baseCookie, valueCookie);
+
+ // Changing any of the 3 main identity attributes should render cookies unequal.
+ assertNotEquals(createCookie("theme2", "light", "a.com", "/"), baseCookie);
+ assertNotEquals(createCookie("theme", "light", "b.com", "/"), baseCookie);
+ assertNotEquals(createCookie("theme", "light", "a.com", "/path"), baseCookie);
+ }
+
+ private static void assertNotEquals(HttpCookie one, HttpCookie two) {
+ assertFalse(one.equals(two));
+ assertFalse(two.equals(one));
+ }
+
private void assertContains(Collection<String> collection, String element) {
for (String c : collection) {
if (c != null && c.equalsIgnoreCase(element)) {
@@ -567,7 +737,7 @@
return headers;
}
- private Map<String, List<String>> cookieHeaders(String... headers) {
+ private static Map<String, List<String>> cookieHeaders(String... headers) {
return Collections.singletonMap("Set-Cookie", Arrays.asList(headers));
}
@@ -607,4 +777,37 @@
throw new UnsupportedOperationException();
}
}
+
+ private static void assertManagerCookiesMatch(CookieManager cookieManager, String url,
+ String expectedCookieRequestHeader) throws Exception {
+
+ Map<String, List<String>> cookieHeaders =
+ cookieManager.get(new URI(url), EMPTY_COOKIES_MAP);
+ if (expectedCookieRequestHeader == null) {
+ assertTrue(cookieHeaders.isEmpty());
+ return;
+ }
+
+ assertEquals(1, cookieHeaders.size());
+ List<String> actualCookieHeaderStrings = cookieHeaders.get("Cookie");
+
+ // For simplicity, we concatenate the cookie header strings if there are multiple ones.
+ String actualCookieRequestHeader = actualCookieHeaderStrings.get(0);
+ for (int i = 1; i < actualCookieHeaderStrings.size(); i++) {
+ actualCookieRequestHeader += "; " + actualCookieHeaderStrings.get(i);
+ }
+ assertEquals(expectedCookieRequestHeader, actualCookieRequestHeader);
+ }
+
+ /**
+ * Creates a well-formed cookie. The behavior when domain is unset varies between
+ * RFC 2965 and RFC 6265. CookieStoreImpl assumes these values are set "correctly" by the time
+ * it receives the HttpCookie instance.
+ */
+ private static HttpCookie createCookie(String name, String value, String domain, String path) {
+ HttpCookie cookie = new HttpCookie(name, value);
+ cookie.setDomain(domain);
+ cookie.setPath(path);
+ return cookie;
+ }
}
diff --git a/luni/src/test/java/libcore/java/net/URLConnectionTest.java b/luni/src/test/java/libcore/java/net/URLConnectionTest.java
index 3f831e0..bce8c35 100644
--- a/luni/src/test/java/libcore/java/net/URLConnectionTest.java
+++ b/luni/src/test/java/libcore/java/net/URLConnectionTest.java
@@ -18,10 +18,13 @@
import com.android.okhttp.AndroidShimResponseCache;
+import com.google.mockwebserver.Dispatcher;
import com.google.mockwebserver.MockResponse;
import com.google.mockwebserver.MockWebServer;
import com.google.mockwebserver.RecordedRequest;
import com.google.mockwebserver.SocketPolicy;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
@@ -62,6 +65,7 @@
import java.util.concurrent.atomic.AtomicReference;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
+import javax.net.SocketFactory;
import javax.net.ssl.HandshakeCompletedListener;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
@@ -77,13 +81,17 @@
import libcore.java.security.TestKeyStore;
import libcore.java.util.AbstractResourceLeakageDetectorTestCase;
import libcore.javax.net.ssl.TestSSLContext;
-import tests.net.StuckServer;
+import tests.net.DelegatingSocketFactory;
import static com.google.mockwebserver.SocketPolicy.DISCONNECT_AT_END;
import static com.google.mockwebserver.SocketPolicy.DISCONNECT_AT_START;
import static com.google.mockwebserver.SocketPolicy.FAIL_HANDSHAKE;
import static com.google.mockwebserver.SocketPolicy.SHUTDOWN_INPUT_AT_END;
import static com.google.mockwebserver.SocketPolicy.SHUTDOWN_OUTPUT_AT_END;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.spy;
public final class URLConnectionTest extends AbstractResourceLeakageDetectorTestCase {
@@ -1745,30 +1753,61 @@
}
/**
- * Test that the timeout period is honored. The timeout may be doubled!
- * HttpURLConnection will wait the full timeout for each of the server's IP
- * addresses. This is typically one IPv4 address and one IPv6 address.
+ * Test that the timeout period is honored. The connect timeout is applied to each socket
+ * connection attempt. If a hostname resolves to multiple IPs HttpURLConnection will wait the
+ * full timeout for each.
*/
public void testConnectTimeouts() throws IOException {
- StuckServer ss = new StuckServer(true);
- int serverPort = ss.getLocalPort();
- String hostName = ss.getLocalSocketAddress().getAddress().getHostAddress();
- URLConnection urlConnection = new URL("http://" + hostName + ":" + serverPort + "/")
- .openConnection();
+ // During CTS tests we are limited in what host names we can depend on and unfortunately
+ // DNS lookups are not pluggable through standard APIs. During manual testing you should be
+ // able to change this to any name that can be resolved to multiple IPs and it should still
+ // work.
+ String hostName = "localhost";
+ int expectedConnectionAttempts = InetAddress.getAllByName(hostName).length;
+ int perSocketTimeout = 1000;
+ final int[] socketCreationCount = new int[1];
+ final int[] socketConnectTimeouts = new int[expectedConnectionAttempts];
- int timeout = 1000;
- urlConnection.setConnectTimeout(timeout);
- long start = System.currentTimeMillis();
+ // It is difficult to force socket timeouts reliably so we replace the default SocketFactory
+ // and have it create Sockets that always time out when connect(SocketAddress, int) is
+ // called.
+ SocketFactory originalDefault = SocketFactory.getDefault();
try {
+ // Override the default SocketFactory so we can intercept socket creation.
+ SocketFactory.setDefault(new DelegatingSocketFactory(originalDefault) {
+ @Override
+ protected Socket configureSocket(Socket socket) throws IOException {
+ final int attemptNumber = socketCreationCount[0]++;
+ Answer socketConnectAnswer = new Answer() {
+ @Override public Object answer(InvocationOnMock invocation)
+ throws Throwable {
+ int timeoutArg = (int) invocation.getArguments()[1];
+ socketConnectTimeouts[attemptNumber] = timeoutArg;
+ throw new SocketTimeoutException(
+ "Simulated timeout after " + timeoutArg);
+ }
+ };
+
+ Socket socketSpy = spy(socket);
+ // Create a partial mock that wraps the actual socket and intercepts the
+ // connect(SocketAddress, int) method.
+ doAnswer(socketConnectAnswer)
+ .when(socketSpy).connect(any(SocketAddress.class), anyInt());
+ return socketSpy;
+ }
+ });
+
+ URLConnection urlConnection = new URL("http://" + hostName + "/").openConnection();
+ urlConnection.setConnectTimeout(perSocketTimeout);
urlConnection.getInputStream();
fail();
- } catch (SocketTimeoutException expected) {
- long elapsed = System.currentTimeMillis() - start;
- int attempts = InetAddress.getAllByName("localhost").length; // one per IP address
- assertTrue("timeout=" +timeout + ", elapsed=" + elapsed + ", attempts=" + attempts,
- Math.abs((attempts * timeout) - elapsed) < 500);
+ } catch (SocketTimeoutException e) {
+ assertEquals(expectedConnectionAttempts, socketCreationCount[0]);
+ for (int i = 0; i < expectedConnectionAttempts; i++) {
+ assertEquals(perSocketTimeout, socketConnectTimeouts[i]);
+ }
} finally {
- ss.close();
+ SocketFactory.setDefault(originalDefault);
}
}
@@ -1973,61 +2012,24 @@
* This test goes through the exhaustive set of interesting ASCII characters
* because most of those characters are interesting in some way according to
* RFC 2396 and RFC 2732. http://b/1158780
+ * After M, Android's HttpURLConnection started canonicalizing hostnames to lower case, IDN
+ * encoding and being more strict about invalid characters.
*/
- public void testLenientUrlToUri() throws Exception {
+ public void testUrlCharacterMapping() throws Exception {
+ server.setDispatcher(new Dispatcher() {
+ @Override public MockResponse dispatch(RecordedRequest request)
+ throws InterruptedException {
+ return new MockResponse();
+ }
+ });
+ server.play();
+
// alphanum
- testUrlToUriMapping("abzABZ09", "abzABZ09", "abzABZ09", "abzABZ09", "abzABZ09");
+ testUrlToUriMapping("abzABZ09", "abzabz09", "abzABZ09", "abzABZ09", "abzABZ09");
+ testUrlToRequestMapping("abzABZ09", "abzABZ09", "abzABZ09");
// control characters
- testUrlToUriMapping("\u0001", "%01", "%01", "%01", "%01");
- testUrlToUriMapping("\u001f", "%1F", "%1F", "%1F", "%1F");
- // ascii characters
- testUrlToUriMapping("%20", "%20", "%20", "%20", "%20");
- testUrlToUriMapping("%20", "%20", "%20", "%20", "%20");
- testUrlToUriMapping(" ", "%20", "%20", "%20", "%20");
- testUrlToUriMapping("!", "!", "!", "!", "!");
- testUrlToUriMapping("\"", "%22", "%22", "%22", "%22");
- testUrlToUriMapping("#", null, null, null, "%23");
- testUrlToUriMapping("$", "$", "$", "$", "$");
- testUrlToUriMapping("&", "&", "&", "&", "&");
- testUrlToUriMapping("'", "'", "'", "'", "'");
- testUrlToUriMapping("(", "(", "(", "(", "(");
- testUrlToUriMapping(")", ")", ")", ")", ")");
- testUrlToUriMapping("*", "*", "*", "*", "*");
- testUrlToUriMapping("+", "+", "+", "+", "+");
- testUrlToUriMapping(",", ",", ",", ",", ",");
- testUrlToUriMapping("-", "-", "-", "-", "-");
- testUrlToUriMapping(".", ".", ".", ".", ".");
- testUrlToUriMapping("/", null, "/", "/", "/");
- testUrlToUriMapping(":", null, ":", ":", ":");
- testUrlToUriMapping(";", ";", ";", ";", ";");
- testUrlToUriMapping("<", "%3C", "%3C", "%3C", "%3C");
- testUrlToUriMapping("=", "=", "=", "=", "=");
- testUrlToUriMapping(">", "%3E", "%3E", "%3E", "%3E");
- testUrlToUriMapping("?", null, null, "?", "?");
- testUrlToUriMapping("@", "@", "@", "@", "@");
- testUrlToUriMapping("[", null, "%5B", null, "%5B");
- testUrlToUriMapping("\\", "%5C", "%5C", "%5C", "%5C");
- testUrlToUriMapping("]", null, "%5D", null, "%5D");
- testUrlToUriMapping("^", "%5E", "%5E", "%5E", "%5E");
- testUrlToUriMapping("_", "_", "_", "_", "_");
- testUrlToUriMapping("`", "%60", "%60", "%60", "%60");
- testUrlToUriMapping("{", "%7B", "%7B", "%7B", "%7B");
- testUrlToUriMapping("|", "%7C", "%7C", "%7C", "%7C");
- testUrlToUriMapping("}", "%7D", "%7D", "%7D", "%7D");
- testUrlToUriMapping("~", "~", "~", "~", "~");
- testUrlToUriMapping("~", "~", "~", "~", "~");
- testUrlToUriMapping("\u007f", "%7F", "%7F", "%7F", "%7F");
-
- // beyond ascii
- testUrlToUriMapping("\u0080", "%C2%80", "%C2%80", "%C2%80", "%C2%80");
- testUrlToUriMapping("\u20ac", "\u20ac", "\u20ac", "\u20ac", "\u20ac");
- testUrlToUriMapping("\ud842\udf9f",
- "\ud842\udf9f", "\ud842\udf9f", "\ud842\udf9f", "\ud842\udf9f");
- }
-
- public void testLenientUrlToUriNul() throws Exception {
// On JB-MR2 and below, we would allow a host containing \u0000
// and then generate a request with a Host header that violated RFC2616.
// We now reject such hosts.
@@ -2036,32 +2038,117 @@
// it, but attempting to do so introduces a new range of incompatible
// behaviours.
testUrlToUriMapping("\u0000", null, "%00", "%00", "%00"); // RI fails this
+ testUrlToRequestMapping("\u0000", "%00", "%00");
+
+ testUrlToUriMapping("\u0001", null, "%01", "%01", "%01");
+ testUrlToRequestMapping("\u0001", "%01", "%01");
+
+ testUrlToUriMapping("\u001f", null, "%1F", "%1F", "%1F");
+ testUrlToRequestMapping("\u001f", "%1F", "%1F");
+
+ // ascii characters
+ testUrlToUriMapping("%20", null, "%20", "%20", "%20");
+ testUrlToRequestMapping("%20", "%20", "%20");
+ testUrlToUriMapping(" ", null, "%20", "%20", "%20");
+ testUrlToRequestMapping(" ", "%20", "%20");
+ testUrlToUriMapping("!", "!", "!", "!", "!");
+ testUrlToRequestMapping("!", "!", "!");
+ testUrlToUriMapping("\"", null, "%22", "%22", "%22");
+ testUrlToRequestMapping("\"", "%22", "%22");
+ testUrlToUriMapping("#", null, null, null, "%23");
+ testUrlToRequestMapping("#", null, null);
+ testUrlToUriMapping("$", "$", "$", "$", "$");
+ testUrlToRequestMapping("$", "$", "$");
+ testUrlToUriMapping("&", "&", "&", "&", "&");
+ testUrlToRequestMapping("&", "&", "&");
+ testUrlToUriMapping("'", "'", "'", "%27", "'");
+ testUrlToRequestMapping("'", "'", "%27");
+ testUrlToUriMapping("(", "(", "(", "(", "(");
+ testUrlToRequestMapping("(", "(", "(");
+ testUrlToUriMapping(")", ")", ")", ")", ")");
+ testUrlToRequestMapping(")", ")", ")");
+ testUrlToUriMapping("*", "*", "*", "*", "*");
+ testUrlToRequestMapping("*", "*", "*");
+ testUrlToUriMapping("+", "+", "+", "%20", "+");
+ testUrlToRequestMapping("+", "+", "%20");
+ testUrlToUriMapping(",", ",", ",", ",", ",");
+ testUrlToRequestMapping(",", ",", ",");
+ testUrlToUriMapping("-", "-", "-", "-", "-");
+ testUrlToRequestMapping("-", "-", "-");
+ testUrlToUriMapping(".", null, ".", ".", ".");
+ testUrlToRequestMapping(".", ".", ".");
+ testUrlToUriMapping(".foo", ".foo", ".foo", ".foo", ".foo");
+ testUrlToRequestMapping(".foo", ".foo", ".foo");
+ testUrlToUriMapping("/", null, "/", "/", "/");
+ testUrlToRequestMapping("/", "/", "/");
+ testUrlToUriMapping(":", null, ":", ":", ":");
+ testUrlToRequestMapping(":", ":", ":");
+ testUrlToUriMapping(";", ";", ";", ";", ";");
+ testUrlToRequestMapping(";", ";", ";");
+ testUrlToUriMapping("<", null, "%3C", "%3C", "%3C");
+ testUrlToRequestMapping("<", "%3C", "%3C");
+ testUrlToUriMapping("=", "=", "=", "=", "=");
+ testUrlToRequestMapping("=", "=", "=");
+ testUrlToUriMapping(">", null, "%3E", "%3E", "%3E");
+ testUrlToRequestMapping(">", "%3E", "%3E");
+ testUrlToUriMapping("?", null, null, "?", "?");
+ testUrlToRequestMapping("?", null, "?");
+ testUrlToUriMapping("@", null, "@", "@", "@");
+ testUrlToRequestMapping("@", "@", "@");
+ testUrlToUriMapping("[", null, null, null, "%5B");
+ testUrlToRequestMapping("[", null, null);
+ testUrlToUriMapping("\\", null, null, null, "%5C");
+ testUrlToRequestMapping("\\", null, null);
+ testUrlToUriMapping("]", null, null, null, "%5D");
+ testUrlToRequestMapping("]", null, null);
+ testUrlToUriMapping("^", null, "%5E", null, "%5E");
+ testUrlToRequestMapping("^", "%5E", null);
+ testUrlToUriMapping("_", "_", "_", "_", "_");
+ testUrlToRequestMapping("_", "_", "_");
+ testUrlToUriMapping("`", null, "%60", null, "%60");
+ testUrlToRequestMapping("`", "%60", null);
+ testUrlToUriMapping("{", null, "%7B", null, "%7B");
+ testUrlToRequestMapping("{", "%7B", null);
+ testUrlToUriMapping("|", null, "%7C", null, "%7C");
+ testUrlToRequestMapping("|", "%7C", null);
+ testUrlToUriMapping("}", null, "%7D", null, "%7D");
+ testUrlToRequestMapping("}", "%7D", null);
+ testUrlToUriMapping("~", "~", "~", "~", "~");
+ testUrlToRequestMapping("~", "~", "~");
+ testUrlToUriMapping("\u007f", null, "%7F", "%7F", "%7F");
+ testUrlToRequestMapping("\u007f", "%7F", "%7F");
+
+ // beyond ASCII
+
+ // 0x80 is the code point for the Euro sign in CP1252 (but not 8859-15 or Unicode).
+ // Unicode code point 0x80 is a control character and maps to {0xC2, 0x80} in UTF-8.
+ // 0x80 is outside of the ASCII range and is not supported by IDN in hostnames.
+ testUrlToUriMapping("\u0080", null, "%C2%80", "%C2%80", "%C2%80");
+ testUrlToRequestMapping("\u0080", "%C2%80", "%C2%80");
+
+ // More complicated transformations for the authorities below.
+
+ // 0x20AC is the code point for the Euro sign in Unicode.
+ // Unicode code point 0x20AC maps to {0xE2, 0x82, 0xAC} in UTF-8
+ // 0x20AC is not supported by all registrars but there are some legacy domains that
+ // use it and Android currently supports IDN conversion for it.
+ testUrlToUriMapping("\u20ac", null /* skip */, "%E2%82%AC", "%E2%82%AC", "%E2%82%AC");
+ testUrlToUriMappingAuthority("http://host\u20ac.tld/", "http://xn--host-yv7a.tld/");
+ testUrlToRequestMapping("\u20ac", "%E2%82%AC", "%E2%82%AC");
+
+ // UTF-16 {0xD842, 0xDF9F} -> Unicode 0x20B9F (a Kanji character)
+ // Unicode code point 0x20B9F maps to {0xF0, 0xA0, 0xAE, 0x9F} in UTF-8
+ // IDN can deal with this code point.
+ testUrlToUriMapping("\ud842\udf9f", null /* skip */, "%F0%A0%AE%9F", "%F0%A0%AE%9F",
+ "%F0%A0%AE%9F");
+ testUrlToUriMappingAuthority("http://host\uD842\uDF9F.tld/", "http://xn--host-ov06c.tld/");
+ testUrlToRequestMapping("\ud842\udf9f", "%F0%A0%AE%9F", "%F0%A0%AE%9F");
}
- public void testHostWithNul() throws Exception {
- URL url = new URL("http://host\u0000/");
- try {
- url.openStream();
- fail();
- } catch (IllegalArgumentException expected) {}
- }
-
- private void testUrlToUriMapping(String string, String asAuthority, String asFile,
- String asQuery, String asFragment) throws Exception {
- if (asAuthority != null) {
- assertEquals("http://host" + asAuthority + ".tld/",
- backdoorUrlToUri(new URL("http://host" + string + ".tld/")).toString());
- }
- if (asFile != null) {
- assertEquals("http://host.tld/file" + asFile + "/",
- backdoorUrlToUri(new URL("http://host.tld/file" + string + "/")).toString());
- }
- if (asQuery != null) {
- assertEquals("http://host.tld/file?q" + asQuery + "=x",
- backdoorUrlToUri(new URL("http://host.tld/file?q" + string + "=x")).toString());
- }
- assertEquals("http://host.tld/file#" + asFragment + "-x",
- backdoorUrlToUri(new URL("http://host.tld/file#" + asFragment + "-x")).toString());
+ private void testUrlToUriMappingAuthority(String urlString, String expectedUriString)
+ throws Exception {
+ URI authorityUri = backdoorUrlToUri(new URL(urlString));
+ assertEquals(expectedUriString, authorityUri.toString());
}
/**
@@ -2073,7 +2160,8 @@
final AtomicReference<URI> uriReference = new AtomicReference<URI>();
ResponseCache.setDefault(new ResponseCache() {
- @Override public CacheRequest put(URI uri, URLConnection connection) throws IOException {
+ @Override public CacheRequest put(URI uri, URLConnection connection)
+ throws IOException {
return null;
}
@Override public CacheResponse get(URI uri, String requestMethod,
@@ -2092,6 +2180,67 @@
return uriReference.get();
}
+ /*
+ * Test the request that would be made by making an actual request a MockWebServer and capturing
+ * the request made.
+ *
+ * Any "as" values that are null are not tested.
+ */
+ private void testUrlToRequestMapping(
+ String string, String asFile, String asQuery) throws Exception {
+ if (asFile != null) {
+ URL fileUrl = server.getUrl("/file" + string + "/#discarded");
+ HttpURLConnection urlConnection = (HttpURLConnection) fileUrl.openConnection();
+ // Bypass the cache.
+ urlConnection.setUseCaches(false);
+
+ assertEquals(200, urlConnection.getResponseCode());
+ assertEquals("/file" + asFile + "/", server.takeRequest().getPath());
+ }
+ if (asQuery != null) {
+ URL queryUrl = server.getUrl("/file?q" + string + "=x#discarded");
+ HttpURLConnection urlConnection = (HttpURLConnection) queryUrl.openConnection();
+ // Bypass the cache.
+ urlConnection.setUseCaches(false);
+
+ assertEquals(200, urlConnection.getResponseCode());
+ assertEquals("/file?q" + asQuery + "=x", server.takeRequest().getPath());
+ }
+ }
+
+ /*
+ * Test the request that would be made by looking at the URI presented to the cache. This
+ * includes the likely host name that would be used if a request were made. The cache throws an
+ * exception so no request is actually made.
+ *
+ * Any "as" values that are null are not tested.
+ */
+ private void testUrlToUriMapping(String string, String asAuthority, String asFile,
+ String asQuery, String asFragment) throws Exception {
+ if (asAuthority != null) {
+ URI authorityUri = backdoorUrlToUri(new URL("http://host" + string + ".tld/"));
+ assertEquals("http://host" + asAuthority + ".tld/", authorityUri.toString());
+ }
+ if (asFile != null) {
+ URI fileUri = backdoorUrlToUri(new URL("http://host.tld/file" + string + "/"));
+ assertEquals("http://host.tld/file" + asFile + "/", fileUri.toString());
+ }
+ if (asQuery != null) {
+ URI queryUri = backdoorUrlToUri(new URL("http://host.tld/file?q" + string + "=x"));
+ assertEquals("http://host.tld/file?q" + asQuery + "=x", queryUri.toString());
+ }
+ assertEquals("http://host.tld/file#" + asFragment + "-x",
+ backdoorUrlToUri(new URL("http://host.tld/file#" + asFragment + "-x")).toString());
+ }
+
+ public void testHostWithNul() throws Exception {
+ URL url = new URL("http://host\u0000/");
+ try {
+ url.openStream();
+ fail();
+ } catch (UnknownHostException expected) {}
+ }
+
/**
* Don't explode if the cache returns a null body. http://b/3373699
*/
@@ -2331,8 +2480,12 @@
URLConnection urlConnection = new URL("http://and roid.com/")
.openConnection(server.toProxyAddress());
- // This test is to check that a NullPointerException is not thrown.
- urlConnection.getInputStream();
+ try {
+ // This test is to check that a NullPointerException is not thrown.
+ urlConnection.getInputStream();
+ fail(); // the RI makes a bogus proxy request for "GET http://and roid.com/ HTTP/1.1"
+ } catch (UnknownHostException expected) {
+ }
}
public void testSslFallback_allSupportedProtocols() throws Exception {
diff --git a/luni/src/test/java/libcore/java/nio/charset/CharsetDecoderTest.java b/luni/src/test/java/libcore/java/nio/charset/CharsetDecoderTest.java
index a74b15d..db2be53 100644
--- a/luni/src/test/java/libcore/java/nio/charset/CharsetDecoderTest.java
+++ b/luni/src/test/java/libcore/java/nio/charset/CharsetDecoderTest.java
@@ -109,4 +109,15 @@
assertEquals(1, cb.position());
assertEquals('\u2603', cb.get(0));
}
+
+ public void testBufferWithNonZeroOffset() {
+ CharsetDecoder decoder = Charset.forName("UTF-8").newDecoder();
+ CharBuffer cb = CharBuffer.allocate(128);
+ cb.position(42);
+ CharBuffer out = cb.slice();
+ CoderResult cr = decoder.decode(
+ ByteBuffer.wrap(new byte[] { 'h', 'e', 'l', 'l', 'o'}), out, false);
+ assertTrue(cr.isUnderflow());
+ assertEquals(5, out.position());
+ }
}
diff --git a/luni/src/test/java/libcore/java/nio/charset/ModifiedUtf8Test.java b/luni/src/test/java/libcore/java/nio/charset/ModifiedUtf8Test.java
new file mode 100644
index 0000000..f7c91ba
--- /dev/null
+++ b/luni/src/test/java/libcore/java/nio/charset/ModifiedUtf8Test.java
@@ -0,0 +1,314 @@
+/*
+ * Copyright (C) 2015 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 libcore.java.nio.charset;
+
+import junit.framework.TestCase;
+
+import java.io.UTFDataFormatException;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.nio.charset.ModifiedUtf8;
+import java.util.Arrays;
+
+/**
+ * Tests for {@code ModifiedUtf8}.
+ */
+public class ModifiedUtf8Test extends TestCase {
+ public void test_decode_singleChar() throws Exception {
+ assertEquals("A", ModifiedUtf8.decode(new byte[] { 'A' }, new char[1], 0, 1));
+ }
+
+ public void test_decode_checkOffsetAndLength() throws Exception {
+ assertEquals("BC", ModifiedUtf8.decode(
+ new byte[] { 'A', 'B', 'C', 'D' }, new char[2], 1, 2));
+ }
+
+ public void test_decode_unexpectedEndOfStreamAfterC2_throws() {
+ // We need at least one byte after 0xc2.
+ try {
+ ModifiedUtf8.decode(new byte[]{'B', (byte) 0xc2}, new char[2], 0, 2);
+ fail("Should throw " + UTFDataFormatException.class.getName());
+ } catch(UTFDataFormatException expected) {
+ // Expected.
+ }
+ }
+
+ public void test_decode_unexpectedEndOfStreamAfterE0_throws() {
+ // We need at least two bytes after 0xe0.
+ try {
+ ModifiedUtf8.decode(
+ new byte[] { 'B', (byte) 0xe0, (byte) 0xab }, new char[2], 0, 3);
+ fail("Should throw " + UTFDataFormatException.class.getName());
+ } catch(UTFDataFormatException expected) {
+ // Expected.
+ }
+ }
+
+ public void test_decode_endOfStreamAfterC2() throws Exception {
+ assertEquals("B\u00a0", ModifiedUtf8.decode(
+ new byte[] { 'B', (byte) 0xc2, (byte) 0xa0 },
+ new char[2],
+ 0,
+ 3));
+ }
+
+ public void test_decode_endOfStreamAfterE0() throws Exception {
+ assertEquals("B\u0830", ModifiedUtf8.decode(
+ new byte[] { 'B', (byte) 0xe0, (byte) 0xa0, (byte) 0xb0 },
+ new char[2],
+ 0,
+ 4));
+ }
+
+ public void test_decode_invalidByte_characterUnknown() throws Exception {
+ try {
+ ModifiedUtf8.decode(new byte[]{'A', (byte) 0xf0}, new char[2], 0, 2);
+ fail("Should throw " + UTFDataFormatException.class.getName());
+ } catch (UTFDataFormatException expected) {
+ // Expected.
+ }
+ }
+
+ public void test_decode_someC2Character() throws Exception {
+ assertEquals("A\u00a6", ModifiedUtf8.decode(
+ new byte[] { 'A', (byte) 0xc2, (byte) 0xa6 }, new char[2], 0, 3));
+ }
+
+ public void test_decode_lastC2Character() throws Exception {
+ assertEquals("A\u00bf", ModifiedUtf8.decode(
+ new byte[] { 'A', (byte) 0xc2, (byte) 0xbf }, new char[2], 0, 3));
+ }
+
+ public void test_decode_someTwoByteCharacter() throws Exception {
+ // Make sure bit masking works
+ assertEquals("A\u0606", ModifiedUtf8.decode(
+ new byte[] { 'A', (byte) 0xd8, (byte) 0x86 }, new char[3], 0, 3));
+ }
+
+ public void test_decode_lastTwoByteCharacter() throws Exception {
+ assertEquals("A\u07ff", ModifiedUtf8.decode(
+ new byte[] { 'A', (byte) 0xdf, (byte) 0xbf }, new char[2], 0, 3));
+ }
+
+ public void test_decode_firstE0Character() throws Exception {
+ assertEquals("A\u0800", ModifiedUtf8.decode(
+ new byte[] { 'A', (byte) 0xe0, (byte) 0xa0, (byte) 0x80 },
+ new char[2],
+ 0,
+ 4));
+ }
+
+ public void test_decode_someThreeBytesCharacter() throws Exception {
+ assertEquals("A\u31c6", ModifiedUtf8.decode(
+ new byte[]{ 'A', (byte) 0xe3, (byte) 0x87, (byte) 0x86 },
+ new char[2],
+ 0,
+ 4));
+ }
+
+ public void test_decode_lastThreeBytesCharacter() throws Exception {
+ assertEquals("A\uffff", ModifiedUtf8.decode(
+ new byte[] { 'A', (byte) 0xef, (byte) 0xbf, (byte) 0xbf },
+ new char[2],
+ 0,
+ 4));
+ }
+
+ public void test_decode_twoByteCharacterAfterThreeByteCharacter() throws Exception {
+ assertEquals("\uffff\u0606A", ModifiedUtf8.decode(
+ new byte[] { (byte) 0xef, (byte) 0xbf, (byte) 0xbf, (byte) 0xd8, (byte) 0x86, 'A' },
+ new char[3],
+ 0,
+ 6));
+ }
+
+ public void test_decode_c080isZero() throws Exception {
+ assertEquals("A\u0000A", ModifiedUtf8.decode(
+ new byte[] { 'A', (byte) 0xc0, (byte) 0x80, 'A' }, new char[3], 0, 4));
+ }
+
+ public void test_decode_00isZero() throws Exception {
+ assertEquals("A\u0000A", ModifiedUtf8.decode(
+ new byte[] { 'A', (byte) 0, 'A' }, new char[3], 0, 3));
+ }
+
+ public void test_decode_insufficientOutputSpace_throws() throws Exception{
+ try {
+ ModifiedUtf8.decode(new byte[] { 'A', (byte) 0, 'A' }, new char[2], 0, 3);
+ fail("Should throw " + ArrayIndexOutOfBoundsException.class.getName());
+ } catch(ArrayIndexOutOfBoundsException expected) {
+ // Expected.
+ }
+ }
+
+ public void test_decode_checkBadSecondByteOfTwo() throws Exception {
+ try {
+ ModifiedUtf8.decode(new byte[]{(byte) 0xc0, (byte) 0xc0}, new char[2], 0, 2);
+ fail("Should throw " + UTFDataFormatException.class.getName());
+ } catch (UTFDataFormatException expected) {
+ // Expected.
+ }
+ }
+
+ public void test_decode_checkBadSecondByteOfThree() throws Exception{
+ try {
+ ModifiedUtf8.decode(new byte[]{
+ (byte) 0xe0, (byte) 0xc0, (byte) 0x80}, new char[2], 0, 2);
+ fail("Should throw " + UTFDataFormatException.class.getName());
+ } catch (UTFDataFormatException expected) {
+ // Expected.
+ }
+ }
+
+ public void test_decode_checkBadThirdByteOfThree() throws Exception{
+ try {
+ ModifiedUtf8.decode(new byte[]{
+ (byte) 0xe0, (byte) 0x80, (byte) 0xc0}, new char[2], 0, 2);
+ fail("Should throw " + UTFDataFormatException.class.getName());
+ } catch (UTFDataFormatException expected) {
+ // Expected.
+ }
+ }
+
+ public void test_decode_insufficientInput_throws() throws Exception{
+ try {
+ ModifiedUtf8.decode(new byte[] { 'A', (byte) 0, 'A' }, new char[8], 0, 100);
+ fail("Should throw " + ArrayIndexOutOfBoundsException.class.getName());
+ } catch(ArrayIndexOutOfBoundsException expected) {
+ // Expected.
+ }
+ }
+
+ public void test_decode_extraCharsInArray_ignored() throws Exception {
+ assertEquals("A", ModifiedUtf8.decode(new byte[] { 'A' }, new char[] { 'B', 'Z' }, 0, 1));
+ }
+
+ public void test_countBytes_rightCount() throws Exception {
+ assertEquals(0, ModifiedUtf8.countBytes("", false));
+ assertEquals(2, ModifiedUtf8.countBytes("\u0000", false));
+ assertEquals(1, ModifiedUtf8.countBytes("A", false));
+ assertEquals(1, ModifiedUtf8.countBytes("\u007f", false));
+ assertEquals(2, ModifiedUtf8.countBytes("\u0080", false));
+ assertEquals(2, ModifiedUtf8.countBytes("\u07ff", false));
+ assertEquals(3, ModifiedUtf8.countBytes("\u0800", false));
+ assertEquals(3, ModifiedUtf8.countBytes("\uffff", false));
+ }
+
+ public void test_countBytes_checkExceptionThrown() throws Exception {
+ // These two mustn't throw...
+ ModifiedUtf8.countBytes("", true);
+ ModifiedUtf8.countBytes("A", true);
+
+ char[] unsignedShortSizedCharArray = new char[2 * Short.MAX_VALUE + 1];
+ for (int i = 0; i < unsignedShortSizedCharArray.length; i++) {
+ unsignedShortSizedCharArray[i] = 'A';
+ }
+ String unsignedShortSizedString = String.copyValueOf(unsignedShortSizedCharArray);
+
+ char[] sizeLongerThanUnsignedShortCharArray = new char[2 * Short.MAX_VALUE + 2];
+ for (int i = 0; i < sizeLongerThanUnsignedShortCharArray.length; i++) {
+ sizeLongerThanUnsignedShortCharArray[i] = 'A';
+ }
+ String sizeLongerThanUnsignedShortString = String.copyValueOf(
+ sizeLongerThanUnsignedShortCharArray);
+
+ // Mustn't throw.
+ ModifiedUtf8.countBytes(unsignedShortSizedString, true);
+
+ try {
+ // Must throw.
+ ModifiedUtf8.countBytes(sizeLongerThanUnsignedShortString, true);
+ fail();
+ } catch (UTFDataFormatException expected) {
+ // Expected.
+ }
+
+ // Mustn't throw.
+ ModifiedUtf8.countBytes(unsignedShortSizedString, false);
+ ModifiedUtf8.countBytes(sizeLongerThanUnsignedShortString, false);
+ }
+
+ public void test_encode() throws Exception {
+ assertTrue(Arrays.equals(new byte[]{0, 1, 'A'}, ModifiedUtf8.encode("A")));
+ assertTrue(Arrays.equals(new byte[] { 0, 3, 'A', 'B', 'C' }, ModifiedUtf8.encode("ABC")));
+ assertTrue(Arrays.equals(new byte[] { 0, 3, 'A', (byte) 0xc2, (byte) 0xa0 },
+ ModifiedUtf8.encode("A\u00a0")));
+ assertTrue(Arrays.equals(new byte[] { 0, 4, 'A', (byte) 0xe0, (byte) 0xa0, (byte) 0xb0 },
+ ModifiedUtf8.encode("A\u0830")));
+ assertTrue(Arrays.equals(new byte[] { 0, 3, 'A', (byte) 0xc2, (byte) 0xa6 },
+ ModifiedUtf8.encode("A\u00a6")));
+ assertTrue(Arrays.equals(new byte[] { 0, 3, 'A', (byte) 0xc2, (byte) 0xbf },
+ ModifiedUtf8.encode("A\u00bf")));
+ assertTrue(Arrays.equals(new byte[] { 0, 3, 'A', (byte) 0xd8, (byte) 0x86 },
+ ModifiedUtf8.encode("A\u0606")));
+ assertTrue(Arrays.equals(new byte[] { 0, 3, 'A', (byte) 0xdf, (byte) 0xbf },
+ ModifiedUtf8.encode("A\u07ff")));
+ assertTrue(Arrays.equals(new byte[] { 0, 4, 'A', (byte) 0xe0, (byte) 0xa0, (byte) 0x80 },
+ ModifiedUtf8.encode("A\u0800")));
+ assertTrue(Arrays.equals(new byte[] { 0, 4, 'A', (byte) 0xe3, (byte) 0x87, (byte) 0x86 },
+ ModifiedUtf8.encode("A\u31c6")));
+ assertTrue(Arrays.equals(new byte[] { 0, 4, 'A', (byte) 0xef, (byte) 0xbf, (byte) 0xbf },
+ ModifiedUtf8.encode("A\uffff")));
+ assertTrue(Arrays.equals(new byte[] { 0, 3, 'A', (byte) 0xc0, (byte) 0x80 },
+ ModifiedUtf8.encode("A\u0000")));
+ assertTrue(
+ Arrays.equals(new byte[] { 0, 8, (byte) 0xe3, (byte) 0x87, (byte) 0x86,
+ (byte) 0xd8, (byte) 0x86, (byte) 0xc0, (byte) 0x80, 'A' },
+ ModifiedUtf8.encode("\u31c6\u0606\u0000A")));
+ }
+
+ public void test_encode_throws() throws Exception {
+ char[] unsignedShortSizedCharArray = new char[Short.MAX_VALUE * 2 + 1];
+ for (int i = 0; i < unsignedShortSizedCharArray.length; i++) {
+ unsignedShortSizedCharArray[i] = 'A';
+ }
+ String unsignedShortSizedString = String.copyValueOf(unsignedShortSizedCharArray);
+
+ char[] sizeLongerThanUnsignedShortCharArray = new char[Short.MAX_VALUE * 2 + 2];
+ for (int i = 0; i < sizeLongerThanUnsignedShortCharArray.length; i++) {
+ sizeLongerThanUnsignedShortCharArray[i] = 'A';
+ }
+ String sizeLongerThanUnsignedShortString =
+ String.copyValueOf(sizeLongerThanUnsignedShortCharArray);
+
+ // Mustn't throw.
+ ModifiedUtf8.encode(unsignedShortSizedString);
+ try {
+ // Must throw.
+ ModifiedUtf8.encode(sizeLongerThanUnsignedShortString);
+ fail("Should throw " + UTFDataFormatException.class.getName());
+ } catch (UTFDataFormatException expected) {
+ // Expected.
+ }
+ }
+
+ public void test_encode_lengthAtBeginning() throws Exception {
+ int testStringLength = 20000;
+ char[] charArray = new char[testStringLength];
+ for (int i = 0; i < charArray.length; i++) {
+ charArray[i] = 'A';
+ }
+ String testString = String.copyValueOf(charArray);
+
+ // Mustn't throw.
+ byte[] result = ModifiedUtf8.encode(testString);
+ ByteBuffer b = ByteBuffer.wrap(result);
+ b.order(ByteOrder.BIG_ENDIAN);
+ assertEquals(testStringLength, b.getShort());
+ }
+
+}
diff --git a/luni/src/test/java/libcore/java/nio/charset/OldCharset_SingleByte_IBM864.java b/luni/src/test/java/libcore/java/nio/charset/OldCharset_SingleByte_IBM864.java
index 8698d68..73c1377 100644
--- a/luni/src/test/java/libcore/java/nio/charset/OldCharset_SingleByte_IBM864.java
+++ b/luni/src/test/java/libcore/java/nio/charset/OldCharset_SingleByte_IBM864.java
@@ -22,8 +22,7 @@
public class OldCharset_SingleByte_IBM864 extends OldCharset_SingleByteAbstractTest {
protected void setUp() throws Exception {
-// charsetName = "IBM864"; // ICU name "cp864", wanted Android name "CP864"
- charsetName = "cp864"; // ICU name "cp864", wanted Android name "CP864"
+ charsetName = "IBM864"; // This is the preferred MIME name.
allChars = theseChars(new int[]{
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
diff --git a/luni/src/test/java/libcore/java/security/MessageDigestTest.java b/luni/src/test/java/libcore/java/security/MessageDigestTest.java
index ad410e4..60dc36a 100644
--- a/luni/src/test/java/libcore/java/security/MessageDigestTest.java
+++ b/luni/src/test/java/libcore/java/security/MessageDigestTest.java
@@ -16,12 +16,17 @@
package libcore.java.security;
+import java.lang.reflect.Method;
import java.security.MessageDigest;
+import java.security.MessageDigestSpi;
import java.security.NoSuchAlgorithmException;
import java.security.Provider;
import java.security.Security;
+import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.Callable;
@@ -273,4 +278,33 @@
es.shutdown();
assertTrue("Test should not timeout", es.awaitTermination(1, TimeUnit.MINUTES));
}
+
+ /**
+ * When an instance of a MessageDigest is obtained, it's actually wrapped in an implementation
+ * which delegates MessageDigestSpi calls through to the underlying SPI implementation. We
+ * verify that all these MessageDigestSpi methods are indeed overridden -- if they aren't, they
+ * won't be delegated to the SPI implementation.
+ */
+ public void testMessageDigestDelegateOverridesAllMethods() throws Exception {
+ MessageDigest md = MessageDigest.getInstance("SHA-256");
+
+ /*
+ * Make sure we're dealing with a delegate and not an actual instance of MessageDigest.
+ */
+ Class<?> mdClass = md.getClass();
+ assertFalse(mdClass.equals(MessageDigestSpi.class));
+ assertFalse(mdClass.equals(MessageDigest.class));
+
+ List<String> methodsNotOverridden = new ArrayList<String>();
+
+ for (Method spiMethod : MessageDigestSpi.class.getDeclaredMethods()) {
+ try {
+ mdClass.getDeclaredMethod(spiMethod.getName(), spiMethod.getParameterTypes());
+ } catch (NoSuchMethodException e) {
+ methodsNotOverridden.add(spiMethod.toString());
+ }
+ }
+
+ assertEquals(Collections.EMPTY_LIST, methodsNotOverridden);
+ }
}
diff --git a/luni/src/test/java/libcore/java/security/SignatureTest.java b/luni/src/test/java/libcore/java/security/SignatureTest.java
index 9aa75bd..f8ab870 100644
--- a/luni/src/test/java/libcore/java/security/SignatureTest.java
+++ b/luni/src/test/java/libcore/java/security/SignatureTest.java
@@ -16,7 +16,14 @@
package libcore.java.security;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
+import java.lang.reflect.Method;
import java.math.BigInteger;
+import java.security.AlgorithmParameters;
import java.security.InvalidKeyException;
import java.security.InvalidParameterException;
import java.security.KeyFactory;
@@ -29,6 +36,7 @@
import java.security.Security;
import java.security.Signature;
import java.security.SignatureException;
+import java.security.SignatureSpi;
import java.security.spec.DSAPrivateKeySpec;
import java.security.spec.DSAPublicKeySpec;
import java.security.spec.ECFieldFp;
@@ -41,8 +49,11 @@
import java.security.spec.RSAPrivateKeySpec;
import java.security.spec.RSAPublicKeySpec;
import java.security.spec.X509EncodedKeySpec;
+import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.Callable;
@@ -1744,4 +1755,104 @@
result = ecdsaVerify.verify(SIGNATURE);
assertEquals(false, result);
}
+
+ /**
+ * When an instance of a Signature is obtained, it's actually wrapped in an
+ * implementation that makes sure the correct SPI is selected and then calls
+ * through to the underlying SPI. We need to make sure that all methods on
+ * the delegate are wrapped and don't call directly into
+ * {@link SignatureSpi}.
+ */
+ public void testSignatureDelegateOverridesAllMethods() throws Exception {
+ Signature sig = Signature.getInstance("SHA1withRSA");
+
+ /*
+ * Make sure we're dealing with a delegate and not an actual instance of
+ * Signature.
+ */
+ Class<?> sigClass = sig.getClass();
+ assertFalse(sigClass.equals(SignatureSpi.class));
+ assertFalse(sigClass.equals(Signature.class));
+
+ List<String> methodsNotOverridden = new ArrayList<String>();
+
+ for (Method spiMethod : SignatureSpi.class.getDeclaredMethods()) {
+ try {
+ sigClass.getDeclaredMethod(spiMethod.getName(), spiMethod.getParameterTypes());
+ } catch (NoSuchMethodException e) {
+ methodsNotOverridden.add(spiMethod.toString());
+ }
+ }
+
+ assertEquals(Collections.EMPTY_LIST, methodsNotOverridden);
+ }
+
+ public void testGetParameters_IsCalled() throws Exception {
+ Provider provider = spy(new MockableProvider());
+ Provider.Service service = spy(new Provider.Service(provider, "Signature",
+ "FAKEFORGETPARAMETERS", "fake", null, null));
+ MockableSignatureSpi signatureSpi = mock(MockableSignatureSpi.class);
+
+ // Since these are spies, we want to use the doReturn(...) syntax to
+ // avoid calling the real methods.
+ doReturn(service).when(provider).getService(service.getType(), service.getAlgorithm());
+ doReturn(signatureSpi).when(service).newInstance(null);
+
+ Signature sig = Signature.getInstance(service.getAlgorithm(), provider);
+ sig.getParameters();
+ verify(signatureSpi).engineGetParameters();
+ }
+
+ public static class MockableProvider extends Provider {
+ protected MockableProvider() {
+ super("MockableProvider", 1.0, "Used by Mockito");
+ }
+ }
+
+ public static class MockableSignatureSpi extends SignatureSpi {
+ @Override
+ public void engineInitVerify(PublicKey publicKey) throws InvalidKeyException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void engineInitSign(PrivateKey privateKey) throws InvalidKeyException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void engineUpdate(byte b) throws SignatureException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void engineUpdate(byte[] b, int off, int len) throws SignatureException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public byte[] engineSign() throws SignatureException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean engineVerify(byte[] sigBytes) throws SignatureException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void engineSetParameter(String param, Object value) throws InvalidParameterException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Object engineGetParameter(String param) throws InvalidParameterException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public AlgorithmParameters engineGetParameters() {
+ throw new UnsupportedOperationException();
+ }
+ }
}
diff --git a/luni/src/test/java/libcore/java/security/cert/FakeOidProvider.java b/luni/src/test/java/libcore/java/security/cert/FakeOidProvider.java
new file mode 100644
index 0000000..3e9183a
--- /dev/null
+++ b/luni/src/test/java/libcore/java/security/cert/FakeOidProvider.java
@@ -0,0 +1,69 @@
+package libcore.java.security.cert;
+
+import java.security.InvalidKeyException;
+import java.security.InvalidParameterException;
+import java.security.PrivateKey;
+import java.security.Provider;
+import java.security.PublicKey;
+import java.security.SignatureException;
+import java.security.SignatureSpi;
+
+public class FakeOidProvider extends Provider {
+ /**
+ * Used for testing some effects of algorithm OID mapping. We have to be
+ * slightly careful of the OID we pick here: the first number has to be 0,
+ * 1, or 2, and the second number has to be less than 39.
+ */
+ public static final String SIGALG_OID = "1.2.34359737229.1.1.5";
+
+ /**
+ * Used for testing some effects of algorithm OID mapping.
+ */
+ public static final String SIGALG_OID_NAME = "FAKEwithFAKE";
+
+ public static final String PROVIDER_NAME = "FakeOidProvider";
+
+ protected FakeOidProvider() {
+ super(PROVIDER_NAME, 1.0, "Fake OID Provider for Tests");
+
+ put("Signature." + SIGALG_OID, FakeOidSignature.class.getName());
+ }
+
+ public static class FakeOidSignature extends SignatureSpi {
+ @Override
+ protected void engineInitVerify(PublicKey publicKey) throws InvalidKeyException {
+ }
+
+ @Override
+ protected void engineInitSign(PrivateKey privateKey) throws InvalidKeyException {
+ }
+
+ @Override
+ protected void engineUpdate(byte b) throws SignatureException {
+ }
+
+ @Override
+ protected void engineUpdate(byte[] b, int off, int len) throws SignatureException {
+ }
+
+ @Override
+ protected byte[] engineSign() throws SignatureException {
+ return null;
+ }
+
+ @Override
+ protected boolean engineVerify(byte[] sigBytes) throws SignatureException {
+ return true;
+ }
+
+ @Override
+ protected void engineSetParameter(String param, Object value)
+ throws InvalidParameterException {
+ }
+
+ @Override
+ protected Object engineGetParameter(String param) throws InvalidParameterException {
+ return null;
+ }
+ }
+}
diff --git a/luni/src/test/java/libcore/java/security/cert/X509CertificateTest.java b/luni/src/test/java/libcore/java/security/cert/X509CertificateTest.java
index 14c22ef..df87aae 100644
--- a/luni/src/test/java/libcore/java/security/cert/X509CertificateTest.java
+++ b/luni/src/test/java/libcore/java/security/cert/X509CertificateTest.java
@@ -16,6 +16,8 @@
package libcore.java.security.cert;
+import org.apache.harmony.security.utils.AlgNameMapper;
+
import tests.support.resource.Support_Resources;
import java.io.BufferedInputStream;
@@ -294,6 +296,8 @@
generateCertificates_PKCS7_PEM_TrailingData(f);
generateCertificates_PKCS7_DER_TrailingData(f);
test_Serialization(f);
+ test_UnknownUnmappedKeyOID(f);
+ test_UnknownMappedKeyOID(f);
} catch (Throwable e) {
out.append("Error encountered checking " + p.getName() + "\n");
e.printStackTrace(out);
@@ -1181,7 +1185,7 @@
Collection<? extends X509Certificate> certs = (Collection<? extends X509Certificate>)
f.generateCertificates(bais);
if (StandardNames.IS_RI) {
- fail("RI fails on this test.");
+ return;
}
} catch (CertificateParsingException e) {
if (StandardNames.IS_RI) {
@@ -1211,7 +1215,7 @@
Collection<? extends X509Certificate> certs = (Collection<? extends X509Certificate>)
f.generateCertificates(bais);
if (StandardNames.IS_RI) {
- fail("RI fails on this test.");
+ return;
}
} catch (CertificateParsingException e) {
if (StandardNames.IS_RI) {
@@ -1256,12 +1260,7 @@
Collection<? extends X509Certificate> certs = (Collection<? extends X509Certificate>)
f.generateCertificates(bais);
- // RI is broken
- if (StandardNames.IS_RI) {
- assertEquals(0, bais.available());
- } else {
- assertEquals(4096, bais.available());
- }
+ assertEquals(4096, bais.available());
}
private void test_Serialization(CertificateFactory f) throws Exception {
@@ -1291,6 +1290,89 @@
}
}
+ private void test_UnknownUnmappedKeyOID(CertificateFactory f) throws Exception {
+ byte[] certBytes = generateFakeOidCertificate();
+
+ {
+ X509Certificate cert = (X509Certificate) f
+ .generateCertificate(new ByteArrayInputStream(certBytes));
+ assertEquals(FakeOidProvider.SIGALG_OID, cert.getSigAlgOID());
+ assertEquals(FakeOidProvider.SIGALG_OID, cert.getSigAlgName());
+ }
+ }
+
+ private void test_UnknownMappedKeyOID(CertificateFactory f) throws Exception {
+ AlgNameMapper.addMapping(FakeOidProvider.SIGALG_OID, FakeOidProvider.SIGALG_OID_NAME);
+
+ Security.addProvider(new FakeOidProvider());
+ try {
+ byte[] certBytes = generateFakeOidCertificate();
+
+ // Make sure the certificate is outputting something.
+ X509Certificate cert = (X509Certificate) f
+ .generateCertificate(new ByteArrayInputStream(certBytes));
+ assertEquals(FakeOidProvider.SIGALG_OID, cert.getSigAlgOID());
+ if ("AndroidOpenSSL".equals(f.getProvider().getName())) {
+ // AndroidOpenSSL provider has a connection to AlgNameMapper, so
+ // we expect it to get our special name.
+ assertEquals(FakeOidProvider.SIGALG_OID_NAME, cert.getSigAlgName());
+ } else {
+ assertNotNull(cert.getSigAlgName());
+ }
+
+ cert.verify(cert.getPublicKey());
+ } finally {
+ AlgNameMapper
+ .removeMapping(FakeOidProvider.SIGALG_OID, FakeOidProvider.SIGALG_OID_NAME);
+ Security.removeProvider(FakeOidProvider.PROVIDER_NAME);
+ }
+ }
+
+ private byte[] generateFakeOidCertificate() throws IOException {
+ byte[] certBytes;
+
+ // Read in the original cert.
+ {
+ InputStream is = null;
+ try {
+ is = Support_Resources.getStream(CERT_RSA);
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ byte[] buffer = new byte[2048];
+ int numRead;
+ while ((numRead = is.read(buffer, 0, buffer.length)) != -1) {
+ baos.write(buffer, 0, numRead);
+ }
+ certBytes = baos.toByteArray();
+ } finally {
+ if (is != null) {
+ try {
+ is.close();
+ } catch (IOException ignored) {
+ }
+ }
+ }
+ }
+
+ // Fix the OID for the certificate.
+ {
+ int numFixed = 0;
+ for (int i = 0; i < certBytes.length - 5; i++) {
+ if (certBytes[i] == (byte) 0x2A && certBytes[i + 1] == (byte) 0x86
+ && certBytes[i + 2] == (byte) 0x48 && certBytes[i + 3] == (byte) 0x86
+ && certBytes[i + 4] == (byte) 0xF7) {
+ certBytes[i + 1] = (byte) 0xFF;
+ certBytes[i + 2] = (byte) 0xFF;
+ certBytes[i + 3] = (byte) 0xFF;
+ i += 4;
+ numFixed++;
+ }
+ }
+ assertEquals(3, numFixed);
+ }
+ return certBytes;
+ }
+
@Override
protected void setUp() throws Exception {
super.setUp();
diff --git a/luni/src/test/java/libcore/java/text/CollatorTest.java b/luni/src/test/java/libcore/java/text/CollatorTest.java
index 0f65b20..75a245e 100644
--- a/luni/src/test/java/libcore/java/text/CollatorTest.java
+++ b/luni/src/test/java/libcore/java/text/CollatorTest.java
@@ -49,6 +49,11 @@
mColl.getCollationKey("2d294f2d3739433565147655394f3762f3147312d3731641452f310");
}
+ public void test_icuConstantNullorder() throws Exception {
+ assertEquals(android.icu.text.CollationElementIterator.NULLORDER,
+ CollationElementIterator.NULLORDER);
+ }
+
public void test_collationKeySize() throws Exception {
// Test to verify that very large collation keys are not truncated.
StringBuilder b = new StringBuilder();
@@ -115,6 +120,16 @@
}
}
+ // In traditional Spanish sorting, the pair of characters 'ch' behaves as a single character
+ // that sorts primary-after c.
+ public void testTradSpanishSorting() {
+ RuleBasedCollator traditionalSpanishCollator = (RuleBasedCollator)
+ Collator.getInstance(Locale.forLanguageTag("es-u-co-trad"));
+ String cd = "cd";
+ String chd = "chd";
+ assertTrue(traditionalSpanishCollator.compare(cd, chd) < 0);
+ }
+
private void assertCollationElementIterator(CollationElementIterator it, Integer... offsets) {
for (int offset : offsets) {
assertEquals(offset, it.getOffset());
diff --git a/luni/src/test/java/libcore/java/text/DecimalFormatSymbolsTest.java b/luni/src/test/java/libcore/java/text/DecimalFormatSymbolsTest.java
index 979cfb7..ec8ddb4 100644
--- a/luni/src/test/java/libcore/java/text/DecimalFormatSymbolsTest.java
+++ b/luni/src/test/java/libcore/java/text/DecimalFormatSymbolsTest.java
@@ -118,4 +118,59 @@
assertEquals('%', dfs.getPercent());
assertEquals('-', dfs.getMinusSign());
}
+
+
+ /**
+ * This class exists to allow the test to access the protected methods
+ * getIcuDecimalFormatSymbols and fromIcuInstance on the real DecimalFormatSymbols class.
+ */
+ private static class DFSForTests extends DecimalFormatSymbols {
+ public DFSForTests(Locale locale) {
+ super(locale);
+ }
+
+ @Override
+ public android.icu.text.DecimalFormatSymbols getIcuDecimalFormatSymbols() {
+ return super.getIcuDecimalFormatSymbols();
+ }
+
+ protected static DecimalFormatSymbols fromIcuInstance(
+ android.icu.text.DecimalFormatSymbols dfs) {
+ return DecimalFormatSymbols.fromIcuInstance(dfs);
+ }
+ }
+
+ public void compareDfs(DecimalFormatSymbols dfs,
+ android.icu.text.DecimalFormatSymbols icuSymb) {
+ // Check currency code is the same because ICU returns its own currency class.
+ assertEquals(dfs.getCurrency().getCurrencyCode(), icuSymb.getCurrency().getCurrencyCode());
+ assertEquals(dfs.getCurrencySymbol(), icuSymb.getCurrencySymbol());
+ assertEquals(dfs.getDecimalSeparator(), icuSymb.getDecimalSeparator());
+ assertEquals(dfs.getDigit(), icuSymb.getDigit());
+ assertEquals(dfs.getExponentSeparator(), icuSymb.getExponentSeparator());
+ assertEquals(dfs.getGroupingSeparator(), icuSymb.getGroupingSeparator());
+ assertEquals(dfs.getInfinity(), icuSymb.getInfinity());
+ assertEquals(dfs.getInternationalCurrencySymbol(),
+ icuSymb.getInternationalCurrencySymbol());
+ assertEquals(dfs.getMinusSign(), icuSymb.getMinusSign());
+ assertEquals(dfs.getMonetaryDecimalSeparator(), icuSymb.getMonetaryDecimalSeparator());
+ assertEquals(dfs.getPatternSeparator(), icuSymb.getPatternSeparator());
+ assertEquals(dfs.getPercent(), icuSymb.getPercent());
+ assertEquals(dfs.getPerMill(), icuSymb.getPerMill());
+ assertEquals(dfs.getZeroDigit(), icuSymb.getZeroDigit());
+ }
+
+ // Test the methods to convert to and from the ICU DecimalFormatSymbols
+ public void testToIcuDecimalFormatSymbols() {
+ DFSForTests dfs = new DFSForTests(Locale.US);
+ android.icu.text.DecimalFormatSymbols icuSymb = dfs.getIcuDecimalFormatSymbols();
+ compareDfs(dfs, icuSymb);
+ }
+
+ public void testFromIcuDecimalFormatSymbols() {
+ android.icu.text.DecimalFormatSymbols icuSymb = new android.icu.text.DecimalFormatSymbols();
+ DecimalFormatSymbols dfs = DFSForTests.fromIcuInstance(icuSymb);
+ compareDfs(dfs, icuSymb);
+ }
+
}
diff --git a/luni/src/test/java/libcore/java/text/NumberFormatTest.java b/luni/src/test/java/libcore/java/text/NumberFormatTest.java
index 87fe96d..759a24a 100644
--- a/luni/src/test/java/libcore/java/text/NumberFormatTest.java
+++ b/luni/src/test/java/libcore/java/text/NumberFormatTest.java
@@ -67,10 +67,14 @@
}
public void test_getIntegerInstance_ar() throws Exception {
+ // Previous versions of android use just the positive format string (ICU4C) although now we
+ // use '<positive_format>;<negative_format>' because of ICU4J denormalization.
NumberFormat numberFormat = NumberFormat.getNumberInstance(new Locale("ar"));
- assertEquals("#,##0.###", ((DecimalFormat) numberFormat).toPattern());
+ String patternNI = ((DecimalFormat) numberFormat).toPattern();
+ assertTrue("#,##0.###;-#,##0.###".equals(patternNI) || "#,##0.###".equals(patternNI));
NumberFormat integerFormat = NumberFormat.getIntegerInstance(new Locale("ar"));
- assertEquals("#,##0", ((DecimalFormat) integerFormat).toPattern());
+ String patternII = ((DecimalFormat) integerFormat).toPattern();
+ assertTrue("#,##0;-#,##0".equals(patternII) || "#,##0".equals(patternII));
}
public void test_numberLocalization() throws Exception {
@@ -146,27 +150,108 @@
} catch (NullPointerException expected) {}
}
- // https://code.google.com/p/android/issues/detail?id=79925
- public void test_setCurrency() throws Exception {
+ // https://code.google.com/p/android/issues/detail?id=79925\
+ // When switching currency after having initialised a DecimalFormat instance to a currency,
+ // the symbols are missing.
+ public void test_issue79925() {
NumberFormat nf = NumberFormat.getCurrencyInstance(Locale.US);
- nf.setCurrency(Currency.getInstance("AMD"));
- assertEquals("AMD50.00", nf.format(50.0));
+ nf.setCurrency(Currency.getInstance("EUR"));
+ assertEquals("€50.00", nf.format(50.0));
DecimalFormatSymbols decimalFormatSymbols = ((DecimalFormat) nf).getDecimalFormatSymbols();
decimalFormatSymbols.setCurrencySymbol("");
((DecimalFormat) nf).setDecimalFormatSymbols(decimalFormatSymbols);
assertEquals("50.00", nf.format(50.0));
- nf.setCurrency(Currency.getInstance("AMD"));
- assertEquals("AMD50.00", nf.format(50.0));
+ nf.setCurrency(Currency.getInstance("SGD"));
+ assertEquals("SGD50.00", nf.format(50.0));
- nf.setCurrency(Currency.getInstance("AMD"));
- assertEquals("AMD50.00", nf.format(50.0));
+ nf.setCurrency(Currency.getInstance("SGD"));
+ assertEquals("SGD50.00", nf.format(50.00));
nf.setCurrency(Currency.getInstance("USD"));
assertEquals("$50.00", nf.format(50.0));
- nf.setCurrency(Currency.getInstance("AMD"));
- assertEquals("AMD50.00", nf.format(50.0));
+ nf.setCurrency(Currency.getInstance("SGD"));
+ assertEquals("SGD50.00", nf.format(50.0));
}
+
+ // Test to ensure explicitly setting a currency symbol will overwrite the defaults.
+ public void test_customCurrencySymbol() {
+ NumberFormat nf = NumberFormat.getCurrencyInstance(Locale.US);
+ DecimalFormatSymbols dfs = ((DecimalFormat) nf).getDecimalFormatSymbols();
+ dfs.setCurrencySymbol("SPECIAL");
+ ((DecimalFormat) nf).setDecimalFormatSymbols(dfs);
+ assertEquals("SPECIAL3.14", nf.format(3.14));
+
+ // Setting the currency again should reset the symbols.
+ nf.setCurrency(Currency.getInstance("USD"));
+ assertEquals("$3.14", nf.format(3.14));
+
+ // Setting it back again should work.
+ dfs.setCurrencySymbol("NEW");
+ ((DecimalFormat) nf).setDecimalFormatSymbols(dfs);
+ assertEquals("NEW3.14", nf.format(3.14));
+ }
+
+ // Test to ensure currency formatting from specified locale works.
+ public void test_currencyFromLocale() {
+ // French locale formats with "," as separator and Euro symbol after a non-breaking space.
+ NumberFormat nf = NumberFormat.getCurrencyInstance(Locale.FRANCE);
+ assertEquals("50,00\u00a0€", nf.format(50));
+
+ // British locale uses pound sign with no spacing.
+ nf = NumberFormat.getCurrencyInstance(Locale.UK);
+ assertEquals("£50.00", nf.format(50));
+ }
+
+ // Test the currency symbol is correctly taken from ICU. Verifies that the fractional digits
+ // are not updated because DecimalFormat.setCurrency agrees not to change it.
+ public void test_setCurrency() throws Exception {
+ NumberFormat nf = NumberFormat.getCurrencyInstance(Locale.US);
+
+ // The Armenian Dram is a special case where the fractional digits are 0.
+ Currency amd = Currency.getInstance("AMD");
+ assertEquals(0, amd.getDefaultFractionDigits());
+
+ // Armenian Dram ISO 4217 code.
+ nf.setCurrency(amd);
+ assertEquals(2, nf.getMinimumFractionDigits()); // Check DecimalFormat has not taken the
+ assertEquals(2, nf.getMaximumFractionDigits()); // currency specific fractional digits.
+ assertEquals("AMD50.00", nf.format(50.00));
+
+ // Try and explicitly request fractional digits for the specified currency.
+ nf.setMaximumFractionDigits(amd.getDefaultFractionDigits());
+ assertEquals("AMD50", nf.format(50.00));
+
+ nf = NumberFormat.getCurrencyInstance(Locale.US);
+
+ // Euro sign.
+ nf.setCurrency(Currency.getInstance("EUR"));
+ assertEquals("€50.00", nf.format(50.00));
+
+ // Japanese Yen symbol.
+ nf.setCurrency(Currency.getInstance("JPY"));
+ assertEquals("¥50.00", nf.format(50.00));
+
+ // Swiss Franc ISO 4217 code.
+ nf.setCurrency(Currency.getInstance("CHF"));
+ assertEquals("CHF50.00", nf.format(50.00));
+ }
+
+ // Test the setting of locale specific patterns which have different fractional digits.
+ public void test_currencyWithPatternDigits() throws Exception {
+ // Japanese Yen 0 fractional digits.
+ NumberFormat nf = NumberFormat.getCurrencyInstance(Locale.JAPAN);
+ assertEquals("¥50", nf.format(50.00));
+
+ // Armenian Dram 0 fractional digits.
+ nf = NumberFormat.getCurrencyInstance(Locale.forLanguageTag("hy-AM"));
+ assertEquals("֏\u00a050", nf.format(50.00));
+
+ // Swiss Francs 2 fractional digits.
+ nf = NumberFormat.getCurrencyInstance(Locale.forLanguageTag("de-CH"));
+ assertEquals("CHF\u00a050.00", nf.format(50.00));
+ }
+
}
diff --git a/luni/src/test/java/libcore/java/text/OldBidiTest.java b/luni/src/test/java/libcore/java/text/OldBidiTest.java
index 45fe258..fbf68ea 100644
--- a/luni/src/test/java/libcore/java/text/OldBidiTest.java
+++ b/luni/src/test/java/libcore/java/text/OldBidiTest.java
@@ -70,4 +70,126 @@
assertEquals(1, bd.getRunStart(1));
assertEquals(2, bd.getRunStart(2));
}
+
+ public void testReorderVisuallyIllegalArguments() {
+ // Negative index.
+ try {
+ Bidi.reorderVisually(new byte[] {}, -1, new Object[] {}, 0, 0);
+ fail();
+ } catch (IllegalArgumentException expected) {
+ // Expected.
+ }
+
+ try {
+ Bidi.reorderVisually(new byte[] {}, 0, new Object[] {}, -1, 0);
+ fail();
+ } catch (IllegalArgumentException expected) {
+ // Expected.
+ }
+
+ try {
+ Bidi.reorderVisually(new byte[] {}, 0, new Object[] {}, 0, -1);
+ fail();
+ } catch (IllegalArgumentException expected) {
+ // Expected.
+ }
+
+ // Count > levels.length.
+ try {
+ Bidi.reorderVisually(new byte[] {}, 0, new Object[] {}, 0, 1);
+ fail();
+ } catch (IllegalArgumentException expected) {
+ // Expected.
+ }
+
+ // Count > levels.length - levelStart.
+ try {
+ Bidi.reorderVisually(new byte[] {1, 2, 3}, 2, new Object[] {}, 0, 2);
+ fail();
+ } catch (IllegalArgumentException expected) {
+ // Expected.
+ }
+ }
+
+ public void testRequiresBidiIllegalArguments() {
+ // Negative param.
+ try {
+ Bidi.requiresBidi(new char[] {}, 0, -1);
+ } catch (IllegalArgumentException expected) {
+ // Expected.
+ }
+
+ try {
+ Bidi.requiresBidi(new char[] {}, -1, 0);
+ } catch (IllegalArgumentException expected) {
+ // Expected.
+ }
+
+ // Limit > start.
+ try {
+ Bidi.requiresBidi(new char[] {}, 1, 0);
+ } catch (IllegalArgumentException expected) {
+ // Expected.
+ }
+
+ // Limit > text.length.
+ try {
+ Bidi.requiresBidi(new char[] {'a', 'b', 'c'}, 0, 4);
+ } catch (IllegalArgumentException expected) {
+ // Expected.
+ }
+ }
+
+ public void testCreateLineBidiIllegalArguments() {
+ Bidi bidi = new Bidi("test", Bidi.DIRECTION_LEFT_TO_RIGHT);
+
+ try {
+ bidi.createLineBidi(-1, 0);
+ fail();
+ } catch (IllegalArgumentException expected) {
+ // Expected.
+ }
+
+ try {
+ bidi.createLineBidi(0, -1);
+ fail();
+ } catch (IllegalArgumentException expected) {
+ // Expected.
+ }
+
+ // Linelimit > getLength().
+ try {
+ bidi.createLineBidi(0, 5);
+ fail();
+ } catch (IllegalArgumentException expected) {
+ // Expected.
+ }
+
+ // lineStart > lineLimit.
+ try {
+ bidi.createLineBidi(2, 1);
+ fail();
+ } catch (IllegalArgumentException expected) {
+ // Expected.
+ }
+ }
+
+ public void testConstructorIllegalArguments() {
+ try {
+ new Bidi(null, Bidi.DIRECTION_LEFT_TO_RIGHT);
+ fail();
+ } catch (IllegalArgumentException expected) {
+ // Expected.
+ }
+
+ // text.length - textStart < paragraphLength.
+ try {
+ new Bidi(new char[] {'a', 'b', 'c', 'd', 'e'}, 1, new byte[] {}, 0, 5,
+ Bidi.DIRECTION_LEFT_TO_RIGHT);
+ fail();
+ } catch (IllegalArgumentException expected) {
+ // Expected.
+ }
+ }
+
}
diff --git a/luni/src/test/java/libcore/java/text/OldNumberFormatTest.java b/luni/src/test/java/libcore/java/text/OldNumberFormatTest.java
index d281a91..1174507 100644
--- a/luni/src/test/java/libcore/java/text/OldNumberFormatTest.java
+++ b/luni/src/test/java/libcore/java/text/OldNumberFormatTest.java
@@ -49,7 +49,8 @@
Locale arLocale = new Locale("ar", "AE");
format = (DecimalFormat) NumberFormat.getIntegerInstance(arLocale);
- assertEquals("#,##0", format.toPattern());
+ String variant = (format.toPattern().indexOf(';') > 0) ? "#,##0;-#,##0" : "#,##0";
+ assertEquals(variant, format.toPattern());
assertEquals("\u0666\u0667", format.format(67));
assertEquals("\u200f-\u0666", format.format(-6));
@@ -316,7 +317,7 @@
format = NumberFormat.getCurrencyInstance(atLocale);
// BEGIN android-changed: ICU uses non-breaking space after the euro sign; the RI uses ' '.
assertEquals("\u20ac\u00a035,76", format.format(35.76));
- assertEquals("\u20ac\u00a0123.456,79", format.format(123456.789));
+ assertEquals("\u20ac\u00a0123\u00a0456,79", format.format(123456.789));
assertEquals("\u20ac\u00a00,10", format.format(0.1));
assertEquals("\u20ac\u00a01,00", format.format(0.999));
try {
diff --git a/luni/src/test/java/libcore/java/text/SimpleDateFormatTest.java b/luni/src/test/java/libcore/java/text/SimpleDateFormatTest.java
index d228dc8..93b87a3 100644
--- a/luni/src/test/java/libcore/java/text/SimpleDateFormatTest.java
+++ b/luni/src/test/java/libcore/java/text/SimpleDateFormatTest.java
@@ -64,7 +64,7 @@
assertEquals("Thursday", formatDate(en, "EEEE"));
assertEquals("Thursday", formatDate(en, "cccc"));
assertEquals("\u0447\u0435\u0442\u0432\u0435\u0440\u0433", formatDate(ru, "EEEE"));
- assertEquals("\u0427\u0435\u0442\u0432\u0435\u0440\u0433", formatDate(ru, "cccc"));
+ assertEquals("\u0447\u0435\u0442\u0432\u0435\u0440\u0433", formatDate(ru, "cccc"));
assertEquals(Calendar.JUNE, parseDate(en, "yyyy-MMMM-dd", "1980-June-12").get(Calendar.MONTH));
assertEquals(Calendar.JUNE, parseDate(en, "yyyy-LLLL-dd", "1980-June-12").get(Calendar.MONTH));
diff --git a/luni/src/test/java/libcore/java/util/LocaleTest.java b/luni/src/test/java/libcore/java/util/LocaleTest.java
index 9005f25..aa5a39f 100644
--- a/luni/src/test/java/libcore/java/util/LocaleTest.java
+++ b/luni/src/test/java/libcore/java/util/LocaleTest.java
@@ -146,7 +146,7 @@
// he (new) -> iw (obsolete)
assertObsolete("he", "iw", "עברית");
// id (new) -> in (obsolete)
- assertObsolete("id", "in", "Bahasa Indonesia");
+ assertObsolete("id", "in", "Indonesia");
}
private static void assertObsolete(String newCode, String oldCode, String displayName) {
@@ -791,7 +791,7 @@
public void test_setLanguageTag_malformedTags() {
Locale l = fromLanguageTag("a", false);
- assertEquals("und", l.getLanguage());
+ assertEquals("", l.getLanguage());
assertEquals("", l.getCountry());
assertEquals("", l.getVariant());
assertEquals("", l.getScript());
@@ -994,8 +994,7 @@
// Empty builder.
Locale l = b.build();
- // TODO: Fix this. We should return "und" and not NULL.
- // assertEquals("und", l.toLanguageTag());
+ assertEquals("und", l.toLanguageTag());
// Only language.
b = new Locale.Builder();
@@ -1134,7 +1133,7 @@
// Irregular grandfathered locale.
Locale enochian = Locale.forLanguageTag("i-enochian");
- assertEquals("und", enochian.getLanguage());
+ assertEquals("", enochian.getLanguage());
assertEquals("i-enochian", enochian.getExtension(Locale.PRIVATE_USE_EXTENSION));
assertEquals("", enochian.getCountry());
assertEquals("", enochian.getScript());
@@ -1195,7 +1194,7 @@
System.setUnchangeableSystemProperty("user.locale", "dexx-Latn-DE");
l = Locale.getDefaultLocaleFromSystemProperties();
- assertEquals("und", l.getLanguage());
+ assertEquals("", l.getLanguage());
assertEquals("DE", l.getCountry());
} finally {
System.setUnchangeableSystemProperty("user.language", userLanguage);
diff --git a/luni/src/test/java/libcore/java/util/OldTimeZoneTest.java b/luni/src/test/java/libcore/java/util/OldTimeZoneTest.java
index 7a5fc4a..04396f4 100644
--- a/luni/src/test/java/libcore/java/util/OldTimeZoneTest.java
+++ b/luni/src/test/java/libcore/java/util/OldTimeZoneTest.java
@@ -17,7 +17,6 @@
package libcore.java.util;
-import dalvik.annotation.AndroidOnly;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
@@ -103,7 +102,6 @@
assertEquals("Pacific Standard Time", tz.getDisplayName(false, TimeZone.LONG));
}
- @AndroidOnly("fail on RI. See comment below")
public void test_getDisplayNameZILjava_util_Locale() {
TimeZone tz = TimeZone.getTimeZone("America/Los_Angeles");
assertEquals("Pacific Daylight Time", tz.getDisplayName(true, TimeZone.LONG, Locale.US));
diff --git a/luni/src/test/java/libcore/java/util/jar/StrictJarFileTest.java b/luni/src/test/java/libcore/java/util/jar/StrictJarFileTest.java
index 4955977..c8d4c99 100644
--- a/luni/src/test/java/libcore/java/util/jar/StrictJarFileTest.java
+++ b/luni/src/test/java/libcore/java/util/jar/StrictJarFileTest.java
@@ -50,6 +50,7 @@
Support_Resources.copyFile(resources, null, JAR_1);
String fileName = (new File(resources, JAR_1)).getCanonicalPath();
StrictJarFile jarFile = new StrictJarFile(fileName);
+ assertEquals(fileName, jarFile.getName());
jarFile.close();
}
@@ -174,6 +175,31 @@
assertThrowsOnInit("removed.jar");
}
+ public void testJarSigning_zeroedClass() throws IOException {
+ Support_Resources.copyFile(resources, null, "replace_with_zero.jar");
+ StrictJarFile jarFile = new StrictJarFile(
+ new File(resources, "replace_with_zero.jar").getAbsolutePath());
+
+ ZipEntry ze = jarFile.findEntry("Test.class");
+ try {
+ jarFile.getInputStream(ze).skip(Long.MAX_VALUE);
+ fail();
+ } catch (SecurityException expected) {
+ }
+ }
+
+ public void testJarWithNoManifest() throws Exception {
+ String jarFileName = "StrictJarFileTestNoManifest.jar";
+ Support_Resources.copyFile(resources, null, jarFileName);
+ StrictJarFile jarFile = new StrictJarFile(
+ new File(resources, jarFileName).getAbsolutePath());
+
+ assertNull(jarFile.getManifest());
+ ZipEntry entry = jarFile.findEntry("Test.class");
+ assertNotNull(entry);
+ assertNull(jarFile.getCertificateChains(entry));
+ }
+
private void assertThrowsOnInit(String name) throws Exception {
Support_Resources.copyFile(resources, null, name);
try {
diff --git a/luni/src/test/java/libcore/java/util/prefs/OldAbstractPreferencesTest.java b/luni/src/test/java/libcore/java/util/prefs/OldAbstractPreferencesTest.java
index 693f0c2..0f8ed99 100644
--- a/luni/src/test/java/libcore/java/util/prefs/OldAbstractPreferencesTest.java
+++ b/luni/src/test/java/libcore/java/util/prefs/OldAbstractPreferencesTest.java
@@ -37,6 +37,12 @@
static final String nodeName = "mock";
+ /** Timeout used for Object.wait when no action is expected. */
+ static final long NO_ACTION_EXPECTED_TIMEOUT = 200;
+
+ /** Timeout used for Object.wait when an action is expected. */
+ static final long ACTION_EXPECTED_TIMEOUT = 0; // Wait indefinitely
+
private PreferencesFactory defaultFactory;
AbstractPreferences pref;
@@ -885,7 +891,9 @@
}
public synchronized void assertChanged(boolean expected) throws InterruptedException {
- wait(100);
+ if (!flagChange) {
+ wait(expected ? ACTION_EXPECTED_TIMEOUT : NO_ACTION_EXPECTED_TIMEOUT);
+ }
assertEquals(expected, flagChange);
flagChange = false;
}
@@ -933,12 +941,16 @@
}
public synchronized void assertAdded(boolean expected) throws InterruptedException {
- wait(100);
+ if (!flagAdded) {
+ wait(expected ? ACTION_EXPECTED_TIMEOUT : NO_ACTION_EXPECTED_TIMEOUT);
+ }
assertEquals(expected, flagAdded);
}
public synchronized void assertRemoved(boolean expected) throws InterruptedException {
- wait(100);
+ if (!flagRemoved) {
+ wait(expected ? ACTION_EXPECTED_TIMEOUT : NO_ACTION_EXPECTED_TIMEOUT);
+ }
assertEquals(expected, flagRemoved);
}
}
diff --git a/luni/src/test/java/libcore/java/util/zip/Zip64FileTest.java b/luni/src/test/java/libcore/java/util/zip/Zip64FileTest.java
index 1b733f9..0986472 100644
--- a/luni/src/test/java/libcore/java/util/zip/Zip64FileTest.java
+++ b/luni/src/test/java/libcore/java/util/zip/Zip64FileTest.java
@@ -16,10 +16,13 @@
package libcore.java.util.zip;
+import libcore.io.Streams;
+
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
@@ -43,6 +46,16 @@
assertTrue(entries.hasMoreElements());
ZipEntry ze = entries.nextElement();
assertEquals(2, ze.getSize());
+ InputStream is = null;
+ try {
+ is = zf.getInputStream(ze);
+ byte[] uncompressed = Streams.readFully(is);
+ assertEquals(2, uncompressed.length);
+ } finally {
+ if (is != null) {
+ is.close();
+ }
+ }
} finally {
if (zf != null) {
zf.close();
diff --git a/luni/src/test/java/libcore/java/util/zip/ZipInputStreamTest.java b/luni/src/test/java/libcore/java/util/zip/ZipInputStreamTest.java
index 49990a3..1dc22ca 100644
--- a/luni/src/test/java/libcore/java/util/zip/ZipInputStreamTest.java
+++ b/luni/src/test/java/libcore/java/util/zip/ZipInputStreamTest.java
@@ -18,6 +18,9 @@
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.Charset;
@@ -29,6 +32,7 @@
import java.util.Random;
import java.util.Set;
import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
@@ -82,4 +86,33 @@
in.close();
}
}
+
+ // NOTE: Using octal because it's easiest to use "hexdump -b" to dump file contents.
+ private static final byte[] INCOMPLETE_ZIP = new byte[] {
+ 0120, 0113, 0003, 0004, 0024, 0000, 0010, 0010, 0010, 0000, 0002, 0035, (byte) 0330,
+ 0106, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0013,
+ 0000, 0000, 0000, 0146, 0157, 0157, 0057, 0142, 0141, 0162, 0056, 0160, 0156, 0147 };
+
+ // http://b//21846904
+ public void testReadOnIncompleteStream() throws Exception {
+ ZipInputStream zi = new ZipInputStream(new ByteArrayInputStream(INCOMPLETE_ZIP));
+ ZipEntry ze = zi.getNextEntry();
+
+ // read() and closeEntry() must throw IOExceptions to indicate that
+ // the stream is corrupt. The bug above reported that they would loop
+ // forever.
+ try {
+ zi.read(new byte[1024], 0, 1024);
+ fail();
+ } catch (IOException expected) {
+ }
+
+ try {
+ zi.closeEntry();
+ fail();
+ } catch (IOException expected) {
+ }
+
+ zi.close();
+ }
}
diff --git a/luni/src/test/java/libcore/javax/crypto/CipherTest.java b/luni/src/test/java/libcore/javax/crypto/CipherTest.java
index dd7d6e7..bad8a74 100644
--- a/luni/src/test/java/libcore/javax/crypto/CipherTest.java
+++ b/luni/src/test/java/libcore/javax/crypto/CipherTest.java
@@ -979,6 +979,76 @@
}
}
+ public void testCipher_getInstance_CorrectPriority_AlgorithmOnlyFirst() throws Exception {
+ Provider mockProviderOnlyAlgorithm = new MockProvider("MockProviderOnlyAlgorithm") {
+ public void setup() {
+ put("Cipher.FOO", MockCipherSpi.AllKeyTypes.class.getName());
+ }
+ };
+ Provider mockProviderFullTransformSpecified = new MockProvider("MockProviderFull") {
+ public void setup() {
+ put("Cipher.FOO/FOO/FOO", MockCipherSpi.AllKeyTypes.class.getName());
+ }
+ };
+
+ Security.addProvider(mockProviderOnlyAlgorithm);
+ Security.addProvider(mockProviderFullTransformSpecified);
+ try {
+ Cipher c = Cipher.getInstance("FOO/FOO/FOO");
+ assertEquals(mockProviderOnlyAlgorithm, c.getProvider());
+ } finally {
+ Security.removeProvider(mockProviderOnlyAlgorithm.getName());
+ Security.removeProvider(mockProviderFullTransformSpecified.getName());
+ }
+ }
+
+ public void testCipher_getInstance_CorrectPriority_FullTransformFirst() throws Exception {
+ Provider mockProviderOnlyAlgorithm = new MockProvider("MockProviderOnlyAlgorithm") {
+ public void setup() {
+ put("Cipher.FOO", MockCipherSpi.AllKeyTypes.class.getName());
+ }
+ };
+ Provider mockProviderFullTransformSpecified = new MockProvider("MockProviderFull") {
+ public void setup() {
+ put("Cipher.FOO/FOO/FOO", MockCipherSpi.AllKeyTypes.class.getName());
+ }
+ };
+
+ Security.addProvider(mockProviderFullTransformSpecified);
+ Security.addProvider(mockProviderOnlyAlgorithm);
+ try {
+ Cipher c = Cipher.getInstance("FOO/FOO/FOO");
+ assertEquals(mockProviderFullTransformSpecified, c.getProvider());
+ } finally {
+ Security.removeProvider(mockProviderOnlyAlgorithm.getName());
+ Security.removeProvider(mockProviderFullTransformSpecified.getName());
+ }
+ }
+
+ public void testCipher_getInstance_CorrectPriority_AliasedAlgorithmFirst() throws Exception {
+ Provider mockProviderAliasedAlgorithm = new MockProvider("MockProviderAliasedAlgorithm") {
+ public void setup() {
+ put("Cipher.BAR", MockCipherSpi.AllKeyTypes.class.getName());
+ put("Alg.Alias.Cipher.FOO", "BAR");
+ }
+ };
+ Provider mockProviderAlgorithmOnly = new MockProvider("MockProviderAlgorithmOnly") {
+ public void setup() {
+ put("Cipher.FOO", MockCipherSpi.AllKeyTypes.class.getName());
+ }
+ };
+
+ Security.addProvider(mockProviderAliasedAlgorithm);
+ Security.addProvider(mockProviderAlgorithmOnly);
+ try {
+ Cipher c = Cipher.getInstance("FOO/FOO/FOO");
+ assertEquals(mockProviderAliasedAlgorithm, c.getProvider());
+ } finally {
+ Security.removeProvider(mockProviderAliasedAlgorithm.getName());
+ Security.removeProvider(mockProviderAlgorithmOnly.getName());
+ }
+ }
+
public void testCipher_getInstance_WrongType_Failure() throws Exception {
Provider mockProviderInvalid = new MockProvider("MockProviderInvalid") {
public void setup() {
@@ -1268,6 +1338,57 @@
c.doFinal(new byte[1]).length);
}
+ if (isPBE(algorithm)) {
+ if (algorithm.endsWith("RC4")) {
+ assertNull(cipherID + " getIV()", c.getIV());
+ } else {
+ assertNotNull(cipherID + " getIV()", c.getIV());
+ }
+ } else if (encryptSpec instanceof IvParameterSpec) {
+ assertEquals(cipherID + " getIV()",
+ Arrays.toString(((IvParameterSpec) encryptSpec).getIV()),
+ Arrays.toString(c.getIV()));
+ } else if (encryptSpec instanceof GCMParameterSpec) {
+ assertNotNull(c.getIV());
+ assertEquals(cipherID + " getIV()",
+ Arrays.toString(((GCMParameterSpec) encryptSpec).getIV()),
+ Arrays.toString(c.getIV()));
+ } else {
+ try {
+ assertNull(cipherID + " getIV()", c.getIV());
+ } catch (NullPointerException e) {
+ // Bouncycastle apparently has a bug here with AESWRAP, et al.
+ if (!("BC".equals(providerName) && isOnlyWrappingAlgorithm(algorithm))) {
+ throw e;
+ }
+ }
+ }
+
+ AlgorithmParameters encParams = c.getParameters();
+ if (encryptSpec == null) {
+ assertNull(cipherID + " getParameters()", encParams);
+ } else if (encryptSpec instanceof GCMParameterSpec) {
+ GCMParameterSpec gcmDecryptSpec = (GCMParameterSpec) encParams
+ .getParameterSpec(GCMParameterSpec.class);
+ assertEquals(cipherID + " getIV()",
+ Arrays.toString(((GCMParameterSpec) encryptSpec).getIV()),
+ Arrays.toString(gcmDecryptSpec.getIV()));
+ assertEquals(cipherID + " getTLen()", ((GCMParameterSpec) encryptSpec).getTLen(),
+ gcmDecryptSpec.getTLen());
+ } else if (encryptSpec instanceof IvParameterSpec) {
+ IvParameterSpec ivDecryptSpec = (IvParameterSpec) encParams
+ .getParameterSpec(IvParameterSpec.class);
+ assertEquals(cipherID + " getIV()",
+ Arrays.toString(((IvParameterSpec) encryptSpec).getIV()),
+ Arrays.toString(ivDecryptSpec.getIV()));
+ } else if (encryptSpec instanceof PBEParameterSpec) {
+ // Bouncycastle seems to be undecided about whether it returns this
+ // or not
+ if (!"BC".equals(providerName)) {
+ assertNotNull(cipherID + " getParameters()", encParams);
+ }
+ }
+
final AlgorithmParameterSpec decryptSpec = getDecryptAlgorithmParameterSpec(encryptSpec, c);
int decryptMode = getDecryptMode(algorithm);
@@ -1305,18 +1426,27 @@
}
}
- AlgorithmParameters params = c.getParameters();
+ AlgorithmParameters decParams = c.getParameters();
if (decryptSpec == null) {
- assertNull(cipherID + " getParameters()", params);
+ assertNull(cipherID + " getParameters()", decParams);
+ } else if (decryptSpec instanceof GCMParameterSpec) {
+ GCMParameterSpec gcmDecryptSpec = (GCMParameterSpec) decParams
+ .getParameterSpec(GCMParameterSpec.class);
+ assertEquals(cipherID + " getIV()",
+ Arrays.toString(((GCMParameterSpec) decryptSpec).getIV()),
+ Arrays.toString(gcmDecryptSpec.getIV()));
+ assertEquals(cipherID + " getTLen()", ((GCMParameterSpec) decryptSpec).getTLen(),
+ gcmDecryptSpec.getTLen());
} else if (decryptSpec instanceof IvParameterSpec) {
- IvParameterSpec ivDecryptSpec = (IvParameterSpec) params.getParameterSpec(IvParameterSpec.class);
+ IvParameterSpec ivDecryptSpec = (IvParameterSpec) decParams
+ .getParameterSpec(IvParameterSpec.class);
assertEquals(cipherID + " getIV()",
Arrays.toString(((IvParameterSpec) decryptSpec).getIV()),
Arrays.toString(ivDecryptSpec.getIV()));
} else if (decryptSpec instanceof PBEParameterSpec) {
- // Bouncycastle seems to be schizophrenic about whther it returns this or not
+ // Bouncycastle seems to be undecided about whether it returns this or not
if (!"BC".equals(providerName)) {
- assertNotNull(cipherID + " getParameters()", params);
+ assertNotNull(cipherID + " getParameters()", decParams);
}
}
@@ -2587,10 +2717,6 @@
(byte) 0x19, (byte) 0x35,
};
- private static final byte[][] AES_KEYS = new byte[][] {
- AES_128_KEY, AES_192_KEY, AES_256_KEY,
- };
-
private static final String[] AES_MODES = new String[] {
"AES/ECB",
"AES/CBC",
@@ -2706,7 +2832,42 @@
/*
* Test key generation:
* openssl rand -hex 16
- * echo 'ceaa31952dfd3d0f5af4b2042ba06094' | sed 's/\(..\)/(byte) 0x\1, /g'
+ * echo '787bdeecf05556eac5d3d865e435f6d9' | sed 's/\(..\)/(byte) 0x\1, /g'
+ */
+ private static final byte[] AES_192_CTR_NoPadding_TestVector_1_IV = new byte[] {
+ (byte) 0x78, (byte) 0x7b, (byte) 0xde, (byte) 0xec, (byte) 0xf0, (byte) 0x55,
+ (byte) 0x56, (byte) 0xea, (byte) 0xc5, (byte) 0xd3, (byte) 0xd8, (byte) 0x65,
+ (byte) 0xe4, (byte) 0x35, (byte) 0xf6, (byte) 0xd9,
+
+ };
+
+ /*
+ * Test vector generation:
+ * echo -n 'AES-192 is a silly option' | recode ../x1 | sed 's/0x/(byte) 0x/g'
+ */
+ private static final byte[] AES_192_CTR_NoPadding_TestVector_1_Plaintext = new byte[] {
+ (byte) 0x41, (byte) 0x45, (byte) 0x53, (byte) 0x2D, (byte) 0x31, (byte) 0x39,
+ (byte) 0x32, (byte) 0x20, (byte) 0x69, (byte) 0x73, (byte) 0x20, (byte) 0x61,
+ (byte) 0x20, (byte) 0x73, (byte) 0x69, (byte) 0x6C, (byte) 0x6C, (byte) 0x79,
+ (byte) 0x20, (byte) 0x6F, (byte) 0x70, (byte) 0x74, (byte) 0x69, (byte) 0x6F,
+ (byte) 0x6E
+ };
+
+ /*
+ * Test vector generation:
+ * echo -n 'AES-192 is a silly option' | openssl enc -aes-192-ctr -K 5a7a3d7e40b64ed996f7afa15f97fd595e27db6af428e342 -iv 787bdeecf05556eac5d3d865e435f6d9 | recode ../x1 | sed 's/0x/(byte) 0x/g'
+ */
+ private static final byte[] AES_192_CTR_NoPadding_TestVector_1_Ciphertext = new byte[] {
+ (byte) 0xE9, (byte) 0xC6, (byte) 0xA0, (byte) 0x40, (byte) 0xC2, (byte) 0x6A,
+ (byte) 0xB5, (byte) 0x20, (byte) 0xFE, (byte) 0x9E, (byte) 0x65, (byte) 0xB7,
+ (byte) 0x7C, (byte) 0x5E, (byte) 0xFE, (byte) 0x1F, (byte) 0xF1, (byte) 0x6F,
+ (byte) 0x20, (byte) 0xAC, (byte) 0x37, (byte) 0xE9, (byte) 0x75, (byte) 0xE3,
+ (byte) 0x52
+ };
+
+ /*
+ * Test key generation: openssl rand -hex 16 echo
+ * 'ceaa31952dfd3d0f5af4b2042ba06094' | sed 's/\(..\)/(byte) 0x\1, /g'
*/
private static final byte[] AES_256_CBC_PKCS5Padding_TestVector_1_IV = new byte[] {
(byte) 0xce, (byte) 0xaa, (byte) 0x31, (byte) 0x95, (byte) 0x2d, (byte) 0xfd,
@@ -2815,6 +2976,12 @@
AES_128_GCM_TestVector_1_Plaintext,
AES_128_GCM_TestVector_1_Encrypted));
if (IS_UNLIMITED) {
+ CIPHER_TEST_PARAMS.add(new CipherTestParam("AES/CTR/NoPadding", AES_192_KEY,
+ AES_192_CTR_NoPadding_TestVector_1_IV,
+ null,
+ AES_192_CTR_NoPadding_TestVector_1_Plaintext,
+ AES_192_CTR_NoPadding_TestVector_1_Plaintext,
+ AES_192_CTR_NoPadding_TestVector_1_Ciphertext));
CIPHER_TEST_PARAMS.add(new CipherTestParam("AES/CBC/PKCS5Padding", AES_256_KEY,
AES_256_CBC_PKCS5Padding_TestVector_1_IV,
null,
@@ -2905,7 +3072,8 @@
// empty decrypt
{
if (!isAEAD(p.transformation)
- && (StandardNames.IS_RI || provider.equals("AndroidOpenSSL"))) {
+ && (StandardNames.IS_RI || provider.equals("AndroidOpenSSL") ||
+ (provider.equals("BC") && p.transformation.contains("/CTR/")))) {
assertEquals(Arrays.toString(new byte[0]),
Arrays.toString(c.doFinal()));
@@ -2915,7 +3083,7 @@
} else if (provider.equals("BC") || isAEAD(p.transformation)) {
try {
c.doFinal();
- fail();
+ fail(p.transformation + " " + provider);
} catch (IllegalBlockSizeException maybe) {
if (isAEAD(p.transformation)) {
throw maybe;
@@ -2928,7 +3096,7 @@
try {
c.update(new byte[0]);
c.doFinal();
- fail();
+ fail(p.transformation + " " + provider);
} catch (IllegalBlockSizeException maybe) {
if (isAEAD(p.transformation)) {
throw maybe;
diff --git a/luni/src/test/java/libcore/javax/crypto/spec/AlgorithmParameterGeneratorTestDH.java b/luni/src/test/java/libcore/javax/crypto/spec/AlgorithmParameterGeneratorTestDH.java
index e64fb9e..b3ff4ad7 100644
--- a/luni/src/test/java/libcore/javax/crypto/spec/AlgorithmParameterGeneratorTestDH.java
+++ b/luni/src/test/java/libcore/javax/crypto/spec/AlgorithmParameterGeneratorTestDH.java
@@ -15,7 +15,6 @@
*/
package libcore.javax.crypto.spec;
-import dalvik.annotation.BrokenTest;
import tests.security.AlgorithmParameterGeneratorTest;
import tests.security.AlgorithmParameterKeyAgreementHelper;
@@ -26,9 +25,7 @@
super("DH", new AlgorithmParameterKeyAgreementHelper("DH"));
}
- // Broken Test: Suffers from DH slowness, disabling for now
public void testAlgorithmParameterGenerator() {
super.testAlgorithmParameterGenerator();
}
-
}
diff --git a/luni/src/test/java/libcore/javax/net/ssl/SSLSessionTest.java b/luni/src/test/java/libcore/javax/net/ssl/SSLSessionTest.java
index a434d94..bc2b626 100644
--- a/luni/src/test/java/libcore/javax/net/ssl/SSLSessionTest.java
+++ b/luni/src/test/java/libcore/javax/net/ssl/SSLSessionTest.java
@@ -99,7 +99,7 @@
assertTrue("s.server.getLastAccessedTime()=" + s.server.getLastAccessedTime() + " " +
"s.client.getLastAccessedTime()=" + s.client.getLastAccessedTime(),
Math.abs(s.server.getLastAccessedTime()
- - s.client.getLastAccessedTime()) < 1 * 1000);
+ - s.client.getLastAccessedTime()) <= 1 * 1000);
assertTrue(s.server.getLastAccessedTime() >=
s.server.getCreationTime());
assertTrue(s.client.getLastAccessedTime() >=
diff --git a/luni/src/test/java/libcore/javax/net/ssl/SSLSocketTest.java b/luni/src/test/java/libcore/javax/net/ssl/SSLSocketTest.java
index bf2d0f8..8fd6addc 100644
--- a/luni/src/test/java/libcore/javax/net/ssl/SSLSocketTest.java
+++ b/luni/src/test/java/libcore/javax/net/ssl/SSLSocketTest.java
@@ -80,8 +80,8 @@
import libcore.tlswire.record.TlsProtocols;
import libcore.tlswire.record.TlsRecord;
import libcore.tlswire.util.TlsProtocolVersion;
+import tests.net.DelegatingSSLSocketFactory;
import tests.util.ForEachRunner;
-import tests.util.DelegatingSSLSocketFactory;
import tests.util.Pair;
public class SSLSocketTest extends TestCase {
@@ -1431,6 +1431,7 @@
* socket.
*/
public void test_SSLSocket_interrupt_read() throws Exception {
+ final int readingTimeoutMillis = 5000;
TestSSLContext c = TestSSLContext.create();
final Socket underlying = new Socket(c.host, c.port);
final SSLSocket wrapping = (SSLSocket)
@@ -1453,10 +1454,12 @@
try {
wrapping.startHandshake();
assertFalse(StandardNames.IS_RI);
- wrapping.setSoTimeout(5 * 1000);
+ wrapping.setSoTimeout(readingTimeoutMillis);
assertEquals(-1, wrapping.getInputStream().read());
} catch (Exception e) {
- assertTrue(StandardNames.IS_RI);
+ if (!StandardNames.IS_RI) {
+ throw e;
+ }
}
return null;
}
@@ -1478,6 +1481,10 @@
StackTraceElement[] elements = threads[0].getStackTrace();
for (StackTraceElement element : elements) {
if ("read".equals(element.getMethodName())) {
+ // The client might be executing "read" but still not have reached the
+ // point in which it's blocked reading. This is causing flakiness
+ // (b/24367646). Delaying for a fraction of the timeout.
+ Thread.sleep(1000);
clientInRead = true;
break;
}
@@ -1515,7 +1522,7 @@
SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
sslSocketFactory = new DelegatingSSLSocketFactory(sslSocketFactory) {
@Override
- protected void configureSocket(SSLSocket socket) {
+ protected SSLSocket configureSocket(SSLSocket socket) {
// Enable SNI extension on the socket (this is typically enabled by default)
// to increase the size of ClientHello.
try {
@@ -1538,6 +1545,7 @@
} catch (Exception e) {
throw new RuntimeException("Failed to enable Session Tickets", e);
}
+ return socket;
}
};
diff --git a/luni/src/test/java/libcore/xml/PullParserTest.java b/luni/src/test/java/libcore/xml/PullParserTest.java
index c59b358..a52db1d 100644
--- a/luni/src/test/java/libcore/xml/PullParserTest.java
+++ b/luni/src/test/java/libcore/xml/PullParserTest.java
@@ -766,6 +766,30 @@
assertRelaxedParseFailure("<!DOCTYPE foo [<!ELEMENT foo EMPTY"); // EOF in read('>')
}
+ public void testWhitespacesAfterDOCTYPE() throws Exception {
+ XmlPullParser parser = newPullParser();
+ String test = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
+ "<!DOCTYPE root [\n" +
+ "<!ENTITY dummy \"dummy\">\n" +
+ "]> \n" +
+ "<root></root>";
+ assertParseSuccess(test, parser);
+ }
+
+ // Regression test for https://code.google.com/p/android/issues/detail?id=182605
+ public void testSetInputParserReuse() throws Exception {
+ XmlPullParser parser = newPullParser();
+ String test = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
+ "<!DOCTYPE root [\n" +
+ "<!ENTITY dummy \"dummy\">\n" +
+ "]> \n" +
+ "<root></root>";
+ assertParseSuccess(test, parser);
+
+ // A second call to parser.setInput() on a parser should result in a fully-reset parser.
+ assertParseSuccess(test, parser);
+ }
+
private void assertParseFailure(String xml) throws Exception {
XmlPullParser parser = newPullParser();
assertParseFailure(xml, parser);
@@ -787,6 +811,12 @@
}
}
+ private void assertParseSuccess(String xml, XmlPullParser parser) throws Exception {
+ parser.setInput(new StringReader(xml));
+ while (parser.next() != XmlPullParser.END_DOCUMENT) {
+ }
+ }
+
/**
* Creates a new pull parser.
*/
diff --git a/luni/src/test/java/org/apache/harmony/crypto/tests/javax/crypto/func/CipherPBETest.java b/luni/src/test/java/org/apache/harmony/crypto/tests/javax/crypto/func/CipherPBETest.java
index f21374f..da070b6 100644
--- a/luni/src/test/java/org/apache/harmony/crypto/tests/javax/crypto/func/CipherPBETest.java
+++ b/luni/src/test/java/org/apache/harmony/crypto/tests/javax/crypto/func/CipherPBETest.java
@@ -15,8 +15,6 @@
*/
package org.apache.harmony.crypto.tests.javax.crypto.func;
-import dalvik.annotation.AndroidOnly;
-
import junit.framework.TestCase;
public class CipherPBETest extends TestCase {
@@ -32,7 +30,6 @@
.getTotalFailuresNumber());
}
- @AndroidOnly("Not supported by RI (maybe with a different name)")
public void test_PBEWithSHAand3KeyTripleDES() throws Exception {
CipherPBEThread PBEWITHSHAAND3KEYTRIPLEDESCBC = new CipherPBEThread(
"PBEWITHSHAAND3-KEYTRIPLEDES-CBC", new int[] {112, 168},
diff --git a/luni/src/test/java/org/apache/harmony/crypto/tests/javax/crypto/func/KeyAgreementFunctionalTest.java b/luni/src/test/java/org/apache/harmony/crypto/tests/javax/crypto/func/KeyAgreementFunctionalTest.java
index acb06ae..95f4191 100644
--- a/luni/src/test/java/org/apache/harmony/crypto/tests/javax/crypto/func/KeyAgreementFunctionalTest.java
+++ b/luni/src/test/java/org/apache/harmony/crypto/tests/javax/crypto/func/KeyAgreementFunctionalTest.java
@@ -15,12 +15,9 @@
*/
package org.apache.harmony.crypto.tests.javax.crypto.func;
-import dalvik.annotation.BrokenTest;
-
import junit.framework.TestCase;
public class KeyAgreementFunctionalTest extends TestCase {
- @BrokenTest("Too slow - disabling for now")
public void test_KeyAgreement() throws Exception {
String[] algArray = {"DES", "DESede"};
diff --git a/luni/src/test/java/org/apache/harmony/crypto/tests/javax/crypto/interfaces/DHPublicKeyTest.java b/luni/src/test/java/org/apache/harmony/crypto/tests/javax/crypto/interfaces/DHPublicKeyTest.java
index 471d670..bc7b338 100644
--- a/luni/src/test/java/org/apache/harmony/crypto/tests/javax/crypto/interfaces/DHPublicKeyTest.java
+++ b/luni/src/test/java/org/apache/harmony/crypto/tests/javax/crypto/interfaces/DHPublicKeyTest.java
@@ -22,8 +22,6 @@
package org.apache.harmony.crypto.tests.javax.crypto.interfaces;
-import dalvik.annotation.BrokenTest;
-
import junit.framework.TestCase;
import java.math.BigInteger;
@@ -51,7 +49,6 @@
-6628103563352519193L);
}
- @BrokenTest("Too slow - disabling for now")
public void test_getParams() throws Exception {
KeyPairGenerator kg = KeyPairGenerator.getInstance("DH");
kg.initialize(1024);
diff --git a/luni/src/test/java/org/apache/harmony/security/tests/java/security/Identity2Test.java b/luni/src/test/java/org/apache/harmony/security/tests/java/security/Identity2Test.java
index 3625dee..1362fc6 100644
--- a/luni/src/test/java/org/apache/harmony/security/tests/java/security/Identity2Test.java
+++ b/luni/src/test/java/org/apache/harmony/security/tests/java/security/Identity2Test.java
@@ -17,7 +17,6 @@
package org.apache.harmony.security.tests.java.security;
-import dalvik.annotation.AndroidOnly;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.OutputStream;
@@ -259,8 +258,8 @@
/**
* java.security.Identity#removeCertificate(java.security.Certificate)
*/
- @AndroidOnly("Spec says: Removing unknown certificates throw an exception. "
- + "The RI ignores unknown certificates.")
+ // AndroidOnly("Spec says: Removing unknown certificates throw an exception. "
+ // + "The RI ignores unknown certificates.")
public void test_removeCertificateLjava_security_Certificate() throws Exception {
IdentitySubclass sub = new IdentitySubclass("test",
new IdentityScopeSubclass());
diff --git a/luni/src/test/java/tests/security/cert/X509CRLSelector2Test.java b/luni/src/test/java/tests/security/cert/X509CRLSelector2Test.java
index f2e814d..1e4dce9 100644
--- a/luni/src/test/java/tests/security/cert/X509CRLSelector2Test.java
+++ b/luni/src/test/java/tests/security/cert/X509CRLSelector2Test.java
@@ -1,7 +1,5 @@
package tests.security.cert;
-import dalvik.annotation.AndroidOnly;
-
import junit.framework.TestCase;
import org.apache.harmony.security.asn1.ASN1Integer;
@@ -237,8 +235,6 @@
* criteria, if specified minCRL value matches the selector, and if CRL with
* inappropriate crlNumber value does not match the selector.
*/
- @AndroidOnly("Uses specific class: " +
- "org.apache.harmony.security.asn1.ASN1OctetString.")
public void testSetMinCRLNumberLjava_math_BigInteger() {
X509CRLSelector selector = new X509CRLSelector();
BigInteger minCRL = new BigInteger("10000");
@@ -261,8 +257,6 @@
* criteria, if specified maxCRL value matches the selector, and if CRL with
* inappropriate crlNumber value does not match the selector.
*/
- @AndroidOnly("Uses specific class: " +
- "org.apache.harmony.security.asn1.ASN1OctetString.")
public void testSetMaxCRLNumberLjava_math_BigInteger() {
X509CRLSelector selector = new X509CRLSelector();
BigInteger maxCRL = new BigInteger("10000");
@@ -459,9 +453,6 @@
* crl which matche to the initial selector should match to the clone and
* the change of clone should not cause the change of initial selector.
*/
- @AndroidOnly("Uses specific classes: " +
- "org.apache.harmony.security.asn1.ASN1OctetString, " +
- "org.apache.harmony.security.asn1.ASN1Integer.")
public void testClone() {
X509CRLSelector selector = new X509CRLSelector();
X500Principal iss1 = new X500Principal("O=First Org.");
diff --git a/luni/src/test/java/tests/security/cert/X509CRLTest.java b/luni/src/test/java/tests/security/cert/X509CRLTest.java
index 23ff138..633add4 100644
--- a/luni/src/test/java/tests/security/cert/X509CRLTest.java
+++ b/luni/src/test/java/tests/security/cert/X509CRLTest.java
@@ -22,8 +22,6 @@
package tests.security.cert;
-import dalvik.annotation.AndroidOnly;
-
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
@@ -270,8 +268,8 @@
* Check if the default implementation throws NullPointerException
* on null input data.
*/
- @AndroidOnly("Test filed on RI: getRevokedCertificate throws " +
- "RuntimeException.")
+ // AndroidOnly("Test filed on RI: getRevokedCertificate throws " +
+ // "RuntimeException.")
public void testGetRevokedCertificate() {
TBTCRL crl = new TBTCRL() {
@Override
diff --git a/luni/src/test/java/tests/targets/security/MessageDigestTestMD2.java b/luni/src/test/java/tests/targets/security/MessageDigestTestMD2.java
index 6811bc0..4483da4 100644
--- a/luni/src/test/java/tests/targets/security/MessageDigestTestMD2.java
+++ b/luni/src/test/java/tests/targets/security/MessageDigestTestMD2.java
@@ -15,7 +15,6 @@
*/
package tests.targets.security;
-import dalvik.annotation.AndroidOnly;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.Provider;
@@ -24,7 +23,6 @@
public class MessageDigestTestMD2 extends TestCase {
- @AndroidOnly("Android doesn't include MD2 message digest algorithm")
public void testMessageDigest1() throws Exception{
try {
MessageDigest digest = MessageDigest.getInstance("MD2");
@@ -42,7 +40,6 @@
}
}
- @AndroidOnly("Android allows usage of MD2 in third party providers")
public void testMessageDigest2() throws Exception{
Provider provider = new MyProvider();
diff --git a/luni/src/test/java/tests/targets/security/SignatureTestMD2withRSA.java b/luni/src/test/java/tests/targets/security/SignatureTestMD2withRSA.java
index c9126ef..90ac2fa 100644
--- a/luni/src/test/java/tests/targets/security/SignatureTestMD2withRSA.java
+++ b/luni/src/test/java/tests/targets/security/SignatureTestMD2withRSA.java
@@ -15,7 +15,6 @@
*/
package tests.targets.security;
-import dalvik.annotation.AndroidOnly;
import java.security.InvalidKeyException;
import java.security.InvalidParameterException;
import java.security.NoSuchAlgorithmException;
@@ -29,7 +28,6 @@
public class SignatureTestMD2withRSA extends TestCase {
- @AndroidOnly("Android doesn't include MD2withRSA signature algorithm")
public void testSignature() {
// MD2 must not be part of android.
@@ -91,7 +89,6 @@
}
}
- @AndroidOnly("Android allows usage of MD2withRSA in third party providers")
public void testSignature2() throws Exception{
Provider provider = new MyProvider();
diff --git a/luni/src/test/java/tests/targets/security/cert/CertificateTest.java b/luni/src/test/java/tests/targets/security/cert/CertificateTest.java
index dd06249..8044f4f 100644
--- a/luni/src/test/java/tests/targets/security/cert/CertificateTest.java
+++ b/luni/src/test/java/tests/targets/security/cert/CertificateTest.java
@@ -15,7 +15,6 @@
*/
package tests.targets.security.cert;
-import dalvik.annotation.AndroidOnly;
import java.io.ByteArrayInputStream;
import java.security.KeyStore;
import java.security.NoSuchAlgorithmException;
@@ -602,7 +601,6 @@
}
}
- @AndroidOnly("MD2 is not supported by Android")
public void testVerifyMD2() throws Exception {
Provider[] providers = Security.getProviders("CertificateFactory.X509");
for (Provider provider : providers) {
diff --git a/luni/src/test/native/libcore_java_io_FileTest.cpp b/luni/src/test/native/libcore_java_io_FileTest.cpp
new file mode 100644
index 0000000..1793a8a
--- /dev/null
+++ b/luni/src/test/native/libcore_java_io_FileTest.cpp
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2015 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.
+ */
+
+#include <sys/stat.h>
+#include <string>
+
+#include <jni.h>
+#include "JNIHelp.h"
+#include "ScopedUtfChars.h"
+
+extern "C" void Java_libcore_java_io_FileTest_nativeTestFilesWithSurrogatePairs(
+ JNIEnv* env, jobject /* clazz */, jstring baseDir) {
+ ScopedUtfChars baseDirUtf(env, baseDir);
+
+ std::string base(baseDirUtf.c_str());
+ std::string subDir = base + "/dir_\xF0\x93\x80\x80";
+ std::string subFile = subDir + "/file_\xF0\x93\x80\x80";
+
+ struct stat sb;
+ int ret = stat(subDir.c_str(), &sb);
+ if (ret == -1) {
+ jniThrowIOException(env, errno);
+ }
+ if (!S_ISDIR(sb.st_mode)) {
+ jniThrowException(env, "java/lang/IllegalStateException", "expected dir");
+ }
+
+ ret = stat(subFile.c_str(), &sb);
+ if (ret == -1) {
+ jniThrowIOException(env, errno);
+ }
+
+ if (!S_ISREG(sb.st_mode)) {
+ jniThrowException(env, "java/lang/IllegalStateException", "expected file");
+ }
+}
diff --git a/luni/src/test/resources/math_important_numbers.csv b/luni/src/test/resources/math_important_numbers.csv
index 3c71a4e..89a7525 100644
--- a/luni/src/test/resources/math_important_numbers.csv
+++ b/luni/src/test/resources/math_important_numbers.csv
@@ -630,6 +630,20 @@
ceil,-0x1.0p0,-0x1.0p0,-1.0
ceil,-0x0.0p0,-0x1.0p-1,-0.5
ceil,0x1.0p0,0x1.0p-1,0.5
+ceil,0x0.0p2047,0x0.0p2047,infty
+ceil,-0x0.0p2047,-0x0.0p2047,-infty
+ceil,0x1.0p2047,0x1.0p2047,NaN
+ceil,0x1.4c7eb53cccp39,0x1.4c7eb53ccab5fp39,7.140274745333553E11
+ceil,0x1.c8d8ep21,0x1.c8d8da6003191p21,3742491.296880909
+ceil,-0x1.5deeef088p35,-0x1.5deeef088909fp35,-4.696725715628246E10
+ceil,-0x1.bde332607a678p50,-0x1.bde332607a67bp50,-1.9610339084804148E15
+ceil,-0x0.0p0,-0x1.5162455ecd513p-117,-7.9318566885477E-36
+ceil,0x1.0p0,0x1.d71300e409ec1p-317,6.891928421440976E-96
+ceil,0x1.a12e8p17,0x1.a12e4b0df7367p17,213596.58636369856
+ceil,-0x1.5607af3b1eb1dp829,-0x1.5607af3b1eb1dp829,-4.7828929737254625E249
+ceil,0x1.9632259cc7e5ep51,0x1.9632259cc7e5ep51,3.572936802189103E15
+ceil,0x1.5a39cp20,0x1.5a39b156b4c84p20,1418139.083668501
+ceil,0x1.8c37dp21,0x1.8c37c99d61a3bp21,3245817.2018463886
ceil,-0x1.8p2,-0x1.921fb54442d18p2,-6.283185307179586
ceil,-0x1.8p2,-0x1.815e630c155e1p2,-6.021385919380436
ceil,-0x1.4p2,-0x1.709d10d3e7eabp2,-5.759586531581287
@@ -687,6 +701,20 @@
floor,-0x1.0p0,-0x1.0p0,-1.0
floor,-0x1.0p0,-0x1.0p-1,-0.5
floor,0x0.0p0,0x1.0p-1,0.5
+floor,0x0.0p2047,0x0.0p2047,infty
+floor,-0x0.0p2047,-0x0.0p2047,-infty
+floor,0x1.0p2047,0x1.0p2047,NaN
+floor,0x1.4c7eb53ccap39,0x1.4c7eb53ccab5fp39,7.140274745333553E11
+floor,0x1.c8d8d8p21,0x1.c8d8da6003191p21,3742491.296880909
+floor,-0x1.5deeef08ap35,-0x1.5deeef088909fp35,-4.696725715628246E10
+floor,-0x1.bde332607a67cp50,-0x1.bde332607a67bp50,-1.9610339084804148E15
+floor,0x0.0p0,0x1.ba884e7f0bc51p-184,7.049948629370372E-56
+floor,-0x1.0p0,-0x1.bc0b3abd1b587p-51,-7.702933170334643E-16
+floor,-0x1.0p1,-0x1.ff1fa889b752ep0,-1.99657681810579
+floor,-0x1.255b340ab85a3p784,-0x1.255b340ab85a3p784,-1.1659287182288336E236
+floor,0x1.d0783f3901842p51,0x1.d0783f3901842p51,4.085518816513057E15
+floor,-0x1.6e715p20,-0x1.6e71470cef763p20,-1500948.440658056
+floor,-0x1.5485cp24,-0x1.5485bfebe1e42p24,-2.2316479921415575E7
floor,-0x1.cp2,-0x1.921fb54442d18p2,-6.283185307179586
floor,-0x1.cp2,-0x1.815e630c155e1p2,-6.021385919380436
floor,-0x1.8p2,-0x1.709d10d3e7eabp2,-5.759586531581287
diff --git a/non_openjdk_java_files.mk b/non_openjdk_java_files.mk
index 450040a..4a66555 100644
--- a/non_openjdk_java_files.mk
+++ b/non_openjdk_java_files.mk
@@ -25,23 +25,16 @@
luni/src/main/java/android/util/MutableInt.java \
luni/src/main/java/android/util/MutableLong.java \
luni/src/main/java/android/util/MutableShort.java \
- dalvik/src/main/java/dalvik/annotation/AndroidOnly.java \
dalvik/src/main/java/dalvik/annotation/AnnotationDefault.java \
- dalvik/src/main/java/dalvik/annotation/BrokenTest.java \
dalvik/src/main/java/dalvik/annotation/EnclosingClass.java \
dalvik/src/main/java/dalvik/annotation/EnclosingMethod.java \
dalvik/src/main/java/dalvik/annotation/InnerClass.java \
dalvik/src/main/java/dalvik/annotation/KnownFailure.java \
dalvik/src/main/java/dalvik/annotation/MemberClasses.java \
- dalvik/src/main/java/dalvik/annotation/SideEffect.java \
dalvik/src/main/java/dalvik/annotation/Signature.java \
- dalvik/src/main/java/dalvik/annotation/TestLevel.java \
dalvik/src/main/java/dalvik/annotation/TestTarget.java \
dalvik/src/main/java/dalvik/annotation/TestTargetClass.java \
- dalvik/src/main/java/dalvik/annotation/TestTargetNew.java \
- dalvik/src/main/java/dalvik/annotation/TestTargets.java \
dalvik/src/main/java/dalvik/annotation/Throws.java \
- dalvik/src/main/java/dalvik/annotation/ToBeFixed.java \
dalvik/src/main/java/dalvik/bytecode/OpcodeInfo.java \
dalvik/src/main/java/dalvik/bytecode/Opcodes.java \
dalvik/src/main/java/dalvik/system/AllocationLimitError.java \
@@ -81,7 +74,6 @@
luni/src/main/java/java/math/NativeBN.java \
luni/src/main/java/java/math/Primality.java \
luni/src/main/java/java/math/RoundingMode.java \
- luni/src/main/java/java/net/InetUnixAddress.java \
luni/src/main/java/java/net/DefaultFileNameMap.java \
luni/src/main/java/java/nio/NIOAccess.java \
luni/src/main/java/java/nio/NioUtils.java \
@@ -362,25 +354,23 @@
dalvik/src/main/java/dalvik/system/profiler/PortableThreadSampler.java \
dalvik/src/main/java/dalvik/system/profiler/SamplingProfiler.java \
dalvik/src/main/java/dalvik/system/profiler/ThreadSampler.java \
- luni/src/main/java/libcore/icu/AlphabeticIndex.java \
+ luni/src/main/java/android/system/UnixSocketAddress.java \
luni/src/main/java/libcore/icu/CollationElementIteratorICU.java \
luni/src/main/java/libcore/icu/CollationKeyICU.java \
- luni/src/main/java/libcore/icu/DateUtilsBridge.java \
luni/src/main/java/libcore/icu/DateIntervalFormat.java \
+ luni/src/main/java/libcore/icu/DateTimeFormat.java \
+ luni/src/main/java/libcore/icu/DateUtilsBridge.java \
luni/src/main/java/libcore/icu/ICU.java \
luni/src/main/java/libcore/icu/LocaleData.java \
luni/src/main/java/libcore/icu/NativeCollation.java \
luni/src/main/java/libcore/icu/NativeConverter.java \
- luni/src/main/java/libcore/icu/NativeIDN.java \
- luni/src/main/java/libcore/icu/NativeNormalizer.java \
- luni/src/main/java/libcore/icu/NativePluralRules.java \
- luni/src/main/java/libcore/icu/RuleBasedCollatorICU.java \
- luni/src/main/java/libcore/icu/DateTimeFormat.java \
+ luni/src/main/java/libcore/icu/NativeDecimalFormat.java \
luni/src/main/java/libcore/icu/RelativeDateTimeFormatter.java \
+ luni/src/main/java/libcore/icu/RuleBasedCollatorICU.java \
luni/src/main/java/libcore/icu/TimeZoneNames.java \
- luni/src/main/java/libcore/icu/Transliterator.java \
luni/src/main/java/libcore/internal/StringPool.java \
luni/src/main/java/libcore/io/AsynchronousCloseMonitor.java \
+ luni/src/main/java/libcore/io/ClassPathURLStreamHandler.java \
luni/src/main/java/libcore/io/Base64.java \
luni/src/main/java/libcore/io/BlockGuardOs.java \
luni/src/main/java/libcore/io/BufferIterator.java \
@@ -466,6 +456,7 @@
libart/src/main/java/sun/misc/Unsafe.java \
libart/src/main/java/java/lang/CaseMapper.java \
libart/src/main/java/java/lang/StringFactory.java \
+ libart/src/main/java/java/lang/LambdaProxy.java \
xml/src/main/java/org/kxml2/io/KXmlParser.java \
xml/src/main/java/org/kxml2/io/KXmlSerializer.java \
$(non_openjdk_javadoc_files)
diff --git a/ojluni/src/main/java/java/lang/Class.java b/ojluni/src/main/java/java/lang/Class.java
index 1349ea8..f0b14ba 100755
--- a/ojluni/src/main/java/java/lang/Class.java
+++ b/ojluni/src/main/java/java/lang/Class.java
@@ -54,6 +54,7 @@
import java.util.HashMap;
import sun.misc.Unsafe;
import sun.reflect.CallerSensitive;
+import java.lang.annotation.Inherited;
import java.lang.annotation.Annotation;
import java.lang.reflect.Proxy;
import sun.reflect.annotation.*;
@@ -140,9 +141,6 @@
*/
private transient DexCache dexCache;
- /** Short-cut to dexCache.strings */
- private transient String[] dexCacheStrings;
-
/**
* The interface table (iftable_) contains pairs of a interface class and an array of the
* interface methods. There is one pair per interface supported by this class. That
@@ -165,8 +163,11 @@
/** The superclass, or null if this is java.lang.Object, an interface or primitive type. */
private transient Class<? super T> superClass;
- /** If class verify fails, we must return same error on subsequent tries. */
- private transient Class<?> verifyErrorClass;
+ /**
+ * If class verify fails, we must return same error on subsequent tries. We may store either
+ * the class of the error, or an actual instance of Throwable here.
+ */
+ private transient Object verifyError;
/**
* Virtual method table (vtable), for use by "invoke-virtual". The vtable from the superclass
@@ -176,6 +177,9 @@
*/
private transient Object vtable;
+ /** Short-cut to dexCache.strings */
+ private transient long dexCacheStrings;
+
/** access flags; low 16 bits are defined by VM spec */
private transient int accessFlags;
@@ -198,6 +202,9 @@
/** Virtual methods defined in this class; invoked through vtable. */
private transient long virtualMethods;
+ /** Class flags to help the GC with object scanning. */
+ private transient int classFlags;
+
/**
* Total size of the Class instance; used when allocating storage on GC heap.
* See also {@link Class#objectSize}.
@@ -223,24 +230,12 @@
*/
private transient volatile int dexTypeIndex;
- /** Number of direct methods. */
- private transient int numDirectMethods;
-
- /** Number of instance fields. */
- private transient int numInstanceFields;
-
/** Number of instance fields that are object references. */
private transient int numReferenceInstanceFields;
/** Number of static fields that are object references. */
private transient int numReferenceStaticFields;
- /** Number of static fields. */
- private transient int numStaticFields;
-
- /** Number of virtual methods. */
- private transient int numVirtualMethods;
-
/**
* Total object size; used when allocating storage on GC heap. For interfaces and abstract
* classes this will be zero. See also {@link Class#classSize}.
@@ -396,7 +391,6 @@
if (loader == null) {
loader = BootClassLoader.getInstance();
}
-
Class<?> result;
try {
result = classForName(name, initialize, loader);
@@ -461,7 +455,6 @@
* </ul>
*
*/
- @CallerSensitive
public native T newInstance() throws InstantiationException, IllegalAccessException;
/**
@@ -556,7 +549,6 @@
}
}
-
/**
* Determines if the specified {@code Class} object represents an
* interface type.
@@ -568,7 +560,6 @@
return (accessFlags & Modifier.INTERFACE) != 0;
}
-
/**
* Determines if this {@code Class} object represents an array class.
*
@@ -580,7 +571,6 @@
return getComponentType() != null;
}
-
/**
* Determines if the specified {@code Class} object represents a
* primitive type.
@@ -735,7 +725,6 @@
* @see SecurityManager#checkPermission
* @see java.lang.RuntimePermission
*/
- @CallerSensitive
public ClassLoader getClassLoader() {
if (isPrimitive()) {
return null;
@@ -743,8 +732,6 @@
return (classLoader == null) ? BootClassLoader.getInstance() : classLoader;
}
-
-
/**
* Returns an array of {@code TypeVariable} objects that represent the
* type variables declared by the generic declaration represented by this
@@ -770,7 +757,6 @@
return parser.formalTypeParameters;
}
-
/**
* Returns the {@code Class} representing the superclass of the entity
* (class, interface, primitive type or void) represented by this
@@ -792,7 +778,6 @@
}
}
-
/**
* Returns the {@code Type} representing the direct superclass of
* the entity (class, interface, primitive type or void) represented by
@@ -1066,7 +1051,6 @@
return modifiers & JAVA_FLAGS_MASK;
}
-
/**
* Gets the signers of this class.
*
@@ -1079,6 +1063,7 @@
return null;
}
+ private native Method getEnclosingMethodNative();
/**
* If this {@code Class} object represents a local or anonymous
@@ -1095,16 +1080,13 @@
* that class is a local or anonymous class; otherwise {@code null}.
* @since 1.5
*/
- @CallerSensitive
public Method getEnclosingMethod() {
if (classNameImpliesTopLevel()) {
return null;
}
- AccessibleObject result = AnnotationAccess.getEnclosingMethodOrConstructor(this);
- return result instanceof Method ? (Method) result : null;
+ return getEnclosingMethodNative();
}
-
/**
* If this {@code Class} object represents a local or anonymous
* class within a constructor, returns a {@link
@@ -1119,20 +1101,19 @@
* that class is a local or anonymous class; otherwise {@code null}.
* @since 1.5
*/
- @CallerSensitive
public Constructor<?> getEnclosingConstructor() {
if (classNameImpliesTopLevel()) {
return null;
}
- AccessibleObject result = AnnotationAccess.getEnclosingMethodOrConstructor(this);
- return result instanceof Constructor ? (Constructor<?>) result : null;
+ return getEnclosingConstructorNative();
}
+ private native Constructor<?> getEnclosingConstructorNative();
+
private boolean classNameImpliesTopLevel() {
return !getName().contains("$");
}
-
/**
* If the class or interface represented by this {@code Class} object
* is a member of another class, returns the {@code Class} object
@@ -1144,13 +1125,7 @@
* @return the declaring class for this class
* @since JDK1.1
*/
- public Class<?> getDeclaringClass() {
- if (AnnotationAccess.isAnonymousClass(this)) {
- return null;
- }
- return AnnotationAccess.getEnclosingClass(this);
- }
-
+ public native Class<?> getDeclaringClass();
/**
* Returns the immediately enclosing class of the underlying
@@ -1159,18 +1134,7 @@
* @return the immediately enclosing class of the underlying class
* @since 1.5
*/
- @CallerSensitive
- public Class<?> getEnclosingClass() {
- Class<?> declaringClass = getDeclaringClass();
- if (declaringClass != null) {
- return declaringClass;
- }
- AccessibleObject member = AnnotationAccess.getEnclosingMethodOrConstructor(this);
- if (member != null) {
- return ((Member) member).getDeclaringClass();
- }
- return AnnotationAccess.getEnclosingClass(this);
- }
+ public native Class<?> getEnclosingClass();
/**
* Returns the simple name of the underlying class as given in the
@@ -1263,9 +1227,7 @@
* @return {@code true} if and only if this class is an anonymous class.
* @since 1.5
*/
- public boolean isAnonymousClass() {
- return "".equals(getSimpleName());
- }
+ public native boolean isAnonymousClass();
/**
* Returns {@code true} if and only if the underlying class
@@ -1514,7 +1476,6 @@
}
}
-
/**
* Returns an array containing {@code Constructor} objects reflecting
* all the public constructors of the class represented by this
@@ -1560,7 +1521,6 @@
return getDeclaredConstructorsInternal(true);
}
-
/**
* Returns a {@code Field} object that reflects the specified public
* member field of the class or interface represented by this
@@ -1610,43 +1570,25 @@
*
* @since JDK1.1
*/
- @CallerSensitive
- public Field getField(String name)
- throws NoSuchFieldException, SecurityException {
+ public Field getField(String name) throws NoSuchFieldException {
if (name == null) {
throw new NullPointerException("name == null");
}
- Field field = getPublicFieldRecursive(name);
- if (field == null) {
+ Field result = getPublicFieldRecursive(name);
+ if (result == null) {
throw new NoSuchFieldException(name);
}
- field.getType(); // Throw NoClassDefFoundError if type cannot be resolved.
- return field;
+ return result;
}
- private Field getPublicFieldRecursive(String name) {
- // search superclasses
- for (Class<?> c = this; c != null; c = c.superClass) {
- Field result = c.getDeclaredFieldInternal(name);
- if (result != null && (result.getModifiers() & Modifier.PUBLIC) != 0) {
- return result;
- }
- }
-
- // search iftable which has a flattened and uniqued list of interfaces
- if (ifTable != null) {
- for (int i = 0; i < ifTable.length; i += 2) {
- Class<?> ifc = (Class<?>) ifTable[i];
- Field result = ifc.getPublicFieldRecursive(name);
- if (result != null && (result.getModifiers() & Modifier.PUBLIC) != 0) {
- return result;
- }
- }
- }
-
- return null;
- }
-
+ /**
+ * The native implementation of the {@code getField} method.
+ *
+ * @throws NullPointerException
+ * if name is null.
+ * @see #getField(String)
+ */
+ private native Field getPublicFieldRecursive(String name);
/**
* Returns a {@code Method} object that reflects the specified public
@@ -1766,13 +1708,11 @@
*
* @since JDK1.1
*/
- @CallerSensitive
public Constructor<T> getConstructor(Class<?>... parameterTypes)
throws NoSuchMethodException, SecurityException {
return getConstructor0(parameterTypes, Member.PUBLIC);
}
-
/**
* Returns an array of {@code Class} objects reflecting all the
* classes and interfaces declared as members of the class represented by
@@ -1806,11 +1746,7 @@
*
* @since JDK1.1
*/
- @CallerSensitive
- public Class<?>[] getDeclaredClasses() throws SecurityException {
- return AnnotationAccess.getMemberClasses(this);
- }
-
+ public native Class<?>[] getDeclaredClasses();
/**
* Returns an array of {@code Field} objects reflecting all the fields
@@ -1898,7 +1834,6 @@
*
* @since JDK1.1
*/
- @CallerSensitive
public Method[] getDeclaredMethods() throws SecurityException {
Method[] result = getDeclaredMethodsUnchecked(false);
for (Method m : result) {
@@ -1919,7 +1854,6 @@
*/
public native Method[] getDeclaredMethodsUnchecked(boolean publicOnly);
-
/**
* Returns an array of {@code Constructor} objects reflecting all the
* constructors declared by the class represented by this
@@ -1956,12 +1890,10 @@
*
* @since JDK1.1
*/
- @CallerSensitive
public Constructor<?>[] getDeclaredConstructors() throws SecurityException {
return getDeclaredConstructorsInternal(false);
}
-
/**
* Returns the constructor with the given parameters if it is defined by this class;
* {@code null} otherwise. This may return a non-public member.
@@ -1970,7 +1902,6 @@
*/
private native Constructor<?>[] getDeclaredConstructorsInternal(boolean publicOnly);
-
/**
* Returns a {@code Field} object that reflects the specified declared
* field of the class or interface represented by this {@code Class}
@@ -2005,7 +1936,6 @@
*
* @since JDK1.1
*/
- @CallerSensitive
public native Field getDeclaredField(String name) throws NoSuchFieldException;
/**
@@ -2019,7 +1949,6 @@
*/
private native Field[] getPublicDeclaredFields();
-
/**
* Returns a {@code Method} object that reflects the specified
* declared method of the class or interface represented by this
@@ -2089,7 +2018,6 @@
}
return result;
}
-
private Method getPublicMethodRecursive(String name, Class<?>[] parameterTypes) {
// search superclasses
for (Class<?> c = this; c != null; c = c.getSuperclass()) {
@@ -2244,8 +2172,6 @@
return cl.getResource(name);
}
-
-
/**
* Returns the {@code ProtectionDomain} of this class. If there is a
* security manager installed, this method first calls the security
@@ -2321,8 +2247,6 @@
*/
private native Constructor<T> getDeclaredConstructorInternal(Class<?>[] args);
-
-
/**
* Returns the assertion status that would be assigned to this
* class if it were to be initialized at the time this method is invoked.
@@ -2352,6 +2276,13 @@
}
/**
+ * Returns the simple name of a member or local class, or {@code null} otherwise.
+ */
+ private native String getInnerClassName();
+
+ private native int getInnerClassFlags(int defaultValue);
+
+ /**
* Returns true if and only if this class was declared as an enum in the
* source code.
*
@@ -2439,9 +2370,6 @@
if (clazz.isAssignableFrom(this))
return (Class<? extends U>) this;
else
- /* ----- BEGIN android -----
- // Add more context
- throw new ClassCastException(this.toString());*/
throw new ClassCastException(this.toString() +
" cannot be cast to " + clazz.getName());
}
@@ -2454,36 +2382,99 @@
if (annotationClass == null)
throw new NullPointerException();
- return AnnotationAccess.getAnnotation(this, annotationClass);
+ A annotation = getDeclaredAnnotation(annotationClass);
+ if (annotation != null) {
+ return annotation;
+ }
+
+ if (annotationClass.isDeclaredAnnotationPresent(Inherited.class)) {
+ for (Class<?> sup = getSuperclass(); sup != null; sup = sup.getSuperclass()) {
+ annotation = sup.getDeclaredAnnotation(annotationClass);
+ if (annotation != null) {
+ return annotation;
+ }
+ }
+ }
+
+ return null;
}
- /**
- * @throws NullPointerException {@inheritDoc}
- * @since 1.5
- */
- public boolean isAnnotationPresent(
- Class<? extends Annotation> annotationClass) {
- if (annotationClass == null)
- throw new NullPointerException();
+ @Override public boolean isAnnotationPresent(Class<? extends Annotation> annotationType) {
+ if (annotationType == null) {
+ throw new NullPointerException("annotationType == null");
+ }
- return getAnnotation(annotationClass) != null;
+ if (isDeclaredAnnotationPresent(annotationType)) {
+ return true;
+ }
+
+ if (annotationType.isDeclaredAnnotationPresent(Inherited.class)) {
+ for (Class<?> sup = getSuperclass(); sup != null; sup = sup.getSuperclass()) {
+ if (sup.isDeclaredAnnotationPresent(annotationType)) {
+ return true;
+ }
+ }
+ }
+
+ return false;
}
/**
- * @since 1.5
+ * Returns an array containing all the annotations of this class. If there are no annotations
+ * then an empty array is returned.
+ *
+ * @see #getDeclaredAnnotations()
*/
- public Annotation[] getAnnotations() {
- return AnnotationAccess.getAnnotations(this);
+ @Override public Annotation[] getAnnotations() {
+ /*
+ * We need to get the annotations declared on this class, plus the
+ * annotations from superclasses that have the "@Inherited" annotation
+ * set. We create a temporary map to use while we accumulate the
+ * annotations and convert it to an array at the end.
+ *
+ * It's possible to have duplicates when annotations are inherited.
+ * We use a Map to filter those out.
+ *
+ * HashMap might be overkill here.
+ */
+ HashMap<Class<?>, Annotation> map = new HashMap<Class<?>, Annotation>();
+ for (Annotation declaredAnnotation : getDeclaredAnnotations()) {
+ map.put(declaredAnnotation.annotationType(), declaredAnnotation);
+ }
+ for (Class<?> sup = getSuperclass(); sup != null; sup = sup.getSuperclass()) {
+ for (Annotation declaredAnnotation : sup.getDeclaredAnnotations()) {
+ Class<? extends Annotation> clazz = declaredAnnotation.annotationType();
+ if (!map.containsKey(clazz) && clazz.isDeclaredAnnotationPresent(Inherited.class)) {
+ map.put(clazz, declaredAnnotation);
+ }
+ }
+ }
+
+ /* Convert annotation values from HashMap to array. */
+ Collection<Annotation> coll = map.values();
+ return coll.toArray(new Annotation[coll.size()]);
}
/**
- * @since 1.5
+ * Returns the annotations that are directly defined on the class
+ * represented by this {@code Class}. Annotations that are inherited are not
+ * included in the result. If there are no annotations at all, an empty
+ * array is returned.
+ *
+ * @see #getAnnotations()
*/
- public Annotation[] getDeclaredAnnotations() {
- List<Annotation> result = AnnotationAccess.getDeclaredAnnotations(this);
- return result.toArray(new Annotation[result.size()]);
- }
+ @Override public native Annotation[] getDeclaredAnnotations();
+
+ /**
+ * Returns the annotation if it exists.
+ */
+ private native <A extends Annotation> A getDeclaredAnnotation(Class<A> annotationClass);
+
+ /**
+ * Returns true if the annotation exists.
+ */
+ private native boolean isDeclaredAnnotationPresent(Class<? extends Annotation> annotationClass);
// Annotation types cache their internal (AnnotationType) form
@@ -2517,17 +2508,16 @@
}
return dexCache.getDex();
}
-
/**
* Returns a string from the dex cache, computing the string from the dex file if necessary.
*
* @hide
*/
public String getDexCacheString(Dex dex, int dexStringIndex) {
- String s = dexCacheStrings[dexStringIndex];
+ String s = dexCache.getResolvedString(dexStringIndex);
if (s == null) {
s = dex.strings().get(dexStringIndex).intern();
- dexCacheStrings[dexStringIndex] = s;
+ dexCache.setResolvedString(dexStringIndex, s);
}
return s;
}
@@ -2539,17 +2529,15 @@
* @hide
*/
public Class<?> getDexCacheType(Dex dex, int dexTypeIndex) {
- Class<?>[] dexCacheResolvedTypes = dexCache.resolvedTypes;
- Class<?> resolvedType = dexCacheResolvedTypes[dexTypeIndex];
+ Class<?> resolvedType = dexCache.getResolvedType(dexTypeIndex);
if (resolvedType == null) {
int descriptorIndex = dex.typeIds().get(dexTypeIndex);
String descriptor = getDexCacheString(dex, descriptorIndex);
resolvedType = InternalNames.getClass(getClassLoader(), descriptor);
- dexCacheResolvedTypes[dexTypeIndex] = resolvedType;
+ dexCache.setResolvedType(dexTypeIndex, resolvedType);
}
return resolvedType;
}
-
/**
* The annotation directory offset of this class in its own Dex, or 0 if it
* is unknown.
@@ -2569,7 +2557,6 @@
}
return dex.annotationDirectoryOffsetFromClassDefIndex(classDefIndex);
}
-
/**
* The type index of this class in its own Dex, or -1 if it is unknown. If a class is referenced
* by multiple Dex files, it will have a different type index in each. Dex files support 65534
@@ -2598,7 +2585,6 @@
}
return typeIndex;
}
-
private boolean canAccess(Class<?> c) {
if(Modifier.isPublic(c.accessFlags)) {
return true;
@@ -2637,7 +2623,6 @@
return packageName1.equals(packageName2);
}
}
-
/**
* @hide
*/
@@ -2663,7 +2648,6 @@
public int getDexClassDefIndex() {
return (dexClassDefIndex == 65535) ? -1 : dexClassDefIndex;
}
-
private static class Caches {
/**
* Cache to avoid frequent recalculation of generic interfaces, which is generally uncommon.
diff --git a/ojluni/src/main/java/java/lang/ClassLoader.java b/ojluni/src/main/java/java/lang/ClassLoader.java
index e295b1f..752bf0f 100755
--- a/ojluni/src/main/java/java/lang/ClassLoader.java
+++ b/ojluni/src/main/java/java/lang/ClassLoader.java
@@ -227,6 +227,30 @@
// @GuardedBy("itself")
private final HashMap<String, Package> packages = new HashMap<>();
+ /**
+ * Pointer to the allocator used by the runtime to allocate metadata such
+ * as ArtFields and ArtMethods.
+ */
+ private transient long allocator;
+
+ /**
+ * Pointer to the class table, only used from within the runtime.
+ */
+ private transient long classTable;
+
+ /**
+ * Pointer to a lambda box class table, only used from within the runtime.
+ *
+ * Lambda proxies are nominally made from within the runtime, and we want to avoid calling back
+ * into the managed code except as the slow path.
+ *
+ * (unlike a {@link java.lang.reflect.Proxy} which is nominally made from the managed code)
+ *
+ * Making a proxy for the same list of interfaces repeatedly will use the cache and
+ * avoid having to generate a class (the fast path).
+ */
+ private transient long lambdaProxyCache;
+
private static Void checkCreateClassLoader() {
return null;
}
diff --git a/ojluni/src/main/java/java/lang/Math.java b/ojluni/src/main/java/java/lang/Math.java
index 6e69694..e855325 100755
--- a/ojluni/src/main/java/java/lang/Math.java
+++ b/ojluni/src/main/java/java/lang/Math.java
@@ -161,7 +161,7 @@
* @param a the value whose arc sine is to be returned.
* @return the arc sine of the argument.
*/
- public static native double asin(double d);
+ public static native double asin(double a);
/**
* Returns the arc cosine of a value; the returned angle is in the
@@ -175,7 +175,7 @@
* @param a the value whose arc cosine is to be returned.
* @return the arc cosine of the argument.
*/
- public static native double acos(double d);
+ public static native double acos(double a);
/**
* Returns the arc tangent of a value; the returned angle is in the
@@ -190,7 +190,7 @@
* @param a the value whose arc tangent is to be returned.
* @return the arc tangent of the argument.
*/
- public static native double atan(double d);
+ public static native double atan(double a);
/**
* Converts an angle measured in degrees to an approximately
@@ -586,7 +586,7 @@
* @param b the exponent.
* @return the value {@code a}<sup>{@code b}</sup>.
*/
- public static native double pow(double x, double y);
+ public static native double pow(double a, double b);
/**
* Returns the closest {@code int} to the argument, with ties
diff --git a/ojluni/src/main/java/java/lang/NoClassDefFoundError.java b/ojluni/src/main/java/java/lang/NoClassDefFoundError.java
index 5620e7f..879ca0b 100755
--- a/ojluni/src/main/java/java/lang/NoClassDefFoundError.java
+++ b/ojluni/src/main/java/java/lang/NoClassDefFoundError.java
@@ -58,4 +58,19 @@
public NoClassDefFoundError(String s) {
super(s);
}
+
+
+ /**
+ * Constructs a new {@code NoClassDefFoundError} with the current stack
+ * trace, the specified detail message and the specified cause. Used
+ * internally by the Android runtime.
+ *
+ * @param detailMessage
+ * the detail message for this error.
+ * @param throwable
+ * the cause of this error.
+ */
+ private NoClassDefFoundError(String detailMessage, Throwable throwable) {
+ super(detailMessage, throwable);
+ }
}
diff --git a/ojluni/src/main/java/java/lang/reflect/Constructor.java b/ojluni/src/main/java/java/lang/reflect/Constructor.java
index c78f306..1af4e92 100755
--- a/ojluni/src/main/java/java/lang/reflect/Constructor.java
+++ b/ojluni/src/main/java/java/lang/reflect/Constructor.java
@@ -30,6 +30,7 @@
import java.util.List;
import libcore.reflect.AnnotationAccess;
import libcore.reflect.Types;
+
import java.lang.annotation.Annotation;
/**
@@ -52,8 +53,7 @@
* @author Kenneth Russell
* @author Nakul Saraiya
*/
-public final
- class Constructor<T> extends AbstractMethod implements
+public final class Constructor<T> extends AbstractMethod implements
GenericDeclaration,
Member {
private static final Comparator<Method> ORDER_BY_SIGNATURE = null; // Unused; must match Method.
@@ -181,10 +181,7 @@
* @return the exception types declared as being thrown by the
* constructor this object represents
*/
- public Class<?>[] getExceptionTypes() {
- return AnnotationAccess.getExceptions(this);
- }
-
+ public native Class<?>[] getExceptionTypes();
/**
* Returns an array of {@code Type} objects that represent the
@@ -489,16 +486,22 @@
if (annotationType == null) {
throw new NullPointerException("annotationType == null");
}
- return AnnotationAccess.getDeclaredAnnotation(this, annotationType);
+ return getAnnotationNative(annotationType);
}
+ private native <A extends Annotation> A getAnnotationNative(Class<A> annotationType);
/**
* @since 1.5
*/
- public Annotation[] getDeclaredAnnotations() {
- List<Annotation> result = AnnotationAccess.getDeclaredAnnotations(this);
- return result.toArray(new Annotation[result.size()]);
+ @Override public native Annotation[] getDeclaredAnnotations();
+
+ @Override public boolean isAnnotationPresent(Class<? extends Annotation> annotationType) {
+ if (annotationType == null) {
+ throw new NullPointerException("annotationType == null");
+ }
+ return isAnnotationPresentNative(annotationType);
}
+ private native boolean isAnnotationPresentNative(Class<? extends Annotation> annotationType);
/**
* Returns an array of arrays that represent the annotations on the formal
@@ -517,7 +520,11 @@
* @since 1.5
*/
public Annotation[][] getParameterAnnotations() {
- return AnnotationAccess.getParameterAnnotations(
- declaringClassOfOverriddenMethod, dexMethodIndex);
+ Annotation[][] parameterAnnotations = getParameterAnnotationsNative();
+ if (parameterAnnotations == null) {
+ parameterAnnotations = new Annotation[getParameterTypes().length][0];
+ }
+ return parameterAnnotations;
}
+ private native Annotation[][] getParameterAnnotationsNative();
}
diff --git a/ojluni/src/main/java/java/lang/reflect/Field.java b/ojluni/src/main/java/java/lang/reflect/Field.java
index 2f47a70..30091b2 100755
--- a/ojluni/src/main/java/java/lang/reflect/Field.java
+++ b/ojluni/src/main/java/java/lang/reflect/Field.java
@@ -63,9 +63,6 @@
private int offset;
private Class<?> type;
- /**
- * @hide
- */
private Field() {
}
@@ -165,8 +162,7 @@
* @since 1.5
*/
public Type getGenericType() {
- String signatureAttribute = AnnotationAccess.getSignature(this);
- Class<?> declaringClass = getDeclaringClass();
+ String signatureAttribute = getSignatureAttribute();
ClassLoader cl = declaringClass.getClassLoader();
GenericSignatureParser parser = new GenericSignatureParser(cl);
parser.parseForField(declaringClass, signatureAttribute);
@@ -177,6 +173,19 @@
return genericType;
}
+ private String getSignatureAttribute() {
+ String[] annotation = getSignatureAnnotation();
+ if (annotation == null) {
+ return null;
+ }
+ StringBuilder result = new StringBuilder();
+ for (String s : annotation) {
+ result.append(s);
+ }
+ return result.toString();
+ }
+ private native String[] getSignatureAnnotation();
+
/**
* Compares this {@code Field} against the specified object. Returns
@@ -333,7 +342,6 @@
public native boolean getBoolean(Object object)
throws IllegalAccessException, IllegalArgumentException;
-
/**
* Gets the value of a static or instance {@code byte} field.
*
@@ -805,7 +813,6 @@
*/
public native void setDouble(Object object, double value)
throws IllegalAccessException, IllegalArgumentException;
- // ----- END android -----
/*
* Utility routine to paper over array type names
@@ -838,16 +845,22 @@
if (annotationType == null) {
throw new NullPointerException("annotationType == null");
}
- return AnnotationAccess.getDeclaredAnnotation(this, annotationType);
+ return getAnnotationNative(annotationType);
}
+ private native <A extends Annotation> A getAnnotationNative(Class<A> annotationType);
+
+ @Override public boolean isAnnotationPresent(Class<? extends Annotation> annotationType) {
+ if (annotationType == null) {
+ throw new NullPointerException("annotationType == null");
+ }
+ return isAnnotationPresentNative(annotationType);
+ }
+ private native boolean isAnnotationPresentNative(Class<? extends Annotation> annotationType);
/**
* @since 1.5
*/
- @Override public Annotation[] getDeclaredAnnotations() {
- List<Annotation> result = AnnotationAccess.getDeclaredAnnotations(this);
- return result.toArray(new Annotation[result.size()]);
- }
+ @Override public native Annotation[] getDeclaredAnnotations();
/**
* Returns the index of this field's ID in its dex file.
diff --git a/ojluni/src/main/java/java/lang/reflect/Method.java b/ojluni/src/main/java/java/lang/reflect/Method.java
index af1b29d..555a970 100755
--- a/ojluni/src/main/java/java/lang/reflect/Method.java
+++ b/ojluni/src/main/java/java/lang/reflect/Method.java
@@ -57,7 +57,6 @@
public final
class Method extends AbstractMethod implements GenericDeclaration,
Member {
-
/**
* Orders methods by their name, parameters and return type.
*
@@ -89,7 +88,6 @@
private Method() {
}
-
/**
* Returns the {@code Class} object representing the class or interface
* that declares the method represented by this {@code Method} object.
@@ -190,10 +188,19 @@
* @return the parameter types for the method this object
* represents
*/
+ @Override
public Class<?>[] getParameterTypes() {
return super.getParameterTypes();
}
+ @Override public boolean isAnnotationPresent(Class<? extends Annotation> annotationType) {
+ if (annotationType == null) {
+ throw new NullPointerException("annotationType == null");
+ }
+ return isAnnotationPresentNative(annotationType);
+ }
+ private native boolean isAnnotationPresentNative(Class<? extends Annotation> annotationType);
+
/**
* Returns an array of {@code Type} objects that represent the formal
* parameter types, in declaration order, of the method represented by
@@ -225,7 +232,6 @@
return Types.getTypeArray(getMethodOrConstructorGenericInfo().genericParameterTypes, false);
}
-
/**
* Returns an array of {@code Class} objects that represent
* the types of the exceptions declared to be thrown
@@ -236,16 +242,7 @@
* @return the exception types declared as being thrown by the
* method this object represents
*/
- public Class<?>[] getExceptionTypes() {
- if (getDeclaringClass().isProxy()) {
- return getExceptionTypesNative();
- } else {
- // TODO: use dex cache to speed looking up class
- return AnnotationAccess.getExceptions(this);
- }
- }
-
- private native Class<?>[] getExceptionTypesNative();
+ public native Class<?>[] getExceptionTypes();
/**
* Returns an array of {@code Type} objects that represent the
@@ -558,23 +555,21 @@
}
/**
+ * @since 1.5
+ */
+ @Override public native Annotation[] getDeclaredAnnotations();
+
+ /**
* @throws NullPointerException {@inheritDoc}
* @since 1.5
*/
- public <T extends Annotation> T getAnnotation(Class<T> annotationType) {
+ @Override public <A extends Annotation> A getAnnotation(Class<A> annotationType) {
if (annotationType == null) {
throw new NullPointerException("annotationType == null");
}
- return AnnotationAccess.getDeclaredAnnotation(this, annotationType);
+ return getAnnotationNative(annotationType);
}
-
- /**
- * @since 1.5
- */
- public Annotation[] getDeclaredAnnotations() {
- List<Annotation> result = AnnotationAccess.getDeclaredAnnotations(this);
- return result.toArray(new Annotation[result.size()]);
- }
+ private native <A extends Annotation> A getAnnotationNative(Class<A> annotationType);
/**
* Returns the default value for the annotation member represented by
@@ -590,9 +585,7 @@
* default class value.
* @since 1.5
*/
- public Object getDefaultValue() {
- return AnnotationAccess.getDefaultValue(this);
- }
+ public native Object getDefaultValue();
/**
* Returns an array of arrays that represent the annotations on the formal
@@ -611,9 +604,13 @@
* @since 1.5
*/
public Annotation[][] getParameterAnnotations() {
- return AnnotationAccess.getParameterAnnotations(
- declaringClassOfOverriddenMethod, dexMethodIndex);
+ Annotation[][] parameterAnnotations = getParameterAnnotationsNative();
+ if (parameterAnnotations == null) {
+ parameterAnnotations = new Annotation[getParameterTypes().length][0];
+ }
+ return parameterAnnotations;
}
+ private native Annotation[][] getParameterAnnotationsNative();
/**
* Returns the constructor's signature in non-printable form. This is called
diff --git a/ojluni/src/main/java/java/lang/reflect/Proxy.java b/ojluni/src/main/java/java/lang/reflect/Proxy.java
index 6843cf2..382bf77 100755
--- a/ojluni/src/main/java/java/lang/reflect/Proxy.java
+++ b/ojluni/src/main/java/java/lang/reflect/Proxy.java
@@ -624,7 +624,7 @@
String proxyName = proxyPkg + proxyClassNamePrefix + num;
proxyClass = generateProxy(proxyName, interfaces, loader, methodsArray,
- exceptionsArray);
+ exceptionsArray, false /* isLambaProxy */);
}
// add to set of all generated proxy classes, for isProxyClass
proxyClasses.put(proxyClass, null);
@@ -872,7 +872,7 @@
private static native Class<?> generateProxy(String name, Class<?>[] interfaces,
ClassLoader loader, Method[] methods,
- Class<?>[][] exceptions);
+ Class<?>[][] exceptions, boolean isLambdaProxy);
// Temporary methods.
private static void reserved1() {};
diff --git a/ojluni/src/main/java/java/text/DecimalFormatSymbols.java b/ojluni/src/main/java/java/text/DecimalFormatSymbols.java
index a159893..6fa240b 100755
--- a/ojluni/src/main/java/java/text/DecimalFormatSymbols.java
+++ b/ojluni/src/main/java/java/text/DecimalFormatSymbols.java
@@ -221,6 +221,13 @@
}
/**
+ * Gets the string used for percent sign. Different for Arabic, etc.
+ */
+ public String getPercentString() {
+ return String.valueOf(percent);
+ }
+
+ /**
* Sets the character used for percent sign. Different for Arabic, etc.
*/
public void setPercent(char percent) {
@@ -298,6 +305,16 @@
return minusSign;
}
+
+ /**
+ * Gets the string used to represent minus sign. If no explicit
+ * negative format is specified, one is formed by prefixing
+ * minusSign to the positive format.
+ */
+ public String getMinusSignString() {
+ return String.valueOf(minusSign);
+ }
+
/**
* Sets the character used to represent minus sign. If no explicit
* negative format is specified, one is formed by prefixing
diff --git a/ojluni/src/main/java/java/util/Hashtable.java b/ojluni/src/main/java/java/util/Hashtable.java
index 47e119f..2a664c4 100755
--- a/ojluni/src/main/java/java/util/Hashtable.java
+++ b/ojluni/src/main/java/java/util/Hashtable.java
@@ -129,7 +129,7 @@
/**
* The hash table data.
*/
- private transient Entry<K,V>[] table;
+ private transient HashtableEntry<K,V>[] table;
/**
* The total number of entries in the hash table.
@@ -258,7 +258,7 @@
if (initialCapacity==0)
initialCapacity = 1;
this.loadFactor = loadFactor;
- table = new Entry[initialCapacity];
+ table = new HashtableEntry[initialCapacity];
threshold = (initialCapacity <= MAX_ARRAY_SIZE + 1) ? initialCapacity : MAX_ARRAY_SIZE + 1;
initHashSeedAsNeeded(initialCapacity);
}
@@ -365,9 +365,9 @@
throw new NullPointerException();
}
- Entry tab[] = table;
+ HashtableEntry tab[] = table;
for (int i = tab.length ; i-- > 0 ;) {
- for (Entry<K,V> e = tab[i] ; e != null ; e = e.next) {
+ for (HashtableEntry<K,V> e = tab[i] ; e != null ; e = e.next) {
if (e.value.equals(value)) {
return true;
}
@@ -403,10 +403,10 @@
* @see #contains(Object)
*/
public synchronized boolean containsKey(Object key) {
- Entry tab[] = table;
+ HashtableEntry tab[] = table;
int hash = hash(key);
int index = (hash & 0x7FFFFFFF) % tab.length;
- for (Entry<K,V> e = tab[index] ; e != null ; e = e.next) {
+ for (HashtableEntry<K,V> e = tab[index] ; e != null ; e = e.next) {
if ((e.hash == hash) && e.key.equals(key)) {
return true;
}
@@ -430,10 +430,10 @@
* @see #put(Object, Object)
*/
public synchronized V get(Object key) {
- Entry tab[] = table;
+ HashtableEntry tab[] = table;
int hash = hash(key);
int index = (hash & 0x7FFFFFFF) % tab.length;
- for (Entry<K,V> e = tab[index] ; e != null ; e = e.next) {
+ for (HashtableEntry<K,V> e = tab[index] ; e != null ; e = e.next) {
if ((e.hash == hash) && e.key.equals(key)) {
return e.value;
}
@@ -458,7 +458,7 @@
*/
protected void rehash() {
int oldCapacity = table.length;
- Entry<K,V>[] oldMap = table;
+ HashtableEntry<K,V>[] oldMap = table;
// overflow-conscious code
int newCapacity = (oldCapacity << 1) + 1;
@@ -468,7 +468,7 @@
return;
newCapacity = MAX_ARRAY_SIZE;
}
- Entry<K,V>[] newMap = new Entry[newCapacity];
+ HashtableEntry<K,V>[] newMap = new HashtableEntry[newCapacity];
modCount++;
threshold = (int)Math.min(newCapacity * loadFactor, MAX_ARRAY_SIZE + 1);
@@ -477,8 +477,8 @@
table = newMap;
for (int i = oldCapacity ; i-- > 0 ;) {
- for (Entry<K,V> old = oldMap[i] ; old != null ; ) {
- Entry<K,V> e = old;
+ for (HashtableEntry<K,V> old = oldMap[i] ; old != null ; ) {
+ HashtableEntry<K,V> e = old;
old = old.next;
if (rehash) {
@@ -515,10 +515,10 @@
}
// Makes sure the key is not already in the hashtable.
- Entry tab[] = table;
+ HashtableEntry tab[] = table;
int hash = hash(key);
int index = (hash & 0x7FFFFFFF) % tab.length;
- for (Entry<K,V> e = tab[index] ; e != null ; e = e.next) {
+ for (HashtableEntry<K,V> e = tab[index] ; e != null ; e = e.next) {
if ((e.hash == hash) && e.key.equals(key)) {
V old = e.value;
e.value = value;
@@ -537,8 +537,8 @@
}
// Creates the new entry.
- Entry<K,V> e = tab[index];
- tab[index] = new Entry<>(hash, key, value, e);
+ HashtableEntry<K,V> e = tab[index];
+ tab[index] = new HashtableEntry<>(hash, key, value, e);
count++;
return null;
}
@@ -553,10 +553,10 @@
* @throws NullPointerException if the key is <code>null</code>
*/
public synchronized V remove(Object key) {
- Entry tab[] = table;
+ HashtableEntry tab[] = table;
int hash = hash(key);
int index = (hash & 0x7FFFFFFF) % tab.length;
- for (Entry<K,V> e = tab[index], prev = null ; e != null ; prev = e, e = e.next) {
+ for (HashtableEntry<K,V> e = tab[index], prev = null ; e != null ; prev = e, e = e.next) {
if ((e.hash == hash) && e.key.equals(key)) {
modCount++;
if (prev != null) {
@@ -591,7 +591,7 @@
* Clears this hashtable so that it contains no keys.
*/
public synchronized void clear() {
- Entry tab[] = table;
+ HashtableEntry tab[] = table;
modCount++;
for (int index = tab.length; --index >= 0; )
tab[index] = null;
@@ -608,10 +608,10 @@
public synchronized Object clone() {
try {
Hashtable<K,V> t = (Hashtable<K,V>) super.clone();
- t.table = new Entry[table.length];
+ t.table = new HashtableEntry[table.length];
for (int i = table.length ; i-- > 0 ; ) {
t.table[i] = (table[i] != null)
- ? (Entry<K,V>) table[i].clone() : null;
+ ? (HashtableEntry<K,V>) table[i].clone() : null;
}
t.keySet = null;
t.entrySet = null;
@@ -760,11 +760,11 @@
return false;
Map.Entry entry = (Map.Entry)o;
Object key = entry.getKey();
- Entry[] tab = table;
+ HashtableEntry[] tab = table;
int hash = hash(key);
int index = (hash & 0x7FFFFFFF) % tab.length;
- for (Entry e = tab[index]; e != null; e = e.next)
+ for (HashtableEntry e = tab[index]; e != null; e = e.next)
if (e.hash==hash && e.equals(entry))
return true;
return false;
@@ -775,11 +775,11 @@
return false;
Map.Entry<K,V> entry = (Map.Entry<K,V>) o;
K key = entry.getKey();
- Entry[] tab = table;
+ HashtableEntry[] tab = table;
int hash = hash(key);
int index = (hash & 0x7FFFFFFF) % tab.length;
- for (Entry<K,V> e = tab[index], prev = null; e != null;
+ for (HashtableEntry<K,V> e = tab[index], prev = null; e != null;
prev = e, e = e.next) {
if (e.hash==hash && e.equals(entry)) {
modCount++;
@@ -909,8 +909,8 @@
return h; // Returns zero
loadFactor = -loadFactor; // Mark hashCode computation in progress
- Entry[] tab = table;
- for (Entry<K,V> entry : tab)
+ HashtableEntry[] tab = table;
+ for (HashtableEntry<K,V> entry : tab)
while (entry != null) {
h += entry.hashCode();
entry = entry.next;
@@ -932,7 +932,7 @@
*/
private void writeObject(java.io.ObjectOutputStream s)
throws IOException {
- Entry<K, V> entryStack = null;
+ HashtableEntry<K, V> entryStack = null;
synchronized (this) {
// Write out the length, threshold, loadfactor
@@ -944,11 +944,11 @@
// Stack copies of the entries in the table
for (int index = 0; index < table.length; index++) {
- Entry<K,V> entry = table[index];
+ HashtableEntry<K,V> entry = table[index];
while (entry != null) {
entryStack =
- new Entry<>(0, entry.key, entry.value, entryStack);
+ new HashtableEntry<>(0, entry.key, entry.value, entryStack);
entry = entry.next;
}
}
@@ -985,7 +985,7 @@
if (origlength > 0 && length > origlength)
length = origlength;
- Entry<K,V>[] newTable = new Entry[length];
+ HashtableEntry<K,V>[] newTable = new HashtableEntry[length];
threshold = (int) Math.min(length * loadFactor, MAX_ARRAY_SIZE + 1);
count = 0;
initHashSeedAsNeeded(length);
@@ -1011,7 +1011,7 @@
* because we are creating a new instance. Also, no return value
* is needed.
*/
- private void reconstitutionPut(Entry<K,V>[] tab, K key, V value)
+ private void reconstitutionPut(HashtableEntry<K,V>[] tab, K key, V value)
throws StreamCorruptedException
{
if (value == null) {
@@ -1021,28 +1021,27 @@
// This should not happen in deserialized version.
int hash = hash(key);
int index = (hash & 0x7FFFFFFF) % tab.length;
- for (Entry<K,V> e = tab[index] ; e != null ; e = e.next) {
+ for (HashtableEntry<K,V> e = tab[index] ; e != null ; e = e.next) {
if ((e.hash == hash) && e.key.equals(key)) {
throw new java.io.StreamCorruptedException();
}
}
// Creates the new entry.
- Entry<K,V> e = tab[index];
- tab[index] = new Entry<>(hash, key, value, e);
+ HashtableEntry<K,V> e = tab[index];
+ tab[index] = new HashtableEntry<>(hash, key, value, e);
count++;
}
/**
* Hashtable bucket collision list entry
*/
- // Android-changed: make public.
- public static class Entry<K,V> implements Map.Entry<K,V> {
+ static class HashtableEntry<K,V> implements Map.Entry<K,V> {
int hash;
final K key;
V value;
- Entry<K,V> next;
+ HashtableEntry<K,V> next;
- protected Entry(int hash, K key, V value, Entry<K,V> next) {
+ protected HashtableEntry(int hash, K key, V value, HashtableEntry<K,V> next) {
this.hash = hash;
this.key = key;
this.value = value;
@@ -1050,8 +1049,8 @@
}
protected Object clone() {
- return new Entry<>(hash, key, value,
- (next==null ? null : (Entry<K,V>) next.clone()));
+ return new HashtableEntry<>(hash, key, value,
+ (next==null ? null : (HashtableEntry<K,V>) next.clone()));
}
// Map.Entry Ops
@@ -1103,10 +1102,10 @@
* by passing an Enumeration.
*/
private class Enumerator<T> implements Enumeration<T>, Iterator<T> {
- Entry[] table = Hashtable.this.table;
+ HashtableEntry[] table = Hashtable.this.table;
int index = table.length;
- Entry<K,V> entry = null;
- Entry<K,V> lastReturned = null;
+ HashtableEntry<K,V> entry = null;
+ HashtableEntry<K,V> lastReturned = null;
int type;
/**
@@ -1128,9 +1127,9 @@
}
public boolean hasMoreElements() {
- Entry<K,V> e = entry;
+ HashtableEntry<K,V> e = entry;
int i = index;
- Entry[] t = table;
+ HashtableEntry[] t = table;
/* Use locals for faster loop iteration */
while (e == null && i > 0) {
e = t[--i];
@@ -1141,9 +1140,9 @@
}
public T nextElement() {
- Entry<K,V> et = entry;
+ HashtableEntry<K,V> et = entry;
int i = index;
- Entry[] t = table;
+ HashtableEntry[] t = table;
/* Use locals for faster loop iteration */
while (et == null && i > 0) {
et = t[--i];
@@ -1151,7 +1150,7 @@
entry = et;
index = i;
if (et != null) {
- Entry<K,V> e = lastReturned = entry;
+ HashtableEntry<K,V> e = lastReturned = entry;
entry = e.next;
return type == KEYS ? (T)e.key : (type == VALUES ? (T)e.value : (T)e);
}
@@ -1178,10 +1177,10 @@
throw new ConcurrentModificationException();
synchronized(Hashtable.this) {
- Entry[] tab = Hashtable.this.table;
+ HashtableEntry[] tab = Hashtable.this.table;
int index = (lastReturned.hash & 0x7FFFFFFF) % tab.length;
- for (Entry<K,V> e = tab[index], prev = null; e != null;
+ for (HashtableEntry<K,V> e = tab[index], prev = null; e != null;
prev = e, e = e.next) {
if (e == lastReturned) {
modCount++;
diff --git a/ojluni/src/main/native/System.c b/ojluni/src/main/native/System.c
index 193a55e..f26d940 100755
--- a/ojluni/src/main/native/System.c
+++ b/ojluni/src/main/native/System.c
@@ -35,7 +35,7 @@
#include "zlib.h"
#include "JNIHelp.h"
#include "cutils/log.h"
-#if defined(HAVE_ANDROID_OS)
+#if defined(__ANDROID__)
void android_get_LD_LIBRARY_PATH(char*, size_t);
#endif
@@ -202,7 +202,7 @@
const char* library_path = getenv("LD_LIBRARY_PATH");
-#if defined(HAVE_ANDROID_OS)
+#if defined(__ANDROID__)
if (library_path == NULL) {
android_get_LD_LIBRARY_PATH(path, sizeof(path));
library_path = path;
diff --git a/support/src/test/java/libcore/java/security/StandardNames.java b/support/src/test/java/libcore/java/security/StandardNames.java
index cfd519a..efeeeaa 100644
--- a/support/src/test/java/libcore/java/security/StandardNames.java
+++ b/support/src/test/java/libcore/java/security/StandardNames.java
@@ -311,25 +311,29 @@
// Only available with the SunPKCS11-NSS provider,
// which seems to be enabled in OpenJDK 6 but not Oracle Java 6
if (Security.getProvider("SunPKCS11-NSS") != null) {
- provide("AlgorithmParameters", "EC");
provide("Cipher", "AES/CBC/NOPADDING");
provide("Cipher", "DES/CBC/NOPADDING");
provide("Cipher", "DESEDE/CBC/NOPADDING");
provide("Cipher", "RSA/ECB/PKCS1PADDING");
provide("KeyAgreement", "DH");
- provide("KeyAgreement", "ECDH");
provide("KeyFactory", "DH");
- provide("KeyFactory", "EC");
provide("KeyPairGenerator", "DH");
- provide("KeyPairGenerator", "EC");
provide("KeyStore", "PKCS11");
provide("MessageDigest", "SHA1");
provide("SecretKeyFactory", "AES");
provide("SecretKeyFactory", "ARCFOUR");
provide("SecureRandom", "PKCS11");
provide("Signature", "DSA");
- provide("Signature", "NONEWITHECDSA");
provide("Signature", "RAWDSA");
+ }
+
+ if (Security.getProvider("SunPKCS11-NSS") != null ||
+ Security.getProvider("SunEC") != null) {
+ provide("AlgorithmParameters", "EC");
+ provide("KeyAgreement", "ECDH");
+ provide("KeyFactory", "EC");
+ provide("KeyPairGenerator", "EC");
+ provide("Signature", "NONEWITHECDSA");
provide("Signature", "SHA1WITHECDSA");
provide("Signature", "SHA224WITHECDSA");
provide("Signature", "SHA256WITHECDSA");
@@ -937,8 +941,7 @@
"TLS_RSA_WITH_AES_256_GCM_SHA384",
"TLS_RSA_WITH_AES_128_CBC_SHA",
"TLS_RSA_WITH_AES_256_CBC_SHA",
- "SSL_RSA_WITH_RC4_128_SHA",
- CIPHER_SUITE_SECURE_RENEGOTIATION);
+ "SSL_RSA_WITH_RC4_128_SHA");
// NOTE: This list needs to be kept in sync with Javadoc of javax.net.ssl.SSLSocket and
// javax.net.ssl.SSLEngine.
diff --git a/support/src/test/java/libcore/java/security/TestKeyStore.java b/support/src/test/java/libcore/java/security/TestKeyStore.java
index bd64360..425cefa 100644
--- a/support/src/test/java/libcore/java/security/TestKeyStore.java
+++ b/support/src/test/java/libcore/java/security/TestKeyStore.java
@@ -31,8 +31,6 @@
import java.io.ByteArrayInputStream;
import java.io.PrintStream;
import java.math.BigInteger;
-import java.net.InetAddress;
-import java.net.UnknownHostException;
import java.security.KeyFactory;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
@@ -98,6 +96,9 @@
}
private static final boolean TEST_MANAGERS = true;
+ private static final byte[] LOCAL_HOST_ADDRESS = { 127, 0, 0, 1 };
+ private static final String LOCAL_HOST_NAME = "localhost";
+
public final KeyStore keyStore;
public final char[] storePassword;
@@ -156,16 +157,12 @@
.signer(ROOT_CA.getPrivateKey("RSA", "RSA"))
.rootCa(ROOT_CA.getRootCertificate("RSA"))
.build();
- try {
- SERVER = new Builder()
- .aliasPrefix("server")
- .signer(INTERMEDIATE_CA.getPrivateKey("RSA", "RSA"))
- .rootCa(INTERMEDIATE_CA.getRootCertificate("RSA"))
- .addSubjectAltNameIpAddress(InetAddress.getLocalHost().getAddress())
- .build();
- } catch (UnknownHostException e) {
- throw new RuntimeException(e);
- }
+ SERVER = new Builder()
+ .aliasPrefix("server")
+ .signer(INTERMEDIATE_CA.getPrivateKey("RSA", "RSA"))
+ .rootCa(INTERMEDIATE_CA.getRootCertificate("RSA"))
+ .addSubjectAltNameIpAddress(LOCAL_HOST_ADDRESS)
+ .build();
CLIENT = new TestKeyStore(createClient(INTERMEDIATE_CA.keyStore), null, null);
CLIENT_CERTIFICATE = new Builder()
.aliasPrefix("client")
@@ -529,11 +526,7 @@
}
private X500Principal localhost() {
- try {
- return new X500Principal("CN=" + InetAddress.getLocalHost().getHostName());
- } catch (UnknownHostException e) {
- throw new RuntimeException(e);
- }
+ return new X500Principal("CN=" + LOCAL_HOST_NAME);
}
}
diff --git a/support/src/test/java/tests/util/DelegatingSSLSocketFactory.java b/support/src/test/java/tests/net/DelegatingSSLSocketFactory.java
similarity index 80%
rename from support/src/test/java/tests/util/DelegatingSSLSocketFactory.java
rename to support/src/test/java/tests/net/DelegatingSSLSocketFactory.java
index 5513210..5cbde84 100644
--- a/support/src/test/java/tests/util/DelegatingSSLSocketFactory.java
+++ b/support/src/test/java/tests/net/DelegatingSSLSocketFactory.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package tests.util;
+package tests.net;
import java.io.IOException;
import java.net.InetAddress;
@@ -41,7 +41,9 @@
*
* <p>The default implementation does nothing.
*/
- protected void configureSocket(@SuppressWarnings("unused") SSLSocket socket) {}
+ protected SSLSocket configureSocket(SSLSocket socket) throws IOException {
+ return socket;
+ }
@Override
public String[] getDefaultCipherSuites() {
@@ -56,46 +58,39 @@
@Override
public Socket createSocket() throws IOException {
SSLSocket socket = (SSLSocket) mDelegate.createSocket();
- configureSocket(socket);
- return socket;
+ return configureSocket(socket);
}
@Override
public Socket createSocket(Socket s, String host, int port, boolean autoClose)
throws IOException {
SSLSocket socket = (SSLSocket) mDelegate.createSocket(s, host, port, autoClose);
- configureSocket(socket);
- return socket;
+ return configureSocket(socket);
}
@Override
public Socket createSocket(String host, int port) throws IOException, UnknownHostException {
- SSLSocket socket = (SSLSocket) mDelegate.createSocket(host, port);
- configureSocket(socket);
- return socket;
+ SSLSocket socket = (SSLSocket) mDelegate.createSocket(host, port);
+ return configureSocket(socket);
}
@Override
public Socket createSocket(String host, int port, InetAddress localHost, int localPort)
throws IOException, UnknownHostException {
SSLSocket socket = (SSLSocket) mDelegate.createSocket(host, port, localHost, localPort);
- configureSocket(socket);
- return socket;
+ return configureSocket(socket);
}
@Override
public Socket createSocket(InetAddress host, int port) throws IOException {
SSLSocket socket = (SSLSocket) mDelegate.createSocket(host, port);
- configureSocket(socket);
- return socket;
+ return configureSocket(socket);
}
@Override
public Socket createSocket(InetAddress address, int port, InetAddress localAddress,
- int localPort) throws IOException {
- SSLSocket socket =
- (SSLSocket) mDelegate.createSocket(address, port, localAddress, localPort);
- configureSocket(socket);
- return socket;
+ int localPort) throws IOException {
+ SSLSocket socket = (SSLSocket) mDelegate.createSocket(address, port, localAddress, localPort);
+ return configureSocket(socket);
}
}
diff --git a/support/src/test/java/tests/net/DelegatingSocketFactory.java b/support/src/test/java/tests/net/DelegatingSocketFactory.java
new file mode 100644
index 0000000..b544773
--- /dev/null
+++ b/support/src/test/java/tests/net/DelegatingSocketFactory.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2015 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 tests.net;
+
+import java.io.IOException;
+import java.net.InetAddress;
+import java.net.Socket;
+import java.net.UnknownHostException;
+import javax.net.SocketFactory;
+
+/**
+ * {@link SocketFactory} which delegates all invocations to the provided delegate
+ * {@code SocketFactory}.
+ */
+public class DelegatingSocketFactory extends SocketFactory {
+
+ private final SocketFactory mDelegate;
+
+ public DelegatingSocketFactory(SocketFactory delegate) {
+ this.mDelegate = delegate;
+ }
+
+ /**
+ * Invoked after obtaining a socket from the delegate and before returning it to the caller.
+ *
+ * <p>The default implementation does nothing.
+ */
+ protected Socket configureSocket(Socket socket) throws IOException {
+ return socket;
+ }
+
+ @Override
+ public Socket createSocket() throws IOException {
+ Socket socket = mDelegate.createSocket();
+ return configureSocket(socket);
+ }
+
+ @Override
+ public Socket createSocket(String host, int port) throws IOException, UnknownHostException {
+ Socket socket = mDelegate.createSocket(host, port);
+ return configureSocket(socket);
+ }
+
+ @Override
+ public Socket createSocket(String host, int port, InetAddress localHost, int localPort)
+ throws IOException, UnknownHostException {
+ Socket socket = mDelegate.createSocket(host, port, localHost, localPort);
+ return configureSocket(socket);
+ }
+
+ @Override
+ public Socket createSocket(InetAddress host, int port) throws IOException {
+ Socket socket = mDelegate.createSocket(host, port);
+ return configureSocket(socket);
+ }
+
+ @Override
+ public Socket createSocket(InetAddress address, int port, InetAddress localAddress,
+ int localPort) throws IOException {
+ Socket socket = mDelegate.createSocket(address, port, localAddress, localPort);
+ return configureSocket(socket);
+ }
+}
diff --git a/support/src/test/java/tests/resources/ClassPathURLStreamHandlerTest.jar b/support/src/test/java/tests/resources/ClassPathURLStreamHandlerTest.jar
new file mode 100644
index 0000000..ef810a7
--- /dev/null
+++ b/support/src/test/java/tests/resources/ClassPathURLStreamHandlerTest.jar
Binary files differ
diff --git a/support/src/test/java/tests/resources/StrictJarFileTestNoManifest.jar b/support/src/test/java/tests/resources/StrictJarFileTestNoManifest.jar
new file mode 100644
index 0000000..f16cb2a
--- /dev/null
+++ b/support/src/test/java/tests/resources/StrictJarFileTestNoManifest.jar
Binary files differ
diff --git a/support/src/test/java/tests/resources/replace_with_zero.jar b/support/src/test/java/tests/resources/replace_with_zero.jar
new file mode 100644
index 0000000..990cdc5
--- /dev/null
+++ b/support/src/test/java/tests/resources/replace_with_zero.jar
Binary files differ
diff --git a/support/src/test/java/tests/util/SummaryStatistics.java b/support/src/test/java/tests/util/SummaryStatistics.java
new file mode 100644
index 0000000..4ce0a04
--- /dev/null
+++ b/support/src/test/java/tests/util/SummaryStatistics.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright 2015 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 tests.util;
+
+public class SummaryStatistics {
+ /** The number of values seen. */
+ private int numValues;
+
+ /** Sum of the values. */
+ private double sum;
+
+ /** Sum of the squares of the values added. */
+ private double squaresSum;
+
+ /** The previously added value. */
+ private double lastValue;
+
+ public SummaryStatistics() {
+ }
+
+ private double square(double value) {
+ return value * value;
+ }
+
+ /** Add a new value to the values seen. */
+ public void add(double value) {
+ sum += value - lastValue;
+ squaresSum += square(value) - square(lastValue);
+ numValues++;
+ lastValue = value;
+ }
+
+ /** Mean of the values seen. */
+ public double mean() {
+ return sum / numValues;
+ }
+
+ /** Variance of the values seen. */
+ public double var() {
+ return (squaresSum / numValues) - square(mean());
+ }
+
+ /** Standard deviation of the values seen. */
+ public double stddev() {
+ return Math.sqrt(var());
+ }
+
+ /** Coefficient of variation of the values seen. */
+ public double coeffVar() {
+ return stddev() / mean();
+ }
+
+ public String toString() {
+ StringBuilder sb = new StringBuilder("SummaryStatistics{");
+ sb.append("n=");
+ sb.append(numValues);
+ sb.append(",mean=");
+ sb.append(mean());
+ sb.append(",var=");
+ sb.append(var());
+ sb.append(",stddev=");
+ sb.append(stddev());
+ sb.append(",coeffVar=");
+ sb.append(coeffVar());
+ sb.append('}');
+ return sb.toString();
+ }
+}
diff --git a/xml/src/main/java/org/kxml2/io/KXmlParser.java b/xml/src/main/java/org/kxml2/io/KXmlParser.java
index a90db3b..e010f1d 100644
--- a/xml/src/main/java/org/kxml2/io/KXmlParser.java
+++ b/xml/src/main/java/org/kxml2/io/KXmlParser.java
@@ -604,6 +604,7 @@
}
read('>');
+ skip();
}
/**
@@ -1605,6 +1606,7 @@
this.reader = reader;
type = START_DOCUMENT;
+ parsedTopLevelStartTag = false;
name = null;
namespace = null;
degenerated = false;
diff --git a/xml/src/main/java/org/kxml2/io/KXmlSerializer.java b/xml/src/main/java/org/kxml2/io/KXmlSerializer.java
index bfdeece..399462d 100644
--- a/xml/src/main/java/org/kxml2/io/KXmlSerializer.java
+++ b/xml/src/main/java/org/kxml2/io/KXmlSerializer.java
@@ -27,17 +27,13 @@
public class KXmlSerializer implements XmlSerializer {
+ private static final int BUFFER_LEN = 8192;
+ private final char[] mText = new char[BUFFER_LEN];
+ private int mPos;
+
// static final String UNDEFINED = ":";
- // BEGIN android-added
- /** size (in characters) for the write buffer */
- private static final int WRITE_BUFFER_SIZE = 500;
- // END android-added
-
- // BEGIN android-changed
- // (Guarantee that the writer is always buffered.)
- private BufferedWriter writer;
- // END android-changed
+ private Writer writer;
private boolean pending;
private int auto;
@@ -52,6 +48,41 @@
private boolean unicode;
private String encoding;
+ private void append(char c) throws IOException {
+ if (mPos >= BUFFER_LEN) {
+ flushBuffer();
+ }
+ mText[mPos++] = c;
+ }
+
+ private void append(String str, int i, int length) throws IOException {
+ while (length > 0) {
+ if (mPos == BUFFER_LEN) {
+ flushBuffer();
+ }
+ int batch = BUFFER_LEN - mPos;
+ if (batch > length) {
+ batch = length;
+ }
+ str.getChars(i, i + batch, mText, mPos);
+ i += batch;
+ length -= batch;
+ mPos += batch;
+ }
+ }
+
+ private void append(String str) throws IOException {
+ append(str, 0, str.length());
+ }
+
+ private final void flushBuffer() throws IOException {
+ if(mPos > 0) {
+ writer.write(mText, 0, mPos);
+ writer.flush();
+ mPos = 0;
+ }
+ }
+
private final void check(boolean close) throws IOException {
if (!pending)
return;
@@ -67,17 +98,16 @@
indent[depth] = indent[depth - 1];
for (int i = nspCounts[depth - 1]; i < nspCounts[depth]; i++) {
- writer.write(' ');
- writer.write("xmlns");
+ append(" xmlns");
if (!nspStack[i * 2].isEmpty()) {
- writer.write(':');
- writer.write(nspStack[i * 2]);
+ append(':');
+ append(nspStack[i * 2]);
}
else if (getNamespace().isEmpty() && !nspStack[i * 2 + 1].isEmpty())
throw new IllegalStateException("Cannot set default namespace for elements in no namespace");
- writer.write("=\"");
+ append("=\"");
writeEscaped(nspStack[i * 2 + 1], '"');
- writer.write('"');
+ append('"');
}
if (nspCounts.length <= depth + 1) {
@@ -89,7 +119,11 @@
nspCounts[depth + 1] = nspCounts[depth];
// nspCounts[depth + 2] = nspCounts[depth];
- writer.write(close ? " />" : ">");
+ if (close) {
+ append(" />");
+ } else {
+ append('>');
+ }
}
private final void writeEscaped(String s, int quot) throws IOException {
@@ -100,22 +134,22 @@
case '\r':
case '\t':
if(quot == -1)
- writer.write(c);
+ append(c);
else
- writer.write("&#"+((int) c)+';');
+ append("&#"+((int) c)+';');
break;
case '&' :
- writer.write("&");
+ append("&");
break;
case '>' :
- writer.write(">");
+ append(">");
break;
case '<' :
- writer.write("<");
+ append("<");
break;
default:
if (c == quot) {
- writer.write(c == '"' ? """ : "'");
+ append(c == '"' ? """ : "'");
break;
}
// BEGIN android-changed: refuse to output invalid characters
@@ -128,9 +162,9 @@
boolean allowedInXml = (c >= 0x20 && c <= 0xd7ff) || (c >= 0xe000 && c <= 0xfffd);
if (allowedInXml) {
if (unicode || c < 127) {
- writer.write(c);
+ append(c);
} else {
- writer.write("&#" + ((int) c) + ";");
+ append("&#" + ((int) c) + ";");
}
} else if (Character.isHighSurrogate(c) && i < s.length() - 1) {
writeSurrogate(c, s.charAt(i + 1));
@@ -157,9 +191,9 @@
}*/
public void docdecl(String dd) throws IOException {
- writer.write("<!DOCTYPE");
- writer.write(dd);
- writer.write(">");
+ append("<!DOCTYPE");
+ append(dd);
+ append('>');
}
public void endDocument() throws IOException {
@@ -171,9 +205,9 @@
public void entityRef(String name) throws IOException {
check(false);
- writer.write('&');
- writer.write(name);
- writer.write(';');
+ append('&');
+ append(name);
+ append(';');
}
public boolean getFeature(String name) {
@@ -301,14 +335,7 @@
}
public void setOutput(Writer writer) {
- // BEGIN android-changed
- // Guarantee that the writer is always buffered.
- if (writer instanceof BufferedWriter) {
- this.writer = (BufferedWriter) writer;
- } else {
- this.writer = new BufferedWriter(writer, WRITE_BUFFER_SIZE);
- }
- // END android-changed
+ this.writer = writer;
// elementStack = new String[12]; //nsp/prefix/name
//nspCounts = new int[4];
@@ -343,7 +370,7 @@
}
public void startDocument(String encoding, Boolean standalone) throws IOException {
- writer.write("<?xml version='1.0' ");
+ append("<?xml version='1.0' ");
if (encoding != null) {
this.encoding = encoding;
@@ -353,18 +380,17 @@
}
if (this.encoding != null) {
- writer.write("encoding='");
- writer.write(this.encoding);
- writer.write("' ");
+ append("encoding='");
+ append(this.encoding);
+ append("' ");
}
if (standalone != null) {
- writer.write("standalone='");
- writer.write(
- standalone.booleanValue() ? "yes" : "no");
- writer.write("' ");
+ append("standalone='");
+ append(standalone.booleanValue() ? "yes" : "no");
+ append("' ");
}
- writer.write("?>");
+ append("?>");
}
public XmlSerializer startTag(String namespace, String name)
@@ -375,9 +401,9 @@
// namespace = "";
if (indent[depth]) {
- writer.write("\r\n");
+ append("\r\n");
for (int i = 0; i < depth; i++)
- writer.write(" ");
+ append(" ");
}
int esp = depth * 3;
@@ -407,13 +433,13 @@
elementStack[esp++] = prefix;
elementStack[esp] = name;
- writer.write('<');
+ append('<');
if (!prefix.isEmpty()) {
- writer.write(prefix);
- writer.write(':');
+ append(prefix);
+ append(':');
}
- writer.write(name);
+ append(name);
pending = true;
@@ -457,24 +483,24 @@
}
*/
- writer.write(' ');
+ append(' ');
if (!prefix.isEmpty()) {
- writer.write(prefix);
- writer.write(':');
+ append(prefix);
+ append(':');
}
- writer.write(name);
- writer.write('=');
+ append(name);
+ append('=');
char q = value.indexOf('"') == -1 ? '"' : '\'';
- writer.write(q);
+ append(q);
writeEscaped(value, q);
- writer.write(q);
+ append(q);
return this;
}
public void flush() throws IOException {
check(false);
- writer.flush();
+ flushBuffer();
}
/*
public void close() throws IOException {
@@ -503,19 +529,19 @@
}
else {
if (indent[depth + 1]) {
- writer.write("\r\n");
+ append("\r\n");
for (int i = 0; i < depth; i++)
- writer.write(" ");
+ append(" ");
}
- writer.write("</");
+ append("</");
String prefix = elementStack[depth * 3 + 1];
if (!prefix.isEmpty()) {
- writer.write(prefix);
- writer.write(':');
+ append(prefix);
+ append(':');
}
- writer.write(name);
- writer.write('>');
+ append(name);
+ append('>');
}
nspCounts[depth + 1] = nspCounts[depth];
@@ -552,24 +578,24 @@
// BEGIN android-changed: ]]> is not allowed within a CDATA,
// so break and start a new one when necessary.
data = data.replace("]]>", "]]]]><![CDATA[>");
- writer.write("<![CDATA[");
+ append("<![CDATA[");
for (int i = 0; i < data.length(); ++i) {
char ch = data.charAt(i);
boolean allowedInCdata = (ch >= 0x20 && ch <= 0xd7ff) ||
(ch == '\t' || ch == '\n' || ch == '\r') ||
(ch >= 0xe000 && ch <= 0xfffd);
if (allowedInCdata) {
- writer.write(ch);
+ append(ch);
} else if (Character.isHighSurrogate(ch) && i < data.length() - 1) {
// Character entities aren't valid in CDATA, so break out for this.
- writer.write("]]>");
+ append("]]>");
writeSurrogate(ch, data.charAt(++i));
- writer.write("<![CDATA[");
+ append("<![CDATA[");
} else {
reportInvalidCharacter(ch);
}
}
- writer.write("]]>");
+ append("]]>");
// END android-changed
}
@@ -583,22 +609,22 @@
// seems likely to upset anything expecting modified UTF-8 rather than "real" UTF-8. It seems more
// conservative in a Java environment to use an entity reference instead.
int codePoint = Character.toCodePoint(high, low);
- writer.write("&#" + codePoint + ";");
+ append("&#" + codePoint + ";");
}
// END android-added
public void comment(String comment) throws IOException {
check(false);
- writer.write("<!--");
- writer.write(comment);
- writer.write("-->");
+ append("<!--");
+ append(comment);
+ append("-->");
}
public void processingInstruction(String pi)
throws IOException {
check(false);
- writer.write("<?");
- writer.write(pi);
- writer.write("?>");
+ append("<?");
+ append(pi);
+ append("?>");
}
}
diff --git a/xml/src/main/java/org/xmlpull/v1/XmlPullParser.java b/xml/src/main/java/org/xmlpull/v1/XmlPullParser.java
index 0958bbf..bb3d130 100644
--- a/xml/src/main/java/org/xmlpull/v1/XmlPullParser.java
+++ b/xml/src/main/java/org/xmlpull/v1/XmlPullParser.java
@@ -916,7 +916,7 @@
* Get next parsing event - element content will be coalesced and only one
* TEXT event must be returned for whole element content
* (comments and processing instructions will be ignored and entity references
- * must be expanded or exception mus be thrown if entity reference can not be expanded).
+ * must be expanded or exception must be thrown if entity reference can not be expanded).
* If element content is empty (content is "") then no TEXT event will be reported.
*
* <p><b>NOTE:</b> empty element (such as <tag/>) will be reported
diff --git a/xml/src/main/java/org/xmlpull/v1/XmlPullParserFactory.java b/xml/src/main/java/org/xmlpull/v1/XmlPullParserFactory.java
index 41db89c..7215b3e 100644
--- a/xml/src/main/java/org/xmlpull/v1/XmlPullParserFactory.java
+++ b/xml/src/main/java/org/xmlpull/v1/XmlPullParserFactory.java
@@ -3,9 +3,6 @@
package org.xmlpull.v1;
-import org.kxml2.io.KXmlParser;
-import org.kxml2.io.KXmlSerializer;
-
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
@@ -218,17 +215,17 @@
/**
* Creates a new instance of a PullParserFactory that can be used
* to create XML pull parsers. The factory will always return instances
- * of {@link KXmlParser} and {@link KXmlSerializer}.
+ * of Android's built-in {@link XmlPullParser} and {@link XmlSerializer}.
*/
public static XmlPullParserFactory newInstance () throws XmlPullParserException {
return new XmlPullParserFactory();
}
/**
- * Creates a factory that always returns instances of of {@link KXmlParser} and
- * {@link KXmlSerializer}. This <b>does not</b> support factories capable of
- * creating arbitrary parser and serializer implementations. Both arguments to this
- * method are unused.
+ * Creates a factory that always returns instances of Android's built-in
+ * {@link XmlPullParser} and {@link XmlSerializer} implementation. This
+ * <b>does not</b> support factories capable of creating arbitrary parser
+ * and serializer implementations. Both arguments to this method are unused.
*/
public static XmlPullParserFactory newInstance (String unused, Class unused2)
throws XmlPullParserException {