You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@teaclave.apache.org by sh...@apache.org on 2022/11/11 05:18:12 UTC

[incubator-teaclave-java-tee-sdk] 32/48: Add bouncycastle-native project

This is an automated email from the ASF dual-hosted git repository.

shaojunwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-teaclave-java-tee-sdk.git

commit f70ca2361ced883128ec1e9876ddae0a589b9c9b
Author: cengfeng.lzy <ce...@alibaba-inc.com>
AuthorDate: Tue Jul 26 17:19:49 2022 +0800

    Add bouncycastle-native project
    
    Description: Bouncycastle-native adds necessary configurations and class
    initializations to support building project with bouncycastle libraries
    into native image.
    
    Test Plan: all tests pass
    
    Reviewers: lei.yul, jeffery.wsj, sanhong.lsh
    
    Issue: https://aone.alibaba-inc.com/task/43530791
    
    CR:
    https://code.aone.alibaba-inc.com/java-tee/JavaEnclave/codereview/9524740
---
 sdk/enclave/pom.xml                                |   11 -
 sdk/pom.xml                                        |   55 +-
 third-party-libs/bouncycastle-native/Makefile      |   10 +
 third-party-libs/bouncycastle-native/README.md     |   12 +
 .../bc-java/1.66.gradle7.build.gradle.patch        |  126 +
 .../bc-java/1.70.build.gradle.patch                |   23 +
 .../bc-java/native-image-agent-access-filter.json  |   53 +
 .../bc-java/native-image-agent-caller-filter.json  |    5 +
 .../bouncycastle-native/generate_bc_configs.sh     |   73 +
 third-party-libs/bouncycastle-native/make.sh       |    1 +
 third-party-libs/bouncycastle-native/pom.xml       |  110 +
 .../alibaba/enclave/bouncycatsle/BCOptions.java    |   10 +
 .../enclave/bouncycatsle/BouncyCastleFeature.java  |  100 +
 .../BouncycastleJarNameFormatException.java        |    7 +
 .../org.graalvm.compiler.options.OptionDescriptors |    1 +
 .../resources/configs/1.66/core/jni-config.json    |    2 +
 .../1.66/core/predefined-classes-config.json       |    8 +
 .../resources/configs/1.66/core/proxy-config.json  |    2 +
 .../configs/1.66/core/reflect-config.json          |  273 ++
 .../configs/1.66/core/resource-config.json         |   28 +
 .../configs/1.66/core/serialization-config.json    |   47 +
 .../resources/configs/1.66/mail/jni-config.json    |    2 +
 .../1.66/mail/predefined-classes-config.json       |    8 +
 .../resources/configs/1.66/mail/proxy-config.json  |    2 +
 .../configs/1.66/mail/reflect-config.json          |  767 ++++
 .../configs/1.66/mail/resource-config.json         |   51 +
 .../configs/1.66/mail/serialization-config.json    |    8 +
 .../main/resources/configs/1.66/pg/jni-config.json |    2 +
 .../configs/1.66/pg/predefined-classes-config.json |    8 +
 .../resources/configs/1.66/pg/proxy-config.json    |    2 +
 .../resources/configs/1.66/pg/reflect-config.json  |  625 +++
 .../resources/configs/1.66/pg/resource-config.json |   37 +
 .../configs/1.66/pg/serialization-config.json      |    8 +
 .../resources/configs/1.66/pkix/jni-config.json    |    2 +
 .../1.66/pkix/predefined-classes-config.json       |    8 +
 .../resources/configs/1.66/pkix/proxy-config.json  |    2 +
 .../configs/1.66/pkix/reflect-config.json          | 1493 +++++++
 .../configs/1.66/pkix/resource-config.json         |  139 +
 .../configs/1.66/pkix/serialization-config.json    |   50 +
 .../resources/configs/1.66/prov/jni-config.json    |    2 +
 .../1.66/prov/predefined-classes-config.json       |    8 +
 .../resources/configs/1.66/prov/proxy-config.json  |    2 +
 .../configs/1.66/prov/reflect-config.json          | 4444 +++++++++++++++++++
 .../configs/1.66/prov/resource-config.json         |  575 +++
 .../configs/1.66/prov/serialization-config.json    |  224 +
 .../resources/configs/1.66/tls/jni-config.json     |    2 +
 .../1.66/tls/predefined-classes-config.json        |    8 +
 .../resources/configs/1.66/tls/proxy-config.json   |    2 +
 .../resources/configs/1.66/tls/reflect-config.json |  898 ++++
 .../configs/1.66/tls/resource-config.json          |   29 +
 .../configs/1.66/tls/serialization-config.json     |    8 +
 .../resources/configs/1.66/util/jni-config.json    |    2 +
 .../1.66/util/predefined-classes-config.json       |    8 +
 .../resources/configs/1.66/util/proxy-config.json  |    2 +
 .../configs/1.66/util/reflect-config.json          |  277 ++
 .../configs/1.66/util/resource-config.json         |    8 +
 .../configs/1.66/util/serialization-config.json    |    8 +
 .../resources/configs/1.70/core/jni-config.json    |    2 +
 .../1.70/core/predefined-classes-config.json       |    8 +
 .../resources/configs/1.70/core/proxy-config.json  |    2 +
 .../configs/1.70/core/reflect-config.json          |  152 +
 .../configs/1.70/core/resource-config.json         |   28 +
 .../configs/1.70/core/serialization-config.json    |   47 +
 .../resources/configs/1.70/mail/jni-config.json    |    2 +
 .../1.70/mail/predefined-classes-config.json       |    8 +
 .../resources/configs/1.70/mail/proxy-config.json  |    2 +
 .../configs/1.70/mail/reflect-config.json          |  771 ++++
 .../configs/1.70/mail/resource-config.json         |   51 +
 .../configs/1.70/mail/serialization-config.json    |    8 +
 .../main/resources/configs/1.70/pg/jni-config.json |    2 +
 .../configs/1.70/pg/predefined-classes-config.json |    8 +
 .../resources/configs/1.70/pg/proxy-config.json    |    2 +
 .../resources/configs/1.70/pg/reflect-config.json  |  633 +++
 .../resources/configs/1.70/pg/resource-config.json |   37 +
 .../configs/1.70/pg/serialization-config.json      |    8 +
 .../resources/configs/1.70/pkix/jni-config.json    |    2 +
 .../1.70/pkix/predefined-classes-config.json       |    8 +
 .../resources/configs/1.70/pkix/proxy-config.json  |    2 +
 .../configs/1.70/pkix/reflect-config.json          | 1577 +++++++
 .../configs/1.70/pkix/resource-config.json         |  236 +
 .../configs/1.70/pkix/serialization-config.json    |   29 +
 .../resources/configs/1.70/prov/jni-config.json    |    2 +
 .../1.70/prov/predefined-classes-config.json       |    8 +
 .../resources/configs/1.70/prov/proxy-config.json  |    2 +
 .../configs/1.70/prov/reflect-config.json          | 4628 ++++++++++++++++++++
 .../configs/1.70/prov/resource-config.json         |  575 +++
 .../configs/1.70/prov/serialization-config.json    |  206 +
 .../resources/configs/1.70/tls/jni-config.json     |    2 +
 .../1.70/tls/predefined-classes-config.json        |    8 +
 .../resources/configs/1.70/tls/proxy-config.json   |    2 +
 .../resources/configs/1.70/tls/reflect-config.json |  941 ++++
 .../configs/1.70/tls/resource-config.json          |   29 +
 .../configs/1.70/tls/serialization-config.json     |    8 +
 .../resources/configs/1.70/util/jni-config.json    |    2 +
 .../1.70/util/predefined-classes-config.json       |    8 +
 .../resources/configs/1.70/util/proxy-config.json  |    2 +
 .../configs/1.70/util/reflect-config.json          |  277 ++
 .../configs/1.70/util/resource-config.json         |    8 +
 .../configs/1.70/util/serialization-config.json    |    8 +
 .../alibaba/enclave/bouncycatsle/BcService.java    |   11 +
 .../enclave/bouncycatsle/BcServiceImpl.java        |  159 +
 .../enclave/bouncycatsle/BouncyCastleTest.java     |   30 +
 .../alibaba/enclave/bouncycatsle/Sm2Service.java   |   11 +
 .../enclave/bouncycatsle/Sm2ServiceImpl.java       |  149 +
 .../com.alibaba.enclave.bouncycatsle.BcService     |    1 +
 105 files changed, 21368 insertions(+), 12 deletions(-)

diff --git a/sdk/enclave/pom.xml b/sdk/enclave/pom.xml
index 8572558..491bdd1 100644
--- a/sdk/enclave/pom.xml
+++ b/sdk/enclave/pom.xml
@@ -12,11 +12,6 @@
     <packaging>jar</packaging>
     <name>JavaEnclave-Enclave</name>
     <url></url>
-    <properties>
-        <graal.version>22.1.0</graal.version>
-        <enclave.graal.version>enclave-11-22.1.0-1.0</enclave.graal.version>
-        <svm.maven.version>0.9.10</svm.maven.version>
-    </properties>
     <profiles>
         <profile>
             <id>native</id>
@@ -25,7 +20,6 @@
                     <plugin>
                         <groupId>org.graalvm.buildtools</groupId>
                         <artifactId>native-maven-plugin</artifactId>
-                        <version>${svm.maven.version}</version>
                         <extensions>true</extensions>
                         <executions>
                             <execution>
@@ -91,10 +85,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.8.1</version>
                 <configuration>
-                    <source>11</source>
-                    <target>11</target>
                     <compilerArgs>
                         <arg>--add-modules</arg>
                         <arg>jdk.internal.vm.ci,jdk.internal.vm.compiler,jdk.crypto.ec</arg>
@@ -197,7 +188,6 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-surefire-plugin</artifactId>
-                <version>3.0.0-M5</version>
                 <configuration>
                     <reuseForks>false</reuseForks>
                 </configuration>
@@ -233,7 +223,6 @@
         <dependency>
             <groupId>org.graalvm.buildtools</groupId>
             <artifactId>junit-platform-native</artifactId>
-            <version>${svm.maven.version}</version>
             <scope>test</scope>
         </dependency>
         <dependency>
diff --git a/sdk/pom.xml b/sdk/pom.xml
index bfe67d9..2e6d08b 100644
--- a/sdk/pom.xml
+++ b/sdk/pom.xml
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.alibaba.confidentialcomputing</groupId>
     <artifactId>JavaEnclave</artifactId>
@@ -12,6 +13,10 @@
         <maven.compiler.target>11</maven.compiler.target>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <com.alibaba.enclave.platform>MOCK_IN_SVM:TEE_SDK:EMBEDDED_LIB_OS</com.alibaba.enclave.platform>
+        <enclave.graal.version>enclave-11-22.1.0-1.0</enclave.graal.version>
+        <graal.version>22.1.0</graal.version>
+        <surefire.version>3.0.0-M5</surefire.version>
+        <svm.maven.version>0.9.13</svm.maven.version>
     </properties>
     <dependencyManagement>
         <dependencies>
@@ -70,6 +75,12 @@
                 <version>1.5.0</version>
                 <scope>test</scope>
             </dependency>
+            <dependency>
+                <groupId>org.graalvm.buildtools</groupId>
+                <artifactId>junit-platform-native</artifactId>
+                <version>${svm.maven.version}</version>
+                <scope>test</scope>
+            </dependency>
         </dependencies>
     </dependencyManagement>
     <modules>
@@ -77,4 +88,46 @@
         <module>enclave</module>
         <module>host</module>
     </modules>
+    <build>
+        <pluginManagement>
+            <plugins>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-compiler-plugin</artifactId>
+                    <version>3.8.1</version>
+                    <configuration>
+                        <source>11</source>
+                        <target>11</target>
+                    </configuration>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-surefire-plugin</artifactId>
+                    <version>${surefire.version}</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-install-plugin</artifactId>
+                    <version>2.5.2</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-deploy-plugin</artifactId>
+                    <version>2.8.2</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-site-plugin</artifactId>
+                    <version>3.7.1</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-project-info-reports-plugin</artifactId>
+                    <version>3.0.0</version>
+                </plugin>
+                <plugin>
+                    <groupId>org.graalvm.buildtools</groupId>
+                    <artifactId>native-maven-plugin</artifactId>
+                    <version>${svm.maven.version}</version>
+                    <extensions>true</extensions>
+                </plugin>
+            </plugins>
+        </pluginManagement>
+    </build>
 </project>
diff --git a/third-party-libs/bouncycastle-native/Makefile b/third-party-libs/bouncycastle-native/Makefile
new file mode 100644
index 0000000..4861123
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/Makefile
@@ -0,0 +1,10 @@
+.PHONY: build install clean
+
+build:
+	mvn clean -Pnative package
+
+install:
+	mvn clean -Pnative install
+
+clean:
+	mvn clean
\ No newline at end of file
diff --git a/third-party-libs/bouncycastle-native/README.md b/third-party-libs/bouncycastle-native/README.md
new file mode 100644
index 0000000..e23491d
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/README.md
@@ -0,0 +1,12 @@
+This project provides the necessary configurations and class initializations settings to build applications with BouncyCastle libraries into native image.<br />
+This project has two functionalities: Function1, generating the native-image configuration files from BouncyCastle source; and Function2, at native image build time programmatically registering the configurations obtained from Function1.
+# Function 1:  Generating Configurations
+The basic idea of this function is to run the tests of BouncyCastle with native-image-agent, so that all the dynamic features such as reflection, serialization, dynamic proxy will be recorded and write to the configuration files for native image building. 
+BouncyCastle employs Gradle as its build tool, so our work is to modify its build.gradle file. <br />The shell script file`generate_bc_configs.sh` takes two input arguments, BouncyCastle's source code directory path and the BouncyCastle's version. I
+It automatically applies the patches, runs tests, and collects configurations.<br />
+The `bc-java` directory stores the patches for different BouncyCastle versions.<br />
+The output of this function has been already provided in `src/main/resources/configs`. 
+It is not necessary to run this function for users. Advanced developers can extend the scripts in this part to add configurations for new versions of BouncyCastle that are not yet included.
+# Function 2: BouncyCastleFeature
+This feature tells the native-image where to load BouncyCastle's configurations and specifies which classes can be initialized at build time and which classes should be delayed to initialize at run time, so that the application depends on BouncyCastle library can be successfully built into native image.<br />
+Simply run `mvn package`, you will get the `target/bouncycastle-native-0.1.0.jar`. Append the bouncycastle-native-0.1.0.jar file to your `native-image` command's `-cp` option. The rest will be automatically done.
diff --git a/third-party-libs/bouncycastle-native/bc-java/1.66.gradle7.build.gradle.patch b/third-party-libs/bouncycastle-native/bc-java/1.66.gradle7.build.gradle.patch
new file mode 100644
index 0000000..32c8411
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/bc-java/1.66.gradle7.build.gradle.patch
@@ -0,0 +1,126 @@
+diff --git a/build.gradle b/build.gradle
+index 0885cb10e..597f5b557 100644
+--- a/build.gradle
++++ b/build.gradle
+@@ -24,7 +24,7 @@ allprojects {
+   }
+ 
+   dependencies {
+-    testCompile group: 'junit', name: 'junit', version: '4.11'
++    testImplementation group: 'junit', name: 'junit', version: '4.11'
+   }
+ }
+ 
+@@ -38,6 +38,9 @@ task printProperties {
+   }
+ }
+ 
++File callerFilter = file('native-image-agent-caller-filter.json');
++File accessFilter = file('native-image-agent-access-filter.json');
++
+ subprojects {
+ 
+   JavaVersion current = JavaVersion.current();
+@@ -58,7 +61,9 @@ subprojects {
+ 
+   test {
+     systemProperty 'bc.test.data.home', bcTestDataHome
+-
++    ignoreFailures = true
++    maxHeapSize = "4g"
++    jvmArgs '-agentlib:native-image-agent=config-output-dir=test-configs,caller-filter-file=' + callerFilter.absolutePath + ',access-filter-file=' + accessFilter.absolutePath
+     filter {
+       includeTestsMatching "AllTest*"
+     }
+diff --git a/mail/build.gradle b/mail/build.gradle
+index 37aaf5c06..313f74ebb 100644
+--- a/mail/build.gradle
++++ b/mail/build.gradle
+@@ -1,9 +1,9 @@
+ dependencies {
+-    compile project(':core')
+-    compile project(':pkix')
+-    compile project(':prov')
++    implementation project(':core')
++    implementation project(':pkix')
++    implementation project(':prov')
+ 
+-    compile group: 'javax.mail', name: 'mail', version: '1.4'
++    implementation group: 'javax.mail', name: 'mail', version: '1.4'
+ }
+ 
+ jar.baseName = "bcmail-$vmrange"
+diff --git a/pg/build.gradle b/pg/build.gradle
+index 6be248bfd..2ac2745a8 100644
+--- a/pg/build.gradle
++++ b/pg/build.gradle
+@@ -1,6 +1,6 @@
+ dependencies {
+-    compile project(':core')
+-    compile project(':prov')
++    implementation project(':core')
++    implementation project(':prov')
+ }
+ 
+ jar.baseName = "bcpg-$vmrange"
+diff --git a/pkix/build.gradle b/pkix/build.gradle
+index cca823dd9..afa810f76 100644
+--- a/pkix/build.gradle
++++ b/pkix/build.gradle
+@@ -1,6 +1,6 @@
+ dependencies {
+-  compile project(':core')
+-  compile project(':prov')
++  implementation project(':core')
++  implementation project(':prov')
+ }
+ 
+ jar.baseName = "bcpkix-$vmrange"
+diff --git a/prov/build.gradle b/prov/build.gradle
+index dd717eabb..fb904bbd6 100644
+--- a/prov/build.gradle
++++ b/prov/build.gradle
+@@ -1,5 +1,5 @@
+ dependencies {
+-    compile project(':core')
++    implementation project(':core')
+ }
+ 
+ jar.baseName = "bcprov-$vmrange"
+diff --git a/test/build.gradle b/test/build.gradle
+index 0f7a2a440..025e09e61 100644
+--- a/test/build.gradle
++++ b/test/build.gradle
+@@ -1,10 +1,10 @@
+ dependencies {
+-  compile fileTree(dir: 'libs', include: '*.jar')
+-  compile project(":core")
+-  compile project(":mail")
+-  compile project(":pg")
+-  compile project(":pkix")
+-  compile project(":prov")
+-  compile project(":tls")
++  implementation fileTree(dir: 'libs', include: '*.jar')
++  implementation project(":core")
++  implementation project(":mail")
++  implementation project(":pg")
++  implementation project(":pkix")
++  implementation project(":prov")
++  implementation project(":tls")
+ }
+ 
+diff --git a/tls/build.gradle b/tls/build.gradle
+index ab27f4d2a..03b298fa6 100644
+--- a/tls/build.gradle
++++ b/tls/build.gradle
+@@ -1,7 +1,7 @@
+ dependencies {
+-    compile project(':core')
+-    compile project(':prov')
+-    compile project(':pkix')
++    implementation project(':core')
++    implementation project(':prov')
++    implementation project(':pkix')
+ }
+ 
+ jar.baseName = "bctls-$vmrange"
diff --git a/third-party-libs/bouncycastle-native/bc-java/1.70.build.gradle.patch b/third-party-libs/bouncycastle-native/bc-java/1.70.build.gradle.patch
new file mode 100644
index 0000000..5d38ecc
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/bc-java/1.70.build.gradle.patch
@@ -0,0 +1,23 @@
+diff --git a/build.gradle b/build.gradle
+index 5f2835008..50c1bdbde 100644
+--- a/build.gradle
++++ b/build.gradle
+@@ -48,6 +48,9 @@ task printProperties {
+   }
+ }
+ 
++File callerFilter = file('native-image-agent-caller-filter.json');
++File accessFilter = file('native-image-agent-access-filter.json');
++
+ subprojects {
+   apply plugin: 'eclipse'
+ 
+@@ -70,7 +73,7 @@ subprojects {
+   test {
+     systemProperty 'bc.test.data.home', bcTestDataHome
+     maxHeapSize = "1536m"
+-
++    jvmArgs '-agentlib:native-image-agent=config-output-dir=test-configs,caller-filter-file=' + callerFilter.absolutePath + ',access-filter-file=' + accessFilter.absolutePath
+     filter {
+       includeTestsMatching "AllTest*"
+     }
diff --git a/third-party-libs/bouncycastle-native/bc-java/native-image-agent-access-filter.json b/third-party-libs/bouncycastle-native/bc-java/native-image-agent-access-filter.json
new file mode 100644
index 0000000..3812d55
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/bc-java/native-image-agent-access-filter.json
@@ -0,0 +1,53 @@
+{ "rules": [
+    {"excludeClasses": "org.gradle.**"},
+    {"excludeClasses": "org.bouncycastle.openssl.test.*"},
+    {"excludeClasses": "org.bouncycastle.operator.test.*"},
+    {"excludeClasses": "org.bouncycastle.pkcs.test.*"},
+    {"excludeClasses": "org.bouncycastle.tsp.test.*"},
+    {"excludeClasses": "org.bouncycastle.crypto.agreement.test.*"},
+    {"excludeClasses": "org.bouncycastle.crypto.ec.test.*"},
+    {"excludeClasses": "org.bouncycastle.crypto.prng.test.*"},
+    {"excludeClasses": "org.bouncycastle.crypto.test.*"},
+    {"excludeClasses": "org.bouncycastle.i18n.filter.test.*"},
+    {"excludeClasses": "org.bouncycastle.i18n.test.*"},
+    {"excludeClasses": "org.bouncycastle.math.ec.test.*"},
+    {"excludeClasses": "org.bouncycastle.math.raw.test.*"},
+    {"excludeClasses": "org.bouncycastle.math.test.*"},
+    {"excludeClasses": "org.bouncycastle.pqc.crypto.test.*"},
+    {"excludeClasses": "org.bouncycastle.pqc.math.ntru.euclid.test.*"},
+    {"excludeClasses": "org.bouncycastle.pqc.math.ntru.polynomial.test.*"},
+    {"excludeClasses": "org.bouncycastle.pqc.math.ntru.util.test.*"},
+    {"excludeClasses": "org.bouncycastle.util.encoders.test.*"},
+    {"excludeClasses": "org.bouncycastle.util.io.pem.test.*"},
+    {"excludeClasses": "org.bouncycastle.util.utiltest.*"},
+    {"excludeClasses": "org.bouncycastle.mail.smime.test.*"},
+    {"excludeClasses": "org.bouncycastle.gpg.test.*"},
+    {"excludeClasses": "org.bouncycastle.openpgp.examples.test.*"},
+    {"excludeClasses": "org.bouncycastle.openpgp.test.*"},
+    {"excludeClasses": "org.bouncycastle.cert.cmp.test.*"},
+    {"excludeClasses": "org.bouncycastle.cert.crmf.test.*"},
+    {"excludeClasses": "org.bouncycastle.cert.ocsp.test.*"},
+    {"excludeClasses": "org.bouncycastle.cert.path.test.*"},
+    {"excludeClasses": "org.bouncycastle.cert.test.*"},
+    {"excludeClasses": "org.bouncycastle.cms.test.*"},
+    {"excludeClasses": "org.bouncycastle.dvcs.test.*"},
+    {"excludeClasses": "org.bouncycastle.eac.test.*"},
+    {"excludeClasses": "org.bouncycastle.est.test.*"},
+    {"excludeClasses": "org.bouncycastle.its.test.*"},
+    {"excludeClasses": "org.bouncycastle.mime.test.*"},
+    {"excludeClasses": "org.bouncycastle.mozilla.test.*"},
+    {"excludeClasses": "org.bouncycastle.jcajce.provider.test.*"},
+    {"excludeClasses": "org.bouncycastle.jce.provider.test.**"},
+    {"excludeClasses": "org.bouncycastle.pqc.jcajce.provider.test.*"},
+    {"excludeClasses": "org.bouncycastle.test.**"},
+    {"excludeClasses": "org.bouncycastle.jsse.provider.test.*"},
+    {"excludeClasses": "org.bouncycastle.tls.test.*"},
+    {"excludeClasses": "org.bouncycastle.asn1.cms.test.*"},
+    {"excludeClasses": "org.bouncycastle.asn1.misc.test.*"},
+    {"excludeClasses": "org.bouncycastle.asn1.util.test.*"},
+    {"excludeClasses": "org.bouncycastle.asn1.test.*"},
+    {"excludeClasses": "org.bouncycastle.util.utiltest.AllTests"},
+    {"excludeClasses": "org.bouncycastle.pqc.crypto.lms.AllTests"},
+    {"excludeClasses": "junit.**"}
+  ]
+}
diff --git a/third-party-libs/bouncycastle-native/bc-java/native-image-agent-caller-filter.json b/third-party-libs/bouncycastle-native/bc-java/native-image-agent-caller-filter.json
new file mode 100644
index 0000000..b4336b7
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/bc-java/native-image-agent-caller-filter.json
@@ -0,0 +1,5 @@
+{ "rules": [
+    {"excludeClasses": "org.gradle.**"},
+    {"excludeClasses": "junit.**"}
+  ]
+}
diff --git a/third-party-libs/bouncycastle-native/generate_bc_configs.sh b/third-party-libs/bouncycastle-native/generate_bc_configs.sh
new file mode 100644
index 0000000..773dd19
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/generate_bc_configs.sh
@@ -0,0 +1,73 @@
+#!/bin/bash
+BC_NATIVE_HOME=$(pushd $(dirname $0) > /dev/null && pwd && popd > /dev/null)
+BC_HOME=$1
+BC_VERSION=$2
+
+# Check BouncyCastle source directory
+if [ ! -d $BC_HOME ];then
+  echo "Specified BouncyCastle source root $BC_HOME doesn't exist. Please make sure the directory is correct."
+  exit 1
+fi
+
+# Check specified BouncyCastle version
+if [ $BC_VERSION"x" != "1.66x" -a $BC_VERSION"x" != "1.70x" ];then
+  echo "BouncyCastle version $BC_VERSION is not supported. Currently supported are 1.66, 1.70"
+  exit 1
+fi
+
+# Check if GraalVM is set.
+java -version 2>&1 | sed '2!d' | grep GraalVM
+if [ $? == 1 ];then
+  $GRAALVM_HOME/bin/java -version 2>&1 | sed '2!d' | grep GraalVM
+  if [ $? == 0 ];then
+    GRADLE_JAVA_HOME="-Dorg.gradle.java.home=$GRAALVM_HOME"
+  else
+    echo "Can't find GraalVM JDK installed. Please install GraalVM JDK and set it as default java, or set GRAALVM_HOME variable to its home"
+    exit 1
+  fi
+fi
+
+BC_TAG="r1rv"${BC_VERSION#*.}
+
+pushd $BC_HOME > /dev/null
+#Assume the $BC_HOME is cloned from https://github.com/bcgit/bc-java
+git checkout $BC_TAG -b $BC_TAG
+#Copy the agent filter files
+cp $BC_NATIVE_HOME/bc-java/*.json .
+if [ "$BC_VERSION""x" == "1.70x" ];then
+  git apply $BC_NATIVE_HOME/bc-java/1.70.build.gradle.patch
+elif [ "$BC_VERSION""x" == "1.66x" ];then
+  # This patch is for 1.66 and Gradle 7
+  git apply $BC_NATIVE_HOME/bc-java/1.66.gradle7.build.gradle.patch
+fi
+
+echo "Start BouncyCastle tests to collect native image configurations. It may take a while."
+gradle $GRADLE_JAVA_HOME test
+
+BASE_MODULES="pg prov pkix core tls mail"
+if [ $(echo "${BC_VERSION} < 1.69" | bc) = 1 ];then
+  MODULES=$BASE_MODULES
+else
+  # util module is added since 1.69
+  MODULES="$BASE_MODULES util"
+fi
+
+for module in $MODULES ;
+do
+  CONFIG_DIR=$BC_NATIVE_HOME/src/main/resources/configs/$BC_VERSION/$module
+  if [ ! -d $CONFIG_DIR ];then
+    mkdir -p $CONFIG_DIR
+  fi
+  cp $module/test-configs/* $CONFIG_DIR/ 
+done
+popd > /dev/null
+
+pushd $BC_NATIVE_HOME > /dev/null
+#Check if there is any test class recorded in the configuration files
+TESTS_IN_CONFIG=$(grep org.bouncycastle.*Tests . -rn --include="*config.json")
+if [ "$TESTS_IN_CONFIG""x" != "x" ];then
+  echo -e "Need to delete the following test classes from configurations:\n"
+  echo -e "$TESTS_IN_CONFIG\n"
+  exit 1
+fi
+popd > /dev/null
diff --git a/third-party-libs/bouncycastle-native/make.sh b/third-party-libs/bouncycastle-native/make.sh
new file mode 100644
index 0000000..414d889
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/make.sh
@@ -0,0 +1 @@
+mvn clean -Pnative package
diff --git a/third-party-libs/bouncycastle-native/pom.xml b/third-party-libs/bouncycastle-native/pom.xml
new file mode 100644
index 0000000..bb7a096
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/pom.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>com.alibaba.confidentialcomputing</groupId>
+    <artifactId>bouncycastle-native</artifactId>
+    <version>1.0-SNAPSHOT</version>
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <enclave.graal.version>enclave-11-22.1.0-1.0</enclave.graal.version>
+        <graal.version>22.1.0</graal.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.graalvm.nativeimage</groupId>
+            <artifactId>svm</artifactId>
+            <version>${enclave.graal.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.graalvm.nativeimage</groupId>
+            <artifactId>pointsto</artifactId>
+            <version>${graal.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.bouncycastle</groupId>
+            <artifactId>bcprov-jdk15on</artifactId>
+            <version>1.66</version>
+        </dependency>
+        <dependency>
+            <groupId>org.junit.jupiter</groupId>
+            <artifactId>junit-jupiter-engine</artifactId>
+            <version>5.6.2</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.graalvm.buildtools</groupId>
+            <artifactId>junit-platform-native</artifactId>
+            <version>0.9.13</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.junit.jupiter</groupId>
+            <artifactId>junit-jupiter-api</artifactId>
+            <version>5.7.1</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.8.1</version>
+                <configuration>
+                    <source>11</source>
+                    <target>11</target>
+                    <!--OptionProcessor can automatically generate OptionDescriptor classes at javac time-->
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>org.graalvm.compiler</groupId>
+                            <artifactId>graal-processor</artifactId>
+                            <version>${graal.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                    <annotationProcessors>
+                        <annotationProcessor>org.graalvm.compiler.options.processor.OptionProcessor
+                        </annotationProcessor>
+                    </annotationProcessors>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <version>3.0.0-M5</version>
+            </plugin>
+        </plugins>
+    </build>
+    <profiles>
+        <profile>
+            <id>native</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.graalvm.buildtools</groupId>
+                        <artifactId>native-maven-plugin</artifactId>
+                        <version>0.9.13</version>
+                        <extensions>true</extensions>
+                        <executions>
+                            <execution>
+                                <id>test-native</id>
+                                <goals>
+                                    <goal>test</goal>
+                                </goals>
+                                <configuration>
+                                    <buildArgs>
+                                        <!--<buildArg>&#45;&#45;debug-attach:7788</buildArg>-->
+                                    </buildArgs>
+                                </configuration>
+                                <phase>test</phase>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+</project>
diff --git a/third-party-libs/bouncycastle-native/src/main/java/com/alibaba/enclave/bouncycatsle/BCOptions.java b/third-party-libs/bouncycastle-native/src/main/java/com/alibaba/enclave/bouncycatsle/BCOptions.java
new file mode 100644
index 0000000..a1ba109
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/java/com/alibaba/enclave/bouncycatsle/BCOptions.java
@@ -0,0 +1,10 @@
+package com.alibaba.enclave.bouncycatsle;
+
+import com.oracle.svm.core.option.HostedOptionKey;
+import org.graalvm.compiler.options.Option;
+import org.graalvm.compiler.options.OptionType;
+
+public class BCOptions {
+    @Option(help = "When true, register the org.bouncycastle.jce.provider.BouncyCastleProvider.", type = OptionType.User)//
+    public static final HostedOptionKey<Boolean> RegisterBCProvider = new HostedOptionKey<>(true);
+}
diff --git a/third-party-libs/bouncycastle-native/src/main/java/com/alibaba/enclave/bouncycatsle/BouncyCastleFeature.java b/third-party-libs/bouncycastle-native/src/main/java/com/alibaba/enclave/bouncycatsle/BouncyCastleFeature.java
new file mode 100644
index 0000000..a514610
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/java/com/alibaba/enclave/bouncycatsle/BouncyCastleFeature.java
@@ -0,0 +1,100 @@
+package com.alibaba.enclave.bouncycatsle;
+
+import com.oracle.svm.core.annotate.AutomaticFeature;
+import com.oracle.svm.core.configure.ConfigurationFiles;
+import com.oracle.svm.core.option.HostedOptionValues;
+import com.oracle.svm.core.util.VMError;
+import org.bouncycastle.jce.provider.BouncyCastleProvider;
+import org.graalvm.collections.EconomicMap;
+import org.graalvm.nativeimage.ImageSingletons;
+import org.graalvm.nativeimage.hosted.Feature;
+import org.graalvm.nativeimage.hosted.RuntimeClassInitialization;
+import org.graalvm.nativeimage.impl.RuntimeClassInitializationSupport;
+
+import java.nio.file.Path;
+import java.security.Security;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import static com.alibaba.enclave.bouncycatsle.BCOptions.RegisterBCProvider;
+import static com.oracle.svm.hosted.SecurityServicesFeature.Options.AdditionalSecurityProviders;
+
+/**
+ * This feature set the configurations, class initialization states and necessary providers to support building native
+ * image with BouncyCastle libraries.
+ */
+@AutomaticFeature
+public class BouncyCastleFeature implements Feature {
+    private static final String PATH_FORMAT = "configs/%s/%s/%s-config.json";
+    private static final List<String> BC_MODULES = Arrays.asList("pg", "prov", "pkix", "core", "tls", "util", "mail");
+    private static final String DRBG_DEFAULT = "org.bouncycastle.jcajce.provider.drbg.DRBG$Default";
+    private static final String DRBG_NONCE_AND_IV = "org.bouncycastle.jcajce.provider.drbg.DRBG$NonceAndIV";
+    private String version;
+
+    @Override
+    public void afterRegistration(AfterRegistrationAccess access) {
+        try {
+            List<String> dependBCModules = extractJarInfo(access);
+            // Bouncycastle core is always required.
+            ConfigurationFiles.Options.ReflectionConfigurationResources.update(getOptionsMap(), String.format(PATH_FORMAT, version, "core", "reflect"));
+            dependBCModules.forEach(module -> {
+                ConfigurationFiles.Options.ReflectionConfigurationResources.update(getOptionsMap(), String.format(PATH_FORMAT, version, module, "reflect"));
+                ConfigurationFiles.Options.SerializationConfigurationResources.update(getOptionsMap(), String.format(PATH_FORMAT, version, module, "serialization"));
+            });
+        } catch (BouncycastleJarNameFormatException e) {
+            VMError.shouldNotReachHere(e);
+        }
+        if (RegisterBCProvider.getValue()) {
+            // Must register initialization first and then explicitly add the BouncyCastleProvider to the security provider list,
+            // so that it can be seen later at build time.
+            RuntimeClassInitialization.initializeAtBuildTime("org.bouncycastle");
+            Security.addProvider(new BouncyCastleProvider());
+            AdditionalSecurityProviders.update(getOptionsMap(), BouncyCastleProvider.class.getName());
+        }
+    }
+
+    private List<String> extractJarInfo(AfterRegistrationAccess access) throws BouncycastleJarNameFormatException {
+        List<String> ret = new ArrayList<>();
+        for (Path p : access.getApplicationClassPath()) {
+            String s = p.getFileName().toString();
+            if (s.endsWith(".jar")) {
+                for (String m : BC_MODULES) {
+                    if (s.startsWith("bc" + m + "-")) {
+                        //bouncycastle jar name format is "bc[module]-[jdkversion]-[bcversion].jar"
+                        int lastdot = s.lastIndexOf('.');
+                        String jarName = s.substring(0, lastdot);
+                        String[] nameElements = jarName.split("-");
+
+                        String versionCandidate = nameElements[2];
+                        if (versionCandidate.matches("\\d*\\.?\\d*")) {
+                            if (versionCandidate.indexOf('.') == -1) {
+                                int v = Integer.parseInt(versionCandidate);
+                                versionCandidate = Float.toString(v / 100f);
+                            }
+                            version = versionCandidate;
+                        } else {
+                            throw new BouncycastleJarNameFormatException(String.format("bouncycastle jar file %s does not follow bc[module]-[jdkversion]-[bcversion]<-others>.jar", jarName));
+                        }
+                        ret.add(m);
+                    }
+                }
+            }
+        }
+        return ret;
+    }
+
+    private static EconomicMap getOptionsMap() {
+        return (EconomicMap) HostedOptionValues.singleton().getMap();
+    }
+
+    @Override
+    public void beforeAnalysis(BeforeAnalysisAccess access) {
+        if (RegisterBCProvider.getValue()) {
+            RuntimeClassInitializationSupport rcis = ImageSingletons.lookup(RuntimeClassInitializationSupport.class);
+            String reason = "BouncyCastleProvider related should be initialized at runtime";
+            rcis.initializeAtRunTime(access.findClassByName(DRBG_DEFAULT), reason);
+            rcis.initializeAtRunTime(access.findClassByName(DRBG_NONCE_AND_IV), reason);
+        }
+    }
+}
diff --git a/third-party-libs/bouncycastle-native/src/main/java/com/alibaba/enclave/bouncycatsle/BouncycastleJarNameFormatException.java b/third-party-libs/bouncycastle-native/src/main/java/com/alibaba/enclave/bouncycatsle/BouncycastleJarNameFormatException.java
new file mode 100644
index 0000000..8672d72
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/java/com/alibaba/enclave/bouncycatsle/BouncycastleJarNameFormatException.java
@@ -0,0 +1,7 @@
+package com.alibaba.enclave.bouncycatsle;
+
+public class BouncycastleJarNameFormatException extends Exception{
+    public BouncycastleJarNameFormatException(String msg){
+        super(msg);
+    }
+}
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/META-INF/services/org.graalvm.compiler.options.OptionDescriptors b/third-party-libs/bouncycastle-native/src/main/resources/META-INF/services/org.graalvm.compiler.options.OptionDescriptors
new file mode 100644
index 0000000..be3a235
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/META-INF/services/org.graalvm.compiler.options.OptionDescriptors
@@ -0,0 +1 @@
+com.alibaba.enclave.bouncycatsle.BCOptions_OptionDescriptors
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/core/jni-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/core/jni-config.json
new file mode 100644
index 0000000..0d4f101
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/core/jni-config.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/core/predefined-classes-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/core/predefined-classes-config.json
new file mode 100644
index 0000000..0e79b2c
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/core/predefined-classes-config.json
@@ -0,0 +1,8 @@
+[
+  {
+    "type":"agent-extracted",
+    "classes":[
+    ]
+  }
+]
+
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/core/proxy-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/core/proxy-config.json
new file mode 100644
index 0000000..0d4f101
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/core/proxy-config.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/core/reflect-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/core/reflect-config.json
new file mode 100644
index 0000000..1ae3d1c
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/core/reflect-config.json
@@ -0,0 +1,273 @@
+[
+{
+  "name":"com.sun.crypto.provider.AESCipher$General",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"java.security.MessageDigestSpi"
+},
+{
+  "name":"java.security.SecureRandomParameters"
+},
+{
+  "name":"org.bouncycastle.asn1.ASN1Enumerated",
+  "methods":[
+    {"name":"getInstance","parameterTypes":["java.lang.Object"] }, 
+    {"name":"getInstance","parameterTypes":["org.bouncycastle.asn1.ASN1TaggedObject","boolean"] }
+  ]
+},
+{
+  "name":"org.bouncycastle.asn1.ASN1GeneralizedTime",
+  "methods":[
+    {"name":"getInstance","parameterTypes":["java.lang.Object"] }, 
+    {"name":"getInstance","parameterTypes":["org.bouncycastle.asn1.ASN1TaggedObject","boolean"] }
+  ]
+},
+{
+  "name":"org.bouncycastle.asn1.ASN1Integer",
+  "methods":[
+    {"name":"getInstance","parameterTypes":["java.lang.Object"] }, 
+    {"name":"getInstance","parameterTypes":["org.bouncycastle.asn1.ASN1TaggedObject","boolean"] }
+  ]
+},
+{
+  "name":"org.bouncycastle.asn1.ASN1UTCTime",
+  "methods":[
+    {"name":"getInstance","parameterTypes":["java.lang.Object"] }, 
+    {"name":"getInstance","parameterTypes":["org.bouncycastle.asn1.ASN1TaggedObject","boolean"] }
+  ]
+},
+{
+  "name":"org.bouncycastle.asn1.DERBMPString",
+  "methods":[
+    {"name":"getInstance","parameterTypes":["java.lang.Object"] }, 
+    {"name":"getInstance","parameterTypes":["org.bouncycastle.asn1.ASN1TaggedObject","boolean"] }
+  ]
+},
+{
+  "name":"org.bouncycastle.asn1.DERGeneralString",
+  "methods":[
+    {"name":"getInstance","parameterTypes":["java.lang.Object"] }, 
+    {"name":"getInstance","parameterTypes":["org.bouncycastle.asn1.ASN1TaggedObject","boolean"] }
+  ]
+},
+{
+  "name":"org.bouncycastle.asn1.DERIA5String",
+  "methods":[
+    {"name":"getInstance","parameterTypes":["java.lang.Object"] }, 
+    {"name":"getInstance","parameterTypes":["org.bouncycastle.asn1.ASN1TaggedObject","boolean"] }
+  ]
+},
+{
+  "name":"org.bouncycastle.asn1.DERNumericString",
+  "methods":[
+    {"name":"getInstance","parameterTypes":["java.lang.Object"] }, 
+    {"name":"getInstance","parameterTypes":["org.bouncycastle.asn1.ASN1TaggedObject","boolean"] }
+  ]
+},
+{
+  "name":"org.bouncycastle.asn1.DERPrintableString",
+  "methods":[
+    {"name":"getInstance","parameterTypes":["java.lang.Object"] }, 
+    {"name":"getInstance","parameterTypes":["org.bouncycastle.asn1.ASN1TaggedObject","boolean"] }
+  ]
+},
+{
+  "name":"org.bouncycastle.asn1.DERT61String",
+  "methods":[
+    {"name":"getInstance","parameterTypes":["java.lang.Object"] }, 
+    {"name":"getInstance","parameterTypes":["org.bouncycastle.asn1.ASN1TaggedObject","boolean"] }
+  ]
+},
+{
+  "name":"org.bouncycastle.asn1.DERUTF8String",
+  "methods":[
+    {"name":"getInstance","parameterTypes":["java.lang.Object"] }, 
+    {"name":"getInstance","parameterTypes":["org.bouncycastle.asn1.ASN1TaggedObject","boolean"] }
+  ]
+},
+{
+  "name":"org.bouncycastle.asn1.DERUniversalString",
+  "methods":[
+    {"name":"getInstance","parameterTypes":["java.lang.Object"] }, 
+    {"name":"getInstance","parameterTypes":["org.bouncycastle.asn1.ASN1TaggedObject","boolean"] }
+  ]
+},
+{
+  "name":"org.bouncycastle.asn1.DERVisibleString",
+  "methods":[
+    {"name":"getInstance","parameterTypes":["java.lang.Object"] }, 
+    {"name":"getInstance","parameterTypes":["org.bouncycastle.asn1.ASN1TaggedObject","boolean"] }
+  ]
+},
+{
+  "name":"org.bouncycastle.asn1.cmp.CAKeyUpdAnnContent",
+  "methods":[{"name":"getInstance","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "name":"org.bouncycastle.asn1.cmp.CMPCertificate",
+  "methods":[{"name":"getInstance","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "name":"org.bouncycastle.asn1.cmp.CRLAnnContent",
+  "methods":[{"name":"getInstance","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "name":"org.bouncycastle.asn1.cmp.CertResponse",
+  "methods":[{"name":"getInstance","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "name":"org.bouncycastle.asn1.cmp.CertStatus",
+  "methods":[{"name":"getInstance","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "name":"org.bouncycastle.asn1.cmp.Challenge",
+  "methods":[{"name":"getInstance","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "name":"org.bouncycastle.asn1.cmp.ErrorMsgContent",
+  "methods":[{"name":"getInstance","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "name":"org.bouncycastle.asn1.cmp.PKIFreeText",
+  "methods":[
+    {"name":"getInstance","parameterTypes":["java.lang.Object"] }, 
+    {"name":"getInstance","parameterTypes":["org.bouncycastle.asn1.ASN1TaggedObject","boolean"] }
+  ]
+},
+{
+  "name":"org.bouncycastle.asn1.cmp.PKIStatusInfo",
+  "methods":[
+    {"name":"getInstance","parameterTypes":["java.lang.Object"] }, 
+    {"name":"getInstance","parameterTypes":["org.bouncycastle.asn1.ASN1TaggedObject","boolean"] }
+  ]
+},
+{
+  "name":"org.bouncycastle.asn1.crmf.CertId",
+  "methods":[
+    {"name":"getInstance","parameterTypes":["java.lang.Object"] }, 
+    {"name":"getInstance","parameterTypes":["org.bouncycastle.asn1.ASN1TaggedObject","boolean"] }
+  ]
+},
+{
+  "name":"org.bouncycastle.asn1.esf.CompleteRevocationRefs",
+  "methods":[{"name":"getInstance","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "name":"org.bouncycastle.asn1.esf.CrlIdentifier",
+  "methods":[{"name":"getInstance","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "name":"org.bouncycastle.asn1.esf.CrlListID",
+  "methods":[{"name":"getInstance","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "name":"org.bouncycastle.asn1.esf.CrlOcspRef",
+  "methods":[{"name":"getInstance","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "name":"org.bouncycastle.asn1.esf.CrlValidatedID",
+  "methods":[{"name":"getInstance","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "name":"org.bouncycastle.asn1.esf.OcspIdentifier",
+  "methods":[{"name":"getInstance","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "name":"org.bouncycastle.asn1.esf.OcspListID",
+  "methods":[{"name":"getInstance","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "name":"org.bouncycastle.asn1.esf.OcspResponsesID",
+  "methods":[{"name":"getInstance","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "name":"org.bouncycastle.asn1.esf.OtherHashAlgAndValue",
+  "methods":[{"name":"getInstance","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "name":"org.bouncycastle.asn1.esf.OtherRevRefs",
+  "methods":[{"name":"getInstance","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "name":"org.bouncycastle.asn1.esf.OtherRevVals",
+  "methods":[{"name":"getInstance","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "name":"org.bouncycastle.asn1.esf.RevocationValues",
+  "methods":[{"name":"getInstance","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "name":"org.bouncycastle.asn1.esf.SPUserNotice",
+  "methods":[{"name":"getInstance","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "name":"org.bouncycastle.asn1.esf.SigPolicyQualifierInfo",
+  "methods":[{"name":"getInstance","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "name":"org.bouncycastle.asn1.esf.SignaturePolicyId",
+  "methods":[{"name":"getInstance","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "name":"org.bouncycastle.asn1.esf.SignaturePolicyIdentifier",
+  "methods":[{"name":"getInstance","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "name":"org.bouncycastle.asn1.esf.SignerAttribute",
+  "methods":[{"name":"getInstance","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "name":"org.bouncycastle.asn1.esf.SignerLocation",
+  "methods":[{"name":"getInstance","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "name":"org.bouncycastle.asn1.ocsp.CertID",
+  "methods":[
+    {"name":"getInstance","parameterTypes":["java.lang.Object"] }, 
+    {"name":"getInstance","parameterTypes":["org.bouncycastle.asn1.ASN1TaggedObject","boolean"] }
+  ]
+},
+{
+  "name":"org.bouncycastle.asn1.x509.GeneralSubtree",
+  "methods":[
+    {"name":"getInstance","parameterTypes":["java.lang.Object"] }, 
+    {"name":"getInstance","parameterTypes":["org.bouncycastle.asn1.ASN1TaggedObject","boolean"] }
+  ]
+},
+{
+  "name":"org.bouncycastle.asn1.x509.Holder",
+  "methods":[{"name":"getInstance","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "name":"org.bouncycastle.asn1.x509.NameConstraints",
+  "methods":[{"name":"getInstance","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "name":"org.bouncycastle.asn1.x509.NoticeReference",
+  "methods":[{"name":"getInstance","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "name":"org.bouncycastle.asn1.x509.ObjectDigestInfo",
+  "methods":[
+    {"name":"getInstance","parameterTypes":["java.lang.Object"] }, 
+    {"name":"getInstance","parameterTypes":["org.bouncycastle.asn1.ASN1TaggedObject","boolean"] }
+  ]
+},
+{
+  "name":"org.bouncycastle.asn1.x509.RoleSyntax",
+  "methods":[{"name":"getInstance","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "name":"org.bouncycastle.asn1.x509.UserNotice",
+  "methods":[{"name":"getInstance","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "name":"sun.security.provider.NativePRNG",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.provider.SHA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+}
+]
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/core/resource-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/core/resource-config.json
new file mode 100644
index 0000000..3881243
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/core/resource-config.json
@@ -0,0 +1,28 @@
+{
+  "resources":{
+  "includes":[
+    {"pattern":"\\Qorg/bouncycastle/asn1/test/masterlist-content.data\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/crypto/test/SCryptTestVectors.txt\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/crypto/test/SHA3TestVectors.txt\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/crypto/test/SHAKETestVectors.txt\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/crypto/test/cavp/KDFCTR_gen.rsp\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/crypto/test/cavp/KDFDblPipelineCounter_gen.rsp\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/crypto/test/cavp/KDFDblPipelineNoCounter_gen.rsp\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/crypto/test/cavp/KDFFeedbackCounter_gen.rsp\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/crypto/test/cavp/KDFFeedbackNoCounter_gen.rsp\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/crypto/test/ecrypt_HC-128.txt\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/crypto/test/ecrypt_HC-256_128K_128IV.txt\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/crypto/test/ecrypt_HC-256_128K_256IV.txt\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/crypto/test/ecrypt_HC-256_256K_128IV.txt\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/crypto/test/ecrypt_HC-256_256K_256IV.txt\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/pqc/crypto/test/lms/depth_1.txt\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/pqc/crypto/test/lms/expansion.txt\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/pqc/crypto/test/lms/testcase_1.txt\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/pqc/crypto/test/lms/testcase_2.txt\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/pqc/crypto/test/q3pIII.txt\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/pqc/crypto/test/qTeslaR2/KAT/ref/PQCsignKAT_qTesla-p-I.rsp\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/pqc/crypto/test/qTeslaR2/KAT/ref/PQCsignKAT_qTesla-p-III.rsp\\E"}, 
+    {"pattern":"\\Qorg/slf4j/impl/StaticLoggerBinder.class\\E"}
+  ]},
+  "bundles":[{"name":"org.bouncycastle.i18n.test.I18nTestMessages"}]
+}
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/core/serialization-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/core/serialization-config.json
new file mode 100644
index 0000000..14472d2
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/core/serialization-config.json
@@ -0,0 +1,47 @@
+[
+  {
+  "name":"[B"
+  },
+  {
+  "name":"org.bouncycastle.pqc.crypto.xmss.XMSSNode"
+  },
+  {
+  "name":"java.lang.Integer"
+  },
+  {
+  "name":"org.bouncycastle.pqc.crypto.xmss.BDSStateMap"
+  },
+  {
+  "name":"java.util.Stack"
+  },
+  {
+  "name":"java.util.ArrayList"
+  },
+  {
+  "name":"java.util.HashSet"
+  },
+  {
+  "name":"[Ljava.lang.Object;"
+  },
+  {
+  "name":"java.util.Vector"
+  },
+  {
+  "name":"java.util.TreeMap"
+  },
+  {
+  "name":"org.bouncycastle.pqc.crypto.xmss.BDS"
+  },
+  {
+  "name":"org.bouncycastle.pqc.crypto.xmss.BDSTreeHash"
+  },
+  {
+  "name":"java.lang.Number"
+  },
+  {
+  "name":"java.util.LinkedList"
+  },
+  {
+  "name":"java.util.LinkedHashSet"
+  }
+]
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/mail/jni-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/mail/jni-config.json
new file mode 100644
index 0000000..0d4f101
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/mail/jni-config.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/mail/predefined-classes-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/mail/predefined-classes-config.json
new file mode 100644
index 0000000..0e79b2c
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/mail/predefined-classes-config.json
@@ -0,0 +1,8 @@
+[
+  {
+    "type":"agent-extracted",
+    "classes":[
+    ]
+  }
+]
+
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/mail/proxy-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/mail/proxy-config.json
new file mode 100644
index 0000000..0d4f101
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/mail/proxy-config.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/mail/reflect-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/mail/reflect-config.json
new file mode 100644
index 0000000..8202a64
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/mail/reflect-config.json
@@ -0,0 +1,767 @@
+[
+{
+  "name":"byte[]"
+},
+{
+  "name":"com.sun.crypto.provider.AESCipher$General",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.AESParameters",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.RSACipher",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.mail.handlers.multipart_mixed",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.mail.handlers.text_plain",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"java.lang.String"
+},
+{
+  "name":"java.lang.String[]"
+},
+{
+  "name":"java.security.AlgorithmParameterGeneratorSpi"
+},
+{
+  "name":"java.security.AlgorithmParametersSpi"
+},
+{
+  "name":"java.security.MessageDigestSpi"
+},
+{
+  "name":"java.security.SecureRandomParameters"
+},
+{
+  "name":"java.security.cert.CertStoreParameters"
+},
+{
+  "name":"java.security.cert.PKIXRevocationChecker"
+},
+{
+  "name":"java.security.interfaces.RSAPrivateKey"
+},
+{
+  "name":"java.security.interfaces.RSAPublicKey"
+},
+{
+  "name":"java.security.spec.PSSParameterSpec"
+},
+{
+  "name":"java.util.Date"
+},
+{
+  "name":"javax.activation.MailcapCommandMap"
+},
+{
+  "name":"javax.crypto.spec.GCMParameterSpec"
+},
+{
+  "name":"javax.mail.internet.MimeMultipart"
+},
+{
+  "name":"javax.mail.internet.MimeUtility"
+},
+{
+  "name":"javax.security.auth.x500.X500Principal",
+  "fields":[{"name":"thisX500Name"}],
+  "methods":[{"name":"<init>","parameterTypes":["sun.security.x509.X500Name"] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.DH$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.DSA$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.DSTU4145$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.EC$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ECGOST$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.EdEC$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ElGamal$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.GM$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.GOST$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.IES$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.RSA$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.X509$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$noneDSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$stdDSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.KeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.AlgorithmParametersSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$CDHwithSHA1KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$CDHwithSHA224KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$CDHwithSHA256KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$CDHwithSHA384KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$CDHwithSHA512KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHwithSHA1KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHwithSHA224KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHwithSHA256KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHwithSHA384KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHwithSHA512KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$MQVwithSHA1KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$MQVwithSHA224KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$MQVwithSHA256KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$MQVwithSHA384KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$MQVwithSHA512KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi$EC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi$ECMQV",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyPairGeneratorSpi$ECDSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyPairGeneratorSpi$ECMQV",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ecgost.KeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ecgost.SignatureSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.gost.KeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.gost.SignatureSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.AlgorithmParametersSpi$PSS",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.CipherSpi$PKCS1v1_5Padding",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$MD5",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$RIPEMD160",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA1",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$noneRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyFactorySpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.PSSSignatureSpi$SHA1withRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.PSSSignatureSpi$SHA224withRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.PSSSignatureSpi$SHA256withRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.PSSSignatureSpi$SHA384withRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.PSSSignatureSpi$nonePSS",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.x509.CertificateFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Blake2b$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Blake2s$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.DSTU7564$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.GOST3411$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.GOST3411$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Haraka$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Keccak$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.MD2$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.MD4$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.MD5$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.MD5$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD128$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD160$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD160$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD256$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD320$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA1$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA1$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA224$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA224$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA256$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA256$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA3$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA384$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA384$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA512$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA512$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SM3$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Tiger$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Whirlpool$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.drbg.DRBG$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.keystore.BC$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.keystore.BCFKS$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.keystore.PKCS12$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$AlgParamGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$Wrap",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARC4$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARIA$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Blowfish$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST5$AlgParamGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST5$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST5$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST5$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST5$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST6$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Camellia$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Camellia$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ChaCha$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DES$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$AlgParamGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$KeyGenerator",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST28147$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST3412_2015$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Grain128$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Grainv1$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.HC128$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.HC256$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.IDEA$AlgParamGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.IDEA$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.IDEA$CBC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.IDEA$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.IDEA$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.IDEA$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Noekeon$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.OpenSSLPBKDF$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF1$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPKCS12$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Poly1305$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$AlgParamGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$KeyGenerator",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC5$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC6$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Rijndael$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SCRYPT$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SEED$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SEED$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SM4$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Salsa20$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Serpent$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Shacal2$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SipHash$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SipHash128$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Skipjack$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.TEA$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.TLSKDF$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Threefish$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Twofish$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.VMPC$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.VMPCKSA3$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.XSalsa20$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.XTEA$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Zuc$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.util.IvAlgorithmParameters",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jce.provider.CertStoreCollectionSpi",
+  "methods":[{"name":"<init>","parameterTypes":["java.security.cert.CertStoreParameters"] }]
+},
+{
+  "name":"org.bouncycastle.mail.smime.handlers.multipart_signed",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.mail.smime.handlers.pkcs7_mime",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.mail.smime.handlers.pkcs7_signature",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.x509.PKIXCertPathReviewer",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.pkcs.SignerInfo[]"
+},
+{
+  "name":"sun.security.provider.NativePRNG",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.provider.SHA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.provider.certpath.CollectionCertStore",
+  "methods":[{"name":"<init>","parameterTypes":["java.security.cert.CertStoreParameters"] }]
+},
+{
+  "name":"sun.security.util.ObjectIdentifier"
+},
+{
+  "name":"sun.security.x509.CertificateExtensions"
+}
+]
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/mail/resource-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/mail/resource-config.json
new file mode 100644
index 0000000..6d90a44
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/mail/resource-config.json
@@ -0,0 +1,51 @@
+{
+  "resources":{
+  "includes":[
+    {"pattern":"\\QMETA-INF/javamail.charset.map\\E"}, 
+    {"pattern":"\\QMETA-INF/javamail.default.address.map\\E"}, 
+    {"pattern":"\\QMETA-INF/javamail.default.providers\\E"}, 
+    {"pattern":"\\QMETA-INF/mailcap.default\\E"}, 
+    {"pattern":"\\QMETA-INF/mailcap\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/3nnn_smime.eml\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/attachonly.eml\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/basicAS2.message\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/brokenEnv.message\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/cert.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/certpath_end1.crt\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/certpath_end2.crt\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/certpath_inter1.crt\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/certpath_inter2.crt\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/certpath_root.crt\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/circular.eml\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/dotnet_enc_cert.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/dotnet_encrypted_mail.eml\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/embeddedmulti.message\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/extra-nl.eml\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/key.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/multi-alternative.eml\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/openssl-signed-sha256-non-default-salt-length.eml\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/qp-soft-break.eml\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/quotable.message\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/rawAS2.message\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/smimeTKcert.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/smimeTKkey.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/test128.message\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/test192.message\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/test256.message\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/validator.expired.eml\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/validator.extKeyUsage.eml\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/validator.keyUsage.eml\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/validator.longValidity.eml\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/validator.noEmail.eml\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/validator.notYetValid.eml\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/validator.revoked.crl\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/validator.revoked.eml\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/validator.root.crt\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mail/smime/test/validator.shortKey.eml\\E"}, 
+    {"pattern":"\\Qorg/slf4j/impl/StaticLoggerBinder.class\\E"}
+  ]},
+  "bundles":[
+    {"name":"org.bouncycastle.mail.smime.validator.SignedMailValidatorMessages"}, 
+    {"name":"org.bouncycastle.x509.CertPathReviewerMessages"}
+  ]
+}
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/mail/serialization-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/mail/serialization-config.json
new file mode 100644
index 0000000..1c26df7
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/mail/serialization-config.json
@@ -0,0 +1,8 @@
+[
+  {
+  "name":"java.util.HashSet"
+  },
+  {
+  "name":"java.util.LinkedHashSet"
+  }
+]
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pg/jni-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pg/jni-config.json
new file mode 100644
index 0000000..0d4f101
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pg/jni-config.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pg/predefined-classes-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pg/predefined-classes-config.json
new file mode 100644
index 0000000..0e79b2c
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pg/predefined-classes-config.json
@@ -0,0 +1,8 @@
+[
+  {
+    "type":"agent-extracted",
+    "classes":[
+    ]
+  }
+]
+
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pg/proxy-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pg/proxy-config.json
new file mode 100644
index 0000000..0d4f101
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pg/proxy-config.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pg/reflect-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pg/reflect-config.json
new file mode 100644
index 0000000..4479b7f
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pg/reflect-config.json
@@ -0,0 +1,625 @@
+[
+{
+  "name":"com.sun.crypto.provider.AESCipher$General",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"java.security.AlgorithmParameterGeneratorSpi"
+},
+{
+  "name":"java.security.AlgorithmParametersSpi"
+},
+{
+  "name":"java.security.MessageDigestSpi"
+},
+{
+  "name":"java.security.SecureRandomParameters"
+},
+{
+  "name":"java.security.cert.PKIXRevocationChecker"
+},
+{
+  "name":"java.security.interfaces.DSAPrivateKey"
+},
+{
+  "name":"java.security.interfaces.DSAPublicKey"
+},
+{
+  "name":"java.security.interfaces.RSAPrivateKey"
+},
+{
+  "name":"java.security.interfaces.RSAPublicKey"
+},
+{
+  "name":"javax.crypto.spec.GCMParameterSpec"
+},
+{
+  "name":"javax.security.auth.x500.X500Principal",
+  "fields":[{"name":"thisX500Name"}],
+  "methods":[{"name":"<init>","parameterTypes":["sun.security.x509.X500Name"] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.DH$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.DSA$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.DSTU4145$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.EC$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ECGOST$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.EdEC$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ElGamal$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.GM$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.GOST$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.IES$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.RSA$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.X509$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$dsa224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$dsa256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$dsa384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$dsa512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$stdDSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.KeyFactorySpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.KeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.AlgorithmParametersSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHwithSHA256CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi$ECDH",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi$ECDSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyPairGeneratorSpi$EC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyPairGeneratorSpi$ECDH",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyPairGeneratorSpi$ECDSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDSA256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDSA512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyAgreementSpi$X25519withSHA256CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyFactorySpi$EdDSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyFactorySpi$XDH",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyPairGeneratorSpi$EdDSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyPairGeneratorSpi$X25519",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyPairGeneratorSpi$XDH",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.SignatureSpi$Ed25519",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.elgamal.AlgorithmParameterGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.elgamal.AlgorithmParametersSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.elgamal.CipherSpi$PKCS1v1_5Padding",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.elgamal.KeyFactorySpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.elgamal.KeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.CipherSpi$NoPadding",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.CipherSpi$PKCS1v1_5Padding",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA1",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyFactorySpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Blake2b$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Blake2s$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.DSTU7564$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.GOST3411$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Haraka$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Keccak$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.MD2$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.MD4$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.MD5$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.MD5$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD128$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD160$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD256$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD320$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA1$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA1$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA224$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA224$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA256$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA256$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA3$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA384$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA384$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA512$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA512$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SM3$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Tiger$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Whirlpool$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.drbg.DRBG$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.keystore.BC$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.keystore.BCFKS$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.keystore.PKCS12$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$Wrap",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARC4$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARIA$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Blowfish$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST5$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST5$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST6$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Camellia$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ChaCha$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DES$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST28147$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST3412_2015$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Grain128$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Grainv1$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.HC128$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.HC256$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.IDEA$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.IDEA$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Noekeon$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.OpenSSLPBKDF$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF1$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPKCS12$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Poly1305$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC5$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC6$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Rijndael$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SCRYPT$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SEED$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SM4$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Salsa20$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Serpent$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Shacal2$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SipHash$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SipHash128$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Skipjack$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.TEA$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.TLSKDF$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Threefish$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Twofish$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Twofish$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.VMPC$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.VMPCKSA3$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.XSalsa20$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.XTEA$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Zuc$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.provider.DSA$SHA1withDSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.provider.DSAKeyFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.provider.MD5",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.provider.NativePRNG",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.provider.SHA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.provider.SHA2$SHA256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.provider.X509Factory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.rsa.RSAKeyFactory$Legacy",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.rsa.RSASignature$SHA1withRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.rsa.RSASignature$SHA256withRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.x509.BasicConstraintsExtension",
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
+},
+{
+  "name":"sun.security.x509.KeyUsageExtension",
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
+}
+]
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pg/resource-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pg/resource-config.json
new file mode 100644
index 0000000..1669c4e
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pg/resource-config.json
@@ -0,0 +1,37 @@
+{
+  "resources":{
+  "includes":[
+    {"pattern":"\\Qorg/bouncycastle/openpgp/test/bigpub.asc\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openpgp/test/dsa-pubring.gpg\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openpgp/test/dsa/keys/DSA-1024-160.pub\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openpgp/test/dsa/keys/DSA-1024-160.sec\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openpgp/test/dsa/keys/DSA-15360-512.pub\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openpgp/test/dsa/keys/DSA-2048-224.pub\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openpgp/test/dsa/keys/DSA-2048-224.sec\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openpgp/test/dsa/keys/DSA-3072-256.pub\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openpgp/test/dsa/keys/DSA-7680-384.pub\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openpgp/test/dsa/sigs/dsa-1024-160-sign.gpg\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openpgp/test/dsa/sigs/dsa-1024-224-sign.gpg\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openpgp/test/dsa/sigs/dsa-1024-256-sign.gpg\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openpgp/test/dsa/sigs/dsa-1024-384-sign.gpg\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openpgp/test/dsa/sigs/dsa-1024-512-sign.gpg\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openpgp/test/dsa/sigs/dsa-15360-512-sign.gpg\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openpgp/test/dsa/sigs/dsa-2048-224-sign.gpg\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openpgp/test/dsa/sigs/dsa-3072-256-sign.gpg\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openpgp/test/dsa/sigs/dsa-7680-384-sign.gpg\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openpgp/test/eddsa-pub-keyring.asc\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openpgp/test/eddsa-sks-pub-keyring.asc\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openpgp/test/longSigSubPack.asc\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openpgp/test/rsa-pubring.gpg\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openpgp/test/unicode/passphrase_cyr.txt\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openpgp/test/unicode/secring.gpg\\E"}, 
+    {"pattern":"\\Qorg/slf4j/impl/StaticLoggerBinder.class\\E"}, 
+    {"pattern":"\\Qpgpdata/doublefirst.kbx\\E"}, 
+    {"pattern":"\\Qpgpdata/eg_pubring.kbx\\E"}, 
+    {"pattern":"\\Qpgpdata/md5kbx.kbx\\E"}, 
+    {"pattern":"\\Qpgpdata/pubring.kbx\\E"}, 
+    {"pattern":"\\Qpgpdata/up1/private-keys-v1.d/priv.key\\E"}, 
+    {"pattern":"\\Qpgpdata/up2/private-keys-v1.d/priv.key\\E"}
+  ]},
+  "bundles":[]
+}
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pg/serialization-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pg/serialization-config.json
new file mode 100644
index 0000000..1c26df7
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pg/serialization-config.json
@@ -0,0 +1,8 @@
+[
+  {
+  "name":"java.util.HashSet"
+  },
+  {
+  "name":"java.util.LinkedHashSet"
+  }
+]
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pkix/jni-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pkix/jni-config.json
new file mode 100644
index 0000000..0d4f101
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pkix/jni-config.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pkix/predefined-classes-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pkix/predefined-classes-config.json
new file mode 100644
index 0000000..0e79b2c
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pkix/predefined-classes-config.json
@@ -0,0 +1,8 @@
+[
+  {
+    "type":"agent-extracted",
+    "classes":[
+    ]
+  }
+]
+
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pkix/proxy-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pkix/proxy-config.json
new file mode 100644
index 0000000..0d4f101
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pkix/proxy-config.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pkix/reflect-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pkix/reflect-config.json
new file mode 100644
index 0000000..0b41d0d
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pkix/reflect-config.json
@@ -0,0 +1,1493 @@
+[
+{
+  "name":"byte[]"
+},
+{
+  "name":"com.sun.crypto.provider.AESCipher$AES128_CBC_NoPadding",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.AESCipher$AES192_CBC_NoPadding",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.AESCipher$AES256_CBC_NoPadding",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.AESCipher$General",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.AESKeyGenerator",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.AESParameters",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.BlowfishCipher",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.DESCipher",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.DESedeCipher",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.DESedeKeyGenerator",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.DESedeParameters",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.HmacSHA1",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.PBEParameters",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.PKCS12PBECipherCore$PBEWithSHA1AndDESede",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.RC2Cipher",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.RSACipher",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"java.lang.String"
+},
+{
+  "name":"java.lang.String[]"
+},
+{
+  "name":"java.security.AlgorithmParameterGeneratorSpi"
+},
+{
+  "name":"java.security.AlgorithmParametersSpi"
+},
+{
+  "name":"java.security.KeyStoreSpi"
+},
+{
+  "name":"java.security.MessageDigestSpi"
+},
+{
+  "name":"java.security.SecureRandomParameters"
+},
+{
+  "name":"java.security.cert.CertStoreParameters"
+},
+{
+  "name":"java.security.cert.PKIXRevocationChecker"
+},
+{
+  "name":"java.security.interfaces.ECPrivateKey"
+},
+{
+  "name":"java.security.interfaces.ECPublicKey"
+},
+{
+  "name":"java.security.interfaces.RSAPrivateKey"
+},
+{
+  "name":"java.security.interfaces.RSAPublicKey"
+},
+{
+  "name":"java.util.Date"
+},
+{
+  "name":"javax.crypto.AEADBadTagException",
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.String"] }]
+},
+{
+  "name":"javax.crypto.spec.GCMParameterSpec",
+  "methods":[
+    {"name":"<init>","parameterTypes":["int","byte[]"] }, 
+    {"name":"getIV","parameterTypes":[] }, 
+    {"name":"getTLen","parameterTypes":[] }
+  ]
+},
+{
+  "name":"javax.security.auth.x500.X500Principal",
+  "fields":[{"name":"thisX500Name"}],
+  "methods":[{"name":"<init>","parameterTypes":["sun.security.x509.X500Name"] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.DH$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.DSA$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.DSTU4145$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.EC$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ECGOST$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.EdEC$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ElGamal$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.GM$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.GOST$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.IES$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.RSA$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.X509$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyAgreementSpi$DHwithRFC2631KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyFactorySpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$dsa224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$dsa256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$dsa384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$dsa512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$dsaSha3_224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$dsaSha3_256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$dsaSha3_384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$dsaSha3_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$noneDSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$stdDSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.KeyFactorySpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.KeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.AlgorithmParametersSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.GMSignatureSpi$sm3WithSM2",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$CDHwithSHA1KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$CDHwithSHA224KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$CDHwithSHA256KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$CDHwithSHA384KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$CDHwithSHA512KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHwithSHA1KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHwithSHA224KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHwithSHA256KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHwithSHA384KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHwithSHA512KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$MQVwithSHA1KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$MQVwithSHA224KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$MQVwithSHA256KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$MQVwithSHA384KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$MQVwithSHA512KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi$EC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi$ECDH",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi$ECDSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi$ECMQV",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyPairGeneratorSpi$EC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyPairGeneratorSpi$ECDSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyPairGeneratorSpi$ECMQV",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDSA224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDSA256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDSA384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDSA512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDSASha3_224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDSASha3_256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDSASha3_384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDSASha3_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDSAnone",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ecgost.KeyAgreementSpi$ECVKO",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ecgost.KeyFactorySpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ecgost.KeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ecgost.SignatureSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ecgost12.ECGOST2012SignatureSpi256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ecgost12.ECGOST2012SignatureSpi512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ecgost12.KeyAgreementSpi$ECVKO256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ecgost12.KeyAgreementSpi$ECVKO512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ecgost12.KeyFactorySpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ecgost12.KeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyFactorySpi$EdDSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyPairGeneratorSpi$Ed25519",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyPairGeneratorSpi$Ed448",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyPairGeneratorSpi$EdDSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.SignatureSpi$Ed25519",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.SignatureSpi$Ed448",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.gost.KeyFactorySpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.gost.KeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.gost.SignatureSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.AlgorithmParametersSpi$OAEP",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.AlgorithmParametersSpi$PSS",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.CipherSpi$OAEPPadding",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.CipherSpi$PKCS1v1_5Padding",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.CipherSpi$PKCS1v1_5Padding_PublicOnly",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$MD5",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$RIPEMD128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$RIPEMD160",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$RIPEMD256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA1",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA3_224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA3_256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA3_384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA3_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$noneRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyFactorySpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyPairGeneratorSpi$PSS",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.PSSSignatureSpi$PSSwithRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.PSSSignatureSpi$SHA1withRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.PSSSignatureSpi$SHA224withRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.PSSSignatureSpi$SHA256withRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.PSSSignatureSpi$SHA384withRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.PSSSignatureSpi$SHA3_224withRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.PSSSignatureSpi$SHA3_256withRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.PSSSignatureSpi$SHA3_384withRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.PSSSignatureSpi$SHA3_512withRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.PSSSignatureSpi$SHA512withRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.PSSSignatureSpi$nonePSS",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.x509.CertificateFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Blake2b$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Blake2s$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.DSTU7564$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.GOST3411$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.GOST3411$Digest2012_256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.GOST3411$Digest2012_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.GOST3411$HashMac",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.GOST3411$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Haraka$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Keccak$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.MD2$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.MD4$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.MD5$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.MD5$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD128$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD128$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD160$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD160$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD256$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD256$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD320$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA1$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA1$HashMac",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA1$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA1$SHA1Mac",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA224$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA224$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA256$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA256$HashMac",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA256$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA3$Digest224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA3$Digest256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA3$Digest384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA3$Digest512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA3$DigestShake256_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA3$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA384$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA384$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA512$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA512$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SM3$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SM3$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Tiger$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Whirlpool$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.drbg.DRBG$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.keystore.BC$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.keystore.BCFKS$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.keystore.PKCS12$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.keystore.pkcs12.PKCS12KeyStoreSpi$BCPKCS12KeyStore",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$AESCCMMAC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$AlgParamGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$AlgParamGenCCM",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$AlgParamGenGCM",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$AlgParamsCCM",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$AlgParamsGCM",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$CBC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$CCM",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$GCM",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$KeyGen128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$KeyGen192",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$KeyGen256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$RFC3211Wrap",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$Wrap",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$WrapPad",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARC4$Base",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARC4$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARC4$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARC4$PBEWithSHAAnd128Bit",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARIA$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Blowfish$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Blowfish$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST5$AlgParamGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST5$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST5$CBC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST5$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST5$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST5$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST6$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Camellia$AlgParamGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Camellia$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Camellia$CBC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Camellia$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Camellia$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Camellia$KeyGen128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Camellia$KeyGen192",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Camellia$KeyGen256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Camellia$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Camellia$Wrap",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ChaCha$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DES$AlgParamGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DES$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DES$KeyGenerator",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DES$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DES$PBEWithMD5",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DES$PBEWithMD5KeyFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DES$PBEWithSHA1",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DES$PBEWithSHA1KeyFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$AlgParamGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$CBC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$CBCMAC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$KeyGenerator",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$PBEWithSHAAndDES3Key",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$RFC3211",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$Wrap",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST28147$AlgParamGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST28147$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST28147$CryptoProWrap",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST28147$GCFB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST28147$GostWrap",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST28147$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST28147$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST3412_2015$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Grain128$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Grainv1$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.HC128$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.HC256$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.IDEA$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Noekeon$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.OpenSSLPBKDF$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.OpenSSLPBKDF$PBKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF1$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$PBKDF2with8BIT",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$PBKDF2withGOST3411",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$PBKDF2withSHA224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$PBKDF2withSHA256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$PBKDF2withSHA384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$PBKDF2withSHA3_224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$PBKDF2withSHA3_256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$PBKDF2withSHA3_384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$PBKDF2withSHA3_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$PBKDF2withSHA512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$PBKDF2withUTF8",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPKCS12$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Poly1305$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$AlgParamGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$CBCMAC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$KeyGenerator",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$PBEWithSHAAnd128BitRC2",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$PBEWithSHAAnd40BitRC2",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$Wrap",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC5$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC6$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Rijndael$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SCRYPT$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SEED$AlgParamGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SEED$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SEED$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SEED$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SEED$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SEED$Wrap",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SM4$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Salsa20$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Serpent$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Shacal2$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SipHash$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SipHash128$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Skipjack$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.TEA$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.TLSKDF$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Threefish$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Twofish$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.VMPC$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.VMPCKSA3$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.XSalsa20$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.XTEA$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Zuc$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.util.IvAlgorithmParameters",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi_8",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.LMS$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.McEliece$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.NH$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.QTESLA$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.Rainbow$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.SPHINCS$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.XMSS$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.lms.LMSKeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.lms.LMSSignatureSpi$generic",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.newhope.NHKeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.qtesla.KeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.qtesla.SignatureSpi$PI",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.sphincs.SignatureSpi$withSha512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.sphincs.Sphincs256KeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.xmss.XMSSKeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.xmss.XMSSMTKeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.xmss.XMSSMTSignatureSpi$generic",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.xmss.XMSSSignatureSpi$generic",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.tsp.TimeStampTokenInfo",
+  "methods":[{"name":"<init>","parameterTypes":["org.bouncycastle.asn1.tsp.TSTInfo"] }]
+},
+{
+  "name":"sun.security.pkcs.SignerInfo[]"
+},
+{
+  "name":"sun.security.provider.DSAKeyFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.provider.DSAKeyPairGenerator$Current",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.provider.DSAParameters",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.provider.NativePRNG",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.provider.SHA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.provider.SHA2$SHA224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.provider.SHA2$SHA256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.provider.X509Factory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.provider.certpath.CollectionCertStore",
+  "methods":[{"name":"<init>","parameterTypes":["java.security.cert.CertStoreParameters"] }]
+},
+{
+  "name":"sun.security.rsa.RSAKeyFactory$Legacy",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.rsa.RSAKeyPairGenerator$Legacy",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.rsa.RSASignature$SHA1withRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.rsa.RSASignature$SHA256withRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.util.ObjectIdentifier"
+},
+{
+  "name":"sun.security.x509.AuthorityInfoAccessExtension",
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
+},
+{
+  "name":"sun.security.x509.AuthorityKeyIdentifierExtension",
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
+},
+{
+  "name":"sun.security.x509.BasicConstraintsExtension",
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
+},
+{
+  "name":"sun.security.x509.CRLDistributionPointsExtension",
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
+},
+{
+  "name":"sun.security.x509.CRLReasonCodeExtension",
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
+},
+{
+  "name":"sun.security.x509.CertificateExtensions"
+},
+{
+  "name":"sun.security.x509.CertificateIssuerExtension",
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
+},
+{
+  "name":"sun.security.x509.CertificatePoliciesExtension",
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
+},
+{
+  "name":"sun.security.x509.ExtendedKeyUsageExtension",
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
+},
+{
+  "name":"sun.security.x509.IssuingDistributionPointExtension",
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
+},
+{
+  "name":"sun.security.x509.KeyUsageExtension",
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
+},
+{
+  "name":"sun.security.x509.NetscapeCertTypeExtension",
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
+},
+{
+  "name":"sun.security.x509.SubjectAlternativeNameExtension",
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
+},
+{
+  "name":"sun.security.x509.SubjectKeyIdentifierExtension",
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
+}
+]
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pkix/resource-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pkix/resource-config.json
new file mode 100644
index 0000000..f24909d
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pkix/resource-config.json
@@ -0,0 +1,139 @@
+{
+  "resources":{
+  "includes":[
+    {"pattern":"\\Qorg/bouncycastle/cert/test/xmss3.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/cms/test/PSSSignData.data\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/cms/test/PSSSignDataSHA1.sig\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/cms/test/PSSSignDataSHA1Enc.sig\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/cms/test/PSSSignDataSHA256.sig\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/cms/test/PSSSignDataSHA256Enc.sig\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/cms/test/PSSSignDataSHA512.sig\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/cms/test/PSSSignDataSHA512Enc.sig\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/cms/test/SignedMSPkcs7.sig\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/cms/test/counterSig.p7m\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/cms/test/ecdh/ecc.crt\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/cms/test/ecdh/ecc.key\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/cms/test/ecdh/encSess1.asc\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/cms/test/ecdh/encSess2.asc\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/cms/test/ecdh/encSess3.asc\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/cms/test/ecdh/encSess4.asc\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/cms/test/ecdh/encSess5.asc\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/cms/test/ecdh/encSess6.asc\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/cms/test/ecdh/encSess7.asc\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/cms/test/ecdh/encSess8.asc\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/cms/test/ecdh/encSessA.asc\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/cms/test/ecdh/encSessB.asc\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/cms/test/ecdh/encSessC.asc\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/cms/test/ecdh/encSessD.asc\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/cms/test/ecdh/encSessE.asc\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/cms/test/ecdh/encSessF.asc\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/cms/test/ecdh/encSessG.asc\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/cms/test/ecdh/encSessH.asc\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/cms/test/rawsha256nonull.p7m\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/eac/test/Belgique CVCA-02032010.7816.cvcert\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/eac/test/REQ_18102010.csr\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/eac/test/UTIS00100072.csr\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/eac/test/at_cert_19a.cvcert\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/est/test/san/cert_cn_match_wc.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/est/test/san/cert_cn_mismatch_ip.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/est/test/san/cert_cn_mismatch_wc.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/est/test/san/cert_san_match.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/est/test/san/cert_san_match_ip.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/est/test/san/cert_san_mismatch_ip.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/est/test/san/cert_san_mismatch_wc.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mime/test/3nnn_smime.eml\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mime/test/cert.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mime/test/embeddedmulti.message\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mime/test/key.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mime/test/multi-alternative.eml\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mime/test/quotable.message\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mime/test/simplemultipart.eml\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/mime/test/test256.message\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_aes128_cbc.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_aes128_cfb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_aes128_ecb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_aes128_ofb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_aes192_cbc.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_aes192_cfb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_aes192_ecb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_aes192_ofb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_aes256_cbc.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_aes256_cfb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_aes256_ecb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_aes256_ofb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_blowfish_cbc.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_blowfish_cfb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_blowfish_ecb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_blowfish_ofb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_des1_cbc.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_des1_cfb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_des1_ecb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_des1_ofb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_des2_cbc.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_des2_cfb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_des2_ecb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_des2_ofb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_des3_cbc.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_des3_cfb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_des3_ecb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_des3_ofb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_rc2_128_cbc.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_rc2_128_cfb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_rc2_128_ecb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_rc2_128_ofb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_rc2_40_cbc.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_rc2_64_cbc.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/dsa/openssl_dsa_unencrypted.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/gost2012_cert.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/gost2012_priv.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_aes128_cbc.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_aes128_cfb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_aes128_ecb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_aes128_ofb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_aes192_cbc.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_aes192_cfb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_aes192_ecb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_aes192_ofb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_aes256_cbc.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_aes256_cfb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_aes256_ecb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_aes256_ofb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_blowfish_cbc.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_blowfish_cfb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_blowfish_ecb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_blowfish_ofb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_des1_cbc.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_des1_cfb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_des1_ecb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_des1_ofb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_des2_cbc.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_des2_cfb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_des2_ecb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_des2_ofb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_des3_cbc.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_des3_cfb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_des3_ecb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_des3_ofb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_rc2_128_cbc.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_rc2_128_cfb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_rc2_128_ecb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_rc2_128_ofb.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_rc2_40_cbc.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_rc2_64_cbc.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/data/rsa/openssl_rsa_unencrypted.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/ecexpparam.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/eckey.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/eddsapriv.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/enckey.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/extratest.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/pkcs7.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/pkcs8test.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/smimenopw.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/test.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/openssl/test/trusted_cert.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/tsp/test/FileDaFirmare.data\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/tsp/test/FileDaFirmare.txt.tsd.der\\E"}, 
+    {"pattern":"\\Qorg/slf4j/impl/StaticLoggerBinder.class\\E"}
+  ]},
+  "bundles":[]
+}
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pkix/serialization-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pkix/serialization-config.json
new file mode 100644
index 0000000..bdf73d9
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/pkix/serialization-config.json
@@ -0,0 +1,50 @@
+[
+  {
+  "name":"java.lang.Throwable"
+  },
+  {
+  "name":"org.bouncycastle.cert.X509CertificateHolder"
+  },
+  {
+  "name":"[Ljava.lang.StackTraceElement;"
+  },
+  {
+  "name":"[B"
+  },
+  {
+  "name":"java.security.cert.CertPath$CertPathRep"
+  },
+  {
+  "name":"java.security.cert.CertPath"
+  },
+  {
+  "name":"org.bouncycastle.cert.X509CRLHolder"
+  },
+  {
+  "name":"java.lang.Exception"
+  },
+  {
+  "name":"java.security.InvalidAlgorithmParameterException"
+  },
+  {
+  "name":"java.util.HashSet"
+  },
+  {
+  "name":"java.security.GeneralSecurityException"
+  },
+  {
+  "name":"java.util.Collections$EmptyList"
+  },
+  {
+  "name":"java.lang.StackTraceElement"
+  },
+  {
+  "name":"java.lang.String"
+  },
+  {
+  "name":"org.bouncycastle.cert.X509AttributeCertificateHolder"
+  },
+  {
+  "name":"java.util.LinkedHashSet"
+  }
+]
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/prov/jni-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/prov/jni-config.json
new file mode 100644
index 0000000..0d4f101
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/prov/jni-config.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/prov/predefined-classes-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/prov/predefined-classes-config.json
new file mode 100644
index 0000000..0e79b2c
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/prov/predefined-classes-config.json
@@ -0,0 +1,8 @@
+[
+  {
+    "type":"agent-extracted",
+    "classes":[
+    ]
+  }
+]
+
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/prov/proxy-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/prov/proxy-config.json
new file mode 100644
index 0000000..0d4f101
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/prov/proxy-config.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/prov/reflect-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/prov/reflect-config.json
new file mode 100644
index 0000000..39ee360
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/prov/reflect-config.json
@@ -0,0 +1,4444 @@
+[
+{
+  "name":"byte[]"
+},
+{
+  "name":"com.sun.crypto.provider.AESCipher$General",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.AESKeyGenerator",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.ChaCha20Cipher$ChaCha20Only",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.DESCipher",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.HmacCore$HmacSHA512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.RSACipher",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"java.lang.String"
+},
+{
+  "name":"java.lang.String[]"
+},
+{
+  "name":"java.security.AlgorithmParameterGeneratorSpi"
+},
+{
+  "name":"java.security.AlgorithmParametersSpi"
+},
+{
+  "name":"java.security.KeyStoreSpi"
+},
+{
+  "name":"java.security.MessageDigestSpi"
+},
+{
+  "name":"java.security.SecureRandom",
+  "methods":[{"name":"getInstanceStrong","parameterTypes":[] }]
+},
+{
+  "name":"java.security.SecureRandomParameters"
+},
+{
+  "name":"java.security.cert.CertStoreParameters"
+},
+{
+  "name":"java.security.cert.PKIXRevocationChecker"
+},
+{
+  "name":"java.security.interfaces.RSAPrivateKey"
+},
+{
+  "name":"java.security.interfaces.RSAPublicKey"
+},
+{
+  "name":"java.security.spec.DSAParameterSpec"
+},
+{
+  "name":"java.util.Date"
+},
+{
+  "name":"javax.crypto.AEADBadTagException",
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.String"] }]
+},
+{
+  "name":"javax.crypto.SecretKey"
+},
+{
+  "name":"javax.crypto.spec.GCMParameterSpec",
+  "methods":[
+    {"name":"<init>","parameterTypes":["int","byte[]"] }, 
+    {"name":"getIV","parameterTypes":[] }, 
+    {"name":"getTLen","parameterTypes":[] }
+  ]
+},
+{
+  "name":"javax.security.auth.x500.X500Principal",
+  "fields":[{"name":"thisX500Name"}],
+  "methods":[{"name":"<init>","parameterTypes":["sun.security.x509.X500Name"] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.DH$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.DSA$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.DSTU4145$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.EC$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ECGOST$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.EdEC$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ElGamal$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.GM$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.GOST$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.IES$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.RSA$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.X509$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.AlgorithmParameterGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.AlgorithmParametersSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.IESCipher$IES",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.IESCipher$IESwithAESCBC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.IESCipher$IESwithDESedeCBC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyAgreementSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyAgreementSpi$DHUwithSHA1CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyAgreementSpi$DHUwithSHA1KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyAgreementSpi$DHUwithSHA224CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyAgreementSpi$DHUwithSHA224KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyAgreementSpi$DHUwithSHA256CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyAgreementSpi$DHUwithSHA256KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyAgreementSpi$DHUwithSHA384CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyAgreementSpi$DHUwithSHA384KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyAgreementSpi$DHUwithSHA512CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyAgreementSpi$DHUwithSHA512KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyAgreementSpi$DHwithRFC2631KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyAgreementSpi$DHwithSHA1KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyAgreementSpi$DHwithSHA224KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyAgreementSpi$DHwithSHA256KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyAgreementSpi$DHwithSHA384KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyAgreementSpi$DHwithSHA512KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyAgreementSpi$MQVwithSHA1CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyAgreementSpi$MQVwithSHA1KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyAgreementSpi$MQVwithSHA224CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyAgreementSpi$MQVwithSHA224KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyAgreementSpi$MQVwithSHA256CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyAgreementSpi$MQVwithSHA256KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyAgreementSpi$MQVwithSHA384CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyAgreementSpi$MQVwithSHA384KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyAgreementSpi$MQVwithSHA512CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyAgreementSpi$MQVwithSHA512KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyFactorySpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.AlgorithmParameterGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.AlgorithmParametersSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$detDSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$detDSA224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$detDSA256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$detDSA384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$detDSA512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$detDSASha3_224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$detDSASha3_256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$detDSASha3_384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$detDSASha3_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$dsa224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$dsa256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$dsa384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$dsa512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$dsaSha3_224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$dsaSha3_256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$dsaSha3_384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$dsaSha3_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$noneDSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner$stdDSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.KeyFactorySpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.KeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dstu.KeyFactorySpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dstu.KeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dstu.SignatureSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dstu.SignatureSpiLe",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.AlgorithmParametersSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.GMCipherSpi$SM2",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.GMCipherSpi$SM2withBlake2b",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.GMCipherSpi$SM2withBlake2s",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.GMCipherSpi$SM2withMD5",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.GMCipherSpi$SM2withRMD",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.GMCipherSpi$SM2withSha1",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.GMCipherSpi$SM2withSha224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.GMCipherSpi$SM2withSha256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.GMCipherSpi$SM2withSha384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.GMCipherSpi$SM2withSha512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.GMCipherSpi$SM2withWhirlpool",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.GMSignatureSpi$sha256WithSM2",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.GMSignatureSpi$sm3WithSM2",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.IESCipher$ECIES",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.IESCipher$ECIESwithAESCBC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.IESCipher$ECIESwithDESedeCBC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$CDHwithSHA1KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$CDHwithSHA224KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$CDHwithSHA256KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$CDHwithSHA384KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$CDHwithSHA512KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DH",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHUC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHUwithSHA1CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHUwithSHA1KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHUwithSHA224CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHUwithSHA224KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHUwithSHA256CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHUwithSHA256KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHUwithSHA384CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHUwithSHA384KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHUwithSHA512CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHUwithSHA512KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHwithSHA1CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHwithSHA1KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHwithSHA224KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHwithSHA256CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHwithSHA256KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHwithSHA384CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHwithSHA384KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHwithSHA512CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$DHwithSHA512KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$ECKAEGwithRIPEMD160KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$ECKAEGwithSHA1KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$ECKAEGwithSHA224KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$ECKAEGwithSHA256KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$ECKAEGwithSHA384KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$ECKAEGwithSHA512KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$MQV",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$MQVwithSHA1CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$MQVwithSHA1KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$MQVwithSHA1KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$MQVwithSHA224CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$MQVwithSHA224KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$MQVwithSHA224KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$MQVwithSHA256CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$MQVwithSHA256KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$MQVwithSHA256KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$MQVwithSHA384CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$MQVwithSHA384KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$MQVwithSHA384KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$MQVwithSHA512CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$MQVwithSHA512KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyAgreementSpi$MQVwithSHA512KDFAndSharedInfo",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi$EC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi$ECDH",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi$ECDHC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi$ECDSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi$ECMQV",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyPairGeneratorSpi$EC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyPairGeneratorSpi$ECDH",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyPairGeneratorSpi$ECDHC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyPairGeneratorSpi$ECDSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyPairGeneratorSpi$ECMQV",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecCVCDSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecCVCDSA224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecCVCDSA256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecCVCDSA384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecCVCDSA512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDSA224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDSA256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDSA384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDSA512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDSARipeMD160",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDSASha3_224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDSASha3_256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDSASha3_384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDSASha3_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDSAnone",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDetDSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDetDSA224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDetDSA256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDetDSA384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDetDSA512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDetDSASha3_224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDetDSASha3_256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDetDSASha3_384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDetDSASha3_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecNR",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecNR224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecNR256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecNR384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecNR512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecPlainDSARP160",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ecgost.KeyAgreementSpi$ECVKO",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ecgost.KeyFactorySpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ecgost.KeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ecgost.SignatureSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ecgost12.ECGOST2012SignatureSpi256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ecgost12.ECGOST2012SignatureSpi512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ecgost12.KeyAgreementSpi$ECVKO256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ecgost12.KeyAgreementSpi$ECVKO512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ecgost12.KeyFactorySpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ecgost12.KeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyAgreementSpi$X25519",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyAgreementSpi$X25519UwithSHA256KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyAgreementSpi$X25519withSHA256CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyAgreementSpi$X25519withSHA256KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyAgreementSpi$X25519withSHA384CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyAgreementSpi$X25519withSHA512CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyAgreementSpi$X448",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyAgreementSpi$X448UwithSHA512KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyAgreementSpi$X448withSHA256CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyAgreementSpi$X448withSHA384CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyAgreementSpi$X448withSHA512CKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyAgreementSpi$X448withSHA512KDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyAgreementSpi$XDH",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyFactorySpi$Ed25519",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyFactorySpi$Ed448",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyFactorySpi$EdDSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyFactorySpi$X25519",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyFactorySpi$X448",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyFactorySpi$XDH",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyPairGeneratorSpi$Ed25519",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyPairGeneratorSpi$Ed448",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyPairGeneratorSpi$EdDSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyPairGeneratorSpi$X25519",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyPairGeneratorSpi$X448",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyPairGeneratorSpi$XDH",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.SignatureSpi$Ed25519",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.SignatureSpi$Ed448",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.SignatureSpi$EdDSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.elgamal.AlgorithmParameterGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.elgamal.AlgorithmParametersSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.elgamal.CipherSpi$NoPadding",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.elgamal.CipherSpi$PKCS1v1_5Padding",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.elgamal.KeyFactorySpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.elgamal.KeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.gost.AlgorithmParameterGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.gost.AlgorithmParametersSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.gost.KeyFactorySpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.gost.KeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.gost.SignatureSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ies.AlgorithmParametersSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.AlgorithmParametersSpi$OAEP",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.AlgorithmParametersSpi$PSS",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.CipherSpi$ISO9796d1Padding",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.CipherSpi$NoPadding",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.CipherSpi$OAEPPadding",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.CipherSpi$PKCS1v1_5Padding",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.CipherSpi$PKCS1v1_5Padding_PrivateOnly",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.CipherSpi$PKCS1v1_5Padding_PublicOnly",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$MD2",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$MD4",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$MD5",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$RIPEMD128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$RIPEMD160",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$RIPEMD256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA1",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA3_224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA3_256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA3_384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA3_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA512_224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA512_256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$noneRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.ISOSignatureSpi$MD5WithRSAEncryption",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.ISOSignatureSpi$RIPEMD160WithRSAEncryption",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.ISOSignatureSpi$SHA1WithRSAEncryption",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.ISOSignatureSpi$SHA224WithRSAEncryption",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.ISOSignatureSpi$SHA256WithRSAEncryption",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.ISOSignatureSpi$SHA384WithRSAEncryption",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.ISOSignatureSpi$SHA512WithRSAEncryption",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.ISOSignatureSpi$SHA512_224WithRSAEncryption",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.ISOSignatureSpi$SHA512_256WithRSAEncryption",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.ISOSignatureSpi$WhirlpoolWithRSAEncryption",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyFactorySpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyPairGeneratorSpi$PSS",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.PSSSignatureSpi$PSSwithRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.PSSSignatureSpi$SHA1withRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.PSSSignatureSpi$SHA224withRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.PSSSignatureSpi$SHA256withRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.PSSSignatureSpi$SHA384withRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.PSSSignatureSpi$SHA3_224withRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.PSSSignatureSpi$SHA3_256withRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.PSSSignatureSpi$SHA3_384withRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.PSSSignatureSpi$SHA3_512withRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.PSSSignatureSpi$SHA512_224withRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.PSSSignatureSpi$SHA512_256withRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.PSSSignatureSpi$SHA512withRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.PSSSignatureSpi$nonePSS",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.X931SignatureSpi$RIPEMD128WithRSAEncryption",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.X931SignatureSpi$RIPEMD160WithRSAEncryption",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.X931SignatureSpi$SHA1WithRSAEncryption",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.X931SignatureSpi$SHA224WithRSAEncryption",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.X931SignatureSpi$SHA256WithRSAEncryption",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.X931SignatureSpi$SHA384WithRSAEncryption",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.X931SignatureSpi$SHA512WithRSAEncryption",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.X931SignatureSpi$SHA512_224WithRSAEncryption",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.X931SignatureSpi$SHA512_256WithRSAEncryption",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.X931SignatureSpi$WhirlpoolWithRSAEncryption",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.x509.CertificateFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.x509.KeyFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Blake2b$Blake2b160",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Blake2b$Blake2b256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Blake2b$Blake2b384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Blake2b$Blake2b512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Blake2b$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Blake2s$Blake2s128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Blake2s$Blake2s160",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Blake2s$Blake2s224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Blake2s$Blake2s256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Blake2s$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.DSTU7564$Digest256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.DSTU7564$Digest384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.DSTU7564$Digest512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.DSTU7564$HashMac256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.DSTU7564$HashMac384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.DSTU7564$HashMac512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.DSTU7564$KeyGenerator256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.DSTU7564$KeyGenerator384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.DSTU7564$KeyGenerator512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.DSTU7564$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.GOST3411",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.GOST3411$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.GOST3411$Digest2012_256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.GOST3411$Digest2012_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.GOST3411$HashMac",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.GOST3411$HashMac2012_256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.GOST3411$HashMac2012_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.GOST3411$KeyGenerator",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.GOST3411$KeyGenerator2012_256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.GOST3411$KeyGenerator2012_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.GOST3411$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.GOST3411$PBEWithMacKeyFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Haraka$Digest256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Haraka$Digest512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Haraka$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Keccak$Digest224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Keccak$Digest256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Keccak$Digest288",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Keccak$Digest384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Keccak$Digest512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Keccak$HashMac224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Keccak$HashMac256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Keccak$HashMac288",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Keccak$HashMac384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Keccak$HashMac512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Keccak$KeyGenerator224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Keccak$KeyGenerator256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Keccak$KeyGenerator288",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Keccak$KeyGenerator384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Keccak$KeyGenerator512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Keccak$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.MD2",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.MD2$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.MD2$HashMac",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.MD2$KeyGenerator",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.MD2$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.MD4",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.MD4$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.MD4$HashMac",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.MD4$KeyGenerator",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.MD4$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.MD5",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.MD5$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.MD5$HashMac",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.MD5$KeyGenerator",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.MD5$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD128",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD128$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD128$HashMac",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD128$KeyGenerator",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD128$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD160",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD160$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD160$HashMac",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD160$KeyGenerator",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD160$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD160$PBEWithHmac",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD160$PBEWithHmacKeyFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD256",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD256$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD256$HashMac",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD256$KeyGenerator",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD256$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD320",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD320$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD320$HashMac",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD320$KeyGenerator",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD320$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA1",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA1$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA1$HashMac",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA1$KeyGenerator",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA1$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA1$PBEWithMacKeyFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA1$SHA1Mac",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA224",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA224$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA224$HashMac",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA224$KeyGenerator",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA224$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA256",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA256$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA256$HashMac",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA256$KeyGenerator",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA256$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA256$PBEWithMacKeyFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA3",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA3$Digest224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA3$Digest256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA3$Digest384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA3$Digest512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA3$DigestShake128_256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA3$DigestShake256_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA3$HashMac224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA3$HashMac256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA3$HashMac384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA3$HashMac512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA3$KeyGenerator224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA3$KeyGenerator256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA3$KeyGenerator384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA3$KeyGenerator512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA3$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA384",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA384$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA384$HashMac",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA384$KeyGenerator",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA384$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA384$OldSHA384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA512",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA512$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA512$DigestT224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA512$DigestT256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA512$HashMac",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA512$HashMacT224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA512$HashMacT256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA512$KeyGenerator",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA512$KeyGeneratorT224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA512$KeyGeneratorT256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA512$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SHA512$OldSHA512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SM3",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SM3$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SM3$HashMac",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SM3$KeyGenerator",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.SM3$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$Digest_1024_1024",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$Digest_1024_384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$Digest_1024_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$Digest_256_128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$Digest_256_160",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$Digest_256_224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$Digest_256_256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$Digest_512_128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$Digest_512_160",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$Digest_512_224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$Digest_512_256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$Digest_512_384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$Digest_512_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$HMacKeyGenerator_1024_1024",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$HMacKeyGenerator_1024_384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$HMacKeyGenerator_1024_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$HMacKeyGenerator_256_128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$HMacKeyGenerator_256_160",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$HMacKeyGenerator_256_224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$HMacKeyGenerator_256_256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$HMacKeyGenerator_512_128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$HMacKeyGenerator_512_160",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$HMacKeyGenerator_512_224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$HMacKeyGenerator_512_256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$HMacKeyGenerator_512_384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$HMacKeyGenerator_512_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$HashMac_1024_1024",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$HashMac_1024_384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$HashMac_1024_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$HashMac_256_128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$HashMac_256_160",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$HashMac_256_224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$HashMac_256_256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$HashMac_512_128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$HashMac_512_160",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$HashMac_512_224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$HashMac_512_256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$HashMac_512_384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$HashMac_512_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$SkeinMacKeyGenerator_1024_1024",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$SkeinMacKeyGenerator_1024_384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$SkeinMacKeyGenerator_1024_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$SkeinMacKeyGenerator_256_128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$SkeinMacKeyGenerator_256_160",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$SkeinMacKeyGenerator_256_224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$SkeinMacKeyGenerator_256_256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$SkeinMacKeyGenerator_512_128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$SkeinMacKeyGenerator_512_160",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$SkeinMacKeyGenerator_512_224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$SkeinMacKeyGenerator_512_256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$SkeinMacKeyGenerator_512_384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$SkeinMacKeyGenerator_512_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$SkeinMac_1024_1024",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$SkeinMac_1024_384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$SkeinMac_1024_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$SkeinMac_256_128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$SkeinMac_256_160",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$SkeinMac_256_224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$SkeinMac_256_256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$SkeinMac_512_128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$SkeinMac_512_160",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$SkeinMac_512_224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$SkeinMac_512_256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$SkeinMac_512_384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Skein$SkeinMac_512_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Tiger",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Tiger$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Tiger$HashMac",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Tiger$KeyGenerator",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Tiger$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Tiger$PBEWithMacKeyFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Whirlpool",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Whirlpool$Digest",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Whirlpool$HashMac",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Whirlpool$KeyGenerator",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.digest.Whirlpool$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.drbg.DRBG$Default",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.drbg.DRBG$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.drbg.DRBG$NonceAndIV",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.keystore.BC$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.keystore.BCFKS$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.keystore.PKCS12$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi$BouncyCastleStore",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi$Std",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi$Version1",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.keystore.bcfks.BcFKSKeyStoreSpi$Def",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.keystore.bcfks.BcFKSKeyStoreSpi$DefShared",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.keystore.bcfks.BcFKSKeyStoreSpi$Std",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.keystore.bcfks.BcFKSKeyStoreSpi$StdShared",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.keystore.pkcs12.PKCS12KeyStoreSpi$BCPKCS12KeyStore",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.keystore.pkcs12.PKCS12KeyStoreSpi$BCPKCS12KeyStore3DES",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.keystore.pkcs12.PKCS12KeyStoreSpi$DefPKCS12KeyStore",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.keystore.pkcs12.PKCS12KeyStoreSpi$DefPKCS12KeyStore3DES",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$AESCCMMAC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$AESCMAC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$AESGMAC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$AlgParamGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$AlgParamGenCCM",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$AlgParamGenGCM",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$AlgParamsCCM",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$AlgParamsGCM",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$CBC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$CCM",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$CFB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$GCM",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$KeyFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$KeyGen128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$KeyGen192",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$KeyGen256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$OFB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithAESCBC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithMD5And128BitAESCBCOpenSSL",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithMD5And192BitAESCBCOpenSSL",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithMD5And256BitAESCBCOpenSSL",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithSHA1AESCBC128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithSHA1AESCBC192",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithSHA1AESCBC256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithSHA256AESCBC128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithSHA256AESCBC192",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithSHA256AESCBC256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithSHA256And128BitAESBC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithSHA256And192BitAESBC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithSHA256And256BitAESBC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithSHAAnd128BitAESBC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithSHAAnd192BitAESBC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$PBEWithSHAAnd256BitAESBC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$Poly1305",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$Poly1305KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$RFC3211Wrap",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$RFC5649Wrap",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$Wrap",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$WrapPad",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARC4",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARC4$Base",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARC4$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARC4$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARC4$PBEWithSHAAnd128Bit",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARC4$PBEWithSHAAnd128BitKeyFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARC4$PBEWithSHAAnd40Bit",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARC4$PBEWithSHAAnd40BitKeyFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARIA$AlgParamGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARIA$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARIA$CBC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARIA$CCM",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARIA$CFB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARIA$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARIA$GCM",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARIA$GMAC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARIA$KeyFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARIA$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARIA$KeyGen128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARIA$KeyGen192",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARIA$KeyGen256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARIA$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARIA$OFB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARIA$Poly1305",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARIA$Poly1305KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARIA$RFC3211Wrap",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARIA$Wrap",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ARIA$WrapPad",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Blowfish",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Blowfish$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Blowfish$CBC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Blowfish$CMAC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Blowfish$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Blowfish$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Blowfish$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST5",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST5$AlgParamGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST5$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST5$CBC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST5$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST5$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST5$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST6",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST6$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST6$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST6$GMAC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST6$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST6$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST6$Poly1305",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST6$Poly1305KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Camellia",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Camellia$AlgParamGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Camellia$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Camellia$CBC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Camellia$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Camellia$GMAC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Camellia$KeyFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Camellia$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Camellia$KeyGen128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Camellia$KeyGen192",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Camellia$KeyGen256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Camellia$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Camellia$Poly1305",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Camellia$Poly1305KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Camellia$RFC3211Wrap",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Camellia$Wrap",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ChaCha",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ChaCha$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ChaCha$AlgParamsCC1305",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ChaCha$Base",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ChaCha$Base7539",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ChaCha$BaseCC20P1305",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ChaCha$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ChaCha$KeyGen7539",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.ChaCha$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DES",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DES$AlgParamGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DES$CBC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DES$CBCMAC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DES$CMAC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DES$DES64",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DES$DES64with7816d4",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DES$DES9797Alg3",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DES$DES9797Alg3with7816d4",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DES$DESCFB8",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DES$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DES$KeyFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DES$KeyGenerator",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DES$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DES$PBEWithMD2",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DES$PBEWithMD2KeyFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DES$PBEWithMD5",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DES$PBEWithMD5KeyFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DES$PBEWithSHA1",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DES$PBEWithSHA1KeyFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DES$RFC3211",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$AlgParamGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$CBC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$CBCMAC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$CMAC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$DESede64",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$DESede64with7816d4",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$DESedeCFB8",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$KeyFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$KeyGenerator",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$KeyGenerator3",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$PBEWithSHAAndDES2Key",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$PBEWithSHAAndDES2KeyFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$PBEWithSHAAndDES3Key",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$PBEWithSHAAndDES3KeyFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$RFC3211",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$Wrap",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$AlgParamGen128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$AlgParamGen256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$AlgParamGen512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$CBC128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$CBC256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$CBC512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$CCM128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$CCM256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$CCM512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$CFB128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$CFB256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$CFB512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$CTR128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$CTR256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$CTR512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$ECB128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$ECB256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$ECB512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$ECB_128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$ECB_256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$ECB_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$GMAC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$GMAC128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$GMAC256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$GMAC512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$KeyGen128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$KeyGen256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$KeyGen512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$OFB128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$OFB256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$OFB512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$Wrap",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$Wrap128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$Wrap256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$Wrap512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST28147",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST28147$AlgParamGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST28147$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST28147$CryptoProWrap",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST28147$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST28147$GCFB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST28147$GostWrap",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST28147$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST28147$Mac",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST28147$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST3412_2015$CBC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST3412_2015$CTR",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST3412_2015$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST3412_2015$GCFB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST3412_2015$GCFB8",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST3412_2015$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST3412_2015$Mac",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST3412_2015$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST3412_2015$OFB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Grain128",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Grain128$Base",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Grain128$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Grain128$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Grainv1",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Grainv1$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Grainv1$Base",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Grainv1$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Grainv1$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.HC128",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.HC128$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.HC128$Base",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.HC128$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.HC128$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.HC256",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.HC256$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.HC256$Base",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.HC256$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.HC256$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.IDEA",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.IDEA$AlgParamGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.IDEA$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.IDEA$CBC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.IDEA$CFB8Mac",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.IDEA$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.IDEA$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.IDEA$Mac",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.IDEA$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.IDEA$PBEWithSHAAndIDEA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.IDEA$PBEWithSHAAndIDEAKeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Noekeon",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Noekeon$AlgParamGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Noekeon$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Noekeon$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Noekeon$GMAC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Noekeon$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Noekeon$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Noekeon$Poly1305",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Noekeon$Poly1305KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.OpenSSLPBKDF$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.OpenSSLPBKDF$PBKDF",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF1$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF1$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$PBKDF2with8BIT",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$PBKDF2withGOST3411",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$PBKDF2withSHA224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$PBKDF2withSHA256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$PBKDF2withSHA384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$PBKDF2withSHA3_224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$PBKDF2withSHA3_256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$PBKDF2withSHA3_384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$PBKDF2withSHA3_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$PBKDF2withSHA512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$PBKDF2withSM3",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$PBKDF2withUTF8",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPKCS12",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPKCS12$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPKCS12$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Poly1305$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Poly1305$Mac",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Poly1305$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$AlgParamGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$CBC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$CBCMAC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$CFB8MAC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$KeyGenerator",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$PBEWithMD2KeyFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$PBEWithMD5AndRC2",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$PBEWithMD5KeyFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$PBEWithSHA1AndRC2",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$PBEWithSHA1KeyFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$PBEWithSHAAnd128BitKeyFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$PBEWithSHAAnd128BitRC2",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$PBEWithSHAAnd40BitKeyFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$PBEWithSHAAnd40BitRC2",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$Wrap",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC5",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC5$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC5$CFB8Mac32",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC5$ECB32",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC5$ECB64",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC5$KeyGen32",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC5$KeyGen64",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC5$Mac32",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC5$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC6",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC6$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC6$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC6$GMAC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC6$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC6$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC6$Poly1305",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.RC6$Poly1305KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Rijndael",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Rijndael$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Rijndael$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Rijndael$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Rijndael$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SCRYPT$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SCRYPT$ScryptWithUTF8",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SEED",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SEED$AlgParamGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SEED$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SEED$CBC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SEED$CMAC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SEED$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SEED$GMAC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SEED$KeyFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SEED$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SEED$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SEED$Poly1305",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SEED$Poly1305KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SEED$Wrap",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SM4$AlgParamGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SM4$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SM4$CMAC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SM4$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SM4$GMAC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SM4$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SM4$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SM4$Poly1305",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SM4$Poly1305KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Salsa20",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Salsa20$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Salsa20$Base",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Salsa20$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Salsa20$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Serpent",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Serpent$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Serpent$CBC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Serpent$CFB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Serpent$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Serpent$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Serpent$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Serpent$OFB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Serpent$Poly1305",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Serpent$Poly1305KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Serpent$SerpentGMAC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Serpent$TAlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Serpent$TECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Serpent$TKeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Serpent$TSerpentGMAC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Shacal2$AlgParamGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Shacal2$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Shacal2$CMAC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Shacal2$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Shacal2$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Shacal2$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SipHash$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SipHash$Mac24",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SipHash$Mac48",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SipHash$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SipHash128$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SipHash128$Mac24",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SipHash128$Mac48",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.SipHash128$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Skipjack",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Skipjack$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Skipjack$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Skipjack$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Skipjack$Mac",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Skipjack$MacCFB8",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Skipjack$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.TEA",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.TEA$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.TEA$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.TEA$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.TEA$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.TLSKDF$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.TLSKDF$TLS10",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.TLSKDF$TLS11",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.TLSKDF$TLS12withSHA256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.TLSKDF$TLS12withSHA384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.TLSKDF$TLS12withSHA512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Threefish$AlgParams_1024",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Threefish$AlgParams_256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Threefish$AlgParams_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Threefish$CMAC_1024",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Threefish$CMAC_256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Threefish$CMAC_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Threefish$ECB_1024",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Threefish$ECB_256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Threefish$ECB_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Threefish$KeyGen_1024",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Threefish$KeyGen_256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Threefish$KeyGen_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Threefish$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Twofish",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Twofish$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Twofish$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Twofish$GMAC",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Twofish$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Twofish$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Twofish$PBEWithSHA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Twofish$PBEWithSHAKeyFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Twofish$Poly1305",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Twofish$Poly1305KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.VMPC",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.VMPC$Base",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.VMPC$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.VMPC$Mac",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.VMPC$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.VMPCKSA3",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.VMPCKSA3$Base",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.VMPCKSA3$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.VMPCKSA3$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.XSalsa20",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.XSalsa20$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.XSalsa20$Base",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.XSalsa20$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.XSalsa20$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.XTEA",
+  "allDeclaredConstructors":true
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.XTEA$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.XTEA$ECB",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.XTEA$KeyGen",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.XTEA$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Zuc$AlgParams",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Zuc$KeyGen128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Zuc$KeyGen256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Zuc$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Zuc$Zuc128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Zuc$Zuc256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Zuc$ZucMac128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Zuc$ZucMac256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Zuc$ZucMac256_32",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.Zuc$ZucMac256_64",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jcajce.provider.symmetric.util.IvAlgorithmParameters",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jce.provider.BouncyCastleProvider",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jce.provider.BrokenJCEBlockCipher$BrokePBEWithMD5AndDES",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jce.provider.BrokenJCEBlockCipher$BrokePBEWithSHA1AndDES",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jce.provider.BrokenJCEBlockCipher$OldPBEWithSHAAndTwofish",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jce.provider.CertStoreCollectionSpi",
+  "methods":[{"name":"<init>","parameterTypes":["java.security.cert.CertStoreParameters"] }]
+},
+{
+  "name":"org.bouncycastle.jce.provider.MultiCertStoreSpi",
+  "methods":[{"name":"<init>","parameterTypes":["java.security.cert.CertStoreParameters"] }]
+},
+{
+  "name":"org.bouncycastle.jce.provider.PKIXAttrCertPathBuilderSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jce.provider.PKIXAttrCertPathValidatorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jce.provider.PKIXCertPathBuilderSpi_8",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi_8",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jce.provider.X509AttrCertParser",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jce.provider.X509CRLParser",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jce.provider.X509CertPairParser",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jce.provider.X509CertParser",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jce.provider.X509LDAPCertStoreSpi"
+},
+{
+  "name":"org.bouncycastle.jce.provider.X509StoreAttrCertCollection",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jce.provider.X509StoreCRLCollection",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jce.provider.X509StoreCertCollection",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jce.provider.X509StoreCertPairCollection",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jce.provider.X509StoreLDAPAttrCerts",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jce.provider.X509StoreLDAPCRLs",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jce.provider.X509StoreLDAPCertPairs",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.jce.provider.X509StoreLDAPCerts",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.LMS$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.McEliece$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.NH$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.QTESLA$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.Rainbow$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.SPHINCS$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.XMSS$Mappings",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.lms.LMSKeyFactorySpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.lms.LMSKeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.lms.LMSSignatureSpi$generic",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.mceliece.McElieceCCA2KeyFactorySpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.mceliece.McElieceCCA2KeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.mceliece.McElieceFujisakiCipherSpi$McElieceFujisaki",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.mceliece.McElieceKeyFactorySpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.mceliece.McElieceKeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.mceliece.McEliecePKCSCipherSpi$McEliecePKCS",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.mceliece.McEliecePointchevalCipherSpi$McEliecePointcheval",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.newhope.KeyAgreementSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.newhope.NHKeyFactorySpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.newhope.NHKeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.qtesla.KeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.qtesla.QTESLAKeyFactorySpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.qtesla.SignatureSpi$PI",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.qtesla.SignatureSpi$PIII",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.qtesla.SignatureSpi$qTESLA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.rainbow.RainbowKeyFactorySpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.rainbow.RainbowKeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.rainbow.SignatureSpi$withSha224",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.rainbow.SignatureSpi$withSha256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.rainbow.SignatureSpi$withSha384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.rainbow.SignatureSpi$withSha512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.sphincs.SignatureSpi$withSha3_512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.sphincs.SignatureSpi$withSha512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.sphincs.Sphincs256KeyFactorySpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.sphincs.Sphincs256KeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.xmss.XMSSKeyFactorySpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.xmss.XMSSKeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.xmss.XMSSMTKeyFactorySpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.xmss.XMSSMTKeyPairGeneratorSpi",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.xmss.XMSSMTSignatureSpi$withSha256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.xmss.XMSSMTSignatureSpi$withSha256andPrehash",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.xmss.XMSSMTSignatureSpi$withSha512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.xmss.XMSSMTSignatureSpi$withSha512andPrehash",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.xmss.XMSSMTSignatureSpi$withShake128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.xmss.XMSSMTSignatureSpi$withShake128andPrehash",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.xmss.XMSSMTSignatureSpi$withShake256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.xmss.XMSSMTSignatureSpi$withShake256andPrehash",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.xmss.XMSSSignatureSpi$generic",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.xmss.XMSSSignatureSpi$withSha256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.xmss.XMSSSignatureSpi$withSha256andPrehash",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.xmss.XMSSSignatureSpi$withSha512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.xmss.XMSSSignatureSpi$withSha512andPrehash",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.xmss.XMSSSignatureSpi$withShake128",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.xmss.XMSSSignatureSpi$withShake128andPrehash",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.xmss.XMSSSignatureSpi$withShake256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"org.bouncycastle.pqc.jcajce.provider.xmss.XMSSSignatureSpi$withShake256andPrehash",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.pkcs.SignerInfo[]"
+},
+{
+  "name":"sun.security.provider.DSA$SHA1withDSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.provider.DSAKeyFactory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.provider.DSAKeyPairGenerator$Current",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.provider.DSAParameters",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.provider.JavaKeyStore$DualFormatJKS",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.provider.JavaKeyStore$JKS",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.provider.NativePRNG",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.provider.NativePRNG$Blocking",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.provider.SHA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.provider.SHA2$SHA256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.provider.SHA5$SHA384",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.provider.SHA5$SHA512",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.provider.X509Factory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.provider.certpath.CollectionCertStore",
+  "methods":[{"name":"<init>","parameterTypes":["java.security.cert.CertStoreParameters"] }]
+},
+{
+  "name":"sun.security.rsa.RSAKeyFactory$Legacy",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.rsa.RSASignature$SHA1withRSA",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"sun.security.util.ObjectIdentifier"
+},
+{
+  "name":"sun.security.x509.AuthorityInfoAccessExtension",
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
+},
+{
+  "name":"sun.security.x509.BasicConstraintsExtension",
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
+},
+{
+  "name":"sun.security.x509.CRLDistributionPointsExtension",
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
+},
+{
+  "name":"sun.security.x509.CertificateExtensions"
+},
+{
+  "name":"sun.security.x509.ExtendedKeyUsageExtension",
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
+},
+{
+  "name":"sun.security.x509.KeyUsageExtension",
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
+},
+{
+  "name":"sun.security.x509.NetscapeCertTypeExtension",
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
+},
+{
+  "name":"sun.security.x509.SubjectAlternativeNameExtension",
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
+},
+{
+  "name":"sun.security.x509.SubjectKeyIdentifierExtension",
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.Boolean","java.lang.Object"] }]
+}
+]
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/prov/resource-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/prov/resource-config.json
new file mode 100644
index 0000000..7075d65
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/prov/resource-config.json
@@ -0,0 +1,575 @@
+{
+  "resources":{
+  "includes":[
+    {"pattern":"\\QPKITS/certs/AllCertificatesNoPoliciesTest2EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/AllCertificatesSamePoliciesTest10EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/AllCertificatesSamePoliciesTest13EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/AllCertificatesanyPolicyTest11EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/AnyPolicyTest14EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/BadCRLIssuerNameCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/BadCRLSignatureCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/BadSignedCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/BadnotAfterDateCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/BadnotBeforeDateCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/BasicSelfIssuedCRLSigningKeyCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/BasicSelfIssuedCRLSigningKeyCRLCert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/BasicSelfIssuedNewKeyCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/BasicSelfIssuedNewKeyOldWithNewCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/BasicSelfIssuedOldKeyCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/BasicSelfIssuedOldKeyNewWithOldCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/CPSPointerQualifierTest20EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/DSACACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/DSAParametersInheritedCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/DifferentPoliciesTest12EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/DifferentPoliciesTest3EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/DifferentPoliciesTest4EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/DifferentPoliciesTest5EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/DifferentPoliciesTest7EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/DifferentPoliciesTest8EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/DifferentPoliciesTest9EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/GeneralizedTimeCRLnextUpdateCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/GoodCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/GoodsubCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/GoodsubCAPanyPolicyMapping1to2CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidBadCRLIssuerNameTest5EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidBadCRLSignatureTest4EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidBasicSelfIssuedCRLSigningKeyTest8EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidBasicSelfIssuedOldWithNewTest2EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidCASignatureTest2EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidCAnotAfterDateTest5EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidCAnotBeforeDateTest1EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidDNSnameConstraintsTest31EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidDNSnameConstraintsTest33EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidDNSnameConstraintsTest38EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidDNandRFC822nameConstraintsTest28EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidDNandRFC822nameConstraintsTest29EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidDNnameConstraintsTest10EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidDNnameConstraintsTest12EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidDNnameConstraintsTest13EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidDNnameConstraintsTest15EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidDNnameConstraintsTest16EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidDNnameConstraintsTest17EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidDNnameConstraintsTest20EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidDNnameConstraintsTest2EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidDNnameConstraintsTest3EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidDNnameConstraintsTest7EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidDNnameConstraintsTest8EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidDNnameConstraintsTest9EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidDSASignatureTest6EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidEESignatureTest3EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidEEnotAfterDateTest6EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidEEnotBeforeDateTest2EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidIDPwithindirectCRLTest23EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidLongSerialNumberTest18EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidMappingFromanyPolicyTest7EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidMappingToanyPolicyTest8EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidMissingCRLTest1EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidMissingbasicConstraintsTest1EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidNameChainingOrderTest2EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidNameChainingTest1EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidNegativeSerialNumberTest15EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidOldCRLnextUpdateTest11EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidPolicyMappingTest10EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidPolicyMappingTest2EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidPolicyMappingTest4EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidRFC822nameConstraintsTest22EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidRFC822nameConstraintsTest24EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidRFC822nameConstraintsTest26EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidRevokedCATest2EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidRevokedEETest3EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidSelfIssuedinhibitAnyPolicyTest10EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidSelfIssuedinhibitAnyPolicyTest8EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidSelfIssuedinhibitPolicyMappingTest10EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidSelfIssuedinhibitPolicyMappingTest11EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidSelfIssuedinhibitPolicyMappingTest8EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidSelfIssuedinhibitPolicyMappingTest9EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidSelfIssuedpathLenConstraintTest16EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidSelfIssuedrequireExplicitPolicyTest7EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidSelfIssuedrequireExplicitPolicyTest8EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidURInameConstraintsTest35EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidURInameConstraintsTest37EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidUnknownCRLEntryExtensionTest8EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidUnknownCRLExtensionTest10EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidUnknownCRLExtensionTest9EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidUnknownCriticalCertificateExtensionTest2EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidWrongCRLTest6EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidcAFalseTest2EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidcAFalseTest3EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidcRLIssuerTest34EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidcRLIssuerTest35EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvaliddeltaCRLIndicatorNoBaseTest1EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvaliddeltaCRLTest10EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvaliddeltaCRLTest3EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvaliddeltaCRLTest4EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvaliddeltaCRLTest6EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvaliddeltaCRLTest9EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvaliddistributionPointTest2EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvaliddistributionPointTest3EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvaliddistributionPointTest6EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvaliddistributionPointTest8EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvaliddistributionPointTest9EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidinhibitAnyPolicyTest1EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidinhibitAnyPolicyTest4EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidinhibitAnyPolicyTest5EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidinhibitAnyPolicyTest6EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidinhibitPolicyMappingTest1EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidinhibitPolicyMappingTest3EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidinhibitPolicyMappingTest5EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidinhibitPolicyMappingTest6EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidkeyUsageCriticalcRLSignFalseTest4EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidkeyUsageCriticalkeyCertSignFalseTest1EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidkeyUsageNotCriticalcRLSignFalseTest5EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidkeyUsageNotCriticalkeyCertSignFalseTest2EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidonlyContainsAttributeCertsTest14EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidonlyContainsCACertsTest12EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidonlyContainsUserCertsTest11EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidonlySomeReasonsTest15EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidonlySomeReasonsTest16EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidonlySomeReasonsTest17EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidonlySomeReasonsTest20EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidonlySomeReasonsTest21EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidpathLenConstraintTest10EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidpathLenConstraintTest11EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidpathLenConstraintTest12EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidpathLenConstraintTest5EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidpathLenConstraintTest6EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidpathLenConstraintTest9EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/Invalidpre2000CRLnextUpdateTest12EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/Invalidpre2000UTCEEnotAfterDateTest7EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidrequireExplicitPolicyTest3EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/InvalidrequireExplicitPolicyTest5EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/LongSerialNumberCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/Mapping1to2CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/MappingFromanyPolicyCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/MappingToanyPolicyCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/MissingbasicConstraintsCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/NameOrderingCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/NegativeSerialNumberCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/NoCRLCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/NoPoliciesCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/NoissuingDistributionPointCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/OldCRLnextUpdateCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/OverlappingPoliciesTest6EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/P12Mapping1to3CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/P12Mapping1to3subCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/P12Mapping1to3subsubCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/P1Mapping1to234CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/P1Mapping1to234subCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/P1anyPolicyMapping1to2CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/PanyPolicyMapping1to2CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/PoliciesP1234CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/PoliciesP1234subCAP123Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/PoliciesP1234subsubCAP123P12Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/PoliciesP123CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/PoliciesP123subCAP12Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/PoliciesP123subsubCAP12P1Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/PoliciesP123subsubCAP12P2Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/PoliciesP123subsubsubCAP12P2P1Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/PoliciesP12CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/PoliciesP12subCAP1Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/PoliciesP12subsubCAP1P2Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/PoliciesP2subCA2Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/PoliciesP2subCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/PoliciesP3CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/RFC3280MandatoryAttributeTypesCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/RFC3280OptionalAttributeTypesCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/RevokedsubCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/RolloverfromPrintableStringtoUTF8StringCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/TrustAnchorRootCertificate.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/TwoCRLsCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/UIDCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/UTF8StringCaseInsensitiveMatchCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/UTF8StringEncodedNamesCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/UnknownCRLEntryExtensionCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/UnknownCRLExtensionCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/UserNoticeQualifierTest15EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/UserNoticeQualifierTest16EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/UserNoticeQualifierTest17EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/UserNoticeQualifierTest18EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/UserNoticeQualifierTest19EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidBasicSelfIssuedNewWithOldTest3EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidBasicSelfIssuedOldWithNewTest1EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidCertificatePathTest1EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidDNSnameConstraintsTest30EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidDNSnameConstraintsTest32EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidDNandRFC822nameConstraintsTest27EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidDNnameConstraintsTest11EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidDNnameConstraintsTest14EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidDNnameConstraintsTest18EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidDNnameConstraintsTest19EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidDNnameConstraintsTest1EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidDNnameConstraintsTest4EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidDNnameConstraintsTest5EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidDNnameConstraintsTest6EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidDSAParameterInheritanceTest5EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidDSASignaturesTest4EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidGeneralizedTimeCRLnextUpdateTest13EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidGeneralizedTimenotAfterDateTest8EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidGeneralizedTimenotBeforeDateTest4EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidIDPwithindirectCRLTest22EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidLongSerialNumberTest16EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidLongSerialNumberTest17EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidNameChainingCapitalizationTest5EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidNameChainingWhitespaceTest3EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidNameChainingWhitespaceTest4EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidNameUIDsTest6EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidNegativeSerialNumberTest14EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidNoissuingDistributionPointTest10EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidPolicyMappingTest11EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidPolicyMappingTest12EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidPolicyMappingTest13EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidPolicyMappingTest14EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidPolicyMappingTest1EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidPolicyMappingTest3EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidPolicyMappingTest5EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidPolicyMappingTest6EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidPolicyMappingTest9EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidRFC3280MandatoryAttributeTypesTest7EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidRFC3280OptionalAttributeTypesTest8EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidRFC822nameConstraintsTest21EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidRFC822nameConstraintsTest23EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidRFC822nameConstraintsTest25EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidRolloverfromPrintableStringtoUTF8StringTest10EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidSelfIssuedinhibitAnyPolicyTest7EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidSelfIssuedinhibitAnyPolicyTest9EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidSelfIssuedinhibitPolicyMappingTest7EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidSelfIssuedpathLenConstraintTest15EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidSelfIssuedpathLenConstraintTest17EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidSelfIssuedrequireExplicitPolicyTest6EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidTwoCRLsTest7EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidURInameConstraintsTest34EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidURInameConstraintsTest36EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidUTF8StringCaseInsensitiveMatchTest11EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidUTF8StringEncodedNamesTest9EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidUnknownNotCriticalCertificateExtensionTest1EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidbasicConstraintsNotCriticalTest4EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValiddeltaCRLTest2EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValiddeltaCRLTest5EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValiddeltaCRLTest7EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValiddeltaCRLTest8EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValiddistributionPointTest1EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValiddistributionPointTest4EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValiddistributionPointTest5EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValiddistributionPointTest7EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidinhibitAnyPolicyTest2EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidinhibitPolicyMappingTest2EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidinhibitPolicyMappingTest4EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidkeyUsageNotCriticalTest3EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidonlyContainsCACertsTest13EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidonlySomeReasonsTest18EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidonlySomeReasonsTest19EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidpathLenConstraintTest13EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidpathLenConstraintTest14EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidpathLenConstraintTest7EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidpathLenConstraintTest8EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/Validpre2000UTCnotBeforeDateTest3EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidrequireExplicitPolicyTest1EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidrequireExplicitPolicyTest2EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/ValidrequireExplicitPolicyTest4EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/WrongCRLCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/anyPolicyCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/basicConstraintsCriticalcAFalseCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/basicConstraintsNotCriticalCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/basicConstraintsNotCriticalcAFalseCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/deltaCRLCA1Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/deltaCRLCA2Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/deltaCRLCA3Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/deltaCRLIndicatorNoBaseCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/distributionPoint1CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/distributionPoint2CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/indirectCRLCA1Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/indirectCRLCA5Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/inhibitAnyPolicy0CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/inhibitAnyPolicy1CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/inhibitAnyPolicy1SelfIssuedCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/inhibitAnyPolicy1SelfIssuedsubCA2Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/inhibitAnyPolicy1subCA1Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/inhibitAnyPolicy1subCA2Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/inhibitAnyPolicy1subCAIAP5Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/inhibitAnyPolicy1subsubCA2Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/inhibitAnyPolicy5CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/inhibitAnyPolicy5subCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/inhibitAnyPolicy5subsubCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/inhibitAnyPolicyTest3EE.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/inhibitPolicyMapping0CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/inhibitPolicyMapping0subCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/inhibitPolicyMapping1P12CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/inhibitPolicyMapping1P12subCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/inhibitPolicyMapping1P12subCAIPM5Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/inhibitPolicyMapping1P12subsubCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/inhibitPolicyMapping1P12subsubCAIPM5Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/inhibitPolicyMapping1P1CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/inhibitPolicyMapping1P1SelfIssuedCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/inhibitPolicyMapping1P1SelfIssuedsubCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/inhibitPolicyMapping1P1subCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/inhibitPolicyMapping1P1subsubCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/inhibitPolicyMapping5CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/inhibitPolicyMapping5subCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/inhibitPolicyMapping5subsubCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/inhibitPolicyMapping5subsubsubCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/keyUsageCriticalcRLSignFalseCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/keyUsageCriticalkeyCertSignFalseCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/keyUsageNotCriticalCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/keyUsageNotCriticalcRLSignFalseCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/keyUsageNotCriticalkeyCertSignFalseCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/nameConstraintsDN1CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/nameConstraintsDN1SelfIssuedCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/nameConstraintsDN1subCA1Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/nameConstraintsDN1subCA2Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/nameConstraintsDN1subCA3Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/nameConstraintsDN2CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/nameConstraintsDN3CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/nameConstraintsDN3subCA1Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/nameConstraintsDN3subCA2Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/nameConstraintsDN4CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/nameConstraintsDN5CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/nameConstraintsDNS1CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/nameConstraintsDNS2CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/nameConstraintsRFC822CA1Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/nameConstraintsRFC822CA2Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/nameConstraintsRFC822CA3Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/nameConstraintsURI1CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/nameConstraintsURI2CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/onlyContainsAttributeCertsCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/onlyContainsCACertsCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/onlyContainsUserCertsCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/onlySomeReasonsCA1Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/onlySomeReasonsCA2Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/onlySomeReasonsCA3Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/onlySomeReasonsCA4Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/pathLenConstraint0CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/pathLenConstraint0SelfIssuedCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/pathLenConstraint0subCA2Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/pathLenConstraint0subCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/pathLenConstraint1CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/pathLenConstraint1SelfIssuedCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/pathLenConstraint1SelfIssuedsubCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/pathLenConstraint1subCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/pathLenConstraint6CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/pathLenConstraint6subCA0Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/pathLenConstraint6subCA1Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/pathLenConstraint6subCA4Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/pathLenConstraint6subsubCA00Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/pathLenConstraint6subsubCA11Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/pathLenConstraint6subsubCA41Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/pathLenConstraint6subsubsubCA11XCert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/pathLenConstraint6subsubsubCA41XCert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/pre2000CRLnextUpdateCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/requireExplicitPolicy0CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/requireExplicitPolicy0subCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/requireExplicitPolicy0subsubCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/requireExplicitPolicy0subsubsubCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/requireExplicitPolicy10CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/requireExplicitPolicy10subCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/requireExplicitPolicy10subsubCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/requireExplicitPolicy10subsubsubCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/requireExplicitPolicy2CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/requireExplicitPolicy2SelfIssuedCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/requireExplicitPolicy2SelfIssuedsubCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/requireExplicitPolicy2subCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/requireExplicitPolicy4CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/requireExplicitPolicy4subCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/requireExplicitPolicy4subsubCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/requireExplicitPolicy4subsubsubCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/requireExplicitPolicy5CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/requireExplicitPolicy5subCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/requireExplicitPolicy5subsubCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/requireExplicitPolicy5subsubsubCACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/requireExplicitPolicy7CACert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/requireExplicitPolicy7subCARE2Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/requireExplicitPolicy7subsubCARE2RE4Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/certs/requireExplicitPolicy7subsubsubCARE2RE4Cert.crt\\E"}, 
+    {"pattern":"\\QPKITS/crls/BadCRLIssuerNameCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/BadCRLSignatureCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/BadSignedCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/BadnotAfterDateCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/BadnotBeforeDateCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/BasicSelfIssuedCRLSigningKeyCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/BasicSelfIssuedCRLSigningKeyCRLCertCRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/BasicSelfIssuedNewKeyCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/BasicSelfIssuedOldKeyCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/BasicSelfIssuedOldKeySelfIssuedCertCRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/DSACACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/DSAParametersInheritedCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/GeneralizedTimeCRLnextUpdateCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/GoodCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/GoodsubCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/GoodsubCAPanyPolicyMapping1to2CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/LongSerialNumberCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/Mapping1to2CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/MappingFromanyPolicyCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/MappingToanyPolicyCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/MissingbasicConstraintsCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/NameOrderCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/NegativeSerialNumberCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/NoPoliciesCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/NoissuingDistributionPointCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/OldCRLnextUpdateCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/P12Mapping1to3CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/P12Mapping1to3subCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/P12Mapping1to3subsubCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/P1Mapping1to234CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/P1Mapping1to234subCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/P1anyPolicyMapping1to2CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/PanyPolicyMapping1to2CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/PoliciesP1234CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/PoliciesP1234subCAP123CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/PoliciesP1234subsubCAP123P12CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/PoliciesP123CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/PoliciesP123subCAP12CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/PoliciesP123subsubCAP12P1CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/PoliciesP123subsubCAP2P2CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/PoliciesP123subsubsubCAP12P2P1CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/PoliciesP12CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/PoliciesP12subCAP1CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/PoliciesP12subsubCAP1P2CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/PoliciesP2subCA2CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/PoliciesP2subCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/PoliciesP3CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/RFC3280MandatoryAttributeTypesCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/RFC3280OptionalAttributeTypesCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/RevokedsubCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/RolloverfromPrintableStringtoUTF8StringCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/TrustAnchorRootCRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/TwoCRLsCABadCRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/TwoCRLsCAGoodCRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/UIDCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/UTF8StringCaseInsensitiveMatchCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/UTF8StringEncodedNamesCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/UnknownCRLEntryExtensionCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/UnknownCRLExtensionCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/WrongCRLCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/anyPolicyCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/basicConstraintsCriticalcAFalseCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/basicConstraintsNotCriticalCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/basicConstraintsNotCriticalcAFalseCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/deltaCRLCA1CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/deltaCRLCA1deltaCRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/deltaCRLCA2CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/deltaCRLCA2deltaCRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/deltaCRLCA3CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/deltaCRLCA3deltaCRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/deltaCRLIndicatorNoBaseCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/distributionPoint1CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/distributionPoint2CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/indirectCRLCA1CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/indirectCRLCA5CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/inhibitAnyPolicy0CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/inhibitAnyPolicy1CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/inhibitAnyPolicy1subCA1CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/inhibitAnyPolicy1subCA2CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/inhibitAnyPolicy1subCAIAP5CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/inhibitAnyPolicy1subsubCA2CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/inhibitAnyPolicy5CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/inhibitAnyPolicy5subCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/inhibitAnyPolicy5subsubCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/inhibitPolicyMapping0CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/inhibitPolicyMapping0subCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/inhibitPolicyMapping1P12CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/inhibitPolicyMapping1P12subCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/inhibitPolicyMapping1P12subCAIPM5CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/inhibitPolicyMapping1P12subsubCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/inhibitPolicyMapping1P12subsubCAIPM5CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/inhibitPolicyMapping1P1CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/inhibitPolicyMapping1P1subCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/inhibitPolicyMapping1P1subsubCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/inhibitPolicyMapping5CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/inhibitPolicyMapping5subCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/inhibitPolicyMapping5subsubCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/inhibitPolicyMapping5subsubsubCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/keyUsageCriticalcRLSignFalseCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/keyUsageCriticalkeyCertSignFalseCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/keyUsageNotCriticalCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/keyUsageNotCriticalcRLSignFalseCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/keyUsageNotCriticalkeyCertSignFalseCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/nameConstraintsDN1CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/nameConstraintsDN1subCA1CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/nameConstraintsDN1subCA2CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/nameConstraintsDN1subCA3CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/nameConstraintsDN2CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/nameConstraintsDN3CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/nameConstraintsDN3subCA1CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/nameConstraintsDN3subCA2CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/nameConstraintsDN4CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/nameConstraintsDN5CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/nameConstraintsDNS1CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/nameConstraintsDNS2CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/nameConstraintsRFC822CA1CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/nameConstraintsRFC822CA2CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/nameConstraintsRFC822CA3CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/nameConstraintsURI1CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/nameConstraintsURI2CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/onlyContainsAttributeCertsCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/onlyContainsCACertsCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/onlyContainsUserCertsCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/onlySomeReasonsCA1compromiseCRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/onlySomeReasonsCA1otherreasonsCRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/onlySomeReasonsCA2CRL1.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/onlySomeReasonsCA2CRL2.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/onlySomeReasonsCA3compromiseCRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/onlySomeReasonsCA3otherreasonsCRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/onlySomeReasonsCA4compromiseCRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/onlySomeReasonsCA4otherreasonsCRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/pathLenConstraint0CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/pathLenConstraint0subCA2CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/pathLenConstraint0subCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/pathLenConstraint1CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/pathLenConstraint1subCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/pathLenConstraint6CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/pathLenConstraint6subCA0CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/pathLenConstraint6subCA1CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/pathLenConstraint6subCA4CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/pathLenConstraint6subsubCA00CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/pathLenConstraint6subsubCA11CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/pathLenConstraint6subsubCA41CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/pathLenConstraint6subsubsubCA11XCRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/pathLenConstraint6subsubsubCA41XCRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/pre2000CRLnextUpdateCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/requireExplicitPolicy0CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/requireExplicitPolicy0subCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/requireExplicitPolicy0subsubCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/requireExplicitPolicy0subsubsubCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/requireExplicitPolicy10CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/requireExplicitPolicy10subCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/requireExplicitPolicy10subsubCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/requireExplicitPolicy10subsubsubCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/requireExplicitPolicy2CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/requireExplicitPolicy2subCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/requireExplicitPolicy4CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/requireExplicitPolicy4subCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/requireExplicitPolicy4subsubCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/requireExplicitPolicy4subsubsubCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/requireExplicitPolicy5CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/requireExplicitPolicy5subCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/requireExplicitPolicy5subsubCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/requireExplicitPolicy5subsubsubCACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/requireExplicitPolicy7CACRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/requireExplicitPolicy7subCARE2CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/requireExplicitPolicy7subsubCARE2RE4CRL.crl\\E"}, 
+    {"pattern":"\\QPKITS/crls/requireExplicitPolicy7subsubsubCARE2RE4CRL.crl\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/jce/provider/test/CERT_CI_ECDSA_NIST.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/jce/provider/test/CERT_EUICC_ECDSA_NIST.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/jce/provider/test/CERT_EUM_ECDSA_NIST.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/jce/provider/test/ThawteSGCCA.cer\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/jce/provider/test/ThawteSGCCA.crl\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/jce/provider/test/cert_chain.txt\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/jce/provider/test/cert_chain_nl.txt\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/jce/provider/test/qvRooCa3.crt\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/jce/provider/test/rsa3/self-testcase-A.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/jce/provider/test/rsa3/self-testcase-B.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/jce/provider/test/rsa3/self-testcase-C.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/jce/provider/test/rsa3/self-testcase-D.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/jce/provider/test/rsa3/self-testcase-E.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/jce/provider/test/rsa3/self-testcase-F.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/jce/provider/test/rsa3/self-testcase-G.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/jce/provider/test/rsa3/self-testcase-H.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/jce/provider/test/rsa3/self-testcase-I.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/jce/provider/test/rsa3/self-testcase-J.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/jce/provider/test/rsa3/self-testcase-L.pem\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/jce/provider/test/suvaEE.crt\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/jce/provider/test/suvaEmail1.crt\\E"}, 
+    {"pattern":"\\Qorg/bouncycastle/jce/provider/test/suvaRoot1.crt\\E"}, 
+    {"pattern":"\\Qorg/slf4j/impl/StaticLoggerBinder.class\\E"}
+  ]},
+  "bundles":[{"name":"org.bouncycastle.x509.CertPathReviewerMessages"}]
+}
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/prov/serialization-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/prov/serialization-config.json
new file mode 100644
index 0000000..e6d542e
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/prov/serialization-config.json
@@ -0,0 +1,224 @@
+[
+  {
+  "name":"java.security.cert.X509Certificate"
+  },
+  {
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ecgost.BCECGOST3410PrivateKey"
+  },
+  {
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.BCXDHPublicKey"
+  },
+  {
+  "name":"javax.crypto.spec.SecretKeySpec"
+  },
+  {
+  "name":"java.security.cert.CertPath$CertPathRep"
+  },
+  {
+  "name":"org.bouncycastle.pqc.crypto.xmss.XMSSNode"
+  },
+  {
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.elgamal.BCElGamalPrivateKey"
+  },
+  {
+  "name":"java.lang.Integer"
+  },
+  {
+  "name":"java.util.Vector"
+  },
+  {
+  "name":"org.bouncycastle.pqc.jcajce.provider.xmss.BCXMSSMTPublicKey"
+  },
+  {
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.BCDHPublicKey"
+  },
+  {
+  "name":"org.bouncycastle.pqc.crypto.xmss.BDSTreeHash"
+  },
+  {
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.gost.BCGOST3410PrivateKey"
+  },
+  {
+  "name":"java.math.BigInteger"
+  },
+  {
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.BCECPublicKey"
+  },
+  {
+  "name":"org.bouncycastle.pqc.jcajce.provider.qtesla.BCqTESLAPublicKey"
+  },
+  {
+  "name":"org.bouncycastle.jce.provider.JDKDSAPrivateKey"
+  },
+  {
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.BCDSAPrivateKey"
+  },
+  {
+  "name":"org.bouncycastle.pqc.jcajce.provider.xmss.BCXMSSMTPrivateKey"
+  },
+  {
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.BCECPrivateKey"
+  },
+  {
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.BCRSAPrivateCrtKey"
+  },
+  {
+  "name":"org.bouncycastle.jce.provider.JCEDHPrivateKey"
+  },
+  {
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.BCXDHPrivateKey"
+  },
+  {
+  "name":"org.bouncycastle.jce.provider.JDKDSAPublicKey"
+  },
+  {
+  "name":"java.security.cert.Certificate$CertificateRep"
+  },
+  {
+  "name":"org.bouncycastle.pqc.jcajce.provider.newhope.BCNHPublicKey"
+  },
+  {
+  "name":"java.security.cert.Certificate"
+  },
+  {
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ecgost12.BCECGOST3410_2012PrivateKey"
+  },
+  {
+  "name":"org.bouncycastle.pqc.crypto.xmss.BDS"
+  },
+  {
+  "name":"org.bouncycastle.pqc.jcajce.provider.sphincs.BCSphincs256PrivateKey"
+  },
+  {
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ecgost12.BCECGOST3410_2012PublicKey"
+  },
+  {
+  "name":"java.lang.Throwable"
+  },
+  {
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.BCRSAPrivateKey"
+  },
+  {
+  "name":"[B"
+  },
+  {
+  "name":"org.bouncycastle.jce.provider.JCERSAPrivateCrtKey"
+  },
+  {
+  "name":"java.lang.Error"
+  },
+  {
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dsa.BCDSAPublicKey"
+  },
+  {
+  "name":"java.lang.AssertionError"
+  },
+  {
+  "name":"java.util.Stack"
+  },
+  {
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dstu.BCDSTU4145PrivateKey"
+  },
+  {
+  "name":"java.util.ArrayList"
+  },
+  {
+  "name":"java.util.HashSet"
+  },
+  {
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.x509.X509CertificateObject"
+  },
+  {
+  "name":"org.bouncycastle.jce.provider.JCEElGamalPublicKey"
+  },
+  {
+  "name":"java.lang.StackTraceElement"
+  },
+  {
+  "name":"org.bouncycastle.pqc.jcajce.provider.qtesla.BCqTESLAPrivateKey"
+  },
+  {
+  "name":"java.lang.String"
+  },
+  {
+  "name":"java.lang.Number"
+  },
+  {
+  "name":"java.util.LinkedList"
+  },
+  {
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.BCEdDSAPrivateKey"
+  },
+  {
+  "name":"java.util.LinkedHashSet"
+  },
+  {
+  "name":"java.util.Hashtable"
+  },
+  {
+  "name":"org.bouncycastle.jce.provider.JCERSAPrivateKey"
+  },
+  {
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.elgamal.BCElGamalPublicKey"
+  },
+  {
+  "name":"[Ljava.lang.StackTraceElement;"
+  },
+  {
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.ecgost.BCECGOST3410PublicKey"
+  },
+  {
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dstu.BCDSTU4145PublicKey"
+  },
+  {
+  "name":"java.security.cert.CertPath"
+  },
+  {
+  "name":"org.bouncycastle.pqc.crypto.xmss.BDSStateMap"
+  },
+  {
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.BCDHPrivateKey"
+  },
+  {
+  "name":"[Ljava.lang.Object;"
+  },
+  {
+  "name":"org.bouncycastle.jce.provider.JCEElGamalPrivateKey"
+  },
+  {
+  "name":"org.bouncycastle.pqc.jcajce.provider.xmss.BCXMSSPrivateKey"
+  },
+  {
+  "name":"java.util.Collections$EmptyList"
+  },
+  {
+  "name":"java.util.TreeMap"
+  },
+  {
+  "name":"org.bouncycastle.pqc.jcajce.provider.xmss.BCXMSSPublicKey"
+  },
+  {
+  "name":"org.bouncycastle.pqc.jcajce.provider.newhope.BCNHPrivateKey"
+  },
+  {
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.BCRSAPublicKey"
+  },
+  {
+  "name":"org.bouncycastle.pqc.jcajce.provider.sphincs.BCSphincs256PublicKey"
+  },
+  {
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.gost.BCGOST3410PublicKey"
+  },
+  {
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.x509.X509CertificateImpl"
+  },
+  {
+  "name":"org.bouncycastle.jce.provider.JCEDHPublicKey"
+  },
+  {
+  "name":"org.bouncycastle.jce.provider.JCERSAPublicKey"
+  },
+  {
+  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.BCEdDSAPublicKey"
+  }
+]
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/tls/jni-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/tls/jni-config.json
new file mode 100644
index 0000000..0d4f101
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/tls/jni-config.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/tls/predefined-classes-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/tls/predefined-classes-config.json
new file mode 100644
index 0000000..0e79b2c
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/tls/predefined-classes-config.json
@@ -0,0 +1,8 @@
+[
+  {
+    "type":"agent-extracted",
+    "classes":[
+    ]
+  }
+]
+
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/tls/proxy-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/tls/proxy-config.json
new file mode 100644
index 0000000..0d4f101
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/tls/proxy-config.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/tls/reflect-config.json b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/tls/reflect-config.json
new file mode 100644
index 0000000..ef9544b
--- /dev/null
+++ b/third-party-libs/bouncycastle-native/src/main/resources/configs/1.66/tls/reflect-config.json
@@ -0,0 +1,898 @@
+[
+{
+  "name":"byte[]"
+},
+{
+  "name":"com.sun.crypto.provider.AESCipher$General",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.DHParameters",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.HmacCore$HmacSHA256",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.HmacSHA1",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.PBEKeyFactory$PBEWithMD5AndDES",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.PBEParameters",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.PKCS12PBECipherCore$PBEWithSHA1AndDESede",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.RSACipher",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.TlsKeyMaterialGenerator",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.TlsMasterSecretGenerator",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"com.sun.crypto.provider.TlsPrfGenerator$V12",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "name":"java.lang.String"
+},
+{
+  "name":"java.lang.String[]"
+},
+{
+  "name":"java.security.AlgorithmParametersSpi"
+},
+{
+  "name":"java.security.KeyStoreSpi"
+},
+{
+  "name":"java.security.MessageDigestSpi"
+},
+{
+  "name":"java.security.SecureRandom",
+  "methods":[{"name":"getInstanceStrong","parameterTypes":[] }]
+},
+{
+  "name":"java.security.SecureRandomParameters"
+},
+{
+  "name":"java.security.cert.CertStoreParameters"
+},
+{
+  "name":"java.security.cert.PKIXRevocationChecker"
+},
+{
+  "name":"java.security.interfaces.ECPrivateKey"
+},
+{
+  "name":"java.security.interfaces.ECPublicKey"
+},
+{
+  "name":"java.security.interfaces.RSAPrivateKey"
+},
... 12196 lines suppressed ...


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@teaclave.apache.org
For additional commands, e-mail: commits-help@teaclave.apache.org