summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2020-04-28 20:26:07 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2020-04-28 20:26:07 +0000
commitefff95a53b9e6bb28881555ffa9c611a685725c1 (patch)
tree0216d428d963507374a444f568ff2b53ae0cf266
parent4da5ca807ec753ef0dba496f8db65738084c42bb (diff)
parentb7bc4c1a1a355ba5f92bd70520eb2af461324a14 (diff)
downloadhonggfuzz-android12-mainline-tzdata-release.tar.gz
Change-Id: I369c8e23c547edd4b09104804491059c17902f3d
-rw-r--r--CHANGELOG6
-rw-r--r--METADATA13
-rw-r--r--Makefile18
-rw-r--r--README.md4
-rw-r--r--cmdline.c18
-rw-r--r--display.c8
-rw-r--r--examples/bind/bind-9.13.5-W1.patch6
-rw-r--r--examples/bind/bind-9.14.1.patch390
-rw-r--r--examples/openssl/client.c906
-rw-r--r--examples/openssl/hf_ssl_lib.h6
-rwxr-xr-xexamples/openssl/make.sh4
-rw-r--r--examples/openssl/server.c916
-rw-r--r--fuzz.c46
-rw-r--r--hfuzz_cc/hfuzz-cc.c51
-rw-r--r--honggfuzz.c14
-rw-r--r--honggfuzz.h6
-rw-r--r--input.c49
-rw-r--r--input.h5
-rw-r--r--libhfcommon/files.h4
-rw-r--r--libhfcommon/util.c25
-rw-r--r--libhfcommon/util.h3
-rw-r--r--libhfnetdriver/netdriver.c26
-rw-r--r--libhfuzz/memorycmp.c16
-rw-r--r--libhfuzz/persistent.c3
-rw-r--r--linux/arch.c8
-rw-r--r--linux/perf.c3
-rw-r--r--linux/pt.c4
-rw-r--r--linux/trace.c2
-rw-r--r--mac/arch.c107
-rw-r--r--mangle.c7
-rw-r--r--netbsd/arch.c7
-rw-r--r--report.c4
-rw-r--r--socketfuzzer.c51
-rw-r--r--subproc.c27
-rw-r--r--subproc.h3
35 files changed, 1088 insertions, 1678 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 9863c7cd..8d6e6f7f 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,9 +1,3 @@
-2019-05-22 - Version 1.9
- - Don't include netdriver if not needed
- - Updated examples (bind/openssl)
- - Add missing TEMP_FAILURE_RETRY() wrappers
- - Add additional _HF_STATE_DYNAMIC_SWITCH_TO_MAIN state
-
2019-02-23 - Version 1.8
- Native support for NetBSD
- Multiple smaller changes wrt threading - e.g. introducing the signal thread
diff --git a/METADATA b/METADATA
index 26c5a643..ae3d0605 100644
--- a/METADATA
+++ b/METADATA
@@ -1,5 +1,8 @@
name: "Hongfuzz"
-description: "A security oriented, feedback-driven, evolutionary, easy-to-use fuzzer with interesting analysis options."
+description:
+ "A security oriented, feedback-driven, evolutionary, easy-to-use fuzzer "
+ "with interesting analysis options."
+
third_party {
url {
type: HOMEPAGE
@@ -9,11 +12,7 @@ third_party {
type: GIT
value: "https://github.com/google/honggfuzz"
}
- version: "1.9"
+ version: "1.1"
+ last_upgrade_date { year: 2017 month: 9 day: 10 }
license_type: NOTICE
- last_upgrade_date {
- year: 2019
- month: 5
- day: 22
- }
}
diff --git a/Makefile b/Makefile
index 73d95e0a..fc5ea74e 100644
--- a/Makefile
+++ b/Makefile
@@ -403,9 +403,9 @@ report.o: libhfcommon/log.h
sanitizers.o: sanitizers.h honggfuzz.h libhfcommon/util.h cmdline.h
sanitizers.o: libhfcommon/common.h libhfcommon/files.h libhfcommon/common.h
sanitizers.o: libhfcommon/log.h
-socketfuzzer.o: socketfuzzer.h honggfuzz.h libhfcommon/util.h
-socketfuzzer.o: libhfcommon/common.h libhfcommon/files.h libhfcommon/common.h
-socketfuzzer.o: libhfcommon/log.h libhfcommon/ns.h
+socketfuzzer.o: honggfuzz.h libhfcommon/util.h libhfcommon/common.h
+socketfuzzer.o: libhfcommon/files.h libhfcommon/common.h libhfcommon/log.h
+socketfuzzer.o: libhfcommon/ns.h socketfuzzer.h
subproc.o: subproc.h honggfuzz.h libhfcommon/util.h arch.h fuzz.h
subproc.o: libhfcommon/common.h libhfcommon/files.h libhfcommon/common.h
subproc.o: libhfcommon/log.h
@@ -434,10 +434,10 @@ libhfuzz/linux.o: libhfcommon/common.h libhfcommon/files.h
libhfuzz/linux.o: libhfcommon/common.h libhfcommon/log.h libhfcommon/ns.h
libhfuzz/linux.o: libhfuzz/libhfuzz.h
libhfuzz/memorycmp.o: libhfcommon/common.h libhfuzz/instrument.h
-libhfuzz/persistent.o: honggfuzz.h libhfcommon/util.h libhfcommon/common.h
-libhfuzz/persistent.o: libhfcommon/files.h libhfcommon/common.h
-libhfuzz/persistent.o: libhfcommon/log.h libhfuzz/fetch.h
-libhfuzz/persistent.o: libhfuzz/instrument.h libhfuzz/libhfuzz.h
+libhfuzz/persistent.o: libhfuzz/libhfuzz.h honggfuzz.h libhfcommon/util.h
+libhfuzz/persistent.o: libhfcommon/common.h libhfcommon/files.h
+libhfuzz/persistent.o: libhfcommon/common.h libhfcommon/log.h
+libhfuzz/persistent.o: libhfuzz/fetch.h libhfuzz/instrument.h
linux/arch.o: arch.h honggfuzz.h libhfcommon/util.h fuzz.h
linux/arch.o: libhfcommon/common.h libhfcommon/files.h libhfcommon/common.h
linux/arch.o: libhfcommon/log.h libhfcommon/ns.h linux/perf.h linux/trace.h
@@ -448,8 +448,8 @@ linux/bfd.o: libhfcommon/log.h
linux/perf.o: linux/perf.h honggfuzz.h libhfcommon/util.h
linux/perf.o: libhfcommon/common.h libhfcommon/files.h libhfcommon/common.h
linux/perf.o: libhfcommon/log.h linux/pt.h
-linux/pt.o: linux/pt.h honggfuzz.h libhfcommon/util.h libhfcommon/common.h
-linux/pt.o: libhfcommon/log.h
+linux/pt.o: libhfcommon/common.h libhfcommon/log.h libhfcommon/util.h
+linux/pt.o: linux/pt.h honggfuzz.h
linux/trace.o: linux/trace.h honggfuzz.h libhfcommon/util.h
linux/trace.o: libhfcommon/common.h libhfcommon/files.h libhfcommon/common.h
linux/trace.o: libhfcommon/log.h linux/bfd.h linux/unwind.h sanitizers.h
diff --git a/README.md b/README.md
index 192d2730..b2718ed5 100644
--- a/README.md
+++ b/README.md
@@ -24,7 +24,7 @@ A security oriented, feedback-driven, evolutionary, easy-to-use fuzzer with inte
## Code
- * Latest stable version: [1.9](https://github.com/google/honggfuzz/releases)
+ * Latest stable version: [1.8](https://github.com/google/honggfuzz/releases)
* [Changelog](https://github.com/google/honggfuzz/blob/master/CHANGELOG)
## Requirements
@@ -90,7 +90,6 @@ Honggfuzz has been used to find a few interesting security problems in major sof
* panic() in h2 [#1](https://github.com/carllerche/h2/pull/260), [#2](https://github.com/carllerche/h2/pull/261), [#3](https://github.com/carllerche/h2/pull/262)
* panic() in sleep-parser [#1](https://github.com/datrs/sleep-parser/issues/3)
* panic() in lewton [#1](https://github.com/RustAudio/lewton/issues/27)
- * panic()/DoS in Ethereum-Parity [#1](https://srlabs.de/bites/ethereum_dos/)
* ... and more
## Projects utilizing Honggfuzz
@@ -113,7 +112,6 @@ Honggfuzz has been used to find a few interesting security problems in major sof
* [__FuzzM__: a gray box model-based fuzzing framework](https://github.com/collins-research/FuzzM)
* [__FuzzOS__: by Mozilla Security](https://github.com/MozillaSecurity/fuzzos)
* [__Android__: by OHA](https://android.googlesource.com/platform/external/honggfuzz)
- * [__QDBI__: by Quarkslab](https://project.inria.fr/FranceJapanICST/files/2019/04/19-Kyoto-Fuzzing_Binaries_using_Dynamic_Instrumentation.pdf)
## Examples
diff --git a/cmdline.c b/cmdline.c
index df54e535..ebace3be 100644
--- a/cmdline.c
+++ b/cmdline.c
@@ -243,10 +243,8 @@ bool cmdlineParse(int argc, char* argv[], honggfuzz_t* hfuzz) {
.threads =
{
.threadsFinished = 0,
- .threadsMax = ({
- long ncpus = sysconf(_SC_NPROCESSORS_ONLN);
- (ncpus <= 1 ? 1 : ncpus / 2);
- }),
+ .threadsMax =
+ (sysconf(_SC_NPROCESSORS_ONLN) <= 1) ? 1 : sysconf(_SC_NPROCESSORS_ONLN) / 2,
.threadsActiveCnt = 0,
.mainThread = pthread_self(),
.mainPid = getpid(),
@@ -274,7 +272,6 @@ bool cmdlineParse(int argc, char* argv[], honggfuzz_t* hfuzz) {
.fuzzStdin = false,
.externalCommand = NULL,
.postExternalCommand = NULL,
- .feedbackMutateCommand = NULL,
.persistent = false,
.netDriver = false,
.asLimit = 0U,
@@ -421,7 +418,6 @@ bool cmdlineParse(int argc, char* argv[], honggfuzz_t* hfuzz) {
{ { "stackhash_bl", required_argument, NULL, 'B' }, "Stackhashes blacklist file (one entry per line)" },
{ { "mutate_cmd", required_argument, NULL, 'c' }, "External command producing fuzz files (instead of internal mutators)" },
{ { "pprocess_cmd", required_argument, NULL, 0x104 }, "External command postprocessing files produced by internal mutators" },
- { { "ffmutate_cmd", required_argument, NULL, 0x110 }, "External command mutating files which have effective coverage feedback" },
{ { "run_time", required_argument, NULL, 0x109 }, "Number of seconds this fuzzing session will last (default: 0 [no limit])" },
{ { "iterations", required_argument, NULL, 'N' }, "Number of fuzzing iterations (default: 0 [no limit])" },
{ { "rlimit_as", required_argument, NULL, 0x100 }, "Per process RLIMIT_AS in MiB (default: 0 [no limit])" },
@@ -565,12 +561,7 @@ bool cmdlineParse(int argc, char* argv[], honggfuzz_t* hfuzz) {
hfuzz->cfg.reportFile = optarg;
break;
case 'n':
- if (optarg[0] == 'a') {
- long ncpus = sysconf(_SC_NPROCESSORS_ONLN);
- hfuzz->threads.threadsMax = (ncpus < 1 ? 1 : ncpus);
- } else {
- hfuzz->threads.threadsMax = atol(optarg);
- }
+ hfuzz->threads.threadsMax = atol(optarg);
break;
case 0x109: {
time_t p = atol(optarg);
@@ -596,9 +587,6 @@ bool cmdlineParse(int argc, char* argv[], honggfuzz_t* hfuzz) {
case 0x104:
hfuzz->exe.postExternalCommand = optarg;
break;
- case 0x110:
- hfuzz->exe.feedbackMutateCommand = optarg;
- break;
case 0x105:
if ((strcasecmp(optarg, "0") == 0) || (strcasecmp(optarg, "false") == 0)) {
hfuzz->cfg.monitorSIGABRT = false;
diff --git a/display.c b/display.c
index 9aee3beb..c38f9301 100644
--- a/display.c
+++ b/display.c
@@ -175,14 +175,10 @@ static void display_displayLocked(honggfuzz_t* hfuzz) {
display_put("\n Mode : " ESC_BOLD "Static" ESC_RESET "\n");
break;
case _HF_STATE_DYNAMIC_DRY_RUN:
- display_put("\n Mode [1/3] : " ESC_BOLD "Feedback Driven Dry Run" ESC_RESET "\n");
- break;
- case _HF_STATE_DYNAMIC_SWITCH_TO_MAIN:
- display_put("\n Mode [2/3] : " ESC_BOLD
- "Switching to the Feedback Driven Mode" ESC_RESET "\n");
+ display_put("\n Mode [1/2] : " ESC_BOLD "Feedback Driven Dry Run" ESC_RESET "\n");
break;
case _HF_STATE_DYNAMIC_MAIN:
- display_put("\n Mode [3/3] : " ESC_BOLD "Feedback Driven Mode" ESC_RESET "\n");
+ display_put("\n Mode [2/2] : " ESC_BOLD "Feedback Driven Mode" ESC_RESET "\n");
break;
default:
display_put("\n Mode : " ESC_BOLD "Unknown" ESC_RESET "\n");
diff --git a/examples/bind/bind-9.13.5-W1.patch b/examples/bind/bind-9.13.5-W1.patch
index bd732a6e..4e7a8542 100644
--- a/examples/bind/bind-9.13.5-W1.patch
+++ b/examples/bind/bind-9.13.5-W1.patch
@@ -1,7 +1,7 @@
diff -Nur ORIG.bind-9.13.5-W1/bin/named/main.c bind-9.13.5-W1/bin/named/main.c
--- ORIG.bind-9.13.5-W1/bin/named/main.c 2018-12-17 23:27:19.000000000 +0100
+++ bind-9.13.5-W1/bin/named/main.c 2019-01-11 17:37:23.537289679 +0100
-@@ -1311,11 +1311,285 @@
+@@ -1311,11 +1311,281 @@
}
#endif /* HAVE_LIBSCF */
@@ -98,10 +98,6 @@ diff -Nur ORIG.bind-9.13.5-W1/bin/named/main.c bind-9.13.5-W1/bin/named/main.c
+ close(nfd);
+ continue;
+ }
-+ if (rlen < 1) {
-+ close(nfd);
-+ continue;
-+ }
+
+ /* It's a response, so set QR bit to 1 */
+ uint8_t qr = rbuf[0] | 0x80;
diff --git a/examples/bind/bind-9.14.1.patch b/examples/bind/bind-9.14.1.patch
deleted file mode 100644
index b1e2a48e..00000000
--- a/examples/bind/bind-9.14.1.patch
+++ /dev/null
@@ -1,390 +0,0 @@
-diff -Nur ORIG.bind-9.14.1/bin/named/main.c bind-9.14.1/bin/named/main.c
---- ORIG.bind-9.14.1/bin/named/main.c 2019-04-06 22:09:59.000000000 +0200
-+++ bind-9.14.1/bin/named/main.c 2019-05-09 16:26:27.615239219 +0200
-@@ -1347,11 +1347,285 @@
- }
- #endif /* HAVE_LIBSCF */
-
-+#include <named/globals.h>
-+
-+#include <arpa/inet.h>
-+#include <errno.h>
-+#include <fcntl.h>
-+#include <net/if.h>
-+#include <net/route.h>
-+#include <netinet/ip6.h>
-+#include <netinet/tcp.h>
-+#include <pthread.h>
-+#include <sched.h>
-+#include <sys/ioctl.h>
-+#include <sys/resource.h>
-+#include <sys/socket.h>
-+#include <sys/stat.h>
-+#include <sys/time.h>
-+#include <sys/types.h>
-+#include <sys/uio.h>
-+#include <sys/wait.h>
-+#include <unistd.h>
-+
-+#include <libhfcommon/util.h>
-+#include <libhfuzz/libhfuzz.h>
-+
-+static void enter_namespaces(void)
-+{
-+ if (linuxEnterNs(CLONE_NEWUSER | CLONE_NEWNET | CLONE_NEWNS | CLONE_NEWIPC) == false) {
-+ exit(1);
-+ }
-+ if (linuxIfaceUp("lo") == false) {
-+ exit(1);
-+ }
-+ if (linuxMountTmpfs("/tmp") == false) {
-+ exit(1);
-+ }
-+}
-+
-+static size_t rlen = 0;
-+static const uint8_t* rbuf = NULL;
-+
-+__attribute__((no_sanitize("memory")))
-+__attribute__((no_sanitize("address"))) static void*
-+bind_thr(void* unused __attribute__((unused)))
-+{
-+ while (!named_g_run_done) {
-+ usleep(300000);
-+ }
-+
-+ int myfd = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
-+ if (myfd == -1) {
-+ perror("socket");
-+ exit(1);
-+ }
-+ int val = 1;
-+ if (setsockopt(myfd, SOL_SOCKET, SO_REUSEADDR, &val, sizeof(val)) == -1) {
-+ perror("setsockopt(SO_REUSEADDR)");
-+ }
-+
-+ const struct sockaddr_in saddr = {
-+ .sin_family = AF_INET,
-+ .sin_port = htons(53),
-+ .sin_addr.s_addr = inet_addr("127.0.0.2"),
-+ };
-+ if (bind(myfd, &saddr, sizeof(saddr)) == -1) {
-+ perror("bind");
-+ exit(1);
-+ }
-+
-+ if (listen(myfd, SOMAXCONN) == -1) {
-+ perror("listen");
-+ exit(1);
-+ }
-+
-+ for (;;) {
-+ struct sockaddr_in cli;
-+ socklen_t cli_len = sizeof(cli);
-+
-+ int nfd = accept(myfd, &cli, &cli_len);
-+ if (nfd == -1) {
-+ perror("accept");
-+ exit(1);
-+ }
-+
-+ static char b[1024 * 1024];
-+ ssize_t sz = recv(nfd, b, sizeof(b), 0);
-+ if (sz <= 0) {
-+ perror("recv");
-+ _exit(1);
-+ }
-+ if (sz < 4) {
-+ close(nfd);
-+ continue;
-+ }
-+ if (rlen < 1) {
-+ close(nfd);
-+ continue;
-+ }
-+
-+ /* It's a response, so set QR bit to 1 */
-+ uint8_t qr = rbuf[0] | 0x80;
-+
-+ uint16_t t_l = htons(rlen + 2);
-+ const struct iovec iov[] = {
-+ {
-+ .iov_base = &t_l,
-+ .iov_len = sizeof(t_l),
-+ },
-+ {
-+ .iov_base = &b[2],
-+ .iov_len = 2,
-+ },
-+ {
-+ .iov_base = &qr,
-+ .iov_len = 1,
-+ },
-+ {
-+ .iov_base = (void*)&rbuf[1],
-+ .iov_len = rlen - 1,
-+ },
-+ };
-+
-+ if (writev(nfd, iov, 4) == -1) {
-+ perror("writev() failed");
-+ }
-+
-+ close(nfd);
-+ }
-+
-+ return NULL;
-+}
-+
-+static void rndloop(int sock)
-+{
-+ const struct sockaddr_in bsaddr = {
-+ .sin_family = AF_INET,
-+ .sin_port = htons(0),
-+ .sin_addr.s_addr = htonl((((uint32_t)util_rnd64()) & 0x00FFFFFF) | 0x7F000000),
-+ };
-+ if (bind(sock, (const struct sockaddr*)&bsaddr, sizeof(bsaddr)) == -1) {
-+ perror("bind");
-+ }
-+}
-+
-+__attribute__((no_sanitize("memory")))
-+__attribute__((no_sanitize("address"))) static void*
-+connect_thr(void* unused __attribute__((unused)))
-+{
-+ while (!named_g_run_done) {
-+ usleep(300000);
-+ }
-+
-+ for (;;) {
-+ int myfd = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
-+ if (myfd == -1) {
-+ perror("socket");
-+ exit(1);
-+ }
-+ int val = 1;
-+ if (setsockopt(myfd, SOL_SOCKET, SO_REUSEADDR, &val, sizeof(val)) == -1) {
-+ perror("setsockopt(SO_REUSEADDR)");
-+ }
-+
-+ rndloop(myfd);
-+
-+ const struct sockaddr_in saddr = {
-+ .sin_family = AF_INET,
-+ .sin_port = htons(53),
-+ .sin_addr.s_addr = htonl(INADDR_LOOPBACK),
-+ };
-+ if (connect(myfd, &saddr, sizeof(saddr)) == -1) {
-+ close(myfd);
-+ continue;
-+ }
-+
-+ const uint8_t* buf;
-+ size_t len;
-+
-+ if (named_g_fuzz_type == isc_fuzz_client) {
-+ HF_ITER(&buf, &len);
-+
-+ rlen = 0;
-+ rbuf = NULL;
-+
-+ if (len < 32) {
-+ close(myfd);
-+ continue;
-+ }
-+
-+ uint32_t tmplen = *((const uint32_t*)buf);
-+
-+ buf = &buf[sizeof(uint32_t)];
-+ len -= sizeof(uint32_t);
-+
-+ tmplen %= len;
-+
-+ rbuf = &buf[tmplen];
-+ rlen = len - tmplen;
-+ len = tmplen;
-+ } else {
-+ static const uint8_t qbuf[] = {
-+ 0x88, 0x0c, 0x01, 0x20, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
-+ 0x00, 0x01, 0x0a, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61,
-+ 0x61, 0x61, 0x61, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c,
-+ 0x65, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x29, 0x10,
-+ 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00
-+ };
-+ buf = qbuf;
-+ len = sizeof(qbuf);
-+ HF_ITER(&rbuf, &rlen);
-+ }
-+
-+ uint16_t t_l = htons(len);
-+ const struct iovec iov[] = {
-+ {
-+ .iov_base = &t_l,
-+ .iov_len = sizeof(t_l),
-+ },
-+ {
-+ .iov_base = (void*)buf,
-+ .iov_len = len,
-+ },
-+ };
-+
-+ if (writev(myfd, iov, 2) == -1) {
-+ perror("write");
-+ close(myfd);
-+ continue;
-+ }
-+
-+ if (shutdown(myfd, SHUT_WR) == -1) {
-+ if (errno == ENOTCONN) {
-+ close(myfd);
-+ continue;
-+ }
-+ perror("shutdown");
-+ _exit(1);
-+ }
-+
-+ uint8_t b[1024 * 512];
-+ while (recv(myfd, b, sizeof(b), 0) > 0)
-+ ;
-+ close(myfd);
-+ }
-+}
-+
-+static void launch_thr(void)
-+{
-+ pthread_attr_t attr;
-+ pthread_attr_init(&attr);
-+ pthread_attr_setstacksize(&attr, 1024 * 1024 * 4);
-+ pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
-+
-+ pthread_t t;
-+ if (pthread_create(&t, &attr, bind_thr, NULL) < 0) {
-+ perror("pthread_create(bind_thr)");
-+ exit(1);
-+ }
-+
-+ pthread_attr_init(&attr);
-+ pthread_attr_setstacksize(&attr, 1024 * 1024 * 4);
-+ pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
-+ if (pthread_create(&t, &attr, connect_thr, NULL) < 0) {
-+ perror("pthread_create(connect_thr)");
-+ exit(1);
-+ }
-+}
-+
- /* main entry point, possibly hooked */
-
--int
--main(int argc, char *argv[]) {
-- isc_result_t result;
-+int main(int argc, char* argv[])
-+{
-+ if (!getenv("NO_FUZZ")) {
-+ named_g_fuzz_addr = "127.0.0.1:53";
-+ named_g_fuzz_type = isc_fuzz_client;
-+ enter_namespaces();
-+ launch_thr();
-+ }
-+
-+ isc_result_t result;
- #ifdef HAVE_LIBSCF
- char *instance = NULL;
- #endif
-diff -Nur ORIG.bind-9.14.1/compile.sh bind-9.14.1/compile.sh
---- ORIG.bind-9.14.1/compile.sh 1970-01-01 01:00:00.000000000 +0100
-+++ bind-9.14.1/compile.sh 2019-05-09 16:27:15.139211816 +0200
-@@ -0,0 +1,20 @@
-+#!/bin/sh
-+
-+set -ex
-+
-+export CC="$HOME"/src/honggfuzz/hfuzz_cc/hfuzz-clang
-+export CXX="$HOME"/src/honggfuzz/hfuzz_cc/hfuzz-clang++
-+export CFLAGS="-fsanitize=address -Wno-shift-negative-value -Wno-logical-not-parentheses -g -ggdb -O0 -D__AFL_COMPILER"
-+./configure \
-+ --prefix="$HOME"/fuzz/bind/dist/ \
-+ --without-gssapi \
-+ --disable-chroot \
-+ --disable-linux-caps \
-+ --without-libtool \
-+ --enable-epoll \
-+ --enable-fuzzing=afl \
-+ --disable-backtrace \
-+ --with-openssl=yes
-+
-+make clean
-+make -j$(nproc)
-diff -Nur ORIG.bind-9.14.1/lib/dns/request.c bind-9.14.1/lib/dns/request.c
---- ORIG.bind-9.14.1/lib/dns/request.c 2019-04-06 22:09:59.000000000 +0200
-+++ bind-9.14.1/lib/dns/request.c 2019-05-09 16:26:27.615239219 +0200
-@@ -760,7 +760,7 @@
- goto cleanup;
- }
-
-- if ((options & DNS_REQUESTOPT_TCP) != 0 || r.length > 512)
-+ if ((options & DNS_REQUESTOPT_TCP) != 0 || r.length >= 0)
- tcp = true;
- share = (options & DNS_REQUESTOPT_SHARE);
-
-@@ -1050,6 +1050,8 @@
- dns_compress_t cctx;
- bool cleanup_cctx = false;
-
-+ options |= DNS_REQUESTOPT_TCP;
-+
- REQUIRE(bufferp != NULL && *bufferp == NULL);
-
- req_log(ISC_LOG_DEBUG(3), "request_render");
-diff -Nur ORIG.bind-9.14.1/lib/dns/resolver.c bind-9.14.1/lib/dns/resolver.c
---- ORIG.bind-9.14.1/lib/dns/resolver.c 2019-04-06 22:09:59.000000000 +0200
-+++ bind-9.14.1/lib/dns/resolver.c 2019-05-09 16:26:27.619239217 +0200
-@@ -1951,7 +1951,7 @@
- goto stop_idle_timer;
- }
- query->mctx = fctx->mctx;
-- query->options = options;
-+ query->options = options | DNS_FETCHOPT_TCP;
- query->attributes = 0;
- query->sends = 0;
- query->connects = 0;
-diff -Nur ORIG.bind-9.14.1/lib/isc/random.c bind-9.14.1/lib/isc/random.c
---- ORIG.bind-9.14.1/lib/isc/random.c 2019-04-06 22:09:59.000000000 +0200
-+++ bind-9.14.1/lib/isc/random.c 2019-05-09 16:26:27.619239217 +0200
-@@ -96,6 +96,7 @@
- isc_random8(void) {
- RUNTIME_CHECK(isc_once_do(&isc_random_once,
- isc_random_initialize) == ISC_R_SUCCESS);
-+ return 1;
- return (next() & 0xff);
- }
-
-@@ -103,6 +104,7 @@
- isc_random16(void) {
- RUNTIME_CHECK(isc_once_do(&isc_random_once,
- isc_random_initialize) == ISC_R_SUCCESS);
-+ return 1;
- return (next() & 0xffff);
- }
-
-@@ -110,6 +112,7 @@
- isc_random32(void) {
- RUNTIME_CHECK(isc_once_do(&isc_random_once,
- isc_random_initialize) == ISC_R_SUCCESS);
-+ return 1;
- return (next());
- }
-
-@@ -124,6 +127,13 @@
- RUNTIME_CHECK(isc_once_do(&isc_random_once,
- isc_random_initialize) == ISC_R_SUCCESS);
-
-+ for (size_t z = 0; z < buflen; z++) {
-+ char * b = (char*)buf;
-+ b[z] = z + 1;
-+ }
-+ return;
-+
-+
- for (i = 0; i + sizeof(r) <= buflen; i += sizeof(r)) {
- r = next();
- memmove((uint8_t *)buf + i, &r, sizeof(r));
diff --git a/examples/openssl/client.c b/examples/openssl/client.c
index 3a395849..8d0ddf6d 100644
--- a/examples/openssl/client.c
+++ b/examples/openssl/client.c
@@ -15,468 +15,418 @@ extern "C" {
#include <hf_ssl_lib.h>
#include <libhfuzz/libhfuzz.h>
-static const uint8_t kRSACertificateDER[] = {0x30, 0x82, 0x06, 0x3d, 0x30, 0x82, 0x04, 0x25, 0xa0,
- 0x03, 0x02, 0x01, 0x02, 0x02, 0x14, 0x0f, 0x2d, 0x4d, 0xdd, 0x2f, 0xa5, 0xc0, 0x5f, 0x5a, 0xd3,
- 0x6e, 0x9f, 0xbe, 0x29, 0x68, 0xe9, 0x24, 0x72, 0x6c, 0xea, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
- 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81, 0x8d, 0x31, 0x0b, 0x30, 0x09,
- 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55,
- 0x04, 0x08, 0x0c, 0x0a, 0x53, 0x6f, 0x6d, 0x65, 0x2d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x31, 0x21,
- 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65,
- 0x74, 0x20, 0x57, 0x69, 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c, 0x74,
- 0x64, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x18, 0x4f, 0x72, 0x67, 0x61,
- 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x55, 0x6e, 0x69, 0x74, 0x20,
- 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x23, 0x30, 0x21, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x1a, 0x6e,
- 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78,
- 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x61, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x39, 0x30,
- 0x35, 0x30, 0x38, 0x31, 0x32, 0x35, 0x31, 0x34, 0x36, 0x5a, 0x17, 0x0d, 0x32, 0x39, 0x30, 0x35,
- 0x30, 0x37, 0x31, 0x32, 0x35, 0x31, 0x34, 0x36, 0x5a, 0x30, 0x81, 0xa5, 0x31, 0x0b, 0x30, 0x09,
- 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55,
- 0x04, 0x08, 0x0c, 0x0a, 0x53, 0x6f, 0x6d, 0x65, 0x2d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x31, 0x0f,
- 0x30, 0x0d, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x06, 0x53, 0x69, 0x64, 0x6e, 0x65, 0x79, 0x31,
+static const uint8_t kCertificateDER[] = {0x30, 0x82, 0x05, 0x65, 0x30, 0x82, 0x03, 0x4d, 0x02,
+ 0x09, 0x00, 0xe8, 0x66, 0xed, 0xc9, 0x66, 0xa7, 0xd1, 0xac, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x76, 0x31, 0x0b, 0x30, 0x09, 0x06,
+ 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04,
+ 0x08, 0x0c, 0x03, 0x41, 0x55, 0x53, 0x31, 0x0f, 0x30, 0x0d, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c,
+ 0x06, 0x53, 0x79, 0x64, 0x6e, 0x65, 0x79, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0a,
+ 0x0c, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20, 0x57, 0x69, 0x64, 0x67, 0x69,
+ 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c, 0x74, 0x64, 0x31, 0x25, 0x30, 0x23, 0x06, 0x03,
+ 0x55, 0x04, 0x03, 0x0c, 0x1c, 0x61, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x2e, 0x6e,
+ 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x61, 0x63, 0x61, 0x63,
+ 0x61, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x36, 0x30, 0x39, 0x33, 0x30, 0x31, 0x39, 0x30, 0x33, 0x33,
+ 0x39, 0x5a, 0x17, 0x0d, 0x31, 0x37, 0x30, 0x39, 0x32, 0x35, 0x31, 0x39, 0x30, 0x33, 0x33, 0x39,
+ 0x5a, 0x30, 0x73, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x41, 0x55,
+ 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x03, 0x41, 0x55, 0x53, 0x31, 0x0f,
+ 0x30, 0x0d, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x06, 0x53, 0x79, 0x64, 0x6e, 0x65, 0x79, 0x31,
0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e,
0x65, 0x74, 0x20, 0x57, 0x69, 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c,
- 0x74, 0x64, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x18, 0x4f, 0x72, 0x67,
- 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x55, 0x6e, 0x69, 0x74,
- 0x20, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x2a, 0x30, 0x28, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x21,
- 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x6e, 0x6f, 0x6e, 0x65,
- 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x72, 0x73, 0x61, 0x63, 0x6c, 0x69, 0x65, 0x6e,
- 0x74, 0x30, 0x82, 0x02, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
- 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x02, 0x0f, 0x00, 0x30, 0x82, 0x02, 0x0a, 0x02, 0x82, 0x02,
- 0x01, 0x00, 0xe5, 0x7a, 0x6e, 0x39, 0x10, 0xe1, 0x7e, 0x28, 0x16, 0x18, 0x7c, 0xaf, 0x7f, 0x97,
- 0x10, 0xf8, 0xcb, 0x89, 0xcd, 0x2d, 0xf0, 0xbc, 0xcc, 0xcd, 0x41, 0x5e, 0xb2, 0x5d, 0x6b, 0xca,
- 0x1b, 0xff, 0x52, 0xcd, 0x34, 0x39, 0xfe, 0x18, 0xe4, 0x78, 0x8c, 0x73, 0xb1, 0x03, 0xa8, 0xa3,
- 0xf4, 0xc1, 0x25, 0x3e, 0xda, 0x84, 0x8c, 0x92, 0x62, 0xc4, 0x13, 0x1a, 0xbb, 0x0b, 0xe4, 0x18,
- 0x12, 0xb5, 0xe2, 0xb8, 0xbc, 0x45, 0x9e, 0x1d, 0xbd, 0xba, 0xe5, 0x40, 0x5d, 0xdd, 0x59, 0x90,
- 0x2f, 0xeb, 0x97, 0xb1, 0x61, 0xca, 0x9a, 0x49, 0x8a, 0x50, 0xf9, 0x9f, 0x1a, 0x78, 0xcf, 0x56,
- 0xe6, 0x03, 0x53, 0xfd, 0x99, 0x0f, 0xd2, 0x3a, 0x09, 0x8b, 0x89, 0x96, 0x3a, 0x93, 0x2c, 0x88,
- 0x45, 0xfd, 0xb5, 0xbe, 0x80, 0x7e, 0x33, 0x31, 0xec, 0x40, 0xef, 0x22, 0x20, 0x64, 0xa9, 0x33,
- 0x4b, 0xdb, 0x29, 0xa0, 0xb5, 0x49, 0xa4, 0x1a, 0x62, 0x2d, 0xc4, 0x17, 0x66, 0x4b, 0x2d, 0x7b,
- 0xff, 0xad, 0x92, 0x80, 0x30, 0x50, 0x61, 0x2e, 0x58, 0x22, 0xe5, 0xc8, 0xaa, 0xdf, 0x81, 0x53,
- 0xd1, 0xbf, 0x01, 0xba, 0xc9, 0x8b, 0xd0, 0x26, 0x79, 0x23, 0x95, 0xa4, 0xe2, 0x6d, 0x06, 0xb2,
- 0xb6, 0x74, 0x0b, 0xce, 0x4c, 0x99, 0x0b, 0xea, 0x49, 0x0c, 0xd4, 0x95, 0xce, 0xae, 0x57, 0x8b,
- 0x8e, 0x7a, 0xc0, 0x33, 0x7f, 0x7c, 0x23, 0xc3, 0x50, 0x30, 0xc0, 0x71, 0x60, 0x02, 0xa1, 0x49,
- 0x8a, 0xdf, 0x33, 0xff, 0xc8, 0xbb, 0xd0, 0xc2, 0x65, 0x15, 0x83, 0x0e, 0xa5, 0x04, 0xd6, 0xbd,
- 0x97, 0x30, 0xf9, 0xa0, 0x1d, 0x81, 0x8c, 0x37, 0xd1, 0x21, 0x6b, 0xd0, 0xc1, 0x90, 0x74, 0x48,
- 0x14, 0x0b, 0xcc, 0x8a, 0xc1, 0x74, 0x5e, 0xae, 0x9e, 0x7e, 0x98, 0xd6, 0x47, 0x42, 0xc4, 0x36,
- 0x77, 0xd2, 0xb8, 0x60, 0xf3, 0x97, 0xa2, 0xe0, 0x9b, 0xc4, 0xac, 0x9b, 0x69, 0x40, 0x3c, 0x31,
- 0xd8, 0x26, 0x19, 0x7f, 0xd3, 0x62, 0x42, 0xf7, 0xf8, 0x8a, 0x49, 0x3d, 0xb0, 0xf2, 0xab, 0x18,
- 0x39, 0x9d, 0x09, 0x20, 0xbc, 0x78, 0xdd, 0xee, 0x00, 0x28, 0x91, 0xda, 0xd9, 0x40, 0x15, 0x95,
- 0x27, 0xaf, 0x31, 0xbb, 0x77, 0x2f, 0xd8, 0x5e, 0xbc, 0xa4, 0xbc, 0x55, 0x8d, 0xaa, 0x23, 0x29,
- 0xf2, 0x60, 0x31, 0xb4, 0xfe, 0xaa, 0x1b, 0x0f, 0x96, 0x4f, 0x9f, 0xa2, 0x57, 0x4e, 0x77, 0x10,
- 0x5e, 0x39, 0xea, 0x4b, 0x8e, 0x3c, 0x47, 0x2c, 0xf9, 0x8a, 0xba, 0x8c, 0x43, 0xc4, 0x4d, 0x7d,
- 0x61, 0xe2, 0x5a, 0x85, 0x4c, 0x8a, 0x7a, 0xd6, 0x12, 0x54, 0xd6, 0xe9, 0xe0, 0xa0, 0x38, 0x6b,
- 0x4d, 0x20, 0x3b, 0xa9, 0x52, 0x87, 0x46, 0x96, 0xfd, 0xec, 0xc3, 0x53, 0xb3, 0xe3, 0x49, 0x47,
- 0x78, 0x73, 0xc7, 0xcd, 0xe8, 0xc0, 0x8a, 0xef, 0x03, 0x6b, 0x48, 0x56, 0xaa, 0x49, 0x86, 0x05,
- 0x10, 0x04, 0xc6, 0x6e, 0x9d, 0x36, 0xd6, 0x80, 0xb9, 0xf5, 0x2b, 0x0c, 0xf5, 0x14, 0x96, 0xb7,
- 0x58, 0xee, 0x8b, 0x7a, 0x95, 0xde, 0x38, 0x4c, 0x74, 0x35, 0xd3, 0x27, 0x45, 0x55, 0xe9, 0x68,
- 0xb0, 0x2c, 0xea, 0x0e, 0xee, 0x06, 0x1a, 0x9d, 0x07, 0x92, 0x29, 0x78, 0xe1, 0x57, 0x1b, 0xd9,
- 0x4d, 0x50, 0x55, 0x5c, 0x6b, 0xb2, 0x8d, 0x6c, 0x1d, 0xc6, 0xea, 0x76, 0x35, 0x3c, 0x37, 0x45,
- 0xcb, 0x6c, 0x32, 0x69, 0x02, 0xbf, 0x9b, 0x58, 0x3e, 0xf2, 0x59, 0x34, 0x98, 0x8a, 0x3c, 0x59,
- 0x69, 0x49, 0x44, 0x9f, 0x69, 0x37, 0xd5, 0x17, 0x90, 0xc5, 0xa3, 0x0b, 0x78, 0x4b, 0x8c, 0xb6,
- 0x80, 0x80, 0x0f, 0xb5, 0x06, 0x92, 0x76, 0x35, 0x5a, 0xea, 0x16, 0x26, 0x0f, 0x4b, 0x09, 0xc3,
- 0xd3, 0x3b, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x7b, 0x30, 0x79, 0x30, 0x09, 0x06, 0x03, 0x55,
- 0x1d, 0x13, 0x04, 0x02, 0x30, 0x00, 0x30, 0x2c, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8,
- 0x42, 0x01, 0x0d, 0x04, 0x1f, 0x16, 0x1d, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x53, 0x4c, 0x20, 0x47,
- 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
- 0x63, 0x61, 0x74, 0x65, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x07,
- 0x0a, 0xa6, 0x68, 0x4b, 0x90, 0x87, 0xf4, 0x03, 0xc5, 0x70, 0xca, 0xd2, 0xa8, 0xbe, 0x39, 0xcb,
- 0xc0, 0xe4, 0x15, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14,
- 0xb4, 0x59, 0x44, 0x9c, 0xe3, 0x18, 0xd1, 0x69, 0x15, 0x4a, 0x38, 0x8b, 0x82, 0x0d, 0x19, 0x83,
- 0x1f, 0xe0, 0x02, 0x37, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
- 0x0b, 0x05, 0x00, 0x03, 0x82, 0x02, 0x01, 0x00, 0xbf, 0x7d, 0xac, 0xea, 0x15, 0x9d, 0x87, 0x98,
- 0xbe, 0xa9, 0xff, 0xa0, 0x26, 0xad, 0x46, 0x60, 0xe7, 0x7d, 0xc2, 0xda, 0x3b, 0xc3, 0x5e, 0xce,
- 0xdc, 0x6f, 0xc2, 0x49, 0x32, 0x15, 0x0c, 0x8c, 0xda, 0x20, 0x22, 0x69, 0xec, 0x7f, 0xdf, 0x3d,
- 0x06, 0xcf, 0x1f, 0x4d, 0x28, 0x32, 0xf7, 0x3f, 0xa1, 0x85, 0xeb, 0xba, 0x34, 0x47, 0xa5, 0x98,
- 0xdf, 0x1d, 0xf7, 0xbe, 0xfd, 0x26, 0x3f, 0x08, 0x3a, 0x7c, 0x33, 0x31, 0x19, 0x36, 0x02, 0xff,
- 0xc7, 0x6f, 0xea, 0x79, 0x44, 0xef, 0x4b, 0x47, 0x3d, 0x06, 0xfe, 0x5a, 0x02, 0x1d, 0x5e, 0xcc,
- 0xb7, 0x5f, 0x72, 0x7a, 0xe6, 0x81, 0x82, 0x16, 0xeb, 0x78, 0xb4, 0x9e, 0x33, 0x3a, 0xf7, 0x83,
- 0xb0, 0x8f, 0x9c, 0xae, 0xb6, 0xd3, 0x35, 0x34, 0xac, 0x54, 0x3e, 0x41, 0xe8, 0x0a, 0x0c, 0xba,
- 0x35, 0x72, 0x79, 0x48, 0x3b, 0x8f, 0x4b, 0x8d, 0xcc, 0xea, 0x61, 0xdb, 0x95, 0xe4, 0x94, 0xb3,
- 0xb9, 0x48, 0x98, 0xbc, 0xe5, 0x58, 0xc8, 0xb7, 0x4b, 0x69, 0x7c, 0x17, 0x23, 0x37, 0xec, 0xb3,
- 0xef, 0xea, 0x12, 0x3b, 0x08, 0x1c, 0xf1, 0x30, 0xe4, 0x3f, 0x33, 0x3f, 0xd6, 0x9d, 0x61, 0xa1,
- 0x3a, 0x04, 0xb6, 0x36, 0x2f, 0xc5, 0xc3, 0x18, 0xfd, 0x08, 0x20, 0x04, 0x6f, 0xd6, 0x52, 0xc9,
- 0x2f, 0x82, 0x2b, 0x96, 0xdf, 0xb8, 0x29, 0x4d, 0xf2, 0x00, 0x0e, 0x9f, 0xe5, 0x2f, 0xdc, 0x7f,
- 0x41, 0x60, 0xf1, 0x6b, 0xec, 0xfb, 0x9c, 0xb3, 0x3c, 0x81, 0xfa, 0xa8, 0x27, 0xe0, 0x34, 0x01,
- 0xa4, 0xee, 0x5a, 0xda, 0x6c, 0xf1, 0xc1, 0xd2, 0x91, 0xd8, 0x96, 0x54, 0x64, 0xf6, 0x2c, 0x40,
- 0x72, 0x3e, 0x9a, 0x15, 0xe0, 0xb5, 0xc9, 0xfa, 0xa4, 0xfc, 0x0d, 0x1c, 0x21, 0xd5, 0xdb, 0x7e,
- 0x30, 0xb4, 0x26, 0xa1, 0x54, 0xc2, 0x63, 0x41, 0x87, 0x37, 0xa5, 0x6a, 0x9d, 0x89, 0xce, 0x21,
- 0x85, 0x46, 0xdd, 0x24, 0x8a, 0x14, 0x13, 0x7e, 0x76, 0x2b, 0x12, 0xd7, 0xc5, 0xfc, 0x78, 0x56,
- 0xb9, 0x8a, 0xf9, 0x13, 0xa7, 0xa8, 0xcb, 0xa2, 0x56, 0x1a, 0xc5, 0xa5, 0xbc, 0xc5, 0xb6, 0xac,
- 0xa9, 0x95, 0x2c, 0x81, 0x57, 0x13, 0x03, 0xe9, 0x05, 0x68, 0x2b, 0xe6, 0x4a, 0xa4, 0x31, 0xb8,
- 0xd8, 0x09, 0xb2, 0x4d, 0x40, 0x98, 0x7e, 0xd7, 0xa1, 0x15, 0x05, 0x8b, 0x8d, 0xcd, 0x75, 0xbd,
- 0x1d, 0xf5, 0x15, 0xf5, 0xce, 0xd7, 0x11, 0x48, 0x4e, 0x57, 0x0a, 0x54, 0x0f, 0x71, 0x85, 0x94,
- 0xe7, 0x90, 0x6e, 0xfa, 0x21, 0xa6, 0x58, 0xd8, 0x95, 0x8f, 0x29, 0xca, 0x35, 0xc2, 0xa3, 0xf0,
- 0x6a, 0x32, 0x9b, 0xe7, 0x74, 0x6e, 0x1f, 0xa5, 0xad, 0xb8, 0xb0, 0xac, 0x83, 0xcc, 0x18, 0x03,
- 0xbc, 0xfe, 0xef, 0xb5, 0xfc, 0x53, 0x81, 0x4a, 0x6e, 0x61, 0xd5, 0x17, 0x28, 0xca, 0xb5, 0xbe,
- 0x19, 0xef, 0xd3, 0x27, 0x70, 0xcd, 0x96, 0x6c, 0xb5, 0xa1, 0x58, 0x4e, 0xc0, 0x6b, 0xa3, 0xbf,
- 0x7b, 0x23, 0xb6, 0x1b, 0x8c, 0xe0, 0x61, 0x7d, 0x2e, 0x8a, 0x15, 0xa0, 0xac, 0xf0, 0x60, 0x19,
- 0x88, 0x75, 0x03, 0xdd, 0x11, 0xd4, 0x67, 0x2a, 0x91, 0x10, 0x53, 0xd7, 0xcd, 0x91, 0x29, 0x2b,
- 0x5a, 0xf4, 0x74, 0x06, 0x47, 0x8e, 0xfd, 0x71, 0x8b, 0xca, 0x86, 0xa0, 0x26, 0xbe, 0xbb, 0x50,
- 0xc3, 0x95, 0x99, 0x42, 0xcf, 0xa6, 0x2b, 0xf4, 0x12, 0x41, 0xe6, 0xf2, 0xbf, 0x25, 0xe2, 0xed,
- 0x9e, 0x78, 0x9c, 0x3a, 0x21, 0x01, 0x06, 0x29, 0x96, 0x2d, 0xcd, 0xd7, 0x55, 0x62, 0x16, 0xb5,
- 0xa4, 0x5f, 0x14, 0x19, 0xc1, 0x9c, 0x38, 0xbf, 0x41, 0x51, 0xec, 0x98, 0x2c, 0x6a, 0xc0, 0x41,
- 0x0f, 0xe6, 0xc5, 0xf0, 0x32, 0xa9, 0xbe, 0xd7};
-
-static const uint8_t kRSAPrivateKeyDER[] = {0x30, 0x82, 0x09, 0x29, 0x02, 0x01, 0x00, 0x02, 0x82,
- 0x02, 0x01, 0x00, 0xe5, 0x7a, 0x6e, 0x39, 0x10, 0xe1, 0x7e, 0x28, 0x16, 0x18, 0x7c, 0xaf, 0x7f,
- 0x97, 0x10, 0xf8, 0xcb, 0x89, 0xcd, 0x2d, 0xf0, 0xbc, 0xcc, 0xcd, 0x41, 0x5e, 0xb2, 0x5d, 0x6b,
- 0xca, 0x1b, 0xff, 0x52, 0xcd, 0x34, 0x39, 0xfe, 0x18, 0xe4, 0x78, 0x8c, 0x73, 0xb1, 0x03, 0xa8,
- 0xa3, 0xf4, 0xc1, 0x25, 0x3e, 0xda, 0x84, 0x8c, 0x92, 0x62, 0xc4, 0x13, 0x1a, 0xbb, 0x0b, 0xe4,
- 0x18, 0x12, 0xb5, 0xe2, 0xb8, 0xbc, 0x45, 0x9e, 0x1d, 0xbd, 0xba, 0xe5, 0x40, 0x5d, 0xdd, 0x59,
- 0x90, 0x2f, 0xeb, 0x97, 0xb1, 0x61, 0xca, 0x9a, 0x49, 0x8a, 0x50, 0xf9, 0x9f, 0x1a, 0x78, 0xcf,
- 0x56, 0xe6, 0x03, 0x53, 0xfd, 0x99, 0x0f, 0xd2, 0x3a, 0x09, 0x8b, 0x89, 0x96, 0x3a, 0x93, 0x2c,
- 0x88, 0x45, 0xfd, 0xb5, 0xbe, 0x80, 0x7e, 0x33, 0x31, 0xec, 0x40, 0xef, 0x22, 0x20, 0x64, 0xa9,
- 0x33, 0x4b, 0xdb, 0x29, 0xa0, 0xb5, 0x49, 0xa4, 0x1a, 0x62, 0x2d, 0xc4, 0x17, 0x66, 0x4b, 0x2d,
- 0x7b, 0xff, 0xad, 0x92, 0x80, 0x30, 0x50, 0x61, 0x2e, 0x58, 0x22, 0xe5, 0xc8, 0xaa, 0xdf, 0x81,
- 0x53, 0xd1, 0xbf, 0x01, 0xba, 0xc9, 0x8b, 0xd0, 0x26, 0x79, 0x23, 0x95, 0xa4, 0xe2, 0x6d, 0x06,
- 0xb2, 0xb6, 0x74, 0x0b, 0xce, 0x4c, 0x99, 0x0b, 0xea, 0x49, 0x0c, 0xd4, 0x95, 0xce, 0xae, 0x57,
- 0x8b, 0x8e, 0x7a, 0xc0, 0x33, 0x7f, 0x7c, 0x23, 0xc3, 0x50, 0x30, 0xc0, 0x71, 0x60, 0x02, 0xa1,
- 0x49, 0x8a, 0xdf, 0x33, 0xff, 0xc8, 0xbb, 0xd0, 0xc2, 0x65, 0x15, 0x83, 0x0e, 0xa5, 0x04, 0xd6,
- 0xbd, 0x97, 0x30, 0xf9, 0xa0, 0x1d, 0x81, 0x8c, 0x37, 0xd1, 0x21, 0x6b, 0xd0, 0xc1, 0x90, 0x74,
- 0x48, 0x14, 0x0b, 0xcc, 0x8a, 0xc1, 0x74, 0x5e, 0xae, 0x9e, 0x7e, 0x98, 0xd6, 0x47, 0x42, 0xc4,
- 0x36, 0x77, 0xd2, 0xb8, 0x60, 0xf3, 0x97, 0xa2, 0xe0, 0x9b, 0xc4, 0xac, 0x9b, 0x69, 0x40, 0x3c,
- 0x31, 0xd8, 0x26, 0x19, 0x7f, 0xd3, 0x62, 0x42, 0xf7, 0xf8, 0x8a, 0x49, 0x3d, 0xb0, 0xf2, 0xab,
- 0x18, 0x39, 0x9d, 0x09, 0x20, 0xbc, 0x78, 0xdd, 0xee, 0x00, 0x28, 0x91, 0xda, 0xd9, 0x40, 0x15,
- 0x95, 0x27, 0xaf, 0x31, 0xbb, 0x77, 0x2f, 0xd8, 0x5e, 0xbc, 0xa4, 0xbc, 0x55, 0x8d, 0xaa, 0x23,
- 0x29, 0xf2, 0x60, 0x31, 0xb4, 0xfe, 0xaa, 0x1b, 0x0f, 0x96, 0x4f, 0x9f, 0xa2, 0x57, 0x4e, 0x77,
- 0x10, 0x5e, 0x39, 0xea, 0x4b, 0x8e, 0x3c, 0x47, 0x2c, 0xf9, 0x8a, 0xba, 0x8c, 0x43, 0xc4, 0x4d,
- 0x7d, 0x61, 0xe2, 0x5a, 0x85, 0x4c, 0x8a, 0x7a, 0xd6, 0x12, 0x54, 0xd6, 0xe9, 0xe0, 0xa0, 0x38,
- 0x6b, 0x4d, 0x20, 0x3b, 0xa9, 0x52, 0x87, 0x46, 0x96, 0xfd, 0xec, 0xc3, 0x53, 0xb3, 0xe3, 0x49,
- 0x47, 0x78, 0x73, 0xc7, 0xcd, 0xe8, 0xc0, 0x8a, 0xef, 0x03, 0x6b, 0x48, 0x56, 0xaa, 0x49, 0x86,
- 0x05, 0x10, 0x04, 0xc6, 0x6e, 0x9d, 0x36, 0xd6, 0x80, 0xb9, 0xf5, 0x2b, 0x0c, 0xf5, 0x14, 0x96,
- 0xb7, 0x58, 0xee, 0x8b, 0x7a, 0x95, 0xde, 0x38, 0x4c, 0x74, 0x35, 0xd3, 0x27, 0x45, 0x55, 0xe9,
- 0x68, 0xb0, 0x2c, 0xea, 0x0e, 0xee, 0x06, 0x1a, 0x9d, 0x07, 0x92, 0x29, 0x78, 0xe1, 0x57, 0x1b,
- 0xd9, 0x4d, 0x50, 0x55, 0x5c, 0x6b, 0xb2, 0x8d, 0x6c, 0x1d, 0xc6, 0xea, 0x76, 0x35, 0x3c, 0x37,
- 0x45, 0xcb, 0x6c, 0x32, 0x69, 0x02, 0xbf, 0x9b, 0x58, 0x3e, 0xf2, 0x59, 0x34, 0x98, 0x8a, 0x3c,
- 0x59, 0x69, 0x49, 0x44, 0x9f, 0x69, 0x37, 0xd5, 0x17, 0x90, 0xc5, 0xa3, 0x0b, 0x78, 0x4b, 0x8c,
- 0xb6, 0x80, 0x80, 0x0f, 0xb5, 0x06, 0x92, 0x76, 0x35, 0x5a, 0xea, 0x16, 0x26, 0x0f, 0x4b, 0x09,
- 0xc3, 0xd3, 0x3b, 0x02, 0x03, 0x01, 0x00, 0x01, 0x02, 0x82, 0x02, 0x01, 0x00, 0x9e, 0x4f, 0x64,
- 0x13, 0x02, 0x4e, 0x4d, 0xd6, 0x21, 0xc8, 0x2a, 0xdc, 0x77, 0xcd, 0x23, 0xec, 0x3f, 0x9e, 0x85,
- 0x6a, 0x18, 0x16, 0x67, 0xc3, 0x82, 0x41, 0x6e, 0x13, 0x7c, 0xf5, 0x25, 0x73, 0x73, 0x10, 0x15,
- 0xe3, 0x9c, 0x24, 0x58, 0x19, 0xc1, 0xeb, 0x5e, 0x47, 0x03, 0xe4, 0x78, 0x49, 0x77, 0x04, 0x71,
- 0x83, 0xd7, 0xe6, 0x75, 0x34, 0x87, 0x69, 0x7d, 0x78, 0xaa, 0x96, 0xe0, 0xf1, 0x91, 0xc3, 0x98,
- 0x3e, 0xfe, 0xe1, 0xcd, 0xae, 0x4d, 0xd1, 0xa5, 0xef, 0xba, 0x85, 0xfa, 0x49, 0x31, 0x91, 0x31,
- 0xc1, 0xaf, 0xc6, 0xe4, 0x21, 0x10, 0xd4, 0x6e, 0x52, 0xc1, 0xd7, 0x55, 0x3f, 0x1e, 0x86, 0x69,
- 0x3d, 0xbc, 0xee, 0x44, 0xff, 0x7a, 0x9f, 0xa5, 0x31, 0x3b, 0x1b, 0x98, 0x0d, 0x7b, 0x80, 0x3c,
- 0xec, 0xd3, 0x2c, 0xb1, 0xab, 0xea, 0x4d, 0x44, 0xc3, 0xac, 0xe6, 0xb2, 0x82, 0x33, 0xa9, 0xa6,
- 0xe7, 0x72, 0xca, 0xb0, 0xc8, 0x99, 0xea, 0xfa, 0xab, 0x0a, 0x69, 0xec, 0xed, 0x35, 0x90, 0x31,
- 0xc4, 0x82, 0x06, 0x92, 0xcf, 0x20, 0x6e, 0xdb, 0x52, 0xed, 0xc9, 0x81, 0x7d, 0xa0, 0x17, 0xd8,
- 0x4b, 0x18, 0x02, 0x32, 0xb8, 0x15, 0xd8, 0x76, 0x4c, 0x78, 0xbe, 0x79, 0x98, 0x7d, 0x3c, 0x89,
- 0x23, 0x5c, 0x50, 0xf8, 0xac, 0x5d, 0x4c, 0x2c, 0x15, 0xa2, 0x57, 0xa8, 0xa7, 0x8e, 0x48, 0xf8,
- 0xbe, 0x0f, 0x7e, 0x02, 0xa8, 0x5f, 0x5a, 0xd7, 0xbd, 0x78, 0xbf, 0x5f, 0x8a, 0xb4, 0x38, 0xd5,
- 0xa6, 0x9c, 0x52, 0x3f, 0xa2, 0x23, 0x93, 0xca, 0xcc, 0x17, 0xc9, 0x1b, 0xb0, 0xb1, 0xc5, 0x80,
- 0x15, 0x8b, 0x42, 0x46, 0x88, 0x23, 0xf5, 0x14, 0x54, 0x2f, 0xa4, 0x3a, 0x10, 0x19, 0xbf, 0xef,
- 0xcd, 0xf4, 0x33, 0xcb, 0x2b, 0xd3, 0x0c, 0xa0, 0x84, 0xb3, 0x10, 0x50, 0x80, 0x43, 0xd7, 0x7b,
- 0xb9, 0x75, 0x89, 0x62, 0x45, 0x77, 0xeb, 0xe2, 0x95, 0x34, 0x52, 0xbf, 0xe3, 0x9a, 0x0d, 0x4b,
- 0x22, 0x97, 0xa0, 0xe3, 0x0f, 0x32, 0x3c, 0x16, 0x22, 0xa4, 0x1d, 0xfb, 0x77, 0x25, 0x11, 0xcb,
- 0x45, 0x64, 0xda, 0x1d, 0xa1, 0x72, 0xbb, 0x0d, 0x31, 0xdd, 0xe9, 0x4b, 0xe4, 0x11, 0x7b, 0x35,
- 0x8b, 0xde, 0x88, 0xc1, 0x35, 0xe6, 0x3a, 0xa6, 0xe6, 0x99, 0x8f, 0xa5, 0x1c, 0x66, 0xab, 0x62,
- 0x3b, 0xd9, 0x53, 0xf2, 0x38, 0x26, 0xa2, 0xc6, 0xdf, 0xf2, 0x9e, 0xa1, 0xf2, 0xf7, 0xe0, 0xc9,
- 0x1c, 0xd4, 0x82, 0x1f, 0x7c, 0x90, 0xc6, 0xb3, 0xbb, 0x58, 0x31, 0x5f, 0x5b, 0x42, 0xc5, 0xc6,
- 0x6c, 0x66, 0xdb, 0xc5, 0x43, 0xab, 0x4c, 0x1f, 0x11, 0x83, 0xfe, 0x75, 0x42, 0xf0, 0x4c, 0xb9,
- 0xd6, 0xc1, 0x19, 0xf4, 0x8a, 0x06, 0xc2, 0x0d, 0x22, 0x81, 0xb6, 0xad, 0x29, 0xf3, 0xcb, 0xe4,
- 0xe8, 0x5b, 0x6f, 0x04, 0x19, 0x8a, 0x73, 0x10, 0xa0, 0x6f, 0xba, 0x29, 0x5d, 0x24, 0x33, 0x66,
- 0xd9, 0xd2, 0x0f, 0x88, 0xdf, 0x59, 0x30, 0xc4, 0x85, 0x9b, 0x9d, 0x00, 0x97, 0xc3, 0xa7, 0x72,
- 0xbb, 0xc3, 0x92, 0x18, 0x0d, 0xac, 0x3d, 0xab, 0x17, 0xe7, 0x9c, 0xd0, 0x2e, 0x7d, 0xae, 0x1c,
- 0x81, 0xef, 0xc4, 0xcc, 0x33, 0x25, 0xf9, 0x5b, 0x8b, 0x03, 0xc9, 0xd3, 0x14, 0x9c, 0x78, 0x9b,
- 0xd1, 0x0b, 0x02, 0xe5, 0x24, 0xba, 0x99, 0xff, 0xbf, 0x18, 0x03, 0xd7, 0xec, 0x71, 0x74, 0x34,
- 0xd6, 0xe7, 0xcb, 0x37, 0xa7, 0x42, 0x20, 0x89, 0xf5, 0x5f, 0x7f, 0x5a, 0xef, 0xec, 0xb7, 0xbc,
- 0x92, 0xeb, 0x47, 0x4c, 0x1f, 0x68, 0x87, 0xcb, 0x2e, 0x72, 0xe6, 0x96, 0xef, 0x98, 0xa9, 0x89,
- 0x26, 0x48, 0xff, 0x8a, 0xbe, 0xf4, 0x0b, 0xd0, 0x23, 0x84, 0x79, 0x73, 0x41, 0x02, 0x82, 0x01,
- 0x01, 0x00, 0xfe, 0x94, 0x2b, 0x4f, 0xfb, 0x93, 0x58, 0xc1, 0xcf, 0xde, 0xd4, 0x81, 0x42, 0x17,
- 0x12, 0x02, 0x3c, 0x40, 0xdd, 0xd7, 0xae, 0x68, 0xa8, 0x8e, 0x6c, 0x51, 0xab, 0x06, 0xe4, 0xf7,
- 0x30, 0x48, 0x77, 0x87, 0x8a, 0xd5, 0x8b, 0xaf, 0x0f, 0x46, 0x8f, 0x70, 0x49, 0x80, 0x0c, 0x94,
- 0xf8, 0xc6, 0x11, 0x7f, 0x65, 0x01, 0xdd, 0xea, 0xa0, 0x34, 0x4e, 0x25, 0x7a, 0xc6, 0xe7, 0xf4,
- 0x9c, 0x9e, 0xf4, 0x6c, 0xf7, 0x49, 0xd5, 0xde, 0xfa, 0xb0, 0xa6, 0x8c, 0xf8, 0x35, 0xdb, 0x58,
- 0x40, 0xc6, 0x77, 0xeb, 0x1c, 0xbf, 0x54, 0x6f, 0xb8, 0x1d, 0x97, 0xbc, 0x07, 0x61, 0x18, 0xb1,
- 0xf2, 0xe2, 0xfe, 0x3b, 0x01, 0x70, 0x97, 0x4f, 0x51, 0xc6, 0x49, 0xe8, 0xe5, 0x20, 0x07, 0x3e,
- 0x52, 0x37, 0x13, 0x8d, 0x6b, 0xda, 0x03, 0xcf, 0xec, 0x5d, 0xcf, 0x9b, 0xf8, 0xe7, 0x86, 0x15,
- 0xa8, 0x26, 0xf2, 0x7a, 0x4f, 0xeb, 0xfe, 0xa2, 0xac, 0xd1, 0x60, 0xd6, 0x7b, 0x5c, 0xa8, 0xaa,
- 0xf6, 0x71, 0x1e, 0xe2, 0xaf, 0x87, 0x11, 0xe2, 0xf2, 0x25, 0xaa, 0xf0, 0x67, 0x3c, 0x33, 0xfa,
- 0xbc, 0x3a, 0x25, 0x09, 0x01, 0xd3, 0xba, 0xb7, 0x66, 0x3b, 0xae, 0x3a, 0x2f, 0x0b, 0xb7, 0xa6,
- 0xd0, 0x43, 0xb1, 0x4f, 0x9e, 0xbe, 0x37, 0xc4, 0x95, 0x7f, 0x7e, 0x44, 0x7d, 0xff, 0xda, 0xff,
- 0xc4, 0x96, 0xc6, 0x27, 0x6e, 0x69, 0xc8, 0x43, 0xae, 0x9d, 0x8a, 0x8c, 0x7d, 0x0d, 0xb1, 0xd1,
- 0xba, 0xf1, 0x31, 0x6d, 0x5b, 0xeb, 0x01, 0x0e, 0x48, 0xb1, 0xee, 0xf6, 0x54, 0xaf, 0x0f, 0x29,
- 0x86, 0xa6, 0x15, 0x31, 0xbe, 0xe1, 0x7a, 0x92, 0x1b, 0x08, 0x6d, 0x3f, 0x7b, 0xb0, 0x8c, 0x9c,
- 0xdd, 0x1e, 0x4e, 0xa7, 0x16, 0x52, 0x49, 0x2f, 0x60, 0xac, 0x66, 0x23, 0x60, 0x27, 0xe2, 0x8e,
- 0xda, 0x73, 0x02, 0x82, 0x01, 0x01, 0x00, 0xe6, 0xc2, 0x63, 0x93, 0xe7, 0xb2, 0xf4, 0xc9, 0xdd,
- 0x85, 0x8d, 0x83, 0xcd, 0x3c, 0xca, 0x96, 0xae, 0xd5, 0x57, 0x3f, 0xc7, 0x34, 0xa2, 0x44, 0x43,
- 0x97, 0xe1, 0x6b, 0x12, 0x05, 0x96, 0xa1, 0x52, 0x9b, 0x4c, 0x5e, 0x43, 0xa3, 0xdf, 0x72, 0x19,
- 0x72, 0x82, 0xfe, 0x5e, 0xaf, 0xa2, 0x3b, 0x1b, 0x64, 0x52, 0xd3, 0x1c, 0x55, 0x2c, 0x98, 0x6e,
- 0x74, 0xda, 0x19, 0x90, 0x32, 0x60, 0x20, 0xb4, 0x9e, 0x90, 0xa1, 0xe8, 0xbd, 0x08, 0x89, 0xed,
- 0x67, 0x1a, 0x46, 0x02, 0xc1, 0xc2, 0x9e, 0xb7, 0xe8, 0xfc, 0xd6, 0x5b, 0x50, 0xa1, 0xb6, 0xc9,
- 0xe0, 0x21, 0xec, 0x0d, 0x10, 0x83, 0xe0, 0x4b, 0xff, 0xf3, 0xfb, 0x37, 0x08, 0x1f, 0x2a, 0x0d,
- 0xfd, 0x80, 0xf6, 0x0f, 0xe1, 0xcd, 0x2c, 0xc1, 0x31, 0xca, 0x58, 0x95, 0x31, 0x59, 0xb1, 0xf2,
- 0xcf, 0xb1, 0x89, 0x24, 0xa5, 0x5a, 0x11, 0xce, 0x11, 0x86, 0xbb, 0x7f, 0x18, 0xf3, 0x5f, 0x97,
- 0x7a, 0x98, 0x21, 0xcb, 0x03, 0xaa, 0x6b, 0x8e, 0xa1, 0x39, 0x48, 0x13, 0x90, 0x04, 0x1b, 0xad,
- 0xf3, 0xc0, 0xf9, 0x11, 0x35, 0x71, 0x4e, 0x1d, 0xd5, 0xfd, 0x62, 0xa0, 0x79, 0x3e, 0x72, 0x6e,
- 0x3e, 0x83, 0x72, 0xc9, 0xd7, 0x1e, 0xd5, 0x5e, 0xe8, 0x3f, 0x16, 0x2b, 0x99, 0xcc, 0x8e, 0x2e,
- 0xed, 0x71, 0x78, 0xbb, 0x6b, 0xab, 0xbf, 0xb3, 0x24, 0xd1, 0x04, 0xe0, 0x22, 0x11, 0xab, 0x55,
- 0xd1, 0x9b, 0x97, 0xba, 0x01, 0x36, 0x5e, 0xd2, 0x24, 0x39, 0xb6, 0x9c, 0xad, 0x7b, 0xef, 0x0c,
- 0xdc, 0xf7, 0x10, 0xd2, 0xca, 0x95, 0xf9, 0xa3, 0x4d, 0x45, 0x2c, 0x28, 0xdc, 0xcc, 0x1b, 0x44,
- 0x63, 0x1f, 0xca, 0x01, 0xf3, 0x93, 0xe6, 0x7a, 0x8a, 0xca, 0x96, 0x2f, 0x1e, 0x8d, 0x8e, 0xc1,
- 0x2f, 0x6f, 0xed, 0x9b, 0x98, 0x0a, 0x19, 0x02, 0x82, 0x01, 0x01, 0x00, 0x93, 0x55, 0xdb, 0x6f,
- 0x51, 0xd1, 0x28, 0x18, 0x1b, 0x1f, 0x02, 0x6b, 0xc0, 0x7d, 0x2b, 0x9e, 0x01, 0x93, 0x25, 0x11,
- 0x13, 0x4e, 0x5c, 0xe6, 0xf8, 0x87, 0x97, 0x6c, 0xc9, 0x0c, 0xca, 0x73, 0xd6, 0x41, 0xaa, 0xb7,
- 0x06, 0x3d, 0x8d, 0xa0, 0xaf, 0x99, 0x33, 0xe0, 0x98, 0xe7, 0x8a, 0xc6, 0xcf, 0x0f, 0xa4, 0xbc,
- 0x9c, 0xdb, 0x92, 0x56, 0x53, 0x37, 0xdb, 0xc3, 0xcc, 0x30, 0xc4, 0x88, 0x36, 0x3b, 0xee, 0x2e,
- 0x5c, 0x49, 0xcd, 0x5a, 0x79, 0x39, 0xb2, 0xd9, 0x30, 0x95, 0xf5, 0xff, 0x27, 0x1d, 0xfa, 0x28,
- 0x3d, 0x4c, 0xdf, 0x08, 0xb9, 0x6d, 0x47, 0xf4, 0x08, 0xdf, 0xcc, 0x0b, 0x55, 0x49, 0x7e, 0xfe,
- 0xd3, 0x83, 0x43, 0x77, 0x78, 0x05, 0x02, 0xbe, 0x33, 0x92, 0xfc, 0xf0, 0x05, 0x2f, 0xde, 0xd0,
- 0x71, 0x4e, 0x5f, 0xa4, 0xb7, 0x67, 0xb4, 0x79, 0x02, 0x1f, 0xfc, 0x8e, 0x75, 0xdd, 0x15, 0xee,
- 0x26, 0x13, 0xad, 0xe3, 0x0b, 0xa1, 0x76, 0x09, 0xdd, 0x4f, 0xfc, 0x8a, 0xe1, 0x6e, 0x1e, 0x5a,
- 0x14, 0x9e, 0xfc, 0xb7, 0x92, 0x23, 0xca, 0x0b, 0x8c, 0xa5, 0xbb, 0x54, 0x07, 0x65, 0x1c, 0x1a,
- 0x96, 0xc0, 0x57, 0xb9, 0x88, 0x8f, 0x01, 0xf5, 0x4d, 0x17, 0x8d, 0x06, 0xf0, 0x52, 0x7d, 0x33,
- 0xe7, 0x80, 0xad, 0x68, 0xf9, 0x01, 0xd8, 0xce, 0x3f, 0xc7, 0xb0, 0xd5, 0xf5, 0xde, 0x92, 0x47,
- 0x44, 0x70, 0xef, 0x59, 0x1b, 0xfb, 0x4c, 0xd0, 0xa5, 0x2e, 0x15, 0x7c, 0x4b, 0xb7, 0xd7, 0xef,
- 0xbd, 0x4f, 0xb0, 0x00, 0xd2, 0xa4, 0xdb, 0xc3, 0xe9, 0x09, 0x86, 0x75, 0x0e, 0x65, 0x18, 0xec,
- 0xd4, 0x0c, 0x44, 0xfa, 0xee, 0x87, 0x44, 0x25, 0x9c, 0x6b, 0x98, 0x89, 0x56, 0xc9, 0xda, 0xe0,
- 0x4a, 0x9c, 0xd1, 0xdd, 0x54, 0xcb, 0x7a, 0x75, 0xfa, 0xe7, 0xe4, 0x43, 0x02, 0x82, 0x01, 0x00,
- 0x6d, 0x2a, 0xb1, 0x29, 0x1b, 0x87, 0xd1, 0xbe, 0x5e, 0x09, 0xfc, 0x74, 0xc9, 0xf7, 0x64, 0x6f,
- 0xfc, 0xad, 0xf8, 0xe4, 0xb7, 0x3c, 0xf3, 0x37, 0x10, 0x33, 0x1d, 0xf5, 0x25, 0x45, 0x77, 0x89,
- 0x42, 0x27, 0x2d, 0xed, 0xba, 0x5a, 0x20, 0x2f, 0x3e, 0x52, 0xaa, 0x1d, 0xe4, 0x75, 0x7a, 0x6e,
- 0x33, 0xfb, 0x36, 0x23, 0xa1, 0x57, 0xba, 0x0d, 0x32, 0xd4, 0x1d, 0x09, 0xd2, 0xe9, 0xc2, 0x08,
- 0x36, 0xea, 0x7c, 0xc9, 0xdb, 0xec, 0xf1, 0xc9, 0x2e, 0x82, 0x84, 0x2f, 0x72, 0xc6, 0x6f, 0x67,
- 0xde, 0xe1, 0x5e, 0x1b, 0x9a, 0x7f, 0x7e, 0xc1, 0x96, 0xa7, 0x6d, 0xe4, 0xda, 0x19, 0x62, 0x0a,
- 0x0e, 0x6a, 0x3b, 0xe6, 0x30, 0x96, 0xab, 0x07, 0x9e, 0x2e, 0xbb, 0x7f, 0xac, 0xeb, 0xc9, 0xc0,
- 0xce, 0x74, 0xdb, 0xa1, 0x24, 0x93, 0x80, 0x37, 0x6b, 0x03, 0x4e, 0x9d, 0xee, 0xb4, 0x3a, 0xf4,
- 0x09, 0x64, 0xc9, 0x34, 0x92, 0x60, 0x1f, 0x62, 0xad, 0xaa, 0xd5, 0xa5, 0xc7, 0x01, 0x28, 0xf2,
- 0x51, 0x3b, 0x7c, 0x79, 0xd8, 0xa7, 0x5d, 0x0a, 0x2b, 0x35, 0x11, 0xa9, 0xc2, 0xb6, 0x61, 0xaf,
- 0xee, 0xf5, 0x79, 0x35, 0xdb, 0x6d, 0x00, 0x59, 0xea, 0x45, 0xb0, 0xb1, 0xf1, 0x42, 0xcf, 0xd7,
- 0x69, 0x5a, 0xbd, 0xdd, 0xa3, 0x2a, 0xd3, 0x56, 0xc0, 0x64, 0x9c, 0x35, 0xdd, 0x94, 0x86, 0x5f,
- 0xde, 0x44, 0x20, 0x8e, 0x09, 0xea, 0x94, 0x29, 0x56, 0x24, 0x1f, 0x53, 0x9c, 0x2f, 0x4e, 0xa5,
- 0x75, 0x0c, 0xa6, 0x30, 0xf9, 0xd6, 0x28, 0xb7, 0x62, 0x82, 0x76, 0x6f, 0x83, 0x09, 0x4c, 0x02,
- 0x19, 0x7b, 0x48, 0xaa, 0x27, 0x7a, 0xad, 0x24, 0x89, 0x29, 0xcb, 0xb4, 0x29, 0x50, 0x2e, 0x3b,
- 0xee, 0xe5, 0x12, 0x0a, 0x12, 0xa8, 0x85, 0x97, 0x6f, 0x55, 0x1d, 0xc2, 0x6e, 0xc5, 0x72, 0xa1,
- 0x02, 0x82, 0x01, 0x00, 0x53, 0x9d, 0x62, 0x18, 0x68, 0x6b, 0x65, 0xad, 0x27, 0x70, 0x43, 0x17,
- 0x85, 0x8f, 0x13, 0xdc, 0x56, 0x14, 0xa7, 0xcf, 0xab, 0x3a, 0x1c, 0x47, 0x8a, 0x20, 0x97, 0x20,
- 0x24, 0x63, 0x74, 0x84, 0xa8, 0x9c, 0x62, 0x75, 0xf8, 0x79, 0x68, 0x51, 0x88, 0x4d, 0x2e, 0x89,
- 0x5c, 0x16, 0xa7, 0x17, 0xf0, 0x50, 0x38, 0xf6, 0x3f, 0x84, 0x14, 0x21, 0x3e, 0x6b, 0xa9, 0xe2,
- 0x32, 0x66, 0x27, 0xbe, 0x41, 0xad, 0x41, 0x74, 0x1b, 0x47, 0x9b, 0x42, 0xfc, 0xf5, 0xb7, 0xcf,
- 0xf0, 0xcd, 0xb1, 0xf1, 0x58, 0xe3, 0xc7, 0x83, 0x20, 0x8e, 0x07, 0x64, 0x2f, 0x57, 0x7e, 0xda,
- 0x6c, 0x5d, 0x2a, 0x85, 0x12, 0x9e, 0xda, 0xfd, 0x98, 0xef, 0xdd, 0x22, 0xf0, 0xc5, 0xa0, 0x45,
- 0xc9, 0x48, 0x97, 0xd5, 0xa0, 0x7b, 0x27, 0xb8, 0xa0, 0x56, 0x98, 0x4b, 0xd5, 0xbe, 0xef, 0x09,
- 0xfe, 0x6d, 0xd2, 0x37, 0xef, 0xe1, 0x23, 0xe4, 0x97, 0xfa, 0xb5, 0xd2, 0xb4, 0x88, 0x4f, 0xc5,
- 0xa1, 0x5b, 0x26, 0x49, 0x29, 0xba, 0xf9, 0x81, 0x4e, 0x75, 0x9c, 0x3b, 0x27, 0x46, 0xc2, 0xff,
- 0x0a, 0x14, 0x4f, 0x59, 0xc5, 0xee, 0x51, 0xcb, 0xa7, 0x99, 0xbf, 0x51, 0x9f, 0x38, 0x9d, 0x3f,
- 0xe1, 0xca, 0xd0, 0xbd, 0x6d, 0xe3, 0x4e, 0x3e, 0x84, 0xdf, 0xa9, 0x75, 0x5f, 0x1f, 0xee, 0x90,
- 0x49, 0x5b, 0x91, 0x63, 0xe0, 0xa2, 0x64, 0xe4, 0xb7, 0xe6, 0x8d, 0xb4, 0xcc, 0x90, 0xbb, 0x38,
- 0x5d, 0xb9, 0x93, 0xd6, 0xc6, 0x4d, 0xcf, 0x49, 0x6a, 0xeb, 0x74, 0x9a, 0xc4, 0xda, 0xc1, 0x1a,
- 0x90, 0xc1, 0xc8, 0x1a, 0x45, 0x94, 0x66, 0x9d, 0x80, 0x8b, 0xe5, 0xfc, 0x38, 0x43, 0x4b, 0x26,
- 0x38, 0x9d, 0x32, 0x6d, 0x9d, 0xcb, 0x0d, 0x9b, 0x5a, 0xb1, 0x4d, 0x27, 0xfa, 0x97, 0x86, 0x26,
- 0xbb, 0xb4, 0x1c, 0x92};
-
-static const uint8_t kRSACACertDER[] = {0x30, 0x82, 0x05, 0xfd, 0x30, 0x82, 0x03, 0xe5, 0xa0, 0x03,
- 0x02, 0x01, 0x02, 0x02, 0x14, 0x0f, 0x2d, 0x4d, 0xdd, 0x2f, 0xa5, 0xc0, 0x5f, 0x5a, 0xd3, 0x6e,
- 0x9f, 0xbe, 0x29, 0x68, 0xe9, 0x24, 0x72, 0x6c, 0xe9, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
- 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81, 0x8d, 0x31, 0x0b, 0x30, 0x09, 0x06,
- 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04,
- 0x08, 0x0c, 0x0a, 0x53, 0x6f, 0x6d, 0x65, 0x2d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x31, 0x21, 0x30,
- 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74,
- 0x20, 0x57, 0x69, 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c, 0x74, 0x64,
- 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x18, 0x4f, 0x72, 0x67, 0x61, 0x6e,
- 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x55, 0x6e, 0x69, 0x74, 0x20, 0x4e,
- 0x61, 0x6d, 0x65, 0x31, 0x23, 0x30, 0x21, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x1a, 0x6e, 0x6f,
- 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69,
- 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x61, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x39, 0x30, 0x35,
- 0x30, 0x38, 0x31, 0x32, 0x34, 0x30, 0x32, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x39, 0x30, 0x35, 0x30,
- 0x37, 0x31, 0x32, 0x34, 0x30, 0x32, 0x30, 0x5a, 0x30, 0x81, 0x8d, 0x31, 0x0b, 0x30, 0x09, 0x06,
- 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04,
- 0x08, 0x0c, 0x0a, 0x53, 0x6f, 0x6d, 0x65, 0x2d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x31, 0x21, 0x30,
- 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74,
- 0x20, 0x57, 0x69, 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c, 0x74, 0x64,
- 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x18, 0x4f, 0x72, 0x67, 0x61, 0x6e,
- 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x55, 0x6e, 0x69, 0x74, 0x20, 0x4e,
- 0x61, 0x6d, 0x65, 0x31, 0x23, 0x30, 0x21, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x1a, 0x6e, 0x6f,
- 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69,
- 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x61, 0x30, 0x82, 0x02, 0x22, 0x30, 0x0d, 0x06, 0x09,
- 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x02, 0x0f, 0x00,
- 0x30, 0x82, 0x02, 0x0a, 0x02, 0x82, 0x02, 0x01, 0x00, 0xd4, 0xa4, 0x24, 0xe8, 0xac, 0xef, 0xab,
- 0xb4, 0xfd, 0x30, 0x45, 0xb3, 0x2f, 0x5f, 0x28, 0xa7, 0xa7, 0x55, 0x8a, 0x73, 0x6c, 0x29, 0x70,
- 0x99, 0xb8, 0x13, 0x65, 0x68, 0xd2, 0x96, 0x71, 0x04, 0xc6, 0x52, 0x8e, 0xc9, 0x3e, 0xa0, 0xcb,
- 0x11, 0x9c, 0xbe, 0x04, 0x66, 0x41, 0x2b, 0x85, 0x4d, 0xac, 0x2f, 0x87, 0xef, 0x7b, 0x47, 0x0b,
- 0x79, 0xe3, 0x37, 0xd0, 0x9e, 0xb4, 0xfa, 0x8f, 0x94, 0x95, 0x4d, 0x41, 0x45, 0x5c, 0x75, 0x1b,
- 0x1c, 0xc5, 0x1d, 0xa8, 0x3b, 0x0e, 0x87, 0x9c, 0x06, 0xc5, 0xe6, 0x19, 0x0e, 0x00, 0x88, 0xb4,
- 0xfa, 0xf0, 0x3c, 0x57, 0x03, 0xd9, 0xbf, 0xee, 0x64, 0x8a, 0x22, 0x66, 0xeb, 0x4c, 0x91, 0xb3,
- 0x09, 0xac, 0x13, 0x50, 0xd6, 0x41, 0x5b, 0x4f, 0x7e, 0x06, 0x9a, 0xa6, 0x9b, 0x1f, 0x07, 0x95,
- 0xd0, 0xe9, 0x9e, 0x43, 0xb4, 0xe1, 0x60, 0xf0, 0x37, 0x53, 0xce, 0x73, 0xea, 0x6e, 0xad, 0x4f,
- 0x73, 0xe0, 0x8b, 0x24, 0xf4, 0x6b, 0xec, 0xfc, 0x09, 0xbc, 0xed, 0x88, 0x8b, 0x92, 0xa5, 0xfe,
- 0x1d, 0x51, 0x3c, 0x51, 0xe0, 0x0f, 0xb1, 0xe9, 0x9d, 0xf5, 0x24, 0x86, 0xb3, 0xd3, 0x98, 0x53,
- 0x81, 0x44, 0x6e, 0x02, 0x33, 0xe1, 0x04, 0xa3, 0x8d, 0xc9, 0x50, 0xa1, 0xff, 0x8b, 0x93, 0x37,
- 0xfc, 0x9c, 0xff, 0xd9, 0x8d, 0x07, 0x30, 0xdb, 0xeb, 0x6f, 0x77, 0xfb, 0x5f, 0x1b, 0xea, 0x5f,
- 0x30, 0xf6, 0x30, 0xa9, 0x7b, 0xb7, 0x08, 0xed, 0x60, 0x3f, 0xb7, 0x98, 0x42, 0xcd, 0x28, 0xf8,
- 0x5b, 0x68, 0x13, 0xf9, 0x31, 0x9a, 0x6c, 0x31, 0x58, 0x59, 0x1a, 0xcd, 0x2f, 0xa0, 0x5b, 0x0b,
- 0xdc, 0xdb, 0xf6, 0xc0, 0x51, 0x77, 0xce, 0x65, 0xa7, 0x81, 0x29, 0x68, 0xa4, 0xf7, 0x6a, 0x23,
- 0xb5, 0xf2, 0x82, 0xae, 0x6a, 0x80, 0xaf, 0x46, 0xa3, 0xfa, 0xc1, 0xee, 0x69, 0x22, 0x2a, 0x00,
- 0xa4, 0x22, 0x93, 0x70, 0x70, 0x5d, 0x0b, 0xc6, 0x7d, 0x04, 0x4d, 0x68, 0x95, 0xd6, 0xaf, 0x8f,
- 0x08, 0x16, 0x97, 0x64, 0x57, 0x3f, 0xb0, 0x6d, 0x1a, 0xd6, 0xc3, 0xf8, 0xbe, 0x73, 0xe4, 0x8d,
- 0x39, 0x25, 0xff, 0x68, 0x2d, 0xb8, 0x0c, 0xf5, 0xd1, 0xa0, 0xe2, 0xd2, 0x41, 0x1d, 0xda, 0xbe,
- 0xe9, 0x8a, 0x30, 0x9b, 0x0e, 0xed, 0xc7, 0x8c, 0xee, 0x97, 0xda, 0x5f, 0xe4, 0x18, 0x28, 0x07,
- 0x53, 0xce, 0x1a, 0xff, 0x86, 0x1c, 0xc6, 0xe0, 0x0b, 0xab, 0x51, 0x95, 0xef, 0xe2, 0xdb, 0x23,
- 0x0a, 0x01, 0xb5, 0x51, 0x3e, 0x5a, 0xc1, 0x32, 0xe6, 0xf2, 0xb1, 0x59, 0xe1, 0xbb, 0xaa, 0x77,
- 0x4e, 0xae, 0xfa, 0x4d, 0x3c, 0x18, 0x1a, 0xdf, 0xe7, 0xde, 0x3e, 0x66, 0xc6, 0xcf, 0xbd, 0x9b,
- 0xa8, 0x5a, 0x8c, 0xa1, 0x80, 0x7c, 0x3d, 0x89, 0x45, 0x40, 0x54, 0x25, 0xfa, 0x93, 0xff, 0xde,
- 0x49, 0x56, 0x54, 0x45, 0x13, 0xce, 0x55, 0xb2, 0xbb, 0x19, 0x47, 0x7f, 0x5e, 0x5e, 0xd3, 0xd9,
- 0xdc, 0x01, 0x5c, 0x12, 0x58, 0xdc, 0x47, 0x67, 0x6c, 0xc8, 0xbb, 0x9e, 0xa1, 0x75, 0xd1, 0x17,
- 0x07, 0x07, 0x9b, 0xc4, 0x4a, 0xdd, 0x4c, 0x52, 0x48, 0x64, 0x1b, 0x64, 0x1b, 0x1a, 0x37, 0xe6,
- 0x51, 0xeb, 0x0c, 0xf5, 0x49, 0x78, 0x71, 0x6a, 0x11, 0x68, 0xbf, 0x59, 0x09, 0xeb, 0x4b, 0x3a,
- 0xfa, 0xbe, 0x75, 0x96, 0x07, 0x7a, 0xa6, 0xd0, 0x45, 0xb6, 0x49, 0xe7, 0x7a, 0xcc, 0xdf, 0xc7,
- 0x20, 0xe8, 0xa5, 0xb6, 0xf4, 0x4f, 0x7a, 0x3b, 0xa0, 0x94, 0x9b, 0x00, 0xa8, 0x88, 0xe1, 0x4a,
- 0x2d, 0x91, 0xfa, 0x5a, 0x00, 0xf2, 0x49, 0xf0, 0xba, 0x08, 0xed, 0x7a, 0xcc, 0x87, 0x01, 0xf0,
- 0x84, 0xee, 0x49, 0x45, 0x7f, 0x7f, 0x71, 0x9a, 0x71, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x53,
- 0x30, 0x51, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xb4, 0x59, 0x44,
- 0x9c, 0xe3, 0x18, 0xd1, 0x69, 0x15, 0x4a, 0x38, 0x8b, 0x82, 0x0d, 0x19, 0x83, 0x1f, 0xe0, 0x02,
- 0x37, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xb4, 0x59,
- 0x44, 0x9c, 0xe3, 0x18, 0xd1, 0x69, 0x15, 0x4a, 0x38, 0x8b, 0x82, 0x0d, 0x19, 0x83, 0x1f, 0xe0,
- 0x02, 0x37, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03,
- 0x01, 0x01, 0xff, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b,
- 0x05, 0x00, 0x03, 0x82, 0x02, 0x01, 0x00, 0x09, 0xbc, 0xf2, 0x4f, 0x06, 0x98, 0xf7, 0x8a, 0xfb,
- 0x49, 0xc7, 0x78, 0x7c, 0xd7, 0x00, 0x00, 0x51, 0x75, 0x91, 0xdb, 0xd0, 0xd2, 0x9c, 0x61, 0xeb,
- 0xe5, 0x15, 0x80, 0x50, 0xc8, 0xed, 0x50, 0x5c, 0x0e, 0x3b, 0x77, 0x51, 0x48, 0x44, 0xc4, 0xce,
- 0x81, 0x9a, 0x60, 0x1c, 0xf1, 0xc2, 0x25, 0xfc, 0xcd, 0x7d, 0xf8, 0x2f, 0xf9, 0xcf, 0x21, 0x28,
- 0x36, 0xa3, 0xc5, 0x15, 0x99, 0x75, 0x5b, 0x13, 0x65, 0xb8, 0x28, 0x1d, 0xde, 0x18, 0xaf, 0x1b,
- 0xd8, 0x6f, 0xd8, 0x83, 0xbf, 0xbb, 0xa9, 0x13, 0x44, 0xfe, 0x4a, 0x19, 0xac, 0x18, 0x00, 0x94,
- 0x3f, 0xdc, 0xe4, 0x34, 0x73, 0x44, 0xbf, 0x9f, 0x1b, 0x01, 0x70, 0xd5, 0x92, 0x2b, 0xce, 0x1c,
- 0x63, 0xc5, 0xfb, 0x6b, 0x0e, 0xe0, 0x8d, 0x48, 0x59, 0x5c, 0xcd, 0xac, 0x62, 0x9a, 0xd0, 0xf0,
- 0xa8, 0xe7, 0x35, 0x02, 0x95, 0xc9, 0x3f, 0x65, 0xab, 0x76, 0x38, 0xab, 0x18, 0x32, 0x64, 0xa7,
- 0x14, 0x53, 0xc8, 0xaf, 0x49, 0x61, 0xaa, 0x94, 0x05, 0xd1, 0xaa, 0xd6, 0xea, 0x34, 0xda, 0xc8,
- 0x73, 0xdb, 0xad, 0x48, 0xd8, 0xcc, 0x5a, 0x44, 0xda, 0xa6, 0x0b, 0xbb, 0xc4, 0x7b, 0xce, 0x0f,
- 0x5f, 0xa6, 0x46, 0xe5, 0x90, 0xfb, 0xf0, 0xa5, 0x04, 0x0c, 0x32, 0xa8, 0x54, 0xdc, 0x62, 0x97,
- 0x57, 0x4a, 0xdf, 0xb3, 0x03, 0x42, 0x64, 0xe8, 0x43, 0xc2, 0xdb, 0x38, 0x73, 0x6f, 0x67, 0x7d,
- 0x6d, 0x56, 0x2f, 0x51, 0x41, 0x8f, 0x84, 0x82, 0x7e, 0x25, 0x04, 0xe2, 0x37, 0x68, 0xf8, 0x35,
- 0x6a, 0x71, 0x3c, 0xde, 0xf7, 0x18, 0xb4, 0x4f, 0xbd, 0xfc, 0x73, 0x81, 0x96, 0x72, 0x03, 0x47,
- 0x7c, 0x04, 0x6d, 0x76, 0x56, 0x7f, 0x27, 0x2a, 0x46, 0x20, 0x75, 0x7f, 0x0c, 0xb1, 0xd6, 0xcc,
- 0x9d, 0x99, 0xcc, 0x7d, 0x23, 0x43, 0xed, 0xe2, 0xf4, 0x08, 0x4d, 0xe7, 0xf3, 0xdb, 0x0e, 0x69,
- 0xfd, 0x4b, 0xb4, 0xce, 0x5e, 0x83, 0xd7, 0x0c, 0xd5, 0x43, 0x9b, 0x18, 0x9d, 0x67, 0x5b, 0x13,
- 0xce, 0x50, 0x11, 0x1d, 0xa6, 0x31, 0x24, 0x6b, 0xae, 0x23, 0x41, 0xae, 0x90, 0xbb, 0x80, 0x2a,
- 0x92, 0x78, 0xe8, 0x45, 0xc0, 0xde, 0xb5, 0xe7, 0x10, 0xb0, 0xac, 0x99, 0x7d, 0x3e, 0x2a, 0x38,
- 0x4d, 0xb9, 0x96, 0x5d, 0x38, 0x49, 0xf1, 0x3f, 0xb8, 0x74, 0xc2, 0x3f, 0x53, 0x93, 0x7a, 0x1d,
- 0x60, 0x1f, 0xb0, 0x19, 0xd1, 0xee, 0x06, 0x16, 0x68, 0x1c, 0x26, 0xa2, 0xad, 0xfd, 0xfd, 0x99,
- 0x01, 0xab, 0xe1, 0xfa, 0xac, 0x9f, 0x79, 0xe7, 0xfb, 0xe4, 0xd9, 0xe4, 0xb6, 0x9f, 0xa5, 0xc2,
- 0x80, 0x9e, 0x04, 0x32, 0x2f, 0x52, 0xbc, 0x39, 0xff, 0x38, 0xa8, 0x14, 0x81, 0x98, 0xef, 0x99,
- 0x86, 0x3f, 0x13, 0x8d, 0x2e, 0xb8, 0xc5, 0xcc, 0x2b, 0xd9, 0xb5, 0x20, 0x21, 0x32, 0x82, 0xf4,
- 0x5a, 0x37, 0xb2, 0x08, 0xaa, 0xec, 0x3f, 0x47, 0x06, 0x84, 0x55, 0x8d, 0xf3, 0xb4, 0xf3, 0xea,
- 0x41, 0x56, 0x58, 0xc9, 0x1a, 0x88, 0x11, 0x93, 0x4c, 0xc5, 0x59, 0x14, 0x0e, 0x54, 0x6e, 0x5f,
- 0x2b, 0x62, 0x2f, 0x5d, 0xbd, 0xfe, 0x07, 0x37, 0x2c, 0xc4, 0x6d, 0x30, 0x58, 0xb9, 0x02, 0xe7,
- 0x81, 0xf8, 0x96, 0x8e, 0xbd, 0x9a, 0x03, 0x4b, 0xc1, 0x0d, 0x66, 0x28, 0xdd, 0x2f, 0xb7, 0x58,
- 0xeb, 0xb8, 0x49, 0xa3, 0x91, 0xf3, 0x60, 0xe6, 0x36, 0x15, 0xb1, 0xfb, 0xb6, 0xf3, 0x54, 0x3f,
- 0x7b, 0x1d, 0x10, 0xa4, 0x5a, 0x41, 0xba, 0x47, 0x92, 0xc5, 0xeb, 0x6a, 0x3b, 0xc6, 0xeb, 0xbc,
- 0x05, 0x97, 0xc0, 0x77, 0xc8, 0x89, 0x4f, 0xf0, 0xee, 0xfa, 0xaf, 0xbe, 0x90, 0x05, 0xc4, 0x3e,
- 0x48, 0x82, 0x09, 0x17, 0xf1, 0x3d, 0x8b};
-
-static const uint8_t kECCACertDER[] = {0x30, 0x82, 0x02, 0xfd, 0x30, 0x82, 0x02, 0x5e, 0xa0, 0x03,
- 0x02, 0x01, 0x02, 0x02, 0x14, 0x47, 0x96, 0xf7, 0x19, 0x12, 0x8f, 0x46, 0x3b, 0xd1, 0x98, 0xe6,
- 0xd6, 0xc4, 0x5a, 0x79, 0x3f, 0xe9, 0xde, 0x4e, 0x4b, 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48,
- 0xce, 0x3d, 0x04, 0x03, 0x02, 0x30, 0x81, 0x8f, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04,
- 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0a,
- 0x53, 0x6f, 0x6d, 0x65, 0x2d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03,
+ 0x74, 0x64, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x19, 0x77, 0x77, 0x77,
+ 0x2e, 0x61, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78,
+ 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x30, 0x82, 0x02, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x02, 0x0f, 0x00, 0x30, 0x82,
+ 0x02, 0x0a, 0x02, 0x82, 0x02, 0x01, 0x00, 0xca, 0x91, 0xe1, 0x6a, 0xf8, 0xd9, 0xcc, 0x06, 0x07,
+ 0x60, 0x16, 0x21, 0x60, 0xdc, 0xbb, 0xfc, 0x36, 0x3a, 0xf2, 0x93, 0x3c, 0x73, 0xc2, 0x96, 0xa1,
+ 0xe8, 0x10, 0xbf, 0x11, 0xb8, 0xc9, 0x1c, 0x37, 0x67, 0x9b, 0x85, 0x00, 0xa1, 0x6f, 0x66, 0x2f,
+ 0xf5, 0x04, 0x6e, 0x1c, 0x22, 0x83, 0x7a, 0x6e, 0xab, 0x28, 0x43, 0xfe, 0x32, 0xbd, 0xed, 0xa0,
+ 0x7a, 0x4a, 0x84, 0x14, 0x85, 0x79, 0x8a, 0x1e, 0xf4, 0x4f, 0x12, 0x6c, 0xe2, 0xfd, 0xde, 0x47,
+ 0x29, 0xe5, 0xe2, 0xad, 0x0d, 0x87, 0x45, 0xcf, 0x07, 0xdb, 0x8c, 0x40, 0xa1, 0xee, 0x3f, 0x77,
+ 0xcb, 0xee, 0xcc, 0xe2, 0x17, 0x79, 0xcc, 0x4b, 0xd5, 0x83, 0x9d, 0xe1, 0x48, 0xce, 0x33, 0xf7,
+ 0xd4, 0x68, 0x46, 0x14, 0x8c, 0x97, 0x82, 0xde, 0xde, 0x9d, 0x76, 0x88, 0x73, 0xf4, 0xf9, 0xcf,
+ 0x26, 0x32, 0x75, 0x19, 0x9b, 0x70, 0x81, 0xe5, 0x19, 0xb0, 0x8c, 0x90, 0x8b, 0x5e, 0x1a, 0xbd,
+ 0xc7, 0x95, 0xfb, 0xf2, 0xea, 0x77, 0x6a, 0x7a, 0xce, 0x67, 0x51, 0xc6, 0x24, 0x99, 0x95, 0x23,
+ 0xc2, 0x04, 0xb8, 0x44, 0xd8, 0x70, 0xf3, 0xaf, 0x78, 0xc4, 0x71, 0xb1, 0x76, 0x11, 0x0c, 0xe7,
+ 0x50, 0x16, 0xc8, 0x33, 0x64, 0xcd, 0xdd, 0x0b, 0xaf, 0xb8, 0x2d, 0x4b, 0x21, 0xb1, 0x64, 0xa1,
+ 0x22, 0x1b, 0xad, 0x8f, 0x42, 0x97, 0xcc, 0x64, 0x30, 0xb3, 0x3f, 0xb4, 0xfc, 0x6e, 0x15, 0xa4,
+ 0xf3, 0x96, 0x1f, 0xd8, 0xe4, 0xac, 0xa1, 0xd5, 0xdb, 0x9e, 0x28, 0xb3, 0xac, 0x17, 0x54, 0x2a,
+ 0x53, 0xeb, 0x00, 0x62, 0x48, 0xaa, 0x74, 0x7e, 0x84, 0x5a, 0x50, 0xcc, 0x15, 0x48, 0x96, 0x19,
+ 0xea, 0xc7, 0xdc, 0x2b, 0x3d, 0x5f, 0xff, 0x03, 0x6a, 0x82, 0x43, 0xf3, 0x9b, 0x2e, 0xf3, 0x43,
+ 0x50, 0x83, 0xcd, 0xb3, 0x98, 0x50, 0x51, 0x9d, 0x4a, 0x1e, 0x7c, 0x58, 0xfc, 0xe5, 0x7b, 0xb6,
+ 0xe0, 0x8e, 0xce, 0xe3, 0xcf, 0x53, 0x50, 0x12, 0x85, 0x51, 0x49, 0x9a, 0x28, 0x59, 0x6b, 0x68,
+ 0xef, 0x94, 0x20, 0xc8, 0x72, 0x5a, 0x7f, 0x7d, 0xaa, 0x8b, 0x34, 0xf5, 0xc4, 0xc6, 0xed, 0xc2,
+ 0x1c, 0xa9, 0xfa, 0xcf, 0x51, 0x2e, 0xa2, 0x2b, 0xf0, 0xfd, 0x4d, 0x49, 0xee, 0xb3, 0xa4, 0xee,
+ 0xd4, 0x7b, 0xec, 0xa2, 0xec, 0xd4, 0xf8, 0xbf, 0x16, 0x79, 0x61, 0x0c, 0x1c, 0x39, 0xd3, 0x75,
+ 0x1f, 0x2d, 0x16, 0xcd, 0x7c, 0x4a, 0xe5, 0x01, 0x90, 0x91, 0x26, 0x92, 0xd9, 0x4e, 0x89, 0xc4,
+ 0x58, 0xd8, 0x08, 0x19, 0xa5, 0x8d, 0x85, 0x29, 0xfd, 0xae, 0xb2, 0xc9, 0x72, 0xca, 0x48, 0x9b,
+ 0xbe, 0x14, 0x03, 0x03, 0xf1, 0x72, 0xb4, 0x6d, 0x19, 0x87, 0xe9, 0xc9, 0xc0, 0x9e, 0x95, 0xac,
+ 0x79, 0xcf, 0x24, 0xee, 0xc4, 0x4f, 0x84, 0x25, 0xc7, 0xc0, 0xae, 0x30, 0x04, 0x3c, 0xa9, 0x52,
+ 0x75, 0x6f, 0x97, 0x79, 0x98, 0xc0, 0xd7, 0xeb, 0x84, 0x9a, 0x57, 0x99, 0x3c, 0x01, 0x8b, 0x3b,
+ 0xc0, 0x91, 0xe3, 0xfd, 0xe1, 0x88, 0x88, 0xa0, 0x34, 0xd8, 0x5d, 0xe8, 0xe6, 0xba, 0xab, 0x76,
+ 0x6f, 0x33, 0x3e, 0x97, 0x04, 0x93, 0xd3, 0x4c, 0x22, 0xb1, 0xa9, 0x79, 0x66, 0xc5, 0xb6, 0xbb,
+ 0x23, 0x50, 0xbe, 0x54, 0x1a, 0xab, 0x7a, 0x99, 0x9e, 0x2b, 0x4f, 0xed, 0x5a, 0x7a, 0x5c, 0xbd,
+ 0xf2, 0x32, 0x34, 0x02, 0x82, 0x4c, 0xb8, 0x11, 0x65, 0x22, 0x77, 0x42, 0x7f, 0xb1, 0x7b, 0x98,
+ 0x1b, 0x82, 0x8f, 0xe7, 0x1f, 0x7b, 0x07, 0x21, 0x98, 0x60, 0xb4, 0x7b, 0xe2, 0x9a, 0xcb, 0xe9,
+ 0xb3, 0x49, 0x35, 0x86, 0xea, 0x8b, 0x21, 0x46, 0xe9, 0x5b, 0x16, 0xe8, 0x2c, 0xe5, 0x9c, 0xb5,
+ 0x96, 0x45, 0xce, 0x0c, 0x40, 0xbb, 0x97, 0x02, 0x03, 0x01, 0x00, 0x01, 0x30, 0x0d, 0x06, 0x09,
+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x02, 0x01, 0x00,
+ 0x56, 0x8f, 0xf2, 0xb7, 0x14, 0x35, 0x20, 0xf5, 0x42, 0x8b, 0x51, 0xd4, 0x65, 0x10, 0xf3, 0x8a,
+ 0x38, 0x5d, 0x3b, 0xd0, 0x48, 0xb9, 0x8e, 0x5a, 0x87, 0x29, 0x67, 0xd7, 0x7f, 0x48, 0x29, 0x97,
+ 0x7b, 0xad, 0xba, 0x09, 0xe1, 0xf8, 0x19, 0xde, 0x3f, 0x33, 0x04, 0x35, 0x37, 0x8d, 0x6d, 0xb8,
+ 0x7f, 0x29, 0x2b, 0xd4, 0xfe, 0x1f, 0x4e, 0xa7, 0x9d, 0xcf, 0x4d, 0x4a, 0x9e, 0x2d, 0x01, 0x8e,
+ 0x2d, 0x0c, 0xa3, 0x68, 0x37, 0xfc, 0x47, 0xd8, 0xb6, 0x6d, 0x37, 0xf1, 0xf8, 0xb0, 0x71, 0xc1,
+ 0xb5, 0x29, 0x7e, 0x88, 0x96, 0xa7, 0x93, 0xae, 0x4c, 0x5d, 0x89, 0x10, 0x5e, 0x6b, 0x04, 0xcf,
+ 0x7f, 0x6d, 0x2e, 0xad, 0x2f, 0xa7, 0x0f, 0xfc, 0x5d, 0x48, 0x5a, 0xd3, 0x70, 0xbc, 0x86, 0xeb,
+ 0x75, 0xbe, 0xd1, 0x9f, 0x5d, 0x62, 0xb7, 0xcb, 0x7b, 0x1e, 0x9b, 0x06, 0x7a, 0xe7, 0xe5, 0x05,
+ 0x68, 0x52, 0x7e, 0x15, 0x27, 0xbf, 0x4c, 0x65, 0x45, 0xce, 0x18, 0xa9, 0x49, 0xa6, 0x12, 0xbf,
+ 0x8c, 0x33, 0x01, 0xdc, 0xc6, 0x5c, 0x3e, 0x50, 0x77, 0xaf, 0x8e, 0x97, 0xfd, 0xcc, 0x51, 0x36,
+ 0x82, 0x46, 0xd8, 0x7e, 0xe6, 0xa8, 0x5a, 0x91, 0x26, 0x12, 0x05, 0x0b, 0x50, 0xf1, 0x8f, 0x21,
+ 0x3a, 0x85, 0x0e, 0x5f, 0x09, 0xf1, 0x6c, 0xea, 0xb4, 0x6b, 0x33, 0xbd, 0xb1, 0x24, 0xed, 0x53,
+ 0xbb, 0x3f, 0x88, 0xd3, 0xfb, 0xba, 0x4a, 0x87, 0x0c, 0xbf, 0x83, 0x92, 0xb3, 0x5c, 0x7d, 0x85,
+ 0x2e, 0x10, 0x65, 0xab, 0xa7, 0x3d, 0x40, 0xdd, 0x8e, 0xe3, 0xba, 0xbb, 0x1e, 0x58, 0xe9, 0x1c,
+ 0x76, 0x1d, 0xe9, 0x81, 0xf4, 0x9d, 0x77, 0x2f, 0x44, 0x00, 0x4d, 0xb9, 0x2c, 0x31, 0x5b, 0x42,
+ 0x6f, 0x10, 0x35, 0xed, 0x08, 0xc4, 0x51, 0xb3, 0x01, 0x9e, 0xce, 0x27, 0x33, 0xd0, 0x44, 0x98,
+ 0x95, 0x3c, 0xe2, 0x9d, 0xdb, 0x58, 0xff, 0xc7, 0xc7, 0xea, 0x9b, 0x3f, 0xe2, 0xa2, 0x37, 0x5e,
+ 0x8d, 0x94, 0xa2, 0xb0, 0x55, 0x68, 0x89, 0x10, 0xd7, 0xb9, 0x3c, 0xc0, 0xec, 0xe4, 0x36, 0x46,
+ 0x3c, 0x47, 0xb9, 0x8d, 0x74, 0x17, 0xad, 0xca, 0x07, 0x67, 0x27, 0xea, 0xba, 0xd0, 0xa7, 0x2c,
+ 0x06, 0x0f, 0x2d, 0xa3, 0x41, 0xf8, 0x28, 0x3f, 0x88, 0x38, 0x25, 0x61, 0xf8, 0x87, 0x92, 0x63,
+ 0xd8, 0x5c, 0x2b, 0xff, 0x3c, 0xa1, 0xff, 0xb0, 0x98, 0x21, 0xcd, 0x25, 0x7e, 0x5f, 0xa5, 0x05,
+ 0xf5, 0x90, 0x0d, 0xf7, 0xeb, 0x1a, 0xff, 0xe2, 0xeb, 0x1b, 0x9a, 0x1f, 0x49, 0xdb, 0x65, 0xc4,
+ 0x1f, 0x32, 0x41, 0xea, 0x79, 0xb7, 0x85, 0x73, 0x01, 0x39, 0x67, 0x85, 0x49, 0x57, 0xe0, 0x21,
+ 0xf8, 0x61, 0x26, 0x30, 0x89, 0xd1, 0x03, 0xef, 0x1d, 0xb9, 0x3e, 0x71, 0x64, 0x31, 0xb3, 0xe9,
+ 0x70, 0x91, 0x78, 0x46, 0x0a, 0x9a, 0x33, 0xe5, 0x21, 0x42, 0x87, 0x26, 0xef, 0xaf, 0xe5, 0xc7,
+ 0x6a, 0x2f, 0x3c, 0x66, 0xe6, 0xd8, 0x68, 0xc8, 0x98, 0xd8, 0xae, 0x68, 0x47, 0x52, 0x23, 0xc1,
+ 0x9f, 0x35, 0xb8, 0xc4, 0xf4, 0x42, 0xa7, 0xd4, 0xf3, 0x3f, 0xb0, 0xcd, 0x04, 0x7d, 0x40, 0x08,
+ 0x22, 0x12, 0xe9, 0xe1, 0xbd, 0x4d, 0x02, 0x23, 0x4b, 0x9f, 0x98, 0x08, 0x74, 0x1e, 0xdd, 0x8d,
+ 0xd4, 0xa2, 0x87, 0x29, 0xd3, 0xb4, 0xe6, 0x65, 0x4c, 0xda, 0x5f, 0x6d, 0x5a, 0xb3, 0x6f, 0xaa,
+ 0xcf, 0xe5, 0xd6, 0x50, 0x8d, 0xca, 0x60, 0x07, 0xf1, 0x70, 0xa8, 0x8d, 0x5c, 0x8b, 0x18, 0xc4,
+ 0x0b, 0xfa, 0x76, 0xb3, 0xca, 0xb7, 0xc2, 0xfe, 0x08, 0x51, 0x1e, 0x07, 0xa3, 0xf4, 0x1c, 0x4f,
+ 0x48, 0x77, 0xb5, 0x3e, 0x23, 0x4b, 0xbd, 0xf2, 0xa8, 0x2f, 0xc3, 0xd7, 0xf3, 0x61, 0x1b, 0x9c};
+
+static const uint8_t kRSAPrivateKeyDER[] = {0x30, 0x82, 0x09, 0x2a, 0x02, 0x01, 0x00, 0x02, 0x82,
+ 0x02, 0x01, 0x00, 0xca, 0x91, 0xe1, 0x6a, 0xf8, 0xd9, 0xcc, 0x06, 0x07, 0x60, 0x16, 0x21, 0x60,
+ 0xdc, 0xbb, 0xfc, 0x36, 0x3a, 0xf2, 0x93, 0x3c, 0x73, 0xc2, 0x96, 0xa1, 0xe8, 0x10, 0xbf, 0x11,
+ 0xb8, 0xc9, 0x1c, 0x37, 0x67, 0x9b, 0x85, 0x00, 0xa1, 0x6f, 0x66, 0x2f, 0xf5, 0x04, 0x6e, 0x1c,
+ 0x22, 0x83, 0x7a, 0x6e, 0xab, 0x28, 0x43, 0xfe, 0x32, 0xbd, 0xed, 0xa0, 0x7a, 0x4a, 0x84, 0x14,
+ 0x85, 0x79, 0x8a, 0x1e, 0xf4, 0x4f, 0x12, 0x6c, 0xe2, 0xfd, 0xde, 0x47, 0x29, 0xe5, 0xe2, 0xad,
+ 0x0d, 0x87, 0x45, 0xcf, 0x07, 0xdb, 0x8c, 0x40, 0xa1, 0xee, 0x3f, 0x77, 0xcb, 0xee, 0xcc, 0xe2,
+ 0x17, 0x79, 0xcc, 0x4b, 0xd5, 0x83, 0x9d, 0xe1, 0x48, 0xce, 0x33, 0xf7, 0xd4, 0x68, 0x46, 0x14,
+ 0x8c, 0x97, 0x82, 0xde, 0xde, 0x9d, 0x76, 0x88, 0x73, 0xf4, 0xf9, 0xcf, 0x26, 0x32, 0x75, 0x19,
+ 0x9b, 0x70, 0x81, 0xe5, 0x19, 0xb0, 0x8c, 0x90, 0x8b, 0x5e, 0x1a, 0xbd, 0xc7, 0x95, 0xfb, 0xf2,
+ 0xea, 0x77, 0x6a, 0x7a, 0xce, 0x67, 0x51, 0xc6, 0x24, 0x99, 0x95, 0x23, 0xc2, 0x04, 0xb8, 0x44,
+ 0xd8, 0x70, 0xf3, 0xaf, 0x78, 0xc4, 0x71, 0xb1, 0x76, 0x11, 0x0c, 0xe7, 0x50, 0x16, 0xc8, 0x33,
+ 0x64, 0xcd, 0xdd, 0x0b, 0xaf, 0xb8, 0x2d, 0x4b, 0x21, 0xb1, 0x64, 0xa1, 0x22, 0x1b, 0xad, 0x8f,
+ 0x42, 0x97, 0xcc, 0x64, 0x30, 0xb3, 0x3f, 0xb4, 0xfc, 0x6e, 0x15, 0xa4, 0xf3, 0x96, 0x1f, 0xd8,
+ 0xe4, 0xac, 0xa1, 0xd5, 0xdb, 0x9e, 0x28, 0xb3, 0xac, 0x17, 0x54, 0x2a, 0x53, 0xeb, 0x00, 0x62,
+ 0x48, 0xaa, 0x74, 0x7e, 0x84, 0x5a, 0x50, 0xcc, 0x15, 0x48, 0x96, 0x19, 0xea, 0xc7, 0xdc, 0x2b,
+ 0x3d, 0x5f, 0xff, 0x03, 0x6a, 0x82, 0x43, 0xf3, 0x9b, 0x2e, 0xf3, 0x43, 0x50, 0x83, 0xcd, 0xb3,
+ 0x98, 0x50, 0x51, 0x9d, 0x4a, 0x1e, 0x7c, 0x58, 0xfc, 0xe5, 0x7b, 0xb6, 0xe0, 0x8e, 0xce, 0xe3,
+ 0xcf, 0x53, 0x50, 0x12, 0x85, 0x51, 0x49, 0x9a, 0x28, 0x59, 0x6b, 0x68, 0xef, 0x94, 0x20, 0xc8,
+ 0x72, 0x5a, 0x7f, 0x7d, 0xaa, 0x8b, 0x34, 0xf5, 0xc4, 0xc6, 0xed, 0xc2, 0x1c, 0xa9, 0xfa, 0xcf,
+ 0x51, 0x2e, 0xa2, 0x2b, 0xf0, 0xfd, 0x4d, 0x49, 0xee, 0xb3, 0xa4, 0xee, 0xd4, 0x7b, 0xec, 0xa2,
+ 0xec, 0xd4, 0xf8, 0xbf, 0x16, 0x79, 0x61, 0x0c, 0x1c, 0x39, 0xd3, 0x75, 0x1f, 0x2d, 0x16, 0xcd,
+ 0x7c, 0x4a, 0xe5, 0x01, 0x90, 0x91, 0x26, 0x92, 0xd9, 0x4e, 0x89, 0xc4, 0x58, 0xd8, 0x08, 0x19,
+ 0xa5, 0x8d, 0x85, 0x29, 0xfd, 0xae, 0xb2, 0xc9, 0x72, 0xca, 0x48, 0x9b, 0xbe, 0x14, 0x03, 0x03,
+ 0xf1, 0x72, 0xb4, 0x6d, 0x19, 0x87, 0xe9, 0xc9, 0xc0, 0x9e, 0x95, 0xac, 0x79, 0xcf, 0x24, 0xee,
+ 0xc4, 0x4f, 0x84, 0x25, 0xc7, 0xc0, 0xae, 0x30, 0x04, 0x3c, 0xa9, 0x52, 0x75, 0x6f, 0x97, 0x79,
+ 0x98, 0xc0, 0xd7, 0xeb, 0x84, 0x9a, 0x57, 0x99, 0x3c, 0x01, 0x8b, 0x3b, 0xc0, 0x91, 0xe3, 0xfd,
+ 0xe1, 0x88, 0x88, 0xa0, 0x34, 0xd8, 0x5d, 0xe8, 0xe6, 0xba, 0xab, 0x76, 0x6f, 0x33, 0x3e, 0x97,
+ 0x04, 0x93, 0xd3, 0x4c, 0x22, 0xb1, 0xa9, 0x79, 0x66, 0xc5, 0xb6, 0xbb, 0x23, 0x50, 0xbe, 0x54,
+ 0x1a, 0xab, 0x7a, 0x99, 0x9e, 0x2b, 0x4f, 0xed, 0x5a, 0x7a, 0x5c, 0xbd, 0xf2, 0x32, 0x34, 0x02,
+ 0x82, 0x4c, 0xb8, 0x11, 0x65, 0x22, 0x77, 0x42, 0x7f, 0xb1, 0x7b, 0x98, 0x1b, 0x82, 0x8f, 0xe7,
+ 0x1f, 0x7b, 0x07, 0x21, 0x98, 0x60, 0xb4, 0x7b, 0xe2, 0x9a, 0xcb, 0xe9, 0xb3, 0x49, 0x35, 0x86,
+ 0xea, 0x8b, 0x21, 0x46, 0xe9, 0x5b, 0x16, 0xe8, 0x2c, 0xe5, 0x9c, 0xb5, 0x96, 0x45, 0xce, 0x0c,
+ 0x40, 0xbb, 0x97, 0x02, 0x03, 0x01, 0x00, 0x01, 0x02, 0x82, 0x02, 0x01, 0x00, 0x97, 0x36, 0x08,
+ 0x37, 0xca, 0xe5, 0x01, 0x98, 0x6a, 0x7e, 0xfe, 0x66, 0x12, 0x21, 0x13, 0xae, 0x74, 0x68, 0xd2,
+ 0x54, 0xb8, 0x26, 0x8d, 0x55, 0xd6, 0x2c, 0x1d, 0xfc, 0x12, 0xe5, 0x86, 0x32, 0x2a, 0xe5, 0x8b,
+ 0x40, 0xe0, 0x34, 0xa1, 0xac, 0x7d, 0x16, 0x00, 0x25, 0x95, 0x98, 0xe9, 0xde, 0x45, 0xa8, 0x3c,
+ 0x19, 0x6d, 0x32, 0x41, 0x76, 0x95, 0x79, 0x54, 0x10, 0x7e, 0x25, 0x18, 0x91, 0xd3, 0x03, 0x79,
+ 0xd6, 0xfe, 0x32, 0xff, 0x60, 0xa2, 0x6c, 0x93, 0x2e, 0xff, 0x10, 0xff, 0x2e, 0x4c, 0x19, 0xc8,
+ 0x78, 0x4c, 0x72, 0xd4, 0x1e, 0xca, 0x75, 0x0f, 0xa0, 0x1f, 0x11, 0x79, 0x18, 0xd8, 0x6e, 0xdc,
+ 0x9d, 0xc8, 0xe2, 0x89, 0x12, 0x5f, 0xe8, 0x4d, 0xa2, 0x2a, 0x8a, 0xbc, 0x3a, 0xb3, 0xd5, 0x27,
+ 0x63, 0xa8, 0xfe, 0x2e, 0x1b, 0x1f, 0xd7, 0x9a, 0x88, 0xb1, 0x01, 0xc8, 0x1d, 0x1e, 0x80, 0x6b,
+ 0xba, 0xb1, 0xd7, 0x66, 0xfa, 0xbd, 0x39, 0xb4, 0x2a, 0xeb, 0xac, 0xbc, 0x51, 0x5e, 0xb4, 0x9e,
+ 0x89, 0x7b, 0x48, 0x2c, 0xe1, 0x18, 0x5d, 0x27, 0x1a, 0xca, 0x41, 0x6b, 0x27, 0x6c, 0x8f, 0xd0,
+ 0xcc, 0x31, 0xb5, 0x39, 0x8b, 0x11, 0x4c, 0x46, 0x85, 0x51, 0x5f, 0xe9, 0x10, 0x1d, 0x3e, 0x21,
+ 0x54, 0xa6, 0x25, 0xd3, 0x7e, 0x93, 0x8d, 0x9b, 0x6d, 0x96, 0x68, 0x16, 0x5a, 0x3b, 0x5b, 0xe3,
+ 0x22, 0x26, 0x1e, 0xdc, 0xaa, 0x09, 0x84, 0xcf, 0x46, 0x9c, 0xa8, 0x2e, 0x79, 0x6b, 0xe3, 0x51,
+ 0x8f, 0x7e, 0x77, 0x72, 0xbe, 0xa0, 0x0e, 0x1e, 0x79, 0x1d, 0xe4, 0xb2, 0x60, 0xdd, 0x64, 0x3c,
+ 0xea, 0xdd, 0x3c, 0xf1, 0xff, 0x21, 0xff, 0x91, 0x0b, 0x37, 0xb7, 0xcb, 0xe5, 0xd7, 0x8d, 0xf5,
+ 0x09, 0x76, 0x5a, 0x1b, 0xd4, 0xf9, 0x25, 0xac, 0x0d, 0xac, 0x07, 0x81, 0xc3, 0xe6, 0x6c, 0x96,
+ 0x4b, 0x6a, 0x8a, 0xf1, 0x31, 0xd6, 0x22, 0x0e, 0xf9, 0xb0, 0x5e, 0xb6, 0x69, 0x4d, 0xe9, 0xf0,
+ 0xf2, 0xee, 0xe1, 0x13, 0x14, 0xa7, 0xff, 0x43, 0x53, 0x86, 0x15, 0x14, 0x5c, 0x89, 0x41, 0xb3,
+ 0x1e, 0xaa, 0x6f, 0x96, 0x56, 0x9c, 0xe8, 0x59, 0xa3, 0x51, 0xad, 0x30, 0x59, 0xce, 0x47, 0xde,
+ 0xdc, 0x6d, 0xd7, 0x0d, 0x9a, 0x29, 0xad, 0xd0, 0x61, 0xf5, 0xbc, 0x68, 0xb0, 0xa9, 0xc5, 0x23,
+ 0x0d, 0xdf, 0x5e, 0xb4, 0x19, 0xd4, 0xc8, 0x84, 0x70, 0x05, 0x5b, 0x7c, 0x9b, 0xd5, 0x93, 0x39,
+ 0x8a, 0xbe, 0xe8, 0x8f, 0x42, 0x0e, 0xdc, 0xdf, 0xb0, 0xb6, 0xdb, 0xc7, 0x85, 0xb0, 0xe3, 0x0b,
+ 0x34, 0x9f, 0xfc, 0xf9, 0x8e, 0x53, 0x0e, 0x64, 0x1b, 0xb4, 0x41, 0xa6, 0xe0, 0x06, 0x64, 0x90,
+ 0x82, 0x5d, 0x1c, 0x5a, 0x04, 0x14, 0xd8, 0x7e, 0x9c, 0x7f, 0x9d, 0x35, 0xc1, 0xeb, 0xb6, 0xf2,
+ 0xfe, 0x96, 0x34, 0x75, 0xcd, 0xea, 0x39, 0xd3, 0xb7, 0x04, 0x12, 0x64, 0xd9, 0xc2, 0x1f, 0x17,
+ 0x62, 0x37, 0x87, 0x08, 0x6b, 0xdc, 0x0b, 0xe0, 0x0b, 0x30, 0x55, 0x37, 0x14, 0x10, 0x3b, 0x60,
+ 0x62, 0x53, 0xd5, 0x47, 0xd0, 0xc4, 0xab, 0xfc, 0xdc, 0xc2, 0x73, 0xff, 0x61, 0xa9, 0x75, 0xf4,
+ 0x99, 0xa3, 0xcf, 0xae, 0xc8, 0xd7, 0xe0, 0x20, 0x8a, 0xc9, 0xda, 0xfe, 0x66, 0x00, 0x9b, 0x1d,
+ 0x01, 0x54, 0x18, 0xbb, 0x6b, 0x41, 0xdb, 0x07, 0x84, 0x75, 0x9f, 0x33, 0x94, 0x85, 0xf5, 0x4c,
+ 0xa9, 0xdf, 0x6d, 0x9e, 0xde, 0xe7, 0x7a, 0x45, 0x08, 0x1f, 0xc5, 0x22, 0x9d, 0x8d, 0x62, 0xef,
+ 0x94, 0x46, 0x25, 0x5f, 0x40, 0x8f, 0x6f, 0x24, 0x65, 0x57, 0xfa, 0x0c, 0x1d, 0x1b, 0xa9, 0xd1,
+ 0x93, 0x00, 0x40, 0xc3, 0xed, 0xd5, 0x7f, 0x8c, 0x98, 0xb2, 0xd4, 0xf3, 0x19, 0x02, 0x82, 0x01,
+ 0x01, 0x00, 0xea, 0xae, 0x2b, 0x8b, 0x8f, 0x87, 0x2b, 0xe4, 0x10, 0x20, 0x50, 0xad, 0x1b, 0x81,
+ 0xdc, 0x4a, 0xfb, 0x38, 0xdb, 0x8e, 0x87, 0x82, 0x21, 0x7e, 0x18, 0xb9, 0xc8, 0xee, 0x04, 0x7c,
+ 0xdb, 0xad, 0x3d, 0xa4, 0xb1, 0x27, 0xc5, 0xd4, 0xa6, 0xbe, 0x14, 0x8c, 0x55, 0x7d, 0x39, 0x03,
+ 0x6c, 0xe9, 0xb0, 0x25, 0xc4, 0x2a, 0xc0, 0xab, 0x98, 0xe9, 0xf8, 0x6c, 0x6b, 0x75, 0x51, 0xc2,
+ 0xcc, 0x44, 0x53, 0x92, 0x7a, 0x17, 0xda, 0xad, 0x6d, 0x5a, 0x55, 0x7c, 0xfd, 0x2d, 0x85, 0xa2,
+ 0xa4, 0xb0, 0xc0, 0x4d, 0xf0, 0xde, 0xca, 0xe1, 0xe1, 0xd4, 0x76, 0xd6, 0xfe, 0xb0, 0xb6, 0xac,
+ 0x36, 0x6a, 0xf3, 0x0c, 0xe0, 0xa0, 0x9c, 0xbd, 0xd7, 0x46, 0x82, 0xe7, 0x32, 0x73, 0x58, 0x34,
+ 0x75, 0xeb, 0x83, 0xc9, 0x3d, 0x8e, 0xf7, 0x76, 0xe1, 0xa9, 0x0e, 0xb9, 0x07, 0x87, 0x0c, 0x37,
+ 0xeb, 0x22, 0xe3, 0x55, 0x7b, 0xf9, 0x24, 0xf6, 0x0e, 0xe7, 0x4f, 0x88, 0x83, 0x12, 0xf1, 0xec,
+ 0xa9, 0xf7, 0xf7, 0xf5, 0xf4, 0x53, 0x71, 0xa2, 0x9a, 0x2d, 0xc4, 0x5b, 0x52, 0x28, 0x47, 0xdf,
+ 0x19, 0x1e, 0x47, 0x7c, 0x3c, 0x82, 0x37, 0x46, 0xeb, 0xce, 0x8c, 0x3c, 0x41, 0x08, 0x76, 0x16,
+ 0x46, 0x5b, 0x23, 0x6c, 0x77, 0xd4, 0x6a, 0xae, 0xd6, 0x8f, 0x34, 0x6a, 0x9f, 0x17, 0xa2, 0xb5,
+ 0xeb, 0x5e, 0x4c, 0x7c, 0x5e, 0xe1, 0x73, 0xb5, 0x75, 0x39, 0xa9, 0x0b, 0x3f, 0xf6, 0xdc, 0xb3,
+ 0x3d, 0x2e, 0x70, 0x4b, 0x32, 0x19, 0x38, 0x48, 0xe7, 0x57, 0x47, 0xee, 0xee, 0x99, 0xde, 0x33,
+ 0x0c, 0xc1, 0xe6, 0xcb, 0x45, 0x51, 0xb3, 0xbe, 0x69, 0x35, 0xe6, 0xc0, 0x11, 0x03, 0x74, 0xd3,
+ 0x24, 0x76, 0x14, 0x82, 0x31, 0x3e, 0xe3, 0x86, 0x52, 0x13, 0x26, 0xe0, 0x0e, 0x46, 0x5a, 0x84,
+ 0x98, 0xf3, 0x02, 0x82, 0x01, 0x01, 0x00, 0xdc, 0xf8, 0xef, 0x30, 0x44, 0xb8, 0x35, 0xee, 0xe0,
+ 0x97, 0x4e, 0x11, 0x4a, 0xab, 0x1b, 0xfa, 0x33, 0x18, 0x3d, 0xc1, 0x3a, 0x48, 0x8f, 0x4c, 0x1f,
+ 0x81, 0xf9, 0x16, 0x42, 0x73, 0x8b, 0x37, 0x01, 0xc1, 0x49, 0xb9, 0xb9, 0x72, 0x90, 0x16, 0x0a,
+ 0x64, 0x0f, 0xd6, 0x18, 0x5e, 0xe6, 0x4f, 0x2d, 0x96, 0xe5, 0xfe, 0x1b, 0x29, 0xff, 0xef, 0xc5,
+ 0x91, 0x56, 0x09, 0xfd, 0x78, 0xd9, 0xa1, 0x04, 0xe4, 0xcb, 0xfb, 0x74, 0xac, 0x43, 0x20, 0x7f,
+ 0xd4, 0x1f, 0xb2, 0x63, 0x6a, 0x22, 0xc0, 0x56, 0xe3, 0x3c, 0x05, 0xdd, 0x64, 0xcc, 0x13, 0x37,
+ 0xab, 0xaa, 0xea, 0xbf, 0x89, 0x61, 0x39, 0xc4, 0x5b, 0x4c, 0xbd, 0xae, 0xcb, 0x53, 0xdf, 0x92,
+ 0x7c, 0x48, 0x57, 0x33, 0x4f, 0x9f, 0xb2, 0xae, 0x35, 0xba, 0x87, 0x35, 0x88, 0x2f, 0xe3, 0xb0,
+ 0x87, 0xef, 0xf3, 0xc1, 0x8f, 0xc2, 0x9a, 0x72, 0x9f, 0x11, 0xa9, 0x95, 0x00, 0x14, 0xc8, 0xcc,
+ 0x62, 0x50, 0x7f, 0xb2, 0x23, 0xf8, 0x8b, 0x41, 0xb2, 0x31, 0x70, 0xd2, 0x75, 0x4d, 0x54, 0xf4,
+ 0x88, 0x28, 0x47, 0x68, 0x3f, 0x01, 0x12, 0x8d, 0x58, 0xab, 0x9c, 0x5f, 0xd1, 0xe8, 0xf1, 0x8f,
+ 0xb9, 0x15, 0x8c, 0xfb, 0xac, 0x77, 0xd0, 0xe5, 0x03, 0xf4, 0x9a, 0x4e, 0x26, 0x7c, 0xb3, 0xca,
+ 0x99, 0x10, 0x5f, 0x6f, 0x21, 0x51, 0x4e, 0xff, 0x74, 0x30, 0x13, 0x1a, 0x3e, 0x28, 0xb1, 0xe0,
+ 0x55, 0xfc, 0xab, 0xb6, 0xa5, 0xc5, 0x97, 0xb2, 0xa4, 0x9d, 0x0c, 0x3b, 0xaa, 0xf6, 0xd9, 0x66,
+ 0xea, 0x5f, 0xa1, 0x37, 0x23, 0xb0, 0x3d, 0x03, 0x94, 0xaf, 0x8c, 0xc3, 0x03, 0xd4, 0xc9, 0x1e,
+ 0x30, 0x63, 0x59, 0x57, 0x82, 0x65, 0xf2, 0x1e, 0xb2, 0x37, 0xd3, 0xbf, 0xbe, 0xa6, 0xed, 0x6b,
+ 0x9f, 0x7d, 0x64, 0xc0, 0x74, 0xfb, 0xcd, 0x02, 0x82, 0x01, 0x01, 0x00, 0x98, 0x99, 0x6e, 0x99,
+ 0x4e, 0x58, 0x0f, 0xf3, 0x39, 0x85, 0x39, 0xd0, 0x86, 0x7d, 0x77, 0xb8, 0x8e, 0x09, 0x17, 0xc3,
+ 0x63, 0x5b, 0xfb, 0xd9, 0x59, 0xcc, 0x9c, 0xda, 0x20, 0xb2, 0xeb, 0xc9, 0x87, 0xb6, 0xea, 0xb7,
+ 0x39, 0x0d, 0xa0, 0xeb, 0x22, 0xc3, 0x69, 0xe7, 0x86, 0x46, 0x32, 0xf0, 0xf5, 0xe8, 0x68, 0xd9,
+ 0x7f, 0xf5, 0x54, 0xf6, 0x76, 0xe2, 0x51, 0x31, 0xb5, 0x5b, 0x9c, 0xa5, 0xa5, 0x4e, 0x2e, 0xf4,
+ 0x09, 0xef, 0x11, 0x97, 0x56, 0xd5, 0x72, 0x6f, 0xc2, 0x60, 0xd3, 0x04, 0x57, 0xd7, 0x96, 0x93,
+ 0xd8, 0x8a, 0xee, 0xe4, 0xcf, 0xed, 0xd7, 0x29, 0x23, 0x6f, 0x71, 0xe7, 0x33, 0x6a, 0x21, 0x3a,
+ 0x6f, 0x11, 0x86, 0xc5, 0x43, 0xe3, 0x80, 0x4b, 0xbe, 0x84, 0x46, 0x55, 0x41, 0x99, 0x7e, 0xdc,
+ 0xd3, 0x0f, 0x4b, 0x87, 0x39, 0x9a, 0x99, 0x49, 0x78, 0x69, 0x78, 0x0d, 0x74, 0x93, 0xa6, 0x8c,
+ 0x88, 0x3b, 0x33, 0xcf, 0xb7, 0x48, 0xc6, 0x2a, 0x70, 0x83, 0x7a, 0xb6, 0x52, 0x57, 0x6d, 0x6b,
+ 0x41, 0x0e, 0x01, 0x81, 0x57, 0x18, 0x26, 0xa1, 0x28, 0xb2, 0xea, 0x4b, 0x65, 0x22, 0x64, 0xda,
+ 0x2b, 0x85, 0x83, 0x5a, 0x08, 0x98, 0x39, 0x95, 0x7d, 0xeb, 0xd8, 0x0d, 0xf5, 0x47, 0xd7, 0xd7,
+ 0x99, 0x13, 0x5d, 0x53, 0x3b, 0x3b, 0x45, 0x7e, 0x02, 0x00, 0x97, 0x2e, 0xf7, 0x3f, 0x3c, 0x17,
+ 0x0f, 0xbd, 0x63, 0x9f, 0x7d, 0xcb, 0x61, 0xe9, 0x6c, 0xf3, 0x64, 0x0a, 0x29, 0x5c, 0xcc, 0x13,
+ 0xd8, 0x24, 0x97, 0xc1, 0x8a, 0x75, 0xd4, 0x52, 0xdb, 0x48, 0x88, 0xb8, 0x21, 0x11, 0xf6, 0x5e,
+ 0x3d, 0x29, 0xc8, 0x92, 0x13, 0x1c, 0xbb, 0x33, 0x6b, 0x28, 0xcc, 0xa1, 0xb7, 0x8e, 0x3c, 0xe5,
+ 0x6e, 0xdf, 0x6d, 0xc9, 0x24, 0x53, 0x37, 0x15, 0x0a, 0x51, 0x04, 0x7f, 0x02, 0x82, 0x01, 0x00,
+ 0x19, 0xad, 0xd4, 0x1e, 0x07, 0xde, 0x60, 0x66, 0x22, 0x33, 0x73, 0x1f, 0x0f, 0x4e, 0x53, 0x32,
+ 0x00, 0x3e, 0x10, 0xef, 0x23, 0x96, 0xcb, 0x10, 0x4d, 0x99, 0x0d, 0x19, 0x49, 0x1f, 0xa4, 0x4e,
+ 0x00, 0x26, 0x36, 0x2b, 0x1f, 0x21, 0xf1, 0x1c, 0x9e, 0x98, 0x82, 0x3e, 0x9f, 0x16, 0x68, 0x2d,
+ 0x4b, 0x5e, 0xfd, 0xdb, 0x49, 0xcc, 0xd7, 0xb1, 0x45, 0x84, 0x5e, 0x3b, 0x4a, 0xf9, 0x80, 0x50,
+ 0xf6, 0x00, 0xa0, 0xb3, 0xd8, 0x1b, 0x2c, 0xb1, 0xda, 0x29, 0x0c, 0x85, 0xee, 0x87, 0xa7, 0x02,
+ 0x33, 0x16, 0xb5, 0x22, 0xf9, 0x57, 0x7d, 0x5f, 0xbe, 0x58, 0x74, 0xc4, 0x52, 0xfd, 0xe4, 0x0e,
+ 0x92, 0x83, 0x09, 0xa8, 0x01, 0x68, 0x1f, 0x97, 0x1b, 0xae, 0xd5, 0xb9, 0x4c, 0x7d, 0x34, 0x51,
+ 0xcf, 0x6c, 0xef, 0x00, 0x47, 0x78, 0x4c, 0x18, 0x69, 0xab, 0x62, 0x77, 0x31, 0x47, 0x43, 0x96,
+ 0x2f, 0x3b, 0xcd, 0x11, 0xa7, 0xff, 0x1a, 0x6b, 0x3b, 0x55, 0x31, 0x85, 0xa5, 0x6e, 0x08, 0xb4,
+ 0x26, 0x2e, 0x4f, 0x10, 0x8d, 0x64, 0x94, 0x58, 0x0b, 0x12, 0xc7, 0x9b, 0x84, 0xc1, 0xcd, 0x9e,
+ 0x1a, 0x4e, 0xf3, 0xa2, 0x78, 0x80, 0x2c, 0x51, 0xe6, 0x21, 0xdc, 0x1f, 0x46, 0x20, 0x04, 0xcc,
+ 0x81, 0xd0, 0xb3, 0xdc, 0x3a, 0xb8, 0xbe, 0x45, 0x26, 0x86, 0x23, 0x20, 0xf4, 0x09, 0x2b, 0x29,
+ 0xc3, 0x05, 0xfd, 0x90, 0x3a, 0xbc, 0x7e, 0x7e, 0x2d, 0x53, 0xd0, 0xc9, 0x23, 0xb0, 0xa0, 0x05,
+ 0xc0, 0xfc, 0xe0, 0x43, 0x4b, 0xab, 0xd2, 0x83, 0xf1, 0x31, 0xcb, 0x6b, 0x30, 0xbd, 0x34, 0xfd,
+ 0xe2, 0x2c, 0xa5, 0x39, 0xf6, 0x6f, 0xbb, 0x8a, 0xa3, 0xb7, 0x7b, 0xd4, 0x26, 0x17, 0x41, 0x41,
+ 0xa1, 0xcf, 0x94, 0x2d, 0x47, 0x5b, 0x20, 0x8a, 0xf6, 0xb6, 0xd2, 0x1b, 0xa3, 0x41, 0xf5, 0x01,
+ 0x02, 0x82, 0x01, 0x01, 0x00, 0x83, 0xca, 0xca, 0xea, 0xa4, 0xdf, 0xc1, 0x0b, 0xe9, 0xcf, 0xca,
+ 0x88, 0xbe, 0x3b, 0xe8, 0x9b, 0x3c, 0xa3, 0xd1, 0x73, 0x15, 0x13, 0x47, 0xfb, 0xbe, 0x64, 0xbf,
+ 0x91, 0x6d, 0x26, 0xf6, 0xfc, 0x05, 0x77, 0x0b, 0x1f, 0x95, 0x14, 0x74, 0x02, 0x75, 0xe5, 0x1d,
+ 0xf3, 0x31, 0x24, 0xd1, 0x3b, 0x8e, 0x97, 0xdb, 0xe8, 0xaa, 0xa0, 0xc8, 0xe4, 0x72, 0xda, 0x6a,
+ 0xf6, 0x42, 0x95, 0xcf, 0x55, 0x4f, 0x80, 0x3d, 0xb5, 0xea, 0x7b, 0x45, 0x15, 0x08, 0xde, 0xda,
+ 0xd4, 0xe6, 0x1e, 0xdb, 0x4f, 0x3d, 0x20, 0x73, 0xa6, 0x88, 0x4e, 0x63, 0x42, 0x79, 0xd3, 0xbb,
+ 0xea, 0xac, 0x75, 0x70, 0xbd, 0x4b, 0xc5, 0x97, 0x9e, 0xd9, 0x33, 0x12, 0x1a, 0xe1, 0xab, 0xba,
+ 0xd7, 0xa9, 0x48, 0xfd, 0xc9, 0x85, 0x41, 0x6b, 0x36, 0x4f, 0xbc, 0x64, 0xf7, 0xc3, 0x6d, 0x94,
+ 0x57, 0x22, 0x1d, 0x65, 0x36, 0x70, 0xe6, 0x48, 0x47, 0xf9, 0xdb, 0x94, 0x06, 0x91, 0xec, 0x03,
+ 0x0a, 0x16, 0xe9, 0xbd, 0x94, 0x2a, 0x1f, 0x78, 0xd5, 0x70, 0x64, 0x40, 0xb3, 0x7f, 0xa6, 0xc2,
+ 0x89, 0x9c, 0xed, 0x76, 0xe2, 0x16, 0x29, 0x64, 0x41, 0xd6, 0x37, 0x11, 0x59, 0x23, 0x64, 0x84,
+ 0x85, 0x6e, 0x88, 0x0e, 0x4e, 0xd5, 0xc2, 0x5a, 0x70, 0x11, 0x66, 0x22, 0x6a, 0x2e, 0x46, 0x10,
+ 0x28, 0x01, 0xd7, 0xe8, 0xfb, 0xb4, 0xdb, 0xf2, 0xfd, 0x35, 0xef, 0x85, 0x42, 0xd2, 0xa2, 0x30,
+ 0xa3, 0x38, 0xc9, 0x66, 0x9b, 0x9d, 0x71, 0x6c, 0xa5, 0xac, 0x6e, 0x50, 0x7c, 0x0d, 0xb5, 0x7f,
+ 0x50, 0x9f, 0x0d, 0x28, 0x65, 0x69, 0x9b, 0x97, 0x07, 0x97, 0xf4, 0x47, 0x49, 0xd8, 0x78, 0xc4,
+ 0x57, 0xff, 0xae, 0x32, 0xb1, 0xcd, 0x7b, 0xb5, 0x99, 0x6c, 0x4a, 0xc0, 0x40, 0x6d, 0x0b, 0x64,
+ 0x78, 0x37, 0x1b, 0x47, 0x83};
+
+static const uint8_t kRSACACertDER[] = {0x30, 0x82, 0x04, 0x11, 0x30, 0x82, 0x02, 0xf9, 0xa0, 0x03,
+ 0x02, 0x01, 0x02, 0x02, 0x09, 0x00, 0xac, 0x5d, 0x53, 0x88, 0x67, 0x97, 0x39, 0x87, 0x30, 0x0d,
+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81, 0x9e,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x0b, 0x30,
+ 0x09, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x02, 0x4e, 0x53, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03,
0x55, 0x04, 0x0a, 0x0c, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20, 0x57, 0x69,
- 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c, 0x74, 0x64, 0x31, 0x21, 0x30,
- 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x18, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x55, 0x6e, 0x69, 0x74, 0x20, 0x4e, 0x61, 0x6d, 0x65,
- 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x1c, 0x6e, 0x6f, 0x6e, 0x65, 0x78,
- 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65,
- 0x6e, 0x74, 0x2e, 0x65, 0x63, 0x63, 0x61, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x39, 0x30, 0x35, 0x30,
- 0x38, 0x31, 0x32, 0x34, 0x37, 0x31, 0x31, 0x5a, 0x17, 0x0d, 0x33, 0x39, 0x30, 0x35, 0x30, 0x33,
- 0x31, 0x32, 0x34, 0x37, 0x31, 0x31, 0x5a, 0x30, 0x81, 0x8f, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03,
- 0x55, 0x04, 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08,
- 0x0c, 0x0a, 0x53, 0x6f, 0x6d, 0x65, 0x2d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x31, 0x21, 0x30, 0x1f,
- 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20,
- 0x57, 0x69, 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c, 0x74, 0x64, 0x31,
- 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x18, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69,
- 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x55, 0x6e, 0x69, 0x74, 0x20, 0x4e, 0x61,
- 0x6d, 0x65, 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x1c, 0x6e, 0x6f, 0x6e,
- 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73,
- 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x65, 0x63, 0x63, 0x61, 0x30, 0x81, 0x9b, 0x30, 0x10, 0x06, 0x07,
- 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, 0x05, 0x2b, 0x81, 0x04, 0x00, 0x23, 0x03, 0x81,
- 0x86, 0x00, 0x04, 0x01, 0xf3, 0x42, 0x76, 0xea, 0xca, 0x37, 0x6b, 0x80, 0xb4, 0x26, 0x42, 0x9f,
- 0x26, 0x0b, 0xfe, 0x8b, 0x94, 0x4a, 0x56, 0x48, 0x56, 0x78, 0xda, 0x65, 0x07, 0xa6, 0x92, 0x63,
- 0xdc, 0x33, 0x9f, 0x2f, 0x67, 0xaa, 0xc7, 0xf2, 0x77, 0xba, 0x4a, 0x65, 0xe7, 0x6b, 0x5b, 0x79,
- 0x8a, 0x92, 0xe2, 0xd1, 0x99, 0x8f, 0x6d, 0x08, 0x50, 0x9f, 0x2f, 0xe9, 0x39, 0xff, 0xee, 0xa1,
- 0xf7, 0x3b, 0x4f, 0xb1, 0x96, 0x01, 0xbc, 0xda, 0xa9, 0x21, 0x1b, 0x15, 0xb1, 0x24, 0x59, 0x38,
- 0x3a, 0xee, 0x46, 0x31, 0x51, 0xae, 0xd8, 0x63, 0x0f, 0x5a, 0xae, 0xa5, 0xfa, 0x12, 0x2e, 0xbb,
- 0x71, 0x71, 0xe5, 0x85, 0xa3, 0x4b, 0x90, 0x47, 0xbb, 0xa9, 0xa5, 0x55, 0x10, 0xeb, 0xe7, 0xf5,
- 0x34, 0xe7, 0x3a, 0xd7, 0xb2, 0xaa, 0xad, 0x86, 0x8d, 0x29, 0xb9, 0xe9, 0x3b, 0xc4, 0x6b, 0x2c,
- 0x23, 0x3f, 0x08, 0x37, 0xac, 0xeb, 0x6b, 0xa3, 0x53, 0x30, 0x51, 0x30, 0x1d, 0x06, 0x03, 0x55,
- 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xcc, 0x8b, 0x62, 0xc3, 0x62, 0x94, 0x1e, 0x17, 0x51, 0x32,
- 0xd5, 0x95, 0x2f, 0xaf, 0x20, 0x68, 0x9d, 0x67, 0xc2, 0xb0, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
- 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xcc, 0x8b, 0x62, 0xc3, 0x62, 0x94, 0x1e, 0x17, 0x51,
- 0x32, 0xd5, 0x95, 0x2f, 0xaf, 0x20, 0x68, 0x9d, 0x67, 0xc2, 0xb0, 0x30, 0x0f, 0x06, 0x03, 0x55,
- 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0a, 0x06, 0x08,
- 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x03, 0x81, 0x8c, 0x00, 0x30, 0x81, 0x88, 0x02,
- 0x42, 0x01, 0x91, 0xfa, 0xdc, 0xb9, 0x61, 0x21, 0x29, 0x01, 0xd0, 0xd0, 0x07, 0xa6, 0xed, 0x77,
- 0xa6, 0x81, 0x27, 0x13, 0x4d, 0x74, 0x96, 0xbd, 0x0a, 0x97, 0xeb, 0xd0, 0x02, 0x77, 0x90, 0x80,
- 0xdf, 0xc1, 0xd3, 0xd3, 0x3c, 0xe5, 0x30, 0x6d, 0xba, 0x5a, 0xcf, 0x22, 0x70, 0x13, 0xad, 0x44,
- 0x46, 0xbb, 0x6c, 0xdf, 0x27, 0x8a, 0x00, 0xf9, 0xc6, 0xa4, 0x87, 0x71, 0xeb, 0x19, 0x93, 0x13,
- 0x6d, 0xcb, 0x2d, 0x02, 0x42, 0x01, 0x22, 0x3a, 0x74, 0xe9, 0xee, 0x1b, 0x09, 0xe0, 0xc7, 0xd5,
- 0x78, 0xf2, 0x0c, 0x45, 0x30, 0x23, 0x48, 0xcc, 0x6a, 0x5f, 0x63, 0x32, 0xb7, 0x34, 0xf2, 0xfb,
- 0xf4, 0x68, 0x16, 0xbd, 0x2e, 0xea, 0x88, 0x11, 0x3b, 0xd0, 0x4e, 0xc3, 0x6a, 0x1a, 0xa4, 0x6d,
- 0xb7, 0x63, 0x2f, 0x7b, 0x65, 0x24, 0xde, 0xbd, 0x1a, 0x00, 0xaf, 0x46, 0xa2, 0x7c, 0xbc, 0x08,
- 0x38, 0xcd, 0x12, 0x8a, 0x63, 0x4d, 0x3b};
-
-static const uint8_t kDSACertDER[] = {0x30, 0x82, 0x03, 0xdf, 0x30, 0x82, 0x03, 0x9c, 0xa0, 0x03,
- 0x02, 0x01, 0x02, 0x02, 0x14, 0x60, 0xe4, 0x10, 0x21, 0xe4, 0xc9, 0xaa, 0xf4, 0x6f, 0x72, 0x62,
- 0xd1, 0x9f, 0x6e, 0x11, 0xc9, 0xee, 0x65, 0xd4, 0x62, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48,
- 0x01, 0x65, 0x03, 0x04, 0x03, 0x02, 0x30, 0x81, 0x9f, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
- 0x04, 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c,
- 0x0a, 0x53, 0x6f, 0x6d, 0x65, 0x2d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x31, 0x0f, 0x30, 0x0d, 0x06,
- 0x03, 0x55, 0x04, 0x07, 0x0c, 0x06, 0x53, 0x69, 0x64, 0x6e, 0x65, 0x79, 0x31, 0x21, 0x30, 0x1f,
- 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20,
- 0x57, 0x69, 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c, 0x74, 0x64, 0x31,
- 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x18, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69,
- 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x55, 0x6e, 0x69, 0x74, 0x20, 0x4e, 0x61,
- 0x6d, 0x65, 0x31, 0x24, 0x30, 0x22, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x1b, 0x6e, 0x6f, 0x6e,
- 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73,
- 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x73, 0x61, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x39, 0x30, 0x35,
- 0x30, 0x38, 0x31, 0x32, 0x34, 0x38, 0x33, 0x36, 0x5a, 0x17, 0x0d, 0x33, 0x39, 0x30, 0x35, 0x30,
- 0x33, 0x31, 0x32, 0x34, 0x38, 0x33, 0x36, 0x5a, 0x30, 0x81, 0x9f, 0x31, 0x0b, 0x30, 0x09, 0x06,
- 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04,
- 0x08, 0x0c, 0x0a, 0x53, 0x6f, 0x6d, 0x65, 0x2d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x31, 0x0f, 0x30,
- 0x0d, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x06, 0x53, 0x69, 0x64, 0x6e, 0x65, 0x79, 0x31, 0x21,
- 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65,
- 0x74, 0x20, 0x57, 0x69, 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c, 0x74,
- 0x64, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x18, 0x4f, 0x72, 0x67, 0x61,
- 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x55, 0x6e, 0x69, 0x74, 0x20,
- 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x24, 0x30, 0x22, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x1b, 0x6e,
- 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78,
- 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x73, 0x61, 0x30, 0x82, 0x01, 0xb7, 0x30, 0x82,
- 0x01, 0x2c, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x38, 0x04, 0x01, 0x30, 0x82, 0x01, 0x1f, 0x02,
- 0x81, 0x81, 0x00, 0xb2, 0xf2, 0xb3, 0x0d, 0x25, 0x1c, 0x01, 0x78, 0x24, 0xaf, 0x21, 0x37, 0xe1,
- 0x07, 0x1a, 0xd6, 0x3f, 0xc5, 0x5c, 0x94, 0x4e, 0xf9, 0x82, 0x11, 0x4a, 0x42, 0xf8, 0xbc, 0x86,
- 0x21, 0xd7, 0xe1, 0xef, 0x21, 0x50, 0xad, 0x79, 0x26, 0xab, 0x38, 0xb6, 0xd9, 0x46, 0x0f, 0xef,
- 0xa3, 0x74, 0x3f, 0x3b, 0x10, 0x55, 0x67, 0x81, 0xfc, 0xe5, 0x48, 0x94, 0x33, 0xdd, 0x2c, 0x0a,
- 0x7e, 0x0b, 0x23, 0x07, 0x89, 0x96, 0x09, 0x8c, 0xcd, 0x22, 0xfc, 0xdc, 0x09, 0x6f, 0x62, 0xec,
- 0x0f, 0x5a, 0x0e, 0x02, 0x1c, 0x74, 0x02, 0x04, 0xb9, 0x52, 0x0a, 0xae, 0x95, 0x85, 0xea, 0x2b,
- 0xee, 0x99, 0xbd, 0x7c, 0xf4, 0x27, 0xb7, 0xaf, 0x86, 0x3e, 0x0c, 0x69, 0x55, 0x51, 0x8f, 0x05,
- 0xcf, 0x4e, 0xde, 0xfd, 0xb0, 0x98, 0xbb, 0xdd, 0x55, 0xa4, 0x53, 0xc5, 0x98, 0x31, 0xde, 0x8d,
- 0xa9, 0xcf, 0x4b, 0x02, 0x15, 0x00, 0x9a, 0x11, 0xba, 0xd8, 0x08, 0x2b, 0x64, 0x4f, 0x5b, 0xaf,
- 0x2f, 0xb8, 0x8b, 0x43, 0x9e, 0x8f, 0xc1, 0x04, 0xa2, 0x4d, 0x02, 0x81, 0x81, 0x00, 0xa8, 0x8f,
- 0xe1, 0xb3, 0xe3, 0xd5, 0x61, 0xa8, 0x57, 0xe0, 0x0c, 0x55, 0x95, 0xaf, 0x80, 0xf8, 0xe3, 0xf8,
- 0x73, 0xfe, 0x30, 0x3d, 0xf0, 0x10, 0x10, 0xa9, 0x11, 0x94, 0xc8, 0x98, 0x44, 0x25, 0x79, 0xa5,
- 0x1a, 0xe9, 0x57, 0xe3, 0x0d, 0x57, 0x3a, 0x49, 0xc1, 0x4c, 0x7f, 0x01, 0x21, 0x6c, 0x15, 0xd5,
- 0xdb, 0x73, 0x41, 0xbc, 0x4b, 0xf2, 0x8e, 0xe0, 0x30, 0x55, 0xda, 0x86, 0xac, 0x23, 0x78, 0x7a,
- 0x7a, 0xef, 0xb4, 0x84, 0xbf, 0x9f, 0x02, 0x77, 0xe6, 0x44, 0x54, 0xca, 0xac, 0x2a, 0x6b, 0xfd,
- 0x58, 0xfa, 0xbe, 0xc2, 0xeb, 0x02, 0xf0, 0xce, 0x32, 0x2e, 0x1c, 0x5f, 0xca, 0xdd, 0xe9, 0xf6,
- 0x67, 0xf7, 0x4f, 0xa4, 0xe5, 0x2b, 0x27, 0xec, 0xaa, 0x47, 0xfd, 0xfb, 0x63, 0x9c, 0x3f, 0xba,
- 0xdc, 0xda, 0xd2, 0x18, 0xd6, 0x8d, 0x65, 0xf5, 0x8d, 0xc5, 0x97, 0x78, 0xcc, 0x6f, 0x03, 0x81,
- 0x84, 0x00, 0x02, 0x81, 0x80, 0x70, 0x3d, 0xfa, 0x84, 0x2a, 0x3c, 0xad, 0x9c, 0xfa, 0x86, 0x39,
- 0xaf, 0xa9, 0xdb, 0x4f, 0x94, 0x27, 0x12, 0xa7, 0x60, 0x5b, 0xa8, 0xe9, 0x30, 0x19, 0x5d, 0xf8,
- 0x0d, 0x20, 0x90, 0x61, 0x9f, 0xd7, 0xf8, 0xa9, 0xbe, 0x5f, 0x2d, 0x31, 0x38, 0x5a, 0xb4, 0xaa,
- 0x25, 0x6b, 0xb2, 0x37, 0x25, 0xdb, 0xc2, 0x50, 0xca, 0xaf, 0x44, 0xcb, 0x2e, 0x5f, 0x69, 0xc8,
- 0x56, 0x16, 0x0e, 0x90, 0x20, 0x94, 0xc8, 0x43, 0x86, 0x5b, 0x52, 0x6c, 0xd4, 0x74, 0xd0, 0x76,
- 0xec, 0xe4, 0x81, 0xcc, 0x21, 0x30, 0xf9, 0x75, 0x54, 0xd9, 0xf3, 0xd0, 0x83, 0x46, 0x63, 0x96,
- 0xf9, 0x60, 0x1a, 0xa7, 0xeb, 0xe2, 0xe4, 0x7a, 0x89, 0x9d, 0xfa, 0x26, 0xc6, 0x22, 0xab, 0xee,
- 0x29, 0x43, 0x4d, 0x32, 0x5c, 0x01, 0x09, 0x18, 0xf6, 0xe4, 0x9f, 0xfd, 0xeb, 0xb7, 0x16, 0x08,
- 0xdd, 0x29, 0xbb, 0xce, 0x10, 0xa3, 0x53, 0x30, 0x51, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e,
- 0x04, 0x16, 0x04, 0x14, 0x04, 0x11, 0x5e, 0x1f, 0xd4, 0x92, 0x92, 0xea, 0xe3, 0x1c, 0xc2, 0x03,
- 0x6f, 0xc1, 0x80, 0x73, 0x2b, 0xa5, 0xa0, 0x3e, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04,
- 0x18, 0x30, 0x16, 0x80, 0x14, 0x04, 0x11, 0x5e, 0x1f, 0xd4, 0x92, 0x92, 0xea, 0xe3, 0x1c, 0xc2,
- 0x03, 0x6f, 0xc1, 0x80, 0x73, 0x2b, 0xa5, 0xa0, 0x3e, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13,
- 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86,
- 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x02, 0x03, 0x30, 0x00, 0x30, 0x2d, 0x02, 0x14, 0x73, 0x18,
- 0xf9, 0x68, 0x26, 0xdb, 0x0d, 0xd5, 0x49, 0x52, 0x14, 0x50, 0xb4, 0xcf, 0x3a, 0x1f, 0x0d, 0x49,
- 0x8f, 0xe7, 0x02, 0x15, 0x00, 0x92, 0x6e, 0xb6, 0xce, 0x87, 0x1e, 0x7b, 0x68, 0xfc, 0x2e, 0xd3,
- 0xa9, 0x3d, 0xe1, 0x55, 0x39, 0xc0, 0x66, 0xe0, 0x20};
+ 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c, 0x74, 0x64, 0x31, 0x0b, 0x30,
+ 0x09, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x02, 0x41, 0x41, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03,
+ 0x55, 0x04, 0x03, 0x0c, 0x10, 0x77, 0x77, 0x77, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73,
+ 0x74, 0x65, 0x6e, 0x74, 0x33, 0x31, 0x37, 0x30, 0x35, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+ 0x0d, 0x01, 0x09, 0x01, 0x16, 0x28, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e,
+ 0x74, 0x33, 0x40, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x30, 0x1e,
+ 0x17, 0x0d, 0x31, 0x36, 0x31, 0x31, 0x31, 0x38, 0x32, 0x32, 0x34, 0x34, 0x34, 0x39, 0x5a, 0x17,
+ 0x0d, 0x31, 0x39, 0x31, 0x31, 0x31, 0x38, 0x32, 0x32, 0x34, 0x34, 0x34, 0x39, 0x5a, 0x30, 0x81,
+ 0x9e, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x0b,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x02, 0x4e, 0x53, 0x31, 0x21, 0x30, 0x1f, 0x06,
+ 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20, 0x57,
+ 0x69, 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c, 0x74, 0x64, 0x31, 0x0b,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x02, 0x41, 0x41, 0x31, 0x19, 0x30, 0x17, 0x06,
+ 0x03, 0x55, 0x04, 0x03, 0x0c, 0x10, 0x77, 0x77, 0x77, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69,
+ 0x73, 0x74, 0x65, 0x6e, 0x74, 0x33, 0x31, 0x37, 0x30, 0x35, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+ 0xf7, 0x0d, 0x01, 0x09, 0x01, 0x16, 0x28, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65,
+ 0x6e, 0x74, 0x33, 0x40, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x30,
+ 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01,
+ 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00,
+ 0xd6, 0x49, 0x39, 0xb9, 0xfd, 0x02, 0xe4, 0xf7, 0x0b, 0x98, 0x14, 0x51, 0xbc, 0xc2, 0xb0, 0x0b,
+ 0xd6, 0x09, 0xf0, 0x12, 0xd5, 0xe4, 0x6a, 0x80, 0x10, 0x49, 0x54, 0x71, 0xa7, 0x75, 0x3f, 0x4b,
+ 0x18, 0xb4, 0xb8, 0xef, 0xe1, 0xb4, 0x03, 0x55, 0xa4, 0xcf, 0x09, 0x24, 0x03, 0x0a, 0xf2, 0x34,
+ 0xa5, 0xbc, 0xaa, 0x8e, 0x72, 0x39, 0x9c, 0xfe, 0x7a, 0x16, 0x44, 0x18, 0x7a, 0xbb, 0x56, 0x4f,
+ 0x7a, 0xef, 0x93, 0x7f, 0x91, 0x98, 0x53, 0xe2, 0xd3, 0xc9, 0x5e, 0x20, 0x4a, 0x91, 0xf5, 0x8b,
+ 0x51, 0x9d, 0x36, 0x15, 0x20, 0x7b, 0x0b, 0xd1, 0x41, 0xac, 0x0e, 0xbd, 0x14, 0x09, 0x69, 0xf3,
+ 0xb8, 0x9f, 0x9f, 0x65, 0x2b, 0x26, 0xae, 0xb9, 0x6b, 0x09, 0x45, 0x7c, 0x55, 0xe0, 0xb5, 0x87,
+ 0x60, 0x14, 0xd2, 0xaf, 0x93, 0x2b, 0x31, 0x90, 0x7b, 0xe9, 0x7c, 0x2a, 0x04, 0xd7, 0xb6, 0x72,
+ 0x27, 0xd2, 0xf9, 0x88, 0x27, 0xb7, 0x66, 0xc9, 0xd2, 0x58, 0xff, 0x65, 0x68, 0x0a, 0x7a, 0x31,
+ 0xc9, 0x99, 0x0d, 0xd1, 0x0c, 0x42, 0x46, 0xbd, 0xd0, 0x8e, 0xfa, 0xfa, 0x90, 0x50, 0xee, 0x47,
+ 0x8b, 0xf0, 0xc4, 0x5f, 0x9d, 0xf4, 0x58, 0x7b, 0x53, 0x0d, 0xfb, 0x9d, 0x60, 0xde, 0x0e, 0x54,
+ 0x9b, 0xef, 0xac, 0xcf, 0xce, 0x50, 0xda, 0xfe, 0xf6, 0x95, 0xd0, 0x70, 0xf2, 0xeb, 0xb6, 0x90,
+ 0x15, 0xc9, 0xe6, 0xf0, 0x3d, 0xb0, 0x14, 0x03, 0xc3, 0xa1, 0xc6, 0x9a, 0x5d, 0x5d, 0x70, 0x8f,
+ 0xfe, 0xd2, 0x8c, 0xac, 0x8d, 0xa7, 0x0d, 0x1e, 0x8f, 0x40, 0xf8, 0xff, 0x8c, 0x06, 0x23, 0xe0,
+ 0xc5, 0x28, 0x67, 0x54, 0xd2, 0xf3, 0xa0, 0x25, 0x74, 0xd0, 0xe5, 0x5f, 0x44, 0x11, 0x42, 0xc5,
+ 0x33, 0x4e, 0x58, 0xe6, 0xf2, 0x64, 0x5f, 0xf4, 0x41, 0x07, 0xaa, 0x06, 0x42, 0xc8, 0x49, 0xff,
+ 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x50, 0x30, 0x4e, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e,
+ 0x04, 0x16, 0x04, 0x14, 0xd7, 0xde, 0xbb, 0xad, 0x37, 0xb6, 0x45, 0x6d, 0x71, 0x0d, 0xd4, 0xb3,
+ 0x59, 0x7c, 0x7f, 0xcd, 0xbb, 0xc1, 0xa5, 0x50, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04,
+ 0x18, 0x30, 0x16, 0x80, 0x14, 0xd7, 0xde, 0xbb, 0xad, 0x37, 0xb6, 0x45, 0x6d, 0x71, 0x0d, 0xd4,
+ 0xb3, 0x59, 0x7c, 0x7f, 0xcd, 0xbb, 0xc1, 0xa5, 0x50, 0x30, 0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13,
+ 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+ 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x34, 0x8c, 0xa8, 0x0d, 0xf8,
+ 0xb8, 0x9e, 0xa7, 0xd5, 0xb5, 0x8c, 0xf5, 0x5d, 0x7e, 0x4e, 0x37, 0x8a, 0xb0, 0xed, 0x8d, 0x22,
+ 0xa0, 0xe4, 0x36, 0x87, 0xaa, 0x91, 0xc6, 0xcd, 0xae, 0x99, 0x39, 0xd6, 0xc8, 0xa2, 0x61, 0x4f,
+ 0x18, 0xc7, 0x16, 0xd8, 0x3f, 0x48, 0x71, 0xe7, 0x14, 0x5b, 0x99, 0x04, 0xe5, 0x04, 0x17, 0x41,
+ 0x98, 0x68, 0x24, 0x8b, 0xab, 0x03, 0x91, 0xcd, 0xfa, 0x54, 0xc9, 0xeb, 0x97, 0x25, 0x69, 0x34,
+ 0xcd, 0x30, 0x6c, 0xb9, 0x86, 0xea, 0x5c, 0xf6, 0x0f, 0xcf, 0x02, 0x8d, 0xe4, 0xf6, 0xeb, 0x0a,
+ 0xf3, 0x0d, 0x96, 0x27, 0x30, 0x16, 0x2c, 0x33, 0x9c, 0x16, 0x3d, 0xad, 0x1c, 0x9f, 0xc0, 0x76,
+ 0xb3, 0xcb, 0x1e, 0xe3, 0x4b, 0x69, 0x42, 0x22, 0x82, 0x35, 0x16, 0x7d, 0x90, 0xd3, 0x36, 0x63,
+ 0xba, 0x0d, 0xd8, 0x26, 0xf8, 0xe4, 0xf3, 0x4d, 0x2f, 0x2d, 0xcf, 0x2b, 0xc6, 0xa5, 0x08, 0xc5,
+ 0xb5, 0xa2, 0x02, 0x94, 0xc8, 0x11, 0xd4, 0x93, 0x1b, 0x2e, 0xae, 0x38, 0x80, 0x4b, 0x47, 0x21,
+ 0x24, 0x17, 0x36, 0x1c, 0xd3, 0x6b, 0xfe, 0x52, 0x33, 0xff, 0x19, 0x5c, 0xa5, 0x24, 0x79, 0x10,
+ 0x26, 0xc7, 0x79, 0x6e, 0xc5, 0xb6, 0x02, 0x58, 0xdc, 0x00, 0x55, 0x0b, 0xf3, 0xb3, 0x63, 0x61,
+ 0x82, 0xf2, 0xd4, 0xe3, 0xf2, 0x5f, 0x39, 0xc4, 0x02, 0x58, 0x4d, 0x42, 0x09, 0x01, 0xa1, 0x56,
+ 0x30, 0x9f, 0x9e, 0x79, 0x21, 0xc6, 0xfe, 0x47, 0x31, 0x95, 0xbb, 0x31, 0x4c, 0x52, 0xdb, 0x1f,
+ 0xe7, 0xfa, 0xbf, 0x71, 0x5d, 0x5b, 0xd4, 0x37, 0xbc, 0xbd, 0x7b, 0x85, 0x08, 0x65, 0x06, 0x59,
+ 0xf6, 0xb2, 0x09, 0x82, 0x0d, 0xce, 0x5a, 0xae, 0xf5, 0x1d, 0xb0, 0x2e, 0x15, 0xd5, 0x8c, 0xbb,
+ 0xca, 0x4b, 0x4c, 0x27, 0x01, 0x12, 0x8b, 0xe9, 0xfd, 0x61, 0xed};
+
+static const uint8_t kECCACertDER[] = {0x30, 0x82, 0x02, 0x6e, 0x30, 0x82, 0x02, 0x15, 0xa0, 0x03,
+ 0x02, 0x01, 0x02, 0x02, 0x09, 0x00, 0xf7, 0x16, 0x78, 0x5d, 0xe9, 0x0d, 0xc6, 0x8e, 0x30, 0x0a,
+ 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x30, 0x81, 0x93, 0x31, 0x0b, 0x30,
+ 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x0f, 0x30, 0x0d, 0x06, 0x03,
+ 0x55, 0x04, 0x08, 0x0c, 0x06, 0x53, 0x79, 0x64, 0x6e, 0x65, 0x79, 0x31, 0x21, 0x30, 0x1f, 0x06,
+ 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20, 0x57,
+ 0x69, 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c, 0x74, 0x64, 0x31, 0x0c,
+ 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x03, 0x73, 0x61, 0x64, 0x31, 0x14, 0x30, 0x12,
+ 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x0b, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x2e,
+ 0x34, 0x34, 0x31, 0x2c, 0x30, 0x2a, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09,
+ 0x01, 0x16, 0x1d, 0x6e, 0x6f, 0x6e, 0x40, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e,
+ 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x34, 0x33, 0x34, 0x33, 0x32,
+ 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x36, 0x31, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x36, 0x35, 0x38,
+ 0x5a, 0x17, 0x0d, 0x31, 0x39, 0x31, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x36, 0x35, 0x38, 0x5a,
+ 0x30, 0x81, 0x93, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x41, 0x55,
+ 0x31, 0x0f, 0x30, 0x0d, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x06, 0x53, 0x79, 0x64, 0x6e, 0x65,
+ 0x79, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x18, 0x49, 0x6e, 0x74, 0x65,
+ 0x72, 0x6e, 0x65, 0x74, 0x20, 0x57, 0x69, 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79,
+ 0x20, 0x4c, 0x74, 0x64, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x03, 0x73,
+ 0x61, 0x64, 0x31, 0x14, 0x30, 0x12, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x0b, 0x6e, 0x6f, 0x6e,
+ 0x65, 0x78, 0x69, 0x73, 0x74, 0x2e, 0x34, 0x34, 0x31, 0x2c, 0x30, 0x2a, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x01, 0x16, 0x1d, 0x6e, 0x6f, 0x6e, 0x40, 0x65, 0x78, 0x69,
+ 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e,
+ 0x74, 0x34, 0x33, 0x34, 0x33, 0x32, 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce,
+ 0x3d, 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00,
+ 0x04, 0x68, 0x63, 0xa8, 0xd1, 0x25, 0xc8, 0x1e, 0x07, 0x24, 0x62, 0x37, 0xd4, 0x03, 0xac, 0xa8,
+ 0xa7, 0x6e, 0x90, 0x02, 0x99, 0xcf, 0x29, 0xeb, 0x4c, 0x40, 0x59, 0xb6, 0x7e, 0x3f, 0x12, 0xe5,
+ 0x1f, 0x52, 0xca, 0x0b, 0x10, 0x7d, 0xd5, 0xaa, 0x51, 0x8d, 0xd3, 0x50, 0x94, 0x7f, 0x9e, 0x2f,
+ 0x16, 0x79, 0x37, 0x5b, 0x47, 0x9b, 0xbe, 0xf4, 0xaf, 0xe2, 0x9a, 0x9b, 0x15, 0x31, 0x0c, 0xc6,
+ 0x61, 0xa3, 0x50, 0x30, 0x4e, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+ 0x49, 0xdb, 0xfd, 0x0c, 0x73, 0x69, 0x83, 0x7f, 0xc1, 0xc1, 0xc2, 0x3f, 0xce, 0x4e, 0x82, 0xe6,
+ 0xd3, 0xdc, 0x3c, 0x6e, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80,
+ 0x14, 0x49, 0xdb, 0xfd, 0x0c, 0x73, 0x69, 0x83, 0x7f, 0xc1, 0xc1, 0xc2, 0x3f, 0xce, 0x4e, 0x82,
+ 0xe6, 0xd3, 0xdc, 0x3c, 0x6e, 0x30, 0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, 0x05, 0x30, 0x03,
+ 0x01, 0x01, 0xff, 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x03,
+ 0x47, 0x00, 0x30, 0x44, 0x02, 0x20, 0x0e, 0x49, 0x30, 0xc0, 0x3f, 0x41, 0xcd, 0xc7, 0x87, 0xe7,
+ 0x0f, 0xfd, 0x2a, 0xcd, 0xd8, 0x9c, 0xf8, 0x1c, 0x8f, 0xbc, 0x94, 0xab, 0x29, 0xcd, 0xaf, 0x7e,
+ 0xf1, 0x94, 0x28, 0x25, 0x1d, 0xc1, 0x02, 0x20, 0x29, 0x93, 0xf3, 0x91, 0x44, 0xe3, 0xac, 0xfe,
+ 0xc5, 0x86, 0xdd, 0x27, 0x36, 0x49, 0xd6, 0x61, 0x72, 0x47, 0x1b, 0x55, 0x46, 0x29, 0x50, 0x2a,
+ 0x16, 0xf3, 0x60, 0x2e, 0x3f, 0x96, 0x8d, 0x9a};
+
+static const uint8_t kDSACertDER[] = {0x30, 0x82, 0x04, 0x1d, 0x30, 0x82, 0x03, 0xdb, 0xa0, 0x03,
+ 0x02, 0x01, 0x02, 0x02, 0x09, 0x00, 0xcc, 0x5e, 0x3b, 0x1d, 0xfd, 0xc4, 0x05, 0x9b, 0x30, 0x0b,
+ 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x02, 0x30, 0x81, 0xc6, 0x31, 0x0b,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x0c, 0x30, 0x0a, 0x06,
+ 0x03, 0x55, 0x04, 0x08, 0x0c, 0x03, 0x4e, 0x53, 0x57, 0x31, 0x0f, 0x30, 0x0d, 0x06, 0x03, 0x55,
+ 0x04, 0x07, 0x0c, 0x06, 0x53, 0x79, 0x64, 0x6e, 0x65, 0x79, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03,
+ 0x55, 0x04, 0x0a, 0x0c, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20, 0x57, 0x69,
+ 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c, 0x74, 0x64, 0x31, 0x0b, 0x30,
+ 0x09, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x02, 0x4f, 0x55, 0x31, 0x2a, 0x30, 0x28, 0x06, 0x03,
+ 0x55, 0x04, 0x03, 0x0c, 0x21, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74,
+ 0x2e, 0x61, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78,
+ 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x31, 0x3c, 0x30, 0x3a, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+ 0xf7, 0x0d, 0x01, 0x09, 0x01, 0x16, 0x2d, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65,
+ 0x6e, 0x74, 0x40, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x61,
+ 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73,
+ 0x74, 0x65, 0x6e, 0x74, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x37, 0x30, 0x32, 0x32, 0x30, 0x32, 0x30,
+ 0x34, 0x32, 0x34, 0x30, 0x5a, 0x17, 0x0d, 0x31, 0x37, 0x30, 0x33, 0x32, 0x32, 0x32, 0x30, 0x34,
+ 0x32, 0x34, 0x30, 0x5a, 0x30, 0x81, 0xc6, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+ 0x13, 0x02, 0x41, 0x55, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x03, 0x4e,
+ 0x53, 0x57, 0x31, 0x0f, 0x30, 0x0d, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x06, 0x53, 0x79, 0x64,
+ 0x6e, 0x65, 0x79, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x18, 0x49, 0x6e,
+ 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20, 0x57, 0x69, 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50,
+ 0x74, 0x79, 0x20, 0x4c, 0x74, 0x64, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c,
+ 0x02, 0x4f, 0x55, 0x31, 0x2a, 0x30, 0x28, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x21, 0x6e, 0x6f,
+ 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x75, 0x73, 0x74, 0x72, 0x61,
+ 0x6c, 0x69, 0x61, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x31,
+ 0x3c, 0x30, 0x3a, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x01, 0x16, 0x2d,
+ 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x40, 0x6e, 0x6f, 0x6e, 0x65,
+ 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69,
+ 0x61, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x30, 0x82, 0x01,
+ 0xb6, 0x30, 0x82, 0x01, 0x2b, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x38, 0x04, 0x01, 0x30, 0x82,
+ 0x01, 0x1e, 0x02, 0x81, 0x81, 0x00, 0xe6, 0xb9, 0x3b, 0xb0, 0xc8, 0xa8, 0x45, 0xf8, 0x20, 0xf2,
+ 0x62, 0x34, 0xaa, 0x09, 0x2d, 0xc1, 0x9b, 0x70, 0xde, 0x0b, 0x4e, 0x93, 0xb1, 0x40, 0x22, 0xf4,
+ 0x89, 0x41, 0x8d, 0x0f, 0x17, 0x99, 0x15, 0x65, 0x88, 0xbf, 0x3c, 0x07, 0xf1, 0x92, 0xc0, 0x63,
+ 0xfa, 0xed, 0x6a, 0x56, 0x8c, 0xe9, 0xd8, 0x6f, 0xcb, 0x10, 0x40, 0x27, 0x63, 0x38, 0xc0, 0x8f,
+ 0x4f, 0x5d, 0xe5, 0x97, 0x9b, 0x3b, 0x74, 0xa2, 0xc3, 0x89, 0xec, 0x54, 0x01, 0x6b, 0xef, 0xb8,
+ 0xca, 0x33, 0x06, 0xb3, 0xa4, 0x51, 0xce, 0x02, 0x71, 0x81, 0x26, 0xc8, 0x3b, 0x6d, 0x6e, 0xb0,
+ 0x28, 0x9d, 0x5d, 0x44, 0x9b, 0xf4, 0xc5, 0x86, 0x36, 0xe6, 0xe0, 0xbf, 0xc7, 0x43, 0xd9, 0xc7,
+ 0x60, 0xfd, 0xef, 0x6b, 0xb9, 0xaf, 0x1e, 0xc0, 0xa0, 0x47, 0xc7, 0xfe, 0x07, 0x38, 0xb8, 0x31,
+ 0x01, 0xbf, 0xdd, 0xe4, 0x97, 0xe1, 0x02, 0x15, 0x00, 0xcf, 0x70, 0xf6, 0xf0, 0x7b, 0x10, 0x56,
+ 0x2f, 0x41, 0x1d, 0xca, 0x02, 0x4e, 0x3f, 0xcd, 0xbc, 0xef, 0x14, 0x87, 0x3f, 0x02, 0x81, 0x80,
+ 0x6a, 0x8a, 0xe3, 0x0f, 0xdd, 0x6d, 0xce, 0xc6, 0x38, 0x44, 0x7c, 0x55, 0x55, 0xe6, 0x08, 0x8f,
+ 0x55, 0x12, 0x03, 0xdf, 0xbc, 0x9a, 0x74, 0xc2, 0xc1, 0xf2, 0x10, 0xbc, 0xc4, 0x56, 0xf1, 0xa9,
+ 0xb2, 0xee, 0x68, 0xa0, 0x29, 0x61, 0x30, 0xe6, 0x7c, 0x2e, 0xfd, 0x8d, 0x00, 0xf8, 0x54, 0xa9,
+ 0xeb, 0x54, 0xf1, 0x35, 0x97, 0xad, 0x3a, 0x15, 0x1d, 0x0a, 0x7f, 0xb7, 0x67, 0x6f, 0x3f, 0xc2,
+ 0x88, 0xf7, 0x70, 0x9f, 0xb3, 0xed, 0xfd, 0x7d, 0x0d, 0x1c, 0x7c, 0x0b, 0x42, 0xd5, 0x17, 0x0a,
+ 0x3d, 0x10, 0xa1, 0x26, 0x17, 0x88, 0x2b, 0x24, 0x1d, 0x61, 0xf6, 0x92, 0x85, 0x66, 0xfe, 0xae,
+ 0x45, 0xab, 0xf9, 0x67, 0xa9, 0xe5, 0x10, 0x1a, 0x79, 0xf7, 0xff, 0x45, 0x03, 0x85, 0xc8, 0xa9,
+ 0xc2, 0xbc, 0x02, 0xa9, 0x6b, 0x99, 0x6c, 0x49, 0x24, 0x9a, 0xa2, 0x7e, 0xf2, 0xfc, 0xf4, 0x99,
+ 0x03, 0x81, 0x84, 0x00, 0x02, 0x81, 0x80, 0x5c, 0xb1, 0x43, 0xda, 0xc6, 0xff, 0x7e, 0xe9, 0x4f,
+ 0x43, 0x76, 0x4b, 0x5a, 0xb7, 0x45, 0xe7, 0x3a, 0x6d, 0xc2, 0x9f, 0xf8, 0x1c, 0x5e, 0x7b, 0x2d,
+ 0x76, 0x5e, 0xff, 0x04, 0x44, 0xfc, 0x41, 0x08, 0x15, 0x7f, 0x55, 0x5e, 0x5f, 0x2f, 0x06, 0x59,
+ 0x4f, 0xaf, 0x03, 0xf9, 0x49, 0xc9, 0x0d, 0xd4, 0xb3, 0xde, 0x5a, 0x55, 0xd0, 0x78, 0x77, 0x6d,
+ 0x0c, 0xb7, 0x37, 0x03, 0xe9, 0x7c, 0xf7, 0x55, 0x19, 0xf4, 0xe1, 0x01, 0x3d, 0xb1, 0xd9, 0xbf,
+ 0x42, 0xa3, 0xc4, 0x67, 0x00, 0xa4, 0x51, 0x9f, 0xe3, 0x45, 0xb3, 0x1c, 0xff, 0x1e, 0xfd, 0x02,
+ 0x80, 0x0f, 0x2b, 0x05, 0x93, 0x5a, 0xc9, 0xaf, 0x90, 0x85, 0xc8, 0x30, 0x48, 0x10, 0x15, 0x78,
+ 0x60, 0xd7, 0xb8, 0x31, 0x67, 0x8b, 0x81, 0x10, 0x0c, 0x5c, 0x98, 0x91, 0xf2, 0x13, 0xf3, 0x89,
+ 0x81, 0xe7, 0xe9, 0x4b, 0xd5, 0xa6, 0x94, 0xa3, 0x50, 0x30, 0x4e, 0x30, 0x1d, 0x06, 0x03, 0x55,
+ 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x59, 0x67, 0xab, 0x05, 0xf7, 0x03, 0xa6, 0xcd, 0x91, 0xd1,
+ 0x3a, 0x8f, 0xfe, 0xf2, 0x9c, 0x66, 0xcf, 0x96, 0x74, 0x0b, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+ 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x59, 0x67, 0xab, 0x05, 0xf7, 0x03, 0xa6, 0xcd, 0x91,
+ 0xd1, 0x3a, 0x8f, 0xfe, 0xf2, 0x9c, 0x66, 0xcf, 0x96, 0x74, 0x0b, 0x30, 0x0c, 0x06, 0x03, 0x55,
+ 0x1d, 0x13, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48,
+ 0x01, 0x65, 0x03, 0x04, 0x03, 0x02, 0x03, 0x2f, 0x00, 0x30, 0x2c, 0x02, 0x14, 0x45, 0x42, 0x16,
+ 0x1f, 0x87, 0xe9, 0x52, 0x6a, 0xda, 0x51, 0x9a, 0x24, 0xa7, 0x91, 0xf7, 0xff, 0x60, 0x1c, 0x40,
+ 0x04, 0x02, 0x14, 0x7d, 0x55, 0x25, 0x8b, 0x59, 0x4a, 0xfa, 0xfd, 0xc4, 0x96, 0x87, 0x55, 0xd0,
+ 0xc8, 0xf2, 0xbb, 0x51, 0x98, 0x20, 0x13};
static SSL_CTX* ctx = NULL;
@@ -500,8 +450,8 @@ int LLVMFuzzerInitialize(int* argc, char*** argv) {
assert(ret == 1);
EVP_PKEY_free(pkey);
- bufp = kRSACertificateDER;
- X509* cert = d2i_X509(NULL, &bufp, sizeof(kRSACertificateDER));
+ bufp = kCertificateDER;
+ X509* cert = d2i_X509(NULL, &bufp, sizeof(kCertificateDER));
assert(cert != NULL);
ret = SSL_CTX_use_certificate(ctx, cert);
assert(ret == 1);
@@ -544,7 +494,7 @@ int LLVMFuzzerInitialize(int* argc, char*** argv) {
X509_free(cert);
SSL_CTX_set_cert_store(ctx, store);
- SSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, NULL);
+ SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, NULL);
SSL_CTX_set_verify_depth(ctx, 10);
#if defined(HF_SSL_IS_BORINGSSL)
@@ -556,20 +506,6 @@ int LLVMFuzzerInitialize(int* argc, char*** argv) {
#endif /* defined(HF_SSL_IS_BORINGSSL) */
SSL_CTX_set_ecdh_auto(ctx, 1);
-#if defined(TLS1_3_VERSION)
- SSL_CTX_set_min_proto_version(ctx, SSL3_VERSION);
- SSL_CTX_set_max_proto_version(ctx, TLS1_3_VERSION);
-#endif /* defined(TLS1_3_VERSION) */
- SSL_CTX_set_session_cache_mode(ctx, SSL_SESS_CACHE_BOTH);
- SSL_CTX_set_timeout(ctx, 3);
-
-#if defined(HF_SSL_IS_OPENSSL_GE_1_1)
- SSL_CTX_enable_ct(ctx, SSL_CT_VALIDATION_PERMISSIVE);
- SSL_CTX_set_max_early_data(ctx, 1024);
-#endif /* defined(HF_SSL_IS_OPENSSL_GE_1_1) */
-#if defined(HF_SSL_IS_OPENSSL_GE_1_1) || defined(HF_SSL_IS_LIBRESSL)
- SSL_CTX_set_dh_auto(ctx, 1);
-#endif /* #if defined(HF_SSL_IS_OPENSSL_GE_1_1) || defined(HF_SSL_IS_LIBRESSL) */
long opts = SSL_CTX_get_options(ctx);
opts |= SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION;
@@ -593,6 +529,11 @@ int LLVMFuzzerTestOneInput(const uint8_t* buf, size_t len) {
SSL_set_renegotiate_mode(client, ssl_renegotiate_freely);
#endif /* defined(HF_SSL_IS_BORINGSSL) */
+#if defined(HF_SSL_IS_OPENSSL_GE_1_1) || defined(HF_SSL_IS_BORINGSSL)
+ SSL_set_min_proto_version(client, SSL3_VERSION);
+ SSL_set_max_proto_version(client, TLS1_3_VERSION);
+#endif // defined(HF_SSL_IS_OPENSSL_GE_1_1) || defined(HF_SSL_IS_BORINGSSL)
+
#if defined(HF_SSL_FROM_STDIN)
BIO* in = BIO_new(BIO_s_fd());
BIO_set_fd(in, 0, BIO_NOCLOSE);
@@ -608,6 +549,10 @@ int LLVMFuzzerTestOneInput(const uint8_t* buf, size_t len) {
SSL_set_connect_state(client);
#if defined(HF_SSL_IS_OPENSSL_GE_1_1)
+ SSL_enable_ct(client, SSL_CT_VALIDATION_PERMISSIVE);
+ SSL_set_dh_auto(client, 1);
+
+ SSL_set_max_early_data(client, 1024);
for (;;) {
size_t sz;
uint8_t edata_rbuf[128];
@@ -628,13 +573,10 @@ int LLVMFuzzerTestOneInput(const uint8_t* buf, size_t len) {
#endif // defined(HF_SSL_IS_OPENSSL_GE_1_1)
X509* peer;
if ((peer = SSL_get_peer_certificate(client)) != NULL) {
- long res = SSL_get_verify_result(client);
- if (res != X509_V_OK) {
- if (getenv("HFUZZ_SSL_ABORT_ON_VERIFY")) {
- fprintf(stderr, "verify: %ld\n", res);
- abort();
- }
+ if (getenv("HFUZZ_SSL_ABORT_ON_VERIFY")) {
+ abort();
}
+ SSL_get_verify_result(client);
X509_free(peer);
}
// Keep reading application data until error or EOF.
diff --git a/examples/openssl/hf_ssl_lib.h b/examples/openssl/hf_ssl_lib.h
index 1ae97995..9d8c7e38 100644
--- a/examples/openssl/hf_ssl_lib.h
+++ b/examples/openssl/hf_ssl_lib.h
@@ -24,6 +24,12 @@ extern "C" {
#define HF_SSL_IS_OPENSSL
#endif
+#define FUZZTIME 1485898104
+time_t __wrap_time(time_t* t) {
+ if (t != NULL) *t = FUZZTIME;
+ return FUZZTIME;
+}
+
#if defined(HF_SSL_IS_BORINGSSL)
static int hf_rnd(unsigned char* buf, size_t num)
#else /* defined(HF_SSL_IS_BORINGSSL) */
diff --git a/examples/openssl/make.sh b/examples/openssl/make.sh
index 19d499c0..2f6e0988 100755
--- a/examples/openssl/make.sh
+++ b/examples/openssl/make.sh
@@ -10,10 +10,10 @@ HFUZZ_SRC=~/src/honggfuzz/
OS=`uname -s`
CC="$HFUZZ_SRC/hfuzz_cc/hfuzz-clang"
CXX="$HFUZZ_SRC/hfuzz_cc/hfuzz-clang++"
-COMMON_FLAGS="-DBORINGSSL_UNSAFE_DETERMINISTIC_MODE -DBORINGSSL_UNSAFE_FUZZER_MODE -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -DBN_DEBUG -DLIBRESSL_HAS_TLS1_3 \
+COMMON_FLAGS="-DBORINGSSL_UNSAFE_DETERMINISTIC_MODE -DBORINGSSL_UNSAFE_FUZZER_MODE -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -DBN_DEBUG \
-O3 -g -DFuzzerInitialize=LLVMFuzzerInitialize -DFuzzerTestOneInput=LLVMFuzzerTestOneInput \
-I./$DIR/include -I$HFUZZ_SRC/examples/openssl -I$HFUZZ_SRC"
-COMMON_LDFLAGS="-lpthread -lz -Wl,-z,now"
+COMMON_LDFLAGS="-Wl,--wrap=time -lpthread -lz -Wl,-z,now"
if [ -z "$DIR" ]; then
echo "$0" DIR SANITIZE
diff --git a/examples/openssl/server.c b/examples/openssl/server.c
index f087cb25..d5eb0782 100644
--- a/examples/openssl/server.c
+++ b/examples/openssl/server.c
@@ -8,7 +8,6 @@ extern "C" {
#include <openssl/err.h>
#include <openssl/rand.h>
#include <openssl/ssl.h>
-#include <openssl/tls1.h>
#include <stdint.h>
#include <string.h>
#include <unistd.h>
@@ -16,468 +15,418 @@ extern "C" {
#include <hf_ssl_lib.h>
#include <libhfuzz/libhfuzz.h>
-static const uint8_t kCertificateDER[] = {0x30, 0x82, 0x06, 0x3a, 0x30, 0x82, 0x04, 0x22, 0xa0,
- 0x03, 0x02, 0x01, 0x02, 0x02, 0x14, 0x0f, 0x2d, 0x4d, 0xdd, 0x2f, 0xa5, 0xc0, 0x5f, 0x5a, 0xd3,
- 0x6e, 0x9f, 0xbe, 0x29, 0x68, 0xe9, 0x24, 0x72, 0x6c, 0xeb, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
- 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81, 0x8d, 0x31, 0x0b, 0x30, 0x09,
- 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55,
- 0x04, 0x08, 0x0c, 0x0a, 0x53, 0x6f, 0x6d, 0x65, 0x2d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x31, 0x21,
- 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65,
- 0x74, 0x20, 0x57, 0x69, 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c, 0x74,
- 0x64, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x18, 0x4f, 0x72, 0x67, 0x61,
- 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x55, 0x6e, 0x69, 0x74, 0x20,
- 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x23, 0x30, 0x21, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x1a, 0x6e,
- 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78,
- 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x61, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x39, 0x30,
- 0x35, 0x30, 0x38, 0x31, 0x32, 0x35, 0x33, 0x33, 0x32, 0x5a, 0x17, 0x0d, 0x32, 0x39, 0x30, 0x35,
- 0x30, 0x37, 0x31, 0x32, 0x35, 0x33, 0x33, 0x32, 0x5a, 0x30, 0x81, 0xa2, 0x31, 0x0b, 0x30, 0x09,
- 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55,
- 0x04, 0x08, 0x0c, 0x0a, 0x53, 0x6f, 0x6d, 0x65, 0x2d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x31, 0x0f,
- 0x30, 0x0d, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x06, 0x53, 0x69, 0x64, 0x6e, 0x65, 0x79, 0x31,
+static const uint8_t kCertificateDER[] = {0x30, 0x82, 0x05, 0x65, 0x30, 0x82, 0x03, 0x4d, 0x02,
+ 0x09, 0x00, 0xe8, 0x66, 0xed, 0xc9, 0x66, 0xa7, 0xd1, 0xac, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x76, 0x31, 0x0b, 0x30, 0x09, 0x06,
+ 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04,
+ 0x08, 0x0c, 0x03, 0x41, 0x55, 0x53, 0x31, 0x0f, 0x30, 0x0d, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c,
+ 0x06, 0x53, 0x79, 0x64, 0x6e, 0x65, 0x79, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0a,
+ 0x0c, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20, 0x57, 0x69, 0x64, 0x67, 0x69,
+ 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c, 0x74, 0x64, 0x31, 0x25, 0x30, 0x23, 0x06, 0x03,
+ 0x55, 0x04, 0x03, 0x0c, 0x1c, 0x61, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x2e, 0x6e,
+ 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x61, 0x63, 0x61, 0x63,
+ 0x61, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x36, 0x30, 0x39, 0x33, 0x30, 0x31, 0x39, 0x30, 0x33, 0x33,
+ 0x39, 0x5a, 0x17, 0x0d, 0x31, 0x37, 0x30, 0x39, 0x32, 0x35, 0x31, 0x39, 0x30, 0x33, 0x33, 0x39,
+ 0x5a, 0x30, 0x73, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x41, 0x55,
+ 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x03, 0x41, 0x55, 0x53, 0x31, 0x0f,
+ 0x30, 0x0d, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x06, 0x53, 0x79, 0x64, 0x6e, 0x65, 0x79, 0x31,
0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e,
0x65, 0x74, 0x20, 0x57, 0x69, 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c,
- 0x74, 0x64, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x18, 0x4f, 0x72, 0x67,
- 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x55, 0x6e, 0x69, 0x74,
- 0x20, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x27, 0x30, 0x25, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x1e,
- 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x6e, 0x6f, 0x6e, 0x65,
- 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x30, 0x82,
- 0x02, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05,
- 0x00, 0x03, 0x82, 0x02, 0x0f, 0x00, 0x30, 0x82, 0x02, 0x0a, 0x02, 0x82, 0x02, 0x01, 0x00, 0xd0,
- 0x4f, 0xad, 0x4c, 0x85, 0x07, 0x3a, 0x17, 0xf7, 0x09, 0x6d, 0xc1, 0x15, 0x13, 0x61, 0x44, 0x97,
- 0xe7, 0x09, 0x85, 0x16, 0x11, 0xd3, 0xbb, 0x20, 0x42, 0xc0, 0xfa, 0x07, 0xed, 0x5c, 0x02, 0xc4,
- 0x46, 0x3b, 0x64, 0x77, 0xc1, 0x1b, 0xa4, 0x90, 0xc3, 0xd5, 0x16, 0x48, 0x9b, 0xc3, 0x86, 0xbf,
- 0xf7, 0xd5, 0x9d, 0x15, 0x7b, 0x3b, 0xb3, 0x30, 0x51, 0x97, 0x40, 0x4e, 0x4e, 0xfc, 0x3a, 0x25,
- 0xb9, 0x0e, 0x04, 0x81, 0xb7, 0x7f, 0x88, 0xe3, 0xfe, 0x4f, 0x35, 0x5f, 0x5b, 0x41, 0xd8, 0x12,
- 0x05, 0x18, 0xb6, 0x3b, 0x7d, 0x8d, 0x12, 0x8c, 0xa5, 0x9d, 0x75, 0x8b, 0xaf, 0xb6, 0x41, 0x5b,
- 0x8b, 0x28, 0x51, 0x1b, 0x06, 0xa9, 0xf1, 0xca, 0x5b, 0x10, 0x75, 0xad, 0x60, 0xd4, 0x5f, 0x65,
- 0x93, 0x4c, 0x8c, 0x09, 0xfc, 0xdc, 0x7c, 0xaf, 0xb0, 0xc7, 0x37, 0x4c, 0x4b, 0xe4, 0x22, 0x89,
- 0x9b, 0x0d, 0xd5, 0x34, 0x73, 0xc2, 0xe3, 0x3d, 0xa7, 0x26, 0x4c, 0x94, 0xaf, 0x8a, 0x26, 0x5b,
- 0xea, 0x45, 0x55, 0xe4, 0x6d, 0x4b, 0xd7, 0xc9, 0xce, 0xf5, 0xec, 0x55, 0x8e, 0x68, 0x9a, 0x1e,
- 0xf1, 0x96, 0x0a, 0x8e, 0x1e, 0xd2, 0xdf, 0x09, 0x93, 0x18, 0x02, 0x13, 0x29, 0x7d, 0x4d, 0x1e,
- 0x32, 0x6a, 0x75, 0x62, 0x32, 0x9f, 0x0e, 0x08, 0x7e, 0xbb, 0x25, 0xc6, 0x46, 0xa2, 0x29, 0x85,
- 0x9c, 0x49, 0xd4, 0xfa, 0x6b, 0x11, 0x41, 0x4e, 0x77, 0x4d, 0x5a, 0x14, 0xe1, 0xef, 0x78, 0x07,
- 0x31, 0xe2, 0xdf, 0xdb, 0xaa, 0xef, 0x51, 0x10, 0x7a, 0x78, 0x85, 0x23, 0x34, 0x02, 0x27, 0x2d,
- 0x3c, 0x3e, 0x82, 0x44, 0x2d, 0x63, 0x0e, 0x95, 0x63, 0x4f, 0xf0, 0x42, 0x9e, 0x8d, 0x41, 0x9a,
- 0x11, 0x97, 0xc2, 0x41, 0x75, 0xaf, 0x0c, 0x7a, 0xda, 0x8d, 0x5b, 0x1c, 0x78, 0xcd, 0xa9, 0xbf,
- 0x88, 0xab, 0x5d, 0x37, 0x2e, 0x24, 0xec, 0x56, 0x0f, 0x8e, 0x30, 0x47, 0xb5, 0x4d, 0x5e, 0xbe,
- 0x1d, 0x0c, 0xe5, 0xb5, 0x9b, 0xe3, 0xf9, 0xc1, 0x96, 0xe1, 0xef, 0x1d, 0x8b, 0x63, 0x4b, 0xc4,
- 0xee, 0x35, 0xe1, 0x65, 0x48, 0x63, 0x2d, 0x6a, 0x2b, 0xb4, 0xde, 0x50, 0x8b, 0xbe, 0x47, 0x0b,
- 0x8d, 0x8e, 0xfd, 0x0f, 0x30, 0xdf, 0x66, 0xec, 0x16, 0xa4, 0x62, 0x34, 0x78, 0x09, 0x6b, 0xb0,
- 0xbb, 0xc5, 0x55, 0x71, 0x93, 0xd2, 0x6b, 0xa7, 0xce, 0x01, 0x58, 0x5a, 0xa6, 0x97, 0x95, 0xb3,
- 0x86, 0x9e, 0x78, 0xd5, 0x4a, 0xb2, 0x0c, 0xc2, 0xa0, 0xad, 0x30, 0x77, 0x48, 0x9f, 0xd4, 0xc8,
- 0x62, 0x27, 0x83, 0x7e, 0xbb, 0x42, 0xf4, 0x29, 0xb4, 0x49, 0x8a, 0x6c, 0x4a, 0xec, 0x24, 0x47,
- 0xd5, 0x53, 0x8a, 0xa2, 0x8c, 0x94, 0xd2, 0x02, 0x9f, 0xf1, 0x5e, 0xe7, 0x5a, 0x03, 0xff, 0x2a,
- 0x09, 0xfd, 0xcb, 0x47, 0xe8, 0x3f, 0x8f, 0x54, 0xe3, 0x9e, 0xef, 0x19, 0x36, 0xe9, 0xcb, 0x38,
- 0x6a, 0x76, 0xf7, 0x55, 0x9d, 0x1b, 0xd6, 0x87, 0x4c, 0xfb, 0xd1, 0x5f, 0xe6, 0x9a, 0xef, 0xa6,
- 0x61, 0xad, 0xcb, 0x70, 0x63, 0x33, 0x7f, 0x26, 0x44, 0x29, 0x20, 0xcc, 0xf7, 0xb8, 0xd3, 0x59,
- 0xc2, 0x86, 0xeb, 0xda, 0xea, 0x64, 0xd7, 0x13, 0x5b, 0x61, 0x08, 0x38, 0x6f, 0x24, 0xf7, 0x17,
- 0xc8, 0x8c, 0x5c, 0x9f, 0xfc, 0x12, 0x73, 0x86, 0x53, 0xd9, 0x85, 0x54, 0x8d, 0x12, 0x49, 0xd5,
- 0x6b, 0x01, 0xc0, 0x84, 0x93, 0x48, 0x20, 0x1f, 0x98, 0x33, 0x53, 0x39, 0xf0, 0x21, 0x71, 0x3d,
- 0x3c, 0x9c, 0xba, 0x0d, 0x99, 0x75, 0x7f, 0x91, 0xed, 0x22, 0xac, 0xcf, 0xa1, 0x57, 0x38, 0x94,
- 0xb0, 0x85, 0xff, 0x8c, 0x9b, 0xdc, 0x20, 0xac, 0xa4, 0xc0, 0x22, 0x79, 0xa2, 0xe4, 0x1d, 0x02,
- 0x03, 0x01, 0x00, 0x01, 0xa3, 0x7b, 0x30, 0x79, 0x30, 0x09, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04,
- 0x02, 0x30, 0x00, 0x30, 0x2c, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x42, 0x01, 0x0d,
- 0x04, 0x1f, 0x16, 0x1d, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x53, 0x4c, 0x20, 0x47, 0x65, 0x6e, 0x65,
- 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
- 0x65, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x43, 0x8c, 0x8e, 0x2f,
- 0xe6, 0xa5, 0xfc, 0x81, 0xa1, 0x21, 0x71, 0x60, 0x24, 0x97, 0xb0, 0x22, 0xf2, 0x3b, 0xc2, 0xfc,
- 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xb4, 0x59, 0x44,
- 0x9c, 0xe3, 0x18, 0xd1, 0x69, 0x15, 0x4a, 0x38, 0x8b, 0x82, 0x0d, 0x19, 0x83, 0x1f, 0xe0, 0x02,
- 0x37, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00,
- 0x03, 0x82, 0x02, 0x01, 0x00, 0x36, 0xb9, 0x48, 0x88, 0x84, 0xe9, 0xec, 0x49, 0x50, 0xe5, 0x43,
- 0x3e, 0x6f, 0x46, 0xef, 0x76, 0x8e, 0x5e, 0x34, 0xf7, 0x17, 0x6b, 0x87, 0x3d, 0xa3, 0x9b, 0x4e,
- 0x89, 0xfe, 0x9d, 0xc0, 0x1d, 0x80, 0xbd, 0xbd, 0x37, 0xd8, 0x46, 0x4a, 0x70, 0x40, 0xa0, 0x34,
- 0xd0, 0xa2, 0x6b, 0x56, 0x1c, 0x35, 0xd3, 0x20, 0xeb, 0x99, 0x09, 0x0d, 0x91, 0xd8, 0x1c, 0x8b,
- 0x73, 0xdd, 0x98, 0x28, 0xb3, 0xfd, 0x69, 0xfe, 0xdb, 0xd6, 0x9a, 0x21, 0xce, 0x6c, 0xc0, 0xa3,
- 0xd4, 0xcc, 0x4c, 0xaa, 0xb2, 0x5e, 0x09, 0xab, 0x6b, 0x1c, 0xf2, 0x88, 0xfc, 0xb8, 0x1c, 0x34,
- 0x78, 0x27, 0x0b, 0xb3, 0xfc, 0x6c, 0x56, 0xb4, 0xf8, 0xba, 0xb3, 0xb4, 0x87, 0x52, 0xa8, 0xf7,
- 0xf3, 0xde, 0x96, 0x74, 0x72, 0xcd, 0xf6, 0x01, 0x44, 0x04, 0x20, 0x60, 0x10, 0xd8, 0xc2, 0xab,
- 0x9a, 0x07, 0x11, 0xf9, 0x2e, 0xc1, 0xff, 0x5d, 0x2e, 0xf5, 0xe4, 0xf0, 0x57, 0x52, 0x20, 0x8f,
- 0x6b, 0x1d, 0x5f, 0x87, 0x31, 0x33, 0x5d, 0x75, 0x3f, 0x23, 0xd3, 0x60, 0x94, 0x7b, 0x1d, 0x66,
- 0xcc, 0x43, 0xe4, 0xd8, 0xe0, 0xca, 0x82, 0xd9, 0x66, 0x01, 0x4b, 0xfc, 0x73, 0xc0, 0x7b, 0xa5,
- 0xaf, 0x4a, 0x0f, 0x1d, 0x4e, 0xbb, 0x7c, 0x53, 0x60, 0x81, 0x71, 0x4f, 0x0c, 0x4b, 0x25, 0x6e,
- 0xca, 0xc7, 0x60, 0xaa, 0x0f, 0x62, 0x31, 0x27, 0x40, 0x84, 0x72, 0x05, 0x39, 0x00, 0x94, 0x77,
- 0x46, 0xdb, 0x04, 0x51, 0xaf, 0x58, 0x7b, 0x1a, 0x4c, 0x05, 0x88, 0x77, 0x25, 0x24, 0x88, 0x72,
- 0x9b, 0xd3, 0xea, 0x9f, 0xfe, 0x23, 0x2f, 0x6e, 0xb6, 0xba, 0xfc, 0x35, 0x1f, 0xbe, 0x0d, 0x79,
- 0x47, 0xfb, 0x47, 0xb0, 0x5a, 0x93, 0x23, 0x9c, 0x09, 0x23, 0x37, 0x65, 0x18, 0xe6, 0x0c, 0x6a,
- 0x74, 0xcb, 0x75, 0xc7, 0x22, 0x29, 0xdd, 0xfb, 0x4f, 0xf1, 0xe7, 0x33, 0xcf, 0xa9, 0x62, 0xb3,
- 0x06, 0xda, 0x28, 0x20, 0x4d, 0x73, 0xd3, 0xc5, 0xbb, 0x6c, 0xb0, 0x44, 0x34, 0xbf, 0x15, 0x29,
- 0x71, 0x8f, 0xac, 0xa1, 0xd3, 0xf5, 0x29, 0xb6, 0x42, 0x87, 0xbd, 0xd3, 0xae, 0xea, 0x8c, 0xc0,
- 0xa8, 0xc2, 0xe1, 0xa4, 0x74, 0x8c, 0x21, 0x6d, 0x91, 0xa3, 0x98, 0x41, 0xf3, 0xb9, 0x84, 0x88,
- 0x51, 0x22, 0xb4, 0x6f, 0xdb, 0x06, 0xa2, 0xfc, 0x56, 0x85, 0xa9, 0xed, 0xce, 0x1d, 0x70, 0xb1,
- 0x5c, 0xec, 0x49, 0xc1, 0x48, 0x9f, 0x9d, 0x27, 0x1f, 0xa0, 0x90, 0x9d, 0xab, 0x74, 0x4f, 0xb7,
- 0x27, 0x60, 0xe7, 0xc3, 0xac, 0xf2, 0xfd, 0x6b, 0x5d, 0x59, 0xa8, 0x24, 0xfc, 0xbd, 0xb3, 0xe5,
- 0x3b, 0x36, 0xc4, 0x56, 0x7e, 0x56, 0x11, 0x41, 0xce, 0xc2, 0xd2, 0xe2, 0x6e, 0x2b, 0xae, 0xad,
- 0x71, 0xce, 0x93, 0x03, 0x28, 0x80, 0x33, 0xf2, 0xf6, 0xe5, 0x9c, 0x3f, 0xe2, 0x20, 0x4c, 0xfa,
- 0x05, 0xdd, 0xb3, 0xff, 0x76, 0x81, 0x18, 0x01, 0x7a, 0x89, 0xa1, 0x0b, 0x72, 0x0e, 0x07, 0x1e,
- 0xd6, 0x08, 0x42, 0xc8, 0xf9, 0xc8, 0xf7, 0x0e, 0x64, 0x65, 0x69, 0xc2, 0x3c, 0xab, 0x13, 0xc9,
- 0xd7, 0xf2, 0x3c, 0x02, 0xd4, 0x78, 0xcd, 0xa3, 0x3e, 0xdf, 0xd9, 0x6e, 0xd8, 0x80, 0xaa, 0xba,
- 0x8c, 0xe4, 0x1f, 0xb9, 0x01, 0xbb, 0x94, 0x22, 0x66, 0x71, 0x62, 0x30, 0xfc, 0xa4, 0x49, 0xe1,
- 0x12, 0x24, 0xf1, 0x89, 0x5e, 0xca, 0xe3, 0xba, 0x20, 0x99, 0x86, 0x20, 0xfd, 0x99, 0xa1, 0xd8,
- 0x52, 0x10, 0xd1, 0xff, 0xc3, 0x40, 0x27, 0x56, 0xfd, 0xf0, 0xfd, 0xb8, 0x8b, 0x54, 0x03, 0xc6,
- 0xa3, 0xff, 0xe0, 0xf7, 0xaa, 0x03, 0x85, 0x03, 0xae, 0x4a, 0xc1, 0xe6, 0x56, 0xeb, 0x2a, 0x10,
- 0xef, 0x48, 0x32, 0x04, 0x64};
-
-static const uint8_t kRSAPrivateKeyDER[] = {0x30, 0x82, 0x09, 0x28, 0x02, 0x01, 0x00, 0x02, 0x82,
- 0x02, 0x01, 0x00, 0xd0, 0x4f, 0xad, 0x4c, 0x85, 0x07, 0x3a, 0x17, 0xf7, 0x09, 0x6d, 0xc1, 0x15,
- 0x13, 0x61, 0x44, 0x97, 0xe7, 0x09, 0x85, 0x16, 0x11, 0xd3, 0xbb, 0x20, 0x42, 0xc0, 0xfa, 0x07,
- 0xed, 0x5c, 0x02, 0xc4, 0x46, 0x3b, 0x64, 0x77, 0xc1, 0x1b, 0xa4, 0x90, 0xc3, 0xd5, 0x16, 0x48,
- 0x9b, 0xc3, 0x86, 0xbf, 0xf7, 0xd5, 0x9d, 0x15, 0x7b, 0x3b, 0xb3, 0x30, 0x51, 0x97, 0x40, 0x4e,
- 0x4e, 0xfc, 0x3a, 0x25, 0xb9, 0x0e, 0x04, 0x81, 0xb7, 0x7f, 0x88, 0xe3, 0xfe, 0x4f, 0x35, 0x5f,
- 0x5b, 0x41, 0xd8, 0x12, 0x05, 0x18, 0xb6, 0x3b, 0x7d, 0x8d, 0x12, 0x8c, 0xa5, 0x9d, 0x75, 0x8b,
- 0xaf, 0xb6, 0x41, 0x5b, 0x8b, 0x28, 0x51, 0x1b, 0x06, 0xa9, 0xf1, 0xca, 0x5b, 0x10, 0x75, 0xad,
- 0x60, 0xd4, 0x5f, 0x65, 0x93, 0x4c, 0x8c, 0x09, 0xfc, 0xdc, 0x7c, 0xaf, 0xb0, 0xc7, 0x37, 0x4c,
- 0x4b, 0xe4, 0x22, 0x89, 0x9b, 0x0d, 0xd5, 0x34, 0x73, 0xc2, 0xe3, 0x3d, 0xa7, 0x26, 0x4c, 0x94,
- 0xaf, 0x8a, 0x26, 0x5b, 0xea, 0x45, 0x55, 0xe4, 0x6d, 0x4b, 0xd7, 0xc9, 0xce, 0xf5, 0xec, 0x55,
- 0x8e, 0x68, 0x9a, 0x1e, 0xf1, 0x96, 0x0a, 0x8e, 0x1e, 0xd2, 0xdf, 0x09, 0x93, 0x18, 0x02, 0x13,
- 0x29, 0x7d, 0x4d, 0x1e, 0x32, 0x6a, 0x75, 0x62, 0x32, 0x9f, 0x0e, 0x08, 0x7e, 0xbb, 0x25, 0xc6,
- 0x46, 0xa2, 0x29, 0x85, 0x9c, 0x49, 0xd4, 0xfa, 0x6b, 0x11, 0x41, 0x4e, 0x77, 0x4d, 0x5a, 0x14,
- 0xe1, 0xef, 0x78, 0x07, 0x31, 0xe2, 0xdf, 0xdb, 0xaa, 0xef, 0x51, 0x10, 0x7a, 0x78, 0x85, 0x23,
- 0x34, 0x02, 0x27, 0x2d, 0x3c, 0x3e, 0x82, 0x44, 0x2d, 0x63, 0x0e, 0x95, 0x63, 0x4f, 0xf0, 0x42,
- 0x9e, 0x8d, 0x41, 0x9a, 0x11, 0x97, 0xc2, 0x41, 0x75, 0xaf, 0x0c, 0x7a, 0xda, 0x8d, 0x5b, 0x1c,
- 0x78, 0xcd, 0xa9, 0xbf, 0x88, 0xab, 0x5d, 0x37, 0x2e, 0x24, 0xec, 0x56, 0x0f, 0x8e, 0x30, 0x47,
- 0xb5, 0x4d, 0x5e, 0xbe, 0x1d, 0x0c, 0xe5, 0xb5, 0x9b, 0xe3, 0xf9, 0xc1, 0x96, 0xe1, 0xef, 0x1d,
- 0x8b, 0x63, 0x4b, 0xc4, 0xee, 0x35, 0xe1, 0x65, 0x48, 0x63, 0x2d, 0x6a, 0x2b, 0xb4, 0xde, 0x50,
- 0x8b, 0xbe, 0x47, 0x0b, 0x8d, 0x8e, 0xfd, 0x0f, 0x30, 0xdf, 0x66, 0xec, 0x16, 0xa4, 0x62, 0x34,
- 0x78, 0x09, 0x6b, 0xb0, 0xbb, 0xc5, 0x55, 0x71, 0x93, 0xd2, 0x6b, 0xa7, 0xce, 0x01, 0x58, 0x5a,
- 0xa6, 0x97, 0x95, 0xb3, 0x86, 0x9e, 0x78, 0xd5, 0x4a, 0xb2, 0x0c, 0xc2, 0xa0, 0xad, 0x30, 0x77,
- 0x48, 0x9f, 0xd4, 0xc8, 0x62, 0x27, 0x83, 0x7e, 0xbb, 0x42, 0xf4, 0x29, 0xb4, 0x49, 0x8a, 0x6c,
- 0x4a, 0xec, 0x24, 0x47, 0xd5, 0x53, 0x8a, 0xa2, 0x8c, 0x94, 0xd2, 0x02, 0x9f, 0xf1, 0x5e, 0xe7,
- 0x5a, 0x03, 0xff, 0x2a, 0x09, 0xfd, 0xcb, 0x47, 0xe8, 0x3f, 0x8f, 0x54, 0xe3, 0x9e, 0xef, 0x19,
- 0x36, 0xe9, 0xcb, 0x38, 0x6a, 0x76, 0xf7, 0x55, 0x9d, 0x1b, 0xd6, 0x87, 0x4c, 0xfb, 0xd1, 0x5f,
- 0xe6, 0x9a, 0xef, 0xa6, 0x61, 0xad, 0xcb, 0x70, 0x63, 0x33, 0x7f, 0x26, 0x44, 0x29, 0x20, 0xcc,
- 0xf7, 0xb8, 0xd3, 0x59, 0xc2, 0x86, 0xeb, 0xda, 0xea, 0x64, 0xd7, 0x13, 0x5b, 0x61, 0x08, 0x38,
- 0x6f, 0x24, 0xf7, 0x17, 0xc8, 0x8c, 0x5c, 0x9f, 0xfc, 0x12, 0x73, 0x86, 0x53, 0xd9, 0x85, 0x54,
- 0x8d, 0x12, 0x49, 0xd5, 0x6b, 0x01, 0xc0, 0x84, 0x93, 0x48, 0x20, 0x1f, 0x98, 0x33, 0x53, 0x39,
- 0xf0, 0x21, 0x71, 0x3d, 0x3c, 0x9c, 0xba, 0x0d, 0x99, 0x75, 0x7f, 0x91, 0xed, 0x22, 0xac, 0xcf,
- 0xa1, 0x57, 0x38, 0x94, 0xb0, 0x85, 0xff, 0x8c, 0x9b, 0xdc, 0x20, 0xac, 0xa4, 0xc0, 0x22, 0x79,
- 0xa2, 0xe4, 0x1d, 0x02, 0x03, 0x01, 0x00, 0x01, 0x02, 0x82, 0x02, 0x00, 0x36, 0x5f, 0x35, 0xaa,
- 0xad, 0x66, 0x4f, 0x81, 0x85, 0xd7, 0x8e, 0x30, 0x41, 0xa2, 0x07, 0x57, 0x72, 0x16, 0xb9, 0xe3,
- 0x64, 0xf9, 0x4e, 0x3c, 0x9f, 0x95, 0x0c, 0xed, 0xb6, 0x37, 0xfc, 0x36, 0x34, 0xa8, 0xe8, 0x43,
- 0xb7, 0x06, 0x4e, 0x82, 0xcb, 0xce, 0x71, 0xc6, 0x19, 0x39, 0x9e, 0xf5, 0x83, 0x11, 0xdb, 0x4d,
- 0xdf, 0x17, 0x85, 0x63, 0xa6, 0x0f, 0x05, 0xdd, 0xa1, 0x12, 0xf8, 0xbe, 0xec, 0xad, 0xba, 0xbc,
- 0xee, 0x66, 0xc9, 0x01, 0x20, 0x11, 0x76, 0xf7, 0x45, 0x66, 0x7a, 0x6f, 0x3d, 0x74, 0xdb, 0x18,
- 0x65, 0xba, 0xc5, 0xa1, 0xbb, 0xd8, 0x56, 0x9b, 0x21, 0xd4, 0xc1, 0x4b, 0x99, 0xeb, 0x5e, 0xa0,
- 0x9c, 0xdf, 0x46, 0x68, 0x78, 0x1b, 0x00, 0xd6, 0xd6, 0x64, 0x59, 0xca, 0x74, 0xa6, 0xd7, 0xea,
- 0x0d, 0x89, 0x54, 0xbb, 0xae, 0xd8, 0x03, 0x87, 0xa9, 0x80, 0x7d, 0x91, 0x8e, 0x3d, 0x4c, 0x85,
- 0x03, 0xe5, 0xdb, 0x4e, 0x98, 0xff, 0x11, 0xfe, 0x17, 0x29, 0x22, 0x74, 0x14, 0xb5, 0xb7, 0x57,
- 0x4e, 0x02, 0x41, 0x33, 0x97, 0xd7, 0x4f, 0x55, 0x5a, 0x97, 0x8b, 0x31, 0xff, 0x35, 0xab, 0xa6,
- 0x21, 0xa6, 0x66, 0x00, 0x15, 0x6d, 0xb1, 0x6c, 0x89, 0x37, 0xe1, 0x1e, 0xc9, 0xec, 0xfa, 0xe0,
- 0x9c, 0xba, 0xfd, 0xcd, 0x19, 0xe6, 0x8a, 0x4e, 0xb7, 0xcc, 0x23, 0xf3, 0x96, 0x8e, 0x4e, 0xaf,
- 0x2a, 0x95, 0xdb, 0xb1, 0x22, 0x1b, 0xfd, 0xb2, 0xaf, 0x94, 0xb1, 0x7e, 0xb0, 0xd2, 0x12, 0x97,
- 0xbf, 0xac, 0x84, 0x3e, 0xb2, 0x80, 0x65, 0x08, 0xcb, 0x41, 0x7d, 0xf6, 0x5f, 0xd6, 0x43, 0xb2,
- 0x98, 0xbd, 0x08, 0x07, 0xfc, 0x72, 0x29, 0xa1, 0x5a, 0xa2, 0x2b, 0xd8, 0x9d, 0xb0, 0x4d, 0xde,
- 0x44, 0x5b, 0xc5, 0x4f, 0x0a, 0x9a, 0x15, 0x1f, 0x5c, 0xf5, 0x23, 0x28, 0xdc, 0xb7, 0x34, 0x87,
- 0x24, 0xf0, 0xfe, 0xc0, 0xe6, 0x0d, 0xf9, 0xc5, 0xd6, 0x6a, 0x15, 0x82, 0x40, 0x2c, 0x2e, 0xa2,
- 0x2d, 0x02, 0x15, 0x6c, 0x90, 0x21, 0x55, 0x09, 0x4d, 0x6b, 0x51, 0x1e, 0xa8, 0x63, 0x1f, 0x7e,
- 0x0c, 0x7b, 0x18, 0xad, 0xcc, 0x91, 0x52, 0xbe, 0x4f, 0x0f, 0xb0, 0xdd, 0xb9, 0xbe, 0x27, 0x6a,
- 0x25, 0x06, 0x63, 0x16, 0x91, 0x61, 0xae, 0x1a, 0xcf, 0xef, 0xc0, 0x99, 0x10, 0x3a, 0x37, 0x9c,
- 0x5f, 0x2e, 0x84, 0xa4, 0xee, 0xae, 0xcb, 0x2b, 0x06, 0x4c, 0x3b, 0x13, 0x30, 0x2e, 0x14, 0xb9,
- 0x04, 0x84, 0x55, 0x00, 0xf2, 0xcc, 0xeb, 0x42, 0x7c, 0x89, 0xf8, 0x8f, 0x1a, 0x52, 0x7f, 0xec,
- 0xc3, 0x4c, 0x5a, 0xee, 0xe3, 0x2e, 0x47, 0xaa, 0xbb, 0xd7, 0x62, 0xc6, 0x0c, 0x34, 0x63, 0x52,
- 0xf3, 0x09, 0xb3, 0x35, 0x8e, 0xb2, 0x8b, 0x57, 0x2b, 0x33, 0x69, 0x8e, 0xa7, 0x9d, 0x02, 0x86,
- 0x9b, 0x2e, 0xbc, 0x14, 0x56, 0x17, 0xda, 0xd6, 0x09, 0x9e, 0x35, 0x8b, 0x82, 0x53, 0x89, 0xe5,
- 0x7a, 0x22, 0x2d, 0x64, 0x0e, 0xb3, 0xff, 0x51, 0xa5, 0x01, 0x15, 0x5a, 0x8c, 0x77, 0xf6, 0xa8,
- 0x2e, 0x67, 0x63, 0x82, 0x68, 0x32, 0x9c, 0xa3, 0xe7, 0x08, 0x52, 0x6a, 0x3a, 0x57, 0x37, 0xfa,
- 0x08, 0x81, 0x5e, 0x0d, 0x5a, 0xa0, 0x1c, 0x89, 0x88, 0xfc, 0x2c, 0x6b, 0xfc, 0x04, 0x3e, 0xa3,
- 0x64, 0x55, 0x72, 0xf5, 0x15, 0x4d, 0x2a, 0x2b, 0x34, 0x21, 0xc9, 0xca, 0xf4, 0xf3, 0x03, 0x9c,
- 0x24, 0x4c, 0x11, 0x78, 0xd4, 0xd2, 0x92, 0xe7, 0xd7, 0x5d, 0xe1, 0x04, 0x98, 0xa6, 0xf6, 0xc7,
- 0x20, 0x4e, 0x72, 0x1c, 0x70, 0xbb, 0x1c, 0xcb, 0xa4, 0x86, 0x07, 0x3d, 0xab, 0x01, 0x7c, 0x7d,
- 0xc1, 0x90, 0x55, 0x3d, 0xd3, 0x66, 0xbb, 0x59, 0xb2, 0x6c, 0x82, 0x41, 0x02, 0x82, 0x01, 0x01,
- 0x00, 0xf4, 0x95, 0x3e, 0x30, 0x1a, 0x3f, 0x6b, 0xd4, 0x3b, 0xe8, 0x10, 0x54, 0xf4, 0xba, 0xd9,
- 0xf3, 0xd8, 0x93, 0x7b, 0xb0, 0xb7, 0x13, 0x6e, 0x26, 0x5d, 0x1f, 0x24, 0x9c, 0x6b, 0xee, 0xa6,
- 0x8f, 0x8c, 0x18, 0x18, 0x5c, 0xe5, 0xad, 0x28, 0xb5, 0x30, 0x85, 0x2e, 0x49, 0x42, 0x05, 0x79,
- 0x56, 0xdb, 0x9b, 0xcc, 0xd4, 0x24, 0xcc, 0x6c, 0xd4, 0x51, 0x49, 0xe6, 0x67, 0x98, 0xf6, 0xb7,
- 0x31, 0x00, 0x8f, 0xfc, 0x48, 0x1b, 0xb4, 0x83, 0x0e, 0x52, 0x65, 0xe9, 0x74, 0x9a, 0x3c, 0x3d,
- 0x52, 0x63, 0xf7, 0x73, 0x64, 0xf0, 0xbd, 0x88, 0xbb, 0x55, 0xbf, 0xdb, 0x82, 0x44, 0x52, 0x4e,
- 0xdf, 0x15, 0x69, 0x43, 0xda, 0x83, 0xb0, 0xe1, 0xf6, 0x28, 0xf9, 0xaa, 0x66, 0x74, 0xce, 0xad,
- 0xfd, 0x9f, 0x3a, 0x77, 0x78, 0x85, 0x7d, 0xda, 0xd7, 0xff, 0x94, 0x24, 0xba, 0x47, 0x3b, 0xc5,
- 0xda, 0xb2, 0xae, 0xdd, 0x70, 0x3c, 0x23, 0x39, 0xc9, 0xb6, 0x73, 0xdf, 0x0a, 0xa6, 0x78, 0x68,
- 0xfd, 0x05, 0x4c, 0x3a, 0x61, 0xc3, 0x87, 0x1e, 0x1c, 0x7e, 0x7d, 0x31, 0x6b, 0x44, 0x46, 0x4e,
- 0x98, 0xb5, 0xad, 0xa9, 0xf6, 0x4c, 0xc9, 0xf8, 0x56, 0x0b, 0xd9, 0x5b, 0x15, 0x05, 0xc6, 0xe6,
- 0xee, 0x41, 0xce, 0x6a, 0x9a, 0xf1, 0x1b, 0x17, 0xf9, 0xf6, 0x78, 0xe1, 0xa4, 0x15, 0x5a, 0x77,
- 0x35, 0x10, 0x1b, 0x60, 0x61, 0xa1, 0x3f, 0x0a, 0x88, 0x65, 0x2c, 0x28, 0x65, 0x3c, 0x20, 0x9f,
- 0x72, 0xc3, 0xa6, 0xdb, 0x02, 0x1b, 0x36, 0xd9, 0xf3, 0x78, 0x36, 0x88, 0x35, 0x93, 0x69, 0xf2,
- 0x49, 0xd4, 0x37, 0x10, 0xcd, 0x8d, 0xc5, 0x53, 0x43, 0x9e, 0x26, 0x24, 0x9b, 0x92, 0xc5, 0xb1,
- 0x63, 0x13, 0x53, 0x2e, 0xda, 0x7a, 0x16, 0x17, 0x9d, 0xac, 0xc1, 0x4f, 0x4d, 0x90, 0x54, 0x98,
- 0x69, 0x02, 0x82, 0x01, 0x01, 0x00, 0xda, 0x08, 0xfc, 0xf5, 0xa8, 0xa5, 0xfe, 0xc6, 0x70, 0x31,
- 0x5f, 0x17, 0x27, 0x47, 0xbb, 0xe0, 0x24, 0x25, 0x86, 0x93, 0x7d, 0xea, 0x63, 0x59, 0x40, 0x29,
- 0xb8, 0xcb, 0x3f, 0xc6, 0x7b, 0xa2, 0xba, 0x69, 0x3a, 0x62, 0x2b, 0x01, 0x10, 0xf8, 0xca, 0x4a,
- 0x51, 0x8c, 0xcc, 0x77, 0x7c, 0x05, 0x21, 0x40, 0x02, 0xbf, 0x1a, 0x55, 0x7a, 0xf8, 0x10, 0x55,
- 0xcd, 0xce, 0x19, 0x72, 0x49, 0xaf, 0xcb, 0xbf, 0x8e, 0xa5, 0xda, 0x1f, 0xc8, 0xb6, 0x91, 0x6c,
- 0x22, 0xe0, 0x86, 0xed, 0xd9, 0x54, 0x2c, 0x4f, 0xbb, 0x1e, 0x87, 0x98, 0x6c, 0x31, 0xd9, 0xdb,
- 0xe8, 0xd3, 0x77, 0x59, 0x03, 0x27, 0x29, 0x71, 0xf4, 0xe1, 0xa6, 0xd3, 0xee, 0x4e, 0xd0, 0x9c,
- 0xc4, 0x8a, 0x02, 0x49, 0xe3, 0xbc, 0xe5, 0xce, 0xad, 0x63, 0x66, 0x96, 0x9c, 0x0e, 0x84, 0x1b,
- 0x6c, 0x3d, 0x53, 0x4e, 0x73, 0x44, 0xdd, 0x2f, 0xb1, 0xc4, 0x2b, 0x07, 0x08, 0x0f, 0x84, 0x18,
- 0x28, 0x52, 0xc4, 0x64, 0x6c, 0x5d, 0xe6, 0x82, 0x4a, 0xef, 0x9a, 0x4a, 0xcb, 0xeb, 0x00, 0x0a,
- 0x83, 0xd3, 0xae, 0x37, 0xa7, 0x6c, 0xda, 0x37, 0xa2, 0x7e, 0xa7, 0x08, 0x37, 0x73, 0xc1, 0x6a,
- 0xc3, 0x2c, 0x60, 0xbb, 0xc4, 0x98, 0xe8, 0x66, 0xc5, 0x86, 0xfd, 0xd0, 0x0a, 0x49, 0x4d, 0xa6,
- 0x7f, 0x9b, 0x20, 0xa1, 0x7b, 0xae, 0x54, 0x2d, 0x3c, 0xa0, 0xa6, 0x11, 0xf4, 0xb1, 0xde, 0x1b,
- 0x19, 0x4f, 0x4a, 0xc8, 0x5e, 0x2d, 0x33, 0x23, 0xc5, 0xc7, 0xa9, 0x61, 0x5f, 0x58, 0x59, 0x45,
- 0x3c, 0xee, 0xfb, 0xe4, 0x40, 0x6a, 0xc2, 0x8d, 0x4a, 0xd2, 0x90, 0x16, 0x6c, 0xb8, 0x1f, 0x9a,
- 0x5f, 0x54, 0xf3, 0xae, 0x7c, 0x43, 0xad, 0x7e, 0xde, 0xe4, 0xb0, 0x9d, 0xe8, 0xef, 0x75, 0xbf,
- 0x9a, 0x21, 0x4c, 0x76, 0xd7, 0x95, 0x02, 0x82, 0x01, 0x01, 0x00, 0xe1, 0x82, 0x41, 0xa6, 0x84,
- 0x6c, 0xf9, 0x74, 0xe4, 0x0f, 0x62, 0x0f, 0x92, 0xde, 0x3d, 0x5b, 0x11, 0xd3, 0x59, 0xf6, 0x63,
- 0xb6, 0xac, 0x96, 0xfe, 0xc1, 0x5a, 0x36, 0x47, 0x65, 0xf1, 0x78, 0xe5, 0x48, 0xca, 0x1d, 0xcd,
- 0x3e, 0xcd, 0x0b, 0xd2, 0xc2, 0xd9, 0x1c, 0x7e, 0x9d, 0x21, 0x75, 0xae, 0x62, 0x86, 0x87, 0x0b,
- 0xae, 0xd8, 0xa1, 0x22, 0x9a, 0x2a, 0xb0, 0x56, 0x5f, 0x14, 0x25, 0x40, 0x49, 0x81, 0xe8, 0xd2,
- 0x72, 0xab, 0x6b, 0xa7, 0x19, 0x84, 0x19, 0x18, 0xa4, 0x76, 0x3d, 0xe3, 0x22, 0x22, 0xe9, 0x6c,
- 0xf6, 0xb4, 0x7d, 0x55, 0xe0, 0xe1, 0xf9, 0xc8, 0x18, 0xc3, 0xd3, 0xf8, 0x9f, 0xe8, 0x0a, 0x2f,
- 0xe6, 0x05, 0x51, 0xbc, 0x12, 0x06, 0xc5, 0x14, 0xea, 0x03, 0x8e, 0x97, 0x23, 0x87, 0x48, 0x3e,
- 0x7c, 0xfe, 0x2c, 0xad, 0xdf, 0xdf, 0xc5, 0x49, 0x2c, 0x99, 0x8e, 0xbd, 0xb5, 0x71, 0x42, 0xac,
- 0x90, 0x26, 0x16, 0x0f, 0xfd, 0xe2, 0x26, 0xa5, 0xba, 0xdb, 0xc2, 0x7f, 0x01, 0xfb, 0xca, 0x6c,
- 0x47, 0xc6, 0xc1, 0xaa, 0xf6, 0xaf, 0x7c, 0x21, 0xa5, 0x59, 0x8e, 0x7f, 0xe4, 0xb1, 0x93, 0x00,
- 0xd6, 0x2f, 0xfc, 0xd6, 0x4c, 0x00, 0x28, 0xef, 0xfc, 0xa6, 0xac, 0x03, 0x4c, 0xd9, 0x0a, 0x27,
- 0x48, 0x3d, 0xe1, 0x21, 0x19, 0xef, 0xa2, 0x24, 0x76, 0x16, 0xf7, 0x7b, 0xf4, 0x61, 0xf7, 0x62,
- 0x7f, 0x07, 0xad, 0x1e, 0xeb, 0x8a, 0x0b, 0x5d, 0x57, 0x0e, 0xec, 0xf7, 0xec, 0x7e, 0x7e, 0x00,
- 0xad, 0xa0, 0x63, 0x55, 0xf1, 0xa1, 0xc1, 0x14, 0x3c, 0x59, 0x43, 0x2d, 0x41, 0xe0, 0x62, 0x46,
- 0x57, 0x2c, 0x20, 0x6a, 0x4e, 0xec, 0xed, 0xec, 0x74, 0x0e, 0xcc, 0x34, 0xe3, 0x3b, 0x8e, 0x01,
- 0x87, 0x21, 0x1b, 0x26, 0x4f, 0xce, 0x58, 0xcb, 0xbc, 0xd4, 0x11, 0x02, 0x82, 0x01, 0x00, 0x71,
- 0x71, 0xa9, 0xc4, 0x5b, 0xca, 0x7a, 0xa4, 0x5f, 0x2d, 0xa1, 0x0f, 0x57, 0xf5, 0xbf, 0xf0, 0x20,
- 0x7e, 0x91, 0xe5, 0xdd, 0xe6, 0xfd, 0x68, 0x2b, 0xb5, 0x49, 0x9c, 0x1f, 0x03, 0xb3, 0xc2, 0x78,
- 0x81, 0x55, 0xca, 0x4c, 0x1b, 0xd2, 0xeb, 0xcf, 0xbd, 0x19, 0x6f, 0x4b, 0xd7, 0x83, 0x64, 0xdb,
- 0xe7, 0x05, 0x46, 0xcf, 0x79, 0xd8, 0x70, 0x87, 0x77, 0x4d, 0x8c, 0xc5, 0xba, 0xac, 0x52, 0x56,
- 0x8d, 0xc5, 0xb7, 0xcf, 0xa5, 0x27, 0xf6, 0xad, 0xf5, 0x78, 0xb4, 0x20, 0x20, 0x53, 0x2a, 0xb3,
- 0x9f, 0x8c, 0x79, 0x97, 0x0d, 0x9c, 0x85, 0xd7, 0x97, 0xcf, 0x2d, 0x6f, 0xf4, 0x95, 0x6a, 0x63,
- 0xeb, 0x12, 0x01, 0xf2, 0x9e, 0x64, 0x69, 0x07, 0xab, 0xf9, 0xaa, 0xe1, 0x03, 0xf7, 0x05, 0x8b,
- 0x00, 0x9d, 0x40, 0x91, 0xd9, 0x1d, 0x3b, 0x84, 0x4b, 0x0c, 0x67, 0x60, 0x17, 0xfa, 0x6b, 0xc3,
- 0x36, 0x14, 0xa5, 0x3f, 0xc9, 0xf9, 0xcc, 0xb0, 0xeb, 0x2c, 0xd7, 0xdb, 0xad, 0x70, 0xa0, 0xee,
- 0xd5, 0xae, 0x0d, 0xba, 0xd6, 0xde, 0x00, 0xd8, 0xd5, 0x9f, 0xbf, 0x9c, 0xef, 0x02, 0x22, 0xe5,
- 0xeb, 0x7a, 0x95, 0xb1, 0x6c, 0xda, 0x05, 0x55, 0x86, 0xaa, 0x24, 0x45, 0xf4, 0x8c, 0x97, 0x0e,
- 0x9c, 0xa2, 0x7b, 0xd9, 0x45, 0xcc, 0x84, 0x55, 0x6d, 0xa3, 0x09, 0x60, 0xd2, 0x04, 0x9b, 0x30,
- 0xdb, 0x14, 0xa7, 0x75, 0xa0, 0xf4, 0x13, 0x33, 0xc0, 0x1f, 0xcc, 0x1c, 0xd9, 0xe1, 0xfe, 0x5c,
- 0x94, 0x69, 0x4c, 0xb8, 0x79, 0x9c, 0x75, 0x48, 0x85, 0x78, 0xed, 0xd3, 0x8b, 0xf0, 0x64, 0x5b,
- 0xf3, 0xce, 0x11, 0x7e, 0xbc, 0xdc, 0x36, 0x74, 0xe3, 0x0a, 0x65, 0x16, 0x21, 0x1c, 0x30, 0xce,
- 0x6d, 0xab, 0xa5, 0x8b, 0xab, 0xad, 0xce, 0x22, 0x12, 0xde, 0x2c, 0x23, 0x2f, 0xd6, 0x7d, 0x02,
- 0x82, 0x01, 0x00, 0x32, 0x49, 0xcb, 0x68, 0x2e, 0x6c, 0x15, 0xf4, 0xb7, 0x79, 0x38, 0x2c, 0xb2,
- 0xfc, 0x6c, 0x88, 0x6a, 0x8f, 0xe7, 0xff, 0x22, 0x6f, 0xa6, 0x24, 0xda, 0x41, 0x07, 0xdd, 0x63,
- 0xa2, 0x9c, 0x7d, 0xa4, 0x38, 0xb4, 0xe6, 0x61, 0xcb, 0x6d, 0x30, 0x34, 0x5c, 0xdd, 0x5d, 0x9d,
- 0xfc, 0x74, 0x0d, 0x35, 0xe5, 0x58, 0xf6, 0x1e, 0x2e, 0x48, 0x0f, 0xa9, 0x3e, 0x67, 0x62, 0xfe,
- 0xe3, 0xed, 0x59, 0xc6, 0xfa, 0x85, 0x17, 0x9d, 0x4b, 0xeb, 0x80, 0xff, 0xf5, 0xf1, 0x90, 0x92,
- 0x26, 0x2a, 0x96, 0xc4, 0xe5, 0x2a, 0x08, 0x36, 0x28, 0xf7, 0x94, 0x39, 0xd5, 0x0d, 0x8a, 0x00,
- 0xb1, 0x81, 0x81, 0xb9, 0xec, 0xca, 0x0e, 0x50, 0xc0, 0xd8, 0xfe, 0x42, 0x43, 0x1a, 0xd9, 0x19,
- 0xae, 0x60, 0x0a, 0x87, 0xf6, 0x64, 0xae, 0x80, 0x7c, 0xc6, 0xa0, 0x75, 0x48, 0xcc, 0xf2, 0xe6,
- 0x5d, 0xc7, 0x6e, 0x55, 0x36, 0x9e, 0xbf, 0xea, 0xf5, 0x94, 0x53, 0xc6, 0x1c, 0x8d, 0x42, 0xbf,
- 0xac, 0x31, 0xc7, 0xa3, 0x27, 0x3b, 0x66, 0x96, 0x5b, 0xf5, 0x91, 0x32, 0x38, 0x6a, 0x23, 0x4a,
- 0x4c, 0x7c, 0xcb, 0xbd, 0xb4, 0x4b, 0x50, 0xc6, 0x4d, 0xaf, 0x32, 0x08, 0x99, 0x7c, 0x31, 0x5c,
- 0x60, 0x62, 0xc2, 0x84, 0xc8, 0x4a, 0xe6, 0x16, 0xfe, 0x4d, 0xe8, 0x9d, 0x01, 0x79, 0x0b, 0x68,
- 0x13, 0x08, 0x3e, 0x64, 0xf4, 0x90, 0x8f, 0xb5, 0xa7, 0x3b, 0x54, 0x2e, 0x3d, 0x84, 0x7c, 0x91,
- 0x4d, 0x61, 0xa0, 0xce, 0xc3, 0x6f, 0x85, 0x0e, 0x49, 0xba, 0x70, 0xb9, 0xba, 0x11, 0x3c, 0x03,
- 0x70, 0x8a, 0x1f, 0xdb, 0xd5, 0xb9, 0xd2, 0x3b, 0x6b, 0x42, 0x06, 0x7b, 0xc0, 0xd9, 0x19, 0xd0,
- 0x7e, 0xc9, 0x7b, 0x87, 0x7f, 0xe8, 0x4b, 0x64, 0x15, 0xb1, 0x51, 0x0e, 0x34, 0x39, 0xb8, 0x9b,
- 0xfc, 0x95, 0x9d};
-
-static const uint8_t kRSACACertDER[] = {0x30, 0x82, 0x05, 0xfd, 0x30, 0x82, 0x03, 0xe5, 0xa0, 0x03,
- 0x02, 0x01, 0x02, 0x02, 0x14, 0x0f, 0x2d, 0x4d, 0xdd, 0x2f, 0xa5, 0xc0, 0x5f, 0x5a, 0xd3, 0x6e,
- 0x9f, 0xbe, 0x29, 0x68, 0xe9, 0x24, 0x72, 0x6c, 0xe9, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
- 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81, 0x8d, 0x31, 0x0b, 0x30, 0x09, 0x06,
- 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04,
- 0x08, 0x0c, 0x0a, 0x53, 0x6f, 0x6d, 0x65, 0x2d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x31, 0x21, 0x30,
- 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74,
- 0x20, 0x57, 0x69, 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c, 0x74, 0x64,
- 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x18, 0x4f, 0x72, 0x67, 0x61, 0x6e,
- 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x55, 0x6e, 0x69, 0x74, 0x20, 0x4e,
- 0x61, 0x6d, 0x65, 0x31, 0x23, 0x30, 0x21, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x1a, 0x6e, 0x6f,
- 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69,
- 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x61, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x39, 0x30, 0x35,
- 0x30, 0x38, 0x31, 0x32, 0x34, 0x30, 0x32, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x39, 0x30, 0x35, 0x30,
- 0x37, 0x31, 0x32, 0x34, 0x30, 0x32, 0x30, 0x5a, 0x30, 0x81, 0x8d, 0x31, 0x0b, 0x30, 0x09, 0x06,
- 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04,
- 0x08, 0x0c, 0x0a, 0x53, 0x6f, 0x6d, 0x65, 0x2d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x31, 0x21, 0x30,
- 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74,
- 0x20, 0x57, 0x69, 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c, 0x74, 0x64,
- 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x18, 0x4f, 0x72, 0x67, 0x61, 0x6e,
- 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x55, 0x6e, 0x69, 0x74, 0x20, 0x4e,
- 0x61, 0x6d, 0x65, 0x31, 0x23, 0x30, 0x21, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x1a, 0x6e, 0x6f,
- 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69,
- 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x61, 0x30, 0x82, 0x02, 0x22, 0x30, 0x0d, 0x06, 0x09,
- 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x02, 0x0f, 0x00,
- 0x30, 0x82, 0x02, 0x0a, 0x02, 0x82, 0x02, 0x01, 0x00, 0xd4, 0xa4, 0x24, 0xe8, 0xac, 0xef, 0xab,
- 0xb4, 0xfd, 0x30, 0x45, 0xb3, 0x2f, 0x5f, 0x28, 0xa7, 0xa7, 0x55, 0x8a, 0x73, 0x6c, 0x29, 0x70,
- 0x99, 0xb8, 0x13, 0x65, 0x68, 0xd2, 0x96, 0x71, 0x04, 0xc6, 0x52, 0x8e, 0xc9, 0x3e, 0xa0, 0xcb,
- 0x11, 0x9c, 0xbe, 0x04, 0x66, 0x41, 0x2b, 0x85, 0x4d, 0xac, 0x2f, 0x87, 0xef, 0x7b, 0x47, 0x0b,
- 0x79, 0xe3, 0x37, 0xd0, 0x9e, 0xb4, 0xfa, 0x8f, 0x94, 0x95, 0x4d, 0x41, 0x45, 0x5c, 0x75, 0x1b,
- 0x1c, 0xc5, 0x1d, 0xa8, 0x3b, 0x0e, 0x87, 0x9c, 0x06, 0xc5, 0xe6, 0x19, 0x0e, 0x00, 0x88, 0xb4,
- 0xfa, 0xf0, 0x3c, 0x57, 0x03, 0xd9, 0xbf, 0xee, 0x64, 0x8a, 0x22, 0x66, 0xeb, 0x4c, 0x91, 0xb3,
- 0x09, 0xac, 0x13, 0x50, 0xd6, 0x41, 0x5b, 0x4f, 0x7e, 0x06, 0x9a, 0xa6, 0x9b, 0x1f, 0x07, 0x95,
- 0xd0, 0xe9, 0x9e, 0x43, 0xb4, 0xe1, 0x60, 0xf0, 0x37, 0x53, 0xce, 0x73, 0xea, 0x6e, 0xad, 0x4f,
- 0x73, 0xe0, 0x8b, 0x24, 0xf4, 0x6b, 0xec, 0xfc, 0x09, 0xbc, 0xed, 0x88, 0x8b, 0x92, 0xa5, 0xfe,
- 0x1d, 0x51, 0x3c, 0x51, 0xe0, 0x0f, 0xb1, 0xe9, 0x9d, 0xf5, 0x24, 0x86, 0xb3, 0xd3, 0x98, 0x53,
- 0x81, 0x44, 0x6e, 0x02, 0x33, 0xe1, 0x04, 0xa3, 0x8d, 0xc9, 0x50, 0xa1, 0xff, 0x8b, 0x93, 0x37,
- 0xfc, 0x9c, 0xff, 0xd9, 0x8d, 0x07, 0x30, 0xdb, 0xeb, 0x6f, 0x77, 0xfb, 0x5f, 0x1b, 0xea, 0x5f,
- 0x30, 0xf6, 0x30, 0xa9, 0x7b, 0xb7, 0x08, 0xed, 0x60, 0x3f, 0xb7, 0x98, 0x42, 0xcd, 0x28, 0xf8,
- 0x5b, 0x68, 0x13, 0xf9, 0x31, 0x9a, 0x6c, 0x31, 0x58, 0x59, 0x1a, 0xcd, 0x2f, 0xa0, 0x5b, 0x0b,
- 0xdc, 0xdb, 0xf6, 0xc0, 0x51, 0x77, 0xce, 0x65, 0xa7, 0x81, 0x29, 0x68, 0xa4, 0xf7, 0x6a, 0x23,
- 0xb5, 0xf2, 0x82, 0xae, 0x6a, 0x80, 0xaf, 0x46, 0xa3, 0xfa, 0xc1, 0xee, 0x69, 0x22, 0x2a, 0x00,
- 0xa4, 0x22, 0x93, 0x70, 0x70, 0x5d, 0x0b, 0xc6, 0x7d, 0x04, 0x4d, 0x68, 0x95, 0xd6, 0xaf, 0x8f,
- 0x08, 0x16, 0x97, 0x64, 0x57, 0x3f, 0xb0, 0x6d, 0x1a, 0xd6, 0xc3, 0xf8, 0xbe, 0x73, 0xe4, 0x8d,
- 0x39, 0x25, 0xff, 0x68, 0x2d, 0xb8, 0x0c, 0xf5, 0xd1, 0xa0, 0xe2, 0xd2, 0x41, 0x1d, 0xda, 0xbe,
- 0xe9, 0x8a, 0x30, 0x9b, 0x0e, 0xed, 0xc7, 0x8c, 0xee, 0x97, 0xda, 0x5f, 0xe4, 0x18, 0x28, 0x07,
- 0x53, 0xce, 0x1a, 0xff, 0x86, 0x1c, 0xc6, 0xe0, 0x0b, 0xab, 0x51, 0x95, 0xef, 0xe2, 0xdb, 0x23,
- 0x0a, 0x01, 0xb5, 0x51, 0x3e, 0x5a, 0xc1, 0x32, 0xe6, 0xf2, 0xb1, 0x59, 0xe1, 0xbb, 0xaa, 0x77,
- 0x4e, 0xae, 0xfa, 0x4d, 0x3c, 0x18, 0x1a, 0xdf, 0xe7, 0xde, 0x3e, 0x66, 0xc6, 0xcf, 0xbd, 0x9b,
- 0xa8, 0x5a, 0x8c, 0xa1, 0x80, 0x7c, 0x3d, 0x89, 0x45, 0x40, 0x54, 0x25, 0xfa, 0x93, 0xff, 0xde,
- 0x49, 0x56, 0x54, 0x45, 0x13, 0xce, 0x55, 0xb2, 0xbb, 0x19, 0x47, 0x7f, 0x5e, 0x5e, 0xd3, 0xd9,
- 0xdc, 0x01, 0x5c, 0x12, 0x58, 0xdc, 0x47, 0x67, 0x6c, 0xc8, 0xbb, 0x9e, 0xa1, 0x75, 0xd1, 0x17,
- 0x07, 0x07, 0x9b, 0xc4, 0x4a, 0xdd, 0x4c, 0x52, 0x48, 0x64, 0x1b, 0x64, 0x1b, 0x1a, 0x37, 0xe6,
- 0x51, 0xeb, 0x0c, 0xf5, 0x49, 0x78, 0x71, 0x6a, 0x11, 0x68, 0xbf, 0x59, 0x09, 0xeb, 0x4b, 0x3a,
- 0xfa, 0xbe, 0x75, 0x96, 0x07, 0x7a, 0xa6, 0xd0, 0x45, 0xb6, 0x49, 0xe7, 0x7a, 0xcc, 0xdf, 0xc7,
- 0x20, 0xe8, 0xa5, 0xb6, 0xf4, 0x4f, 0x7a, 0x3b, 0xa0, 0x94, 0x9b, 0x00, 0xa8, 0x88, 0xe1, 0x4a,
- 0x2d, 0x91, 0xfa, 0x5a, 0x00, 0xf2, 0x49, 0xf0, 0xba, 0x08, 0xed, 0x7a, 0xcc, 0x87, 0x01, 0xf0,
- 0x84, 0xee, 0x49, 0x45, 0x7f, 0x7f, 0x71, 0x9a, 0x71, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x53,
- 0x30, 0x51, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xb4, 0x59, 0x44,
- 0x9c, 0xe3, 0x18, 0xd1, 0x69, 0x15, 0x4a, 0x38, 0x8b, 0x82, 0x0d, 0x19, 0x83, 0x1f, 0xe0, 0x02,
- 0x37, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xb4, 0x59,
- 0x44, 0x9c, 0xe3, 0x18, 0xd1, 0x69, 0x15, 0x4a, 0x38, 0x8b, 0x82, 0x0d, 0x19, 0x83, 0x1f, 0xe0,
- 0x02, 0x37, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03,
- 0x01, 0x01, 0xff, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b,
- 0x05, 0x00, 0x03, 0x82, 0x02, 0x01, 0x00, 0x09, 0xbc, 0xf2, 0x4f, 0x06, 0x98, 0xf7, 0x8a, 0xfb,
- 0x49, 0xc7, 0x78, 0x7c, 0xd7, 0x00, 0x00, 0x51, 0x75, 0x91, 0xdb, 0xd0, 0xd2, 0x9c, 0x61, 0xeb,
- 0xe5, 0x15, 0x80, 0x50, 0xc8, 0xed, 0x50, 0x5c, 0x0e, 0x3b, 0x77, 0x51, 0x48, 0x44, 0xc4, 0xce,
- 0x81, 0x9a, 0x60, 0x1c, 0xf1, 0xc2, 0x25, 0xfc, 0xcd, 0x7d, 0xf8, 0x2f, 0xf9, 0xcf, 0x21, 0x28,
- 0x36, 0xa3, 0xc5, 0x15, 0x99, 0x75, 0x5b, 0x13, 0x65, 0xb8, 0x28, 0x1d, 0xde, 0x18, 0xaf, 0x1b,
- 0xd8, 0x6f, 0xd8, 0x83, 0xbf, 0xbb, 0xa9, 0x13, 0x44, 0xfe, 0x4a, 0x19, 0xac, 0x18, 0x00, 0x94,
- 0x3f, 0xdc, 0xe4, 0x34, 0x73, 0x44, 0xbf, 0x9f, 0x1b, 0x01, 0x70, 0xd5, 0x92, 0x2b, 0xce, 0x1c,
- 0x63, 0xc5, 0xfb, 0x6b, 0x0e, 0xe0, 0x8d, 0x48, 0x59, 0x5c, 0xcd, 0xac, 0x62, 0x9a, 0xd0, 0xf0,
- 0xa8, 0xe7, 0x35, 0x02, 0x95, 0xc9, 0x3f, 0x65, 0xab, 0x76, 0x38, 0xab, 0x18, 0x32, 0x64, 0xa7,
- 0x14, 0x53, 0xc8, 0xaf, 0x49, 0x61, 0xaa, 0x94, 0x05, 0xd1, 0xaa, 0xd6, 0xea, 0x34, 0xda, 0xc8,
- 0x73, 0xdb, 0xad, 0x48, 0xd8, 0xcc, 0x5a, 0x44, 0xda, 0xa6, 0x0b, 0xbb, 0xc4, 0x7b, 0xce, 0x0f,
- 0x5f, 0xa6, 0x46, 0xe5, 0x90, 0xfb, 0xf0, 0xa5, 0x04, 0x0c, 0x32, 0xa8, 0x54, 0xdc, 0x62, 0x97,
- 0x57, 0x4a, 0xdf, 0xb3, 0x03, 0x42, 0x64, 0xe8, 0x43, 0xc2, 0xdb, 0x38, 0x73, 0x6f, 0x67, 0x7d,
- 0x6d, 0x56, 0x2f, 0x51, 0x41, 0x8f, 0x84, 0x82, 0x7e, 0x25, 0x04, 0xe2, 0x37, 0x68, 0xf8, 0x35,
- 0x6a, 0x71, 0x3c, 0xde, 0xf7, 0x18, 0xb4, 0x4f, 0xbd, 0xfc, 0x73, 0x81, 0x96, 0x72, 0x03, 0x47,
- 0x7c, 0x04, 0x6d, 0x76, 0x56, 0x7f, 0x27, 0x2a, 0x46, 0x20, 0x75, 0x7f, 0x0c, 0xb1, 0xd6, 0xcc,
- 0x9d, 0x99, 0xcc, 0x7d, 0x23, 0x43, 0xed, 0xe2, 0xf4, 0x08, 0x4d, 0xe7, 0xf3, 0xdb, 0x0e, 0x69,
- 0xfd, 0x4b, 0xb4, 0xce, 0x5e, 0x83, 0xd7, 0x0c, 0xd5, 0x43, 0x9b, 0x18, 0x9d, 0x67, 0x5b, 0x13,
- 0xce, 0x50, 0x11, 0x1d, 0xa6, 0x31, 0x24, 0x6b, 0xae, 0x23, 0x41, 0xae, 0x90, 0xbb, 0x80, 0x2a,
- 0x92, 0x78, 0xe8, 0x45, 0xc0, 0xde, 0xb5, 0xe7, 0x10, 0xb0, 0xac, 0x99, 0x7d, 0x3e, 0x2a, 0x38,
- 0x4d, 0xb9, 0x96, 0x5d, 0x38, 0x49, 0xf1, 0x3f, 0xb8, 0x74, 0xc2, 0x3f, 0x53, 0x93, 0x7a, 0x1d,
- 0x60, 0x1f, 0xb0, 0x19, 0xd1, 0xee, 0x06, 0x16, 0x68, 0x1c, 0x26, 0xa2, 0xad, 0xfd, 0xfd, 0x99,
- 0x01, 0xab, 0xe1, 0xfa, 0xac, 0x9f, 0x79, 0xe7, 0xfb, 0xe4, 0xd9, 0xe4, 0xb6, 0x9f, 0xa5, 0xc2,
- 0x80, 0x9e, 0x04, 0x32, 0x2f, 0x52, 0xbc, 0x39, 0xff, 0x38, 0xa8, 0x14, 0x81, 0x98, 0xef, 0x99,
- 0x86, 0x3f, 0x13, 0x8d, 0x2e, 0xb8, 0xc5, 0xcc, 0x2b, 0xd9, 0xb5, 0x20, 0x21, 0x32, 0x82, 0xf4,
- 0x5a, 0x37, 0xb2, 0x08, 0xaa, 0xec, 0x3f, 0x47, 0x06, 0x84, 0x55, 0x8d, 0xf3, 0xb4, 0xf3, 0xea,
- 0x41, 0x56, 0x58, 0xc9, 0x1a, 0x88, 0x11, 0x93, 0x4c, 0xc5, 0x59, 0x14, 0x0e, 0x54, 0x6e, 0x5f,
- 0x2b, 0x62, 0x2f, 0x5d, 0xbd, 0xfe, 0x07, 0x37, 0x2c, 0xc4, 0x6d, 0x30, 0x58, 0xb9, 0x02, 0xe7,
- 0x81, 0xf8, 0x96, 0x8e, 0xbd, 0x9a, 0x03, 0x4b, 0xc1, 0x0d, 0x66, 0x28, 0xdd, 0x2f, 0xb7, 0x58,
- 0xeb, 0xb8, 0x49, 0xa3, 0x91, 0xf3, 0x60, 0xe6, 0x36, 0x15, 0xb1, 0xfb, 0xb6, 0xf3, 0x54, 0x3f,
- 0x7b, 0x1d, 0x10, 0xa4, 0x5a, 0x41, 0xba, 0x47, 0x92, 0xc5, 0xeb, 0x6a, 0x3b, 0xc6, 0xeb, 0xbc,
- 0x05, 0x97, 0xc0, 0x77, 0xc8, 0x89, 0x4f, 0xf0, 0xee, 0xfa, 0xaf, 0xbe, 0x90, 0x05, 0xc4, 0x3e,
- 0x48, 0x82, 0x09, 0x17, 0xf1, 0x3d, 0x8b};
-
-static const uint8_t kECCACertDER[] = {0x30, 0x82, 0x02, 0xfd, 0x30, 0x82, 0x02, 0x5e, 0xa0, 0x03,
- 0x02, 0x01, 0x02, 0x02, 0x14, 0x47, 0x96, 0xf7, 0x19, 0x12, 0x8f, 0x46, 0x3b, 0xd1, 0x98, 0xe6,
- 0xd6, 0xc4, 0x5a, 0x79, 0x3f, 0xe9, 0xde, 0x4e, 0x4b, 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48,
- 0xce, 0x3d, 0x04, 0x03, 0x02, 0x30, 0x81, 0x8f, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04,
- 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0a,
- 0x53, 0x6f, 0x6d, 0x65, 0x2d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03,
+ 0x74, 0x64, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x19, 0x77, 0x77, 0x77,
+ 0x2e, 0x61, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78,
+ 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x30, 0x82, 0x02, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x02, 0x0f, 0x00, 0x30, 0x82,
+ 0x02, 0x0a, 0x02, 0x82, 0x02, 0x01, 0x00, 0xca, 0x91, 0xe1, 0x6a, 0xf8, 0xd9, 0xcc, 0x06, 0x07,
+ 0x60, 0x16, 0x21, 0x60, 0xdc, 0xbb, 0xfc, 0x36, 0x3a, 0xf2, 0x93, 0x3c, 0x73, 0xc2, 0x96, 0xa1,
+ 0xe8, 0x10, 0xbf, 0x11, 0xb8, 0xc9, 0x1c, 0x37, 0x67, 0x9b, 0x85, 0x00, 0xa1, 0x6f, 0x66, 0x2f,
+ 0xf5, 0x04, 0x6e, 0x1c, 0x22, 0x83, 0x7a, 0x6e, 0xab, 0x28, 0x43, 0xfe, 0x32, 0xbd, 0xed, 0xa0,
+ 0x7a, 0x4a, 0x84, 0x14, 0x85, 0x79, 0x8a, 0x1e, 0xf4, 0x4f, 0x12, 0x6c, 0xe2, 0xfd, 0xde, 0x47,
+ 0x29, 0xe5, 0xe2, 0xad, 0x0d, 0x87, 0x45, 0xcf, 0x07, 0xdb, 0x8c, 0x40, 0xa1, 0xee, 0x3f, 0x77,
+ 0xcb, 0xee, 0xcc, 0xe2, 0x17, 0x79, 0xcc, 0x4b, 0xd5, 0x83, 0x9d, 0xe1, 0x48, 0xce, 0x33, 0xf7,
+ 0xd4, 0x68, 0x46, 0x14, 0x8c, 0x97, 0x82, 0xde, 0xde, 0x9d, 0x76, 0x88, 0x73, 0xf4, 0xf9, 0xcf,
+ 0x26, 0x32, 0x75, 0x19, 0x9b, 0x70, 0x81, 0xe5, 0x19, 0xb0, 0x8c, 0x90, 0x8b, 0x5e, 0x1a, 0xbd,
+ 0xc7, 0x95, 0xfb, 0xf2, 0xea, 0x77, 0x6a, 0x7a, 0xce, 0x67, 0x51, 0xc6, 0x24, 0x99, 0x95, 0x23,
+ 0xc2, 0x04, 0xb8, 0x44, 0xd8, 0x70, 0xf3, 0xaf, 0x78, 0xc4, 0x71, 0xb1, 0x76, 0x11, 0x0c, 0xe7,
+ 0x50, 0x16, 0xc8, 0x33, 0x64, 0xcd, 0xdd, 0x0b, 0xaf, 0xb8, 0x2d, 0x4b, 0x21, 0xb1, 0x64, 0xa1,
+ 0x22, 0x1b, 0xad, 0x8f, 0x42, 0x97, 0xcc, 0x64, 0x30, 0xb3, 0x3f, 0xb4, 0xfc, 0x6e, 0x15, 0xa4,
+ 0xf3, 0x96, 0x1f, 0xd8, 0xe4, 0xac, 0xa1, 0xd5, 0xdb, 0x9e, 0x28, 0xb3, 0xac, 0x17, 0x54, 0x2a,
+ 0x53, 0xeb, 0x00, 0x62, 0x48, 0xaa, 0x74, 0x7e, 0x84, 0x5a, 0x50, 0xcc, 0x15, 0x48, 0x96, 0x19,
+ 0xea, 0xc7, 0xdc, 0x2b, 0x3d, 0x5f, 0xff, 0x03, 0x6a, 0x82, 0x43, 0xf3, 0x9b, 0x2e, 0xf3, 0x43,
+ 0x50, 0x83, 0xcd, 0xb3, 0x98, 0x50, 0x51, 0x9d, 0x4a, 0x1e, 0x7c, 0x58, 0xfc, 0xe5, 0x7b, 0xb6,
+ 0xe0, 0x8e, 0xce, 0xe3, 0xcf, 0x53, 0x50, 0x12, 0x85, 0x51, 0x49, 0x9a, 0x28, 0x59, 0x6b, 0x68,
+ 0xef, 0x94, 0x20, 0xc8, 0x72, 0x5a, 0x7f, 0x7d, 0xaa, 0x8b, 0x34, 0xf5, 0xc4, 0xc6, 0xed, 0xc2,
+ 0x1c, 0xa9, 0xfa, 0xcf, 0x51, 0x2e, 0xa2, 0x2b, 0xf0, 0xfd, 0x4d, 0x49, 0xee, 0xb3, 0xa4, 0xee,
+ 0xd4, 0x7b, 0xec, 0xa2, 0xec, 0xd4, 0xf8, 0xbf, 0x16, 0x79, 0x61, 0x0c, 0x1c, 0x39, 0xd3, 0x75,
+ 0x1f, 0x2d, 0x16, 0xcd, 0x7c, 0x4a, 0xe5, 0x01, 0x90, 0x91, 0x26, 0x92, 0xd9, 0x4e, 0x89, 0xc4,
+ 0x58, 0xd8, 0x08, 0x19, 0xa5, 0x8d, 0x85, 0x29, 0xfd, 0xae, 0xb2, 0xc9, 0x72, 0xca, 0x48, 0x9b,
+ 0xbe, 0x14, 0x03, 0x03, 0xf1, 0x72, 0xb4, 0x6d, 0x19, 0x87, 0xe9, 0xc9, 0xc0, 0x9e, 0x95, 0xac,
+ 0x79, 0xcf, 0x24, 0xee, 0xc4, 0x4f, 0x84, 0x25, 0xc7, 0xc0, 0xae, 0x30, 0x04, 0x3c, 0xa9, 0x52,
+ 0x75, 0x6f, 0x97, 0x79, 0x98, 0xc0, 0xd7, 0xeb, 0x84, 0x9a, 0x57, 0x99, 0x3c, 0x01, 0x8b, 0x3b,
+ 0xc0, 0x91, 0xe3, 0xfd, 0xe1, 0x88, 0x88, 0xa0, 0x34, 0xd8, 0x5d, 0xe8, 0xe6, 0xba, 0xab, 0x76,
+ 0x6f, 0x33, 0x3e, 0x97, 0x04, 0x93, 0xd3, 0x4c, 0x22, 0xb1, 0xa9, 0x79, 0x66, 0xc5, 0xb6, 0xbb,
+ 0x23, 0x50, 0xbe, 0x54, 0x1a, 0xab, 0x7a, 0x99, 0x9e, 0x2b, 0x4f, 0xed, 0x5a, 0x7a, 0x5c, 0xbd,
+ 0xf2, 0x32, 0x34, 0x02, 0x82, 0x4c, 0xb8, 0x11, 0x65, 0x22, 0x77, 0x42, 0x7f, 0xb1, 0x7b, 0x98,
+ 0x1b, 0x82, 0x8f, 0xe7, 0x1f, 0x7b, 0x07, 0x21, 0x98, 0x60, 0xb4, 0x7b, 0xe2, 0x9a, 0xcb, 0xe9,
+ 0xb3, 0x49, 0x35, 0x86, 0xea, 0x8b, 0x21, 0x46, 0xe9, 0x5b, 0x16, 0xe8, 0x2c, 0xe5, 0x9c, 0xb5,
+ 0x96, 0x45, 0xce, 0x0c, 0x40, 0xbb, 0x97, 0x02, 0x03, 0x01, 0x00, 0x01, 0x30, 0x0d, 0x06, 0x09,
+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x02, 0x01, 0x00,
+ 0x56, 0x8f, 0xf2, 0xb7, 0x14, 0x35, 0x20, 0xf5, 0x42, 0x8b, 0x51, 0xd4, 0x65, 0x10, 0xf3, 0x8a,
+ 0x38, 0x5d, 0x3b, 0xd0, 0x48, 0xb9, 0x8e, 0x5a, 0x87, 0x29, 0x67, 0xd7, 0x7f, 0x48, 0x29, 0x97,
+ 0x7b, 0xad, 0xba, 0x09, 0xe1, 0xf8, 0x19, 0xde, 0x3f, 0x33, 0x04, 0x35, 0x37, 0x8d, 0x6d, 0xb8,
+ 0x7f, 0x29, 0x2b, 0xd4, 0xfe, 0x1f, 0x4e, 0xa7, 0x9d, 0xcf, 0x4d, 0x4a, 0x9e, 0x2d, 0x01, 0x8e,
+ 0x2d, 0x0c, 0xa3, 0x68, 0x37, 0xfc, 0x47, 0xd8, 0xb6, 0x6d, 0x37, 0xf1, 0xf8, 0xb0, 0x71, 0xc1,
+ 0xb5, 0x29, 0x7e, 0x88, 0x96, 0xa7, 0x93, 0xae, 0x4c, 0x5d, 0x89, 0x10, 0x5e, 0x6b, 0x04, 0xcf,
+ 0x7f, 0x6d, 0x2e, 0xad, 0x2f, 0xa7, 0x0f, 0xfc, 0x5d, 0x48, 0x5a, 0xd3, 0x70, 0xbc, 0x86, 0xeb,
+ 0x75, 0xbe, 0xd1, 0x9f, 0x5d, 0x62, 0xb7, 0xcb, 0x7b, 0x1e, 0x9b, 0x06, 0x7a, 0xe7, 0xe5, 0x05,
+ 0x68, 0x52, 0x7e, 0x15, 0x27, 0xbf, 0x4c, 0x65, 0x45, 0xce, 0x18, 0xa9, 0x49, 0xa6, 0x12, 0xbf,
+ 0x8c, 0x33, 0x01, 0xdc, 0xc6, 0x5c, 0x3e, 0x50, 0x77, 0xaf, 0x8e, 0x97, 0xfd, 0xcc, 0x51, 0x36,
+ 0x82, 0x46, 0xd8, 0x7e, 0xe6, 0xa8, 0x5a, 0x91, 0x26, 0x12, 0x05, 0x0b, 0x50, 0xf1, 0x8f, 0x21,
+ 0x3a, 0x85, 0x0e, 0x5f, 0x09, 0xf1, 0x6c, 0xea, 0xb4, 0x6b, 0x33, 0xbd, 0xb1, 0x24, 0xed, 0x53,
+ 0xbb, 0x3f, 0x88, 0xd3, 0xfb, 0xba, 0x4a, 0x87, 0x0c, 0xbf, 0x83, 0x92, 0xb3, 0x5c, 0x7d, 0x85,
+ 0x2e, 0x10, 0x65, 0xab, 0xa7, 0x3d, 0x40, 0xdd, 0x8e, 0xe3, 0xba, 0xbb, 0x1e, 0x58, 0xe9, 0x1c,
+ 0x76, 0x1d, 0xe9, 0x81, 0xf4, 0x9d, 0x77, 0x2f, 0x44, 0x00, 0x4d, 0xb9, 0x2c, 0x31, 0x5b, 0x42,
+ 0x6f, 0x10, 0x35, 0xed, 0x08, 0xc4, 0x51, 0xb3, 0x01, 0x9e, 0xce, 0x27, 0x33, 0xd0, 0x44, 0x98,
+ 0x95, 0x3c, 0xe2, 0x9d, 0xdb, 0x58, 0xff, 0xc7, 0xc7, 0xea, 0x9b, 0x3f, 0xe2, 0xa2, 0x37, 0x5e,
+ 0x8d, 0x94, 0xa2, 0xb0, 0x55, 0x68, 0x89, 0x10, 0xd7, 0xb9, 0x3c, 0xc0, 0xec, 0xe4, 0x36, 0x46,
+ 0x3c, 0x47, 0xb9, 0x8d, 0x74, 0x17, 0xad, 0xca, 0x07, 0x67, 0x27, 0xea, 0xba, 0xd0, 0xa7, 0x2c,
+ 0x06, 0x0f, 0x2d, 0xa3, 0x41, 0xf8, 0x28, 0x3f, 0x88, 0x38, 0x25, 0x61, 0xf8, 0x87, 0x92, 0x63,
+ 0xd8, 0x5c, 0x2b, 0xff, 0x3c, 0xa1, 0xff, 0xb0, 0x98, 0x21, 0xcd, 0x25, 0x7e, 0x5f, 0xa5, 0x05,
+ 0xf5, 0x90, 0x0d, 0xf7, 0xeb, 0x1a, 0xff, 0xe2, 0xeb, 0x1b, 0x9a, 0x1f, 0x49, 0xdb, 0x65, 0xc4,
+ 0x1f, 0x32, 0x41, 0xea, 0x79, 0xb7, 0x85, 0x73, 0x01, 0x39, 0x67, 0x85, 0x49, 0x57, 0xe0, 0x21,
+ 0xf8, 0x61, 0x26, 0x30, 0x89, 0xd1, 0x03, 0xef, 0x1d, 0xb9, 0x3e, 0x71, 0x64, 0x31, 0xb3, 0xe9,
+ 0x70, 0x91, 0x78, 0x46, 0x0a, 0x9a, 0x33, 0xe5, 0x21, 0x42, 0x87, 0x26, 0xef, 0xaf, 0xe5, 0xc7,
+ 0x6a, 0x2f, 0x3c, 0x66, 0xe6, 0xd8, 0x68, 0xc8, 0x98, 0xd8, 0xae, 0x68, 0x47, 0x52, 0x23, 0xc1,
+ 0x9f, 0x35, 0xb8, 0xc4, 0xf4, 0x42, 0xa7, 0xd4, 0xf3, 0x3f, 0xb0, 0xcd, 0x04, 0x7d, 0x40, 0x08,
+ 0x22, 0x12, 0xe9, 0xe1, 0xbd, 0x4d, 0x02, 0x23, 0x4b, 0x9f, 0x98, 0x08, 0x74, 0x1e, 0xdd, 0x8d,
+ 0xd4, 0xa2, 0x87, 0x29, 0xd3, 0xb4, 0xe6, 0x65, 0x4c, 0xda, 0x5f, 0x6d, 0x5a, 0xb3, 0x6f, 0xaa,
+ 0xcf, 0xe5, 0xd6, 0x50, 0x8d, 0xca, 0x60, 0x07, 0xf1, 0x70, 0xa8, 0x8d, 0x5c, 0x8b, 0x18, 0xc4,
+ 0x0b, 0xfa, 0x76, 0xb3, 0xca, 0xb7, 0xc2, 0xfe, 0x08, 0x51, 0x1e, 0x07, 0xa3, 0xf4, 0x1c, 0x4f,
+ 0x48, 0x77, 0xb5, 0x3e, 0x23, 0x4b, 0xbd, 0xf2, 0xa8, 0x2f, 0xc3, 0xd7, 0xf3, 0x61, 0x1b, 0x9c};
+
+static const uint8_t kRSAPrivateKeyDER[] = {0x30, 0x82, 0x09, 0x2a, 0x02, 0x01, 0x00, 0x02, 0x82,
+ 0x02, 0x01, 0x00, 0xca, 0x91, 0xe1, 0x6a, 0xf8, 0xd9, 0xcc, 0x06, 0x07, 0x60, 0x16, 0x21, 0x60,
+ 0xdc, 0xbb, 0xfc, 0x36, 0x3a, 0xf2, 0x93, 0x3c, 0x73, 0xc2, 0x96, 0xa1, 0xe8, 0x10, 0xbf, 0x11,
+ 0xb8, 0xc9, 0x1c, 0x37, 0x67, 0x9b, 0x85, 0x00, 0xa1, 0x6f, 0x66, 0x2f, 0xf5, 0x04, 0x6e, 0x1c,
+ 0x22, 0x83, 0x7a, 0x6e, 0xab, 0x28, 0x43, 0xfe, 0x32, 0xbd, 0xed, 0xa0, 0x7a, 0x4a, 0x84, 0x14,
+ 0x85, 0x79, 0x8a, 0x1e, 0xf4, 0x4f, 0x12, 0x6c, 0xe2, 0xfd, 0xde, 0x47, 0x29, 0xe5, 0xe2, 0xad,
+ 0x0d, 0x87, 0x45, 0xcf, 0x07, 0xdb, 0x8c, 0x40, 0xa1, 0xee, 0x3f, 0x77, 0xcb, 0xee, 0xcc, 0xe2,
+ 0x17, 0x79, 0xcc, 0x4b, 0xd5, 0x83, 0x9d, 0xe1, 0x48, 0xce, 0x33, 0xf7, 0xd4, 0x68, 0x46, 0x14,
+ 0x8c, 0x97, 0x82, 0xde, 0xde, 0x9d, 0x76, 0x88, 0x73, 0xf4, 0xf9, 0xcf, 0x26, 0x32, 0x75, 0x19,
+ 0x9b, 0x70, 0x81, 0xe5, 0x19, 0xb0, 0x8c, 0x90, 0x8b, 0x5e, 0x1a, 0xbd, 0xc7, 0x95, 0xfb, 0xf2,
+ 0xea, 0x77, 0x6a, 0x7a, 0xce, 0x67, 0x51, 0xc6, 0x24, 0x99, 0x95, 0x23, 0xc2, 0x04, 0xb8, 0x44,
+ 0xd8, 0x70, 0xf3, 0xaf, 0x78, 0xc4, 0x71, 0xb1, 0x76, 0x11, 0x0c, 0xe7, 0x50, 0x16, 0xc8, 0x33,
+ 0x64, 0xcd, 0xdd, 0x0b, 0xaf, 0xb8, 0x2d, 0x4b, 0x21, 0xb1, 0x64, 0xa1, 0x22, 0x1b, 0xad, 0x8f,
+ 0x42, 0x97, 0xcc, 0x64, 0x30, 0xb3, 0x3f, 0xb4, 0xfc, 0x6e, 0x15, 0xa4, 0xf3, 0x96, 0x1f, 0xd8,
+ 0xe4, 0xac, 0xa1, 0xd5, 0xdb, 0x9e, 0x28, 0xb3, 0xac, 0x17, 0x54, 0x2a, 0x53, 0xeb, 0x00, 0x62,
+ 0x48, 0xaa, 0x74, 0x7e, 0x84, 0x5a, 0x50, 0xcc, 0x15, 0x48, 0x96, 0x19, 0xea, 0xc7, 0xdc, 0x2b,
+ 0x3d, 0x5f, 0xff, 0x03, 0x6a, 0x82, 0x43, 0xf3, 0x9b, 0x2e, 0xf3, 0x43, 0x50, 0x83, 0xcd, 0xb3,
+ 0x98, 0x50, 0x51, 0x9d, 0x4a, 0x1e, 0x7c, 0x58, 0xfc, 0xe5, 0x7b, 0xb6, 0xe0, 0x8e, 0xce, 0xe3,
+ 0xcf, 0x53, 0x50, 0x12, 0x85, 0x51, 0x49, 0x9a, 0x28, 0x59, 0x6b, 0x68, 0xef, 0x94, 0x20, 0xc8,
+ 0x72, 0x5a, 0x7f, 0x7d, 0xaa, 0x8b, 0x34, 0xf5, 0xc4, 0xc6, 0xed, 0xc2, 0x1c, 0xa9, 0xfa, 0xcf,
+ 0x51, 0x2e, 0xa2, 0x2b, 0xf0, 0xfd, 0x4d, 0x49, 0xee, 0xb3, 0xa4, 0xee, 0xd4, 0x7b, 0xec, 0xa2,
+ 0xec, 0xd4, 0xf8, 0xbf, 0x16, 0x79, 0x61, 0x0c, 0x1c, 0x39, 0xd3, 0x75, 0x1f, 0x2d, 0x16, 0xcd,
+ 0x7c, 0x4a, 0xe5, 0x01, 0x90, 0x91, 0x26, 0x92, 0xd9, 0x4e, 0x89, 0xc4, 0x58, 0xd8, 0x08, 0x19,
+ 0xa5, 0x8d, 0x85, 0x29, 0xfd, 0xae, 0xb2, 0xc9, 0x72, 0xca, 0x48, 0x9b, 0xbe, 0x14, 0x03, 0x03,
+ 0xf1, 0x72, 0xb4, 0x6d, 0x19, 0x87, 0xe9, 0xc9, 0xc0, 0x9e, 0x95, 0xac, 0x79, 0xcf, 0x24, 0xee,
+ 0xc4, 0x4f, 0x84, 0x25, 0xc7, 0xc0, 0xae, 0x30, 0x04, 0x3c, 0xa9, 0x52, 0x75, 0x6f, 0x97, 0x79,
+ 0x98, 0xc0, 0xd7, 0xeb, 0x84, 0x9a, 0x57, 0x99, 0x3c, 0x01, 0x8b, 0x3b, 0xc0, 0x91, 0xe3, 0xfd,
+ 0xe1, 0x88, 0x88, 0xa0, 0x34, 0xd8, 0x5d, 0xe8, 0xe6, 0xba, 0xab, 0x76, 0x6f, 0x33, 0x3e, 0x97,
+ 0x04, 0x93, 0xd3, 0x4c, 0x22, 0xb1, 0xa9, 0x79, 0x66, 0xc5, 0xb6, 0xbb, 0x23, 0x50, 0xbe, 0x54,
+ 0x1a, 0xab, 0x7a, 0x99, 0x9e, 0x2b, 0x4f, 0xed, 0x5a, 0x7a, 0x5c, 0xbd, 0xf2, 0x32, 0x34, 0x02,
+ 0x82, 0x4c, 0xb8, 0x11, 0x65, 0x22, 0x77, 0x42, 0x7f, 0xb1, 0x7b, 0x98, 0x1b, 0x82, 0x8f, 0xe7,
+ 0x1f, 0x7b, 0x07, 0x21, 0x98, 0x60, 0xb4, 0x7b, 0xe2, 0x9a, 0xcb, 0xe9, 0xb3, 0x49, 0x35, 0x86,
+ 0xea, 0x8b, 0x21, 0x46, 0xe9, 0x5b, 0x16, 0xe8, 0x2c, 0xe5, 0x9c, 0xb5, 0x96, 0x45, 0xce, 0x0c,
+ 0x40, 0xbb, 0x97, 0x02, 0x03, 0x01, 0x00, 0x01, 0x02, 0x82, 0x02, 0x01, 0x00, 0x97, 0x36, 0x08,
+ 0x37, 0xca, 0xe5, 0x01, 0x98, 0x6a, 0x7e, 0xfe, 0x66, 0x12, 0x21, 0x13, 0xae, 0x74, 0x68, 0xd2,
+ 0x54, 0xb8, 0x26, 0x8d, 0x55, 0xd6, 0x2c, 0x1d, 0xfc, 0x12, 0xe5, 0x86, 0x32, 0x2a, 0xe5, 0x8b,
+ 0x40, 0xe0, 0x34, 0xa1, 0xac, 0x7d, 0x16, 0x00, 0x25, 0x95, 0x98, 0xe9, 0xde, 0x45, 0xa8, 0x3c,
+ 0x19, 0x6d, 0x32, 0x41, 0x76, 0x95, 0x79, 0x54, 0x10, 0x7e, 0x25, 0x18, 0x91, 0xd3, 0x03, 0x79,
+ 0xd6, 0xfe, 0x32, 0xff, 0x60, 0xa2, 0x6c, 0x93, 0x2e, 0xff, 0x10, 0xff, 0x2e, 0x4c, 0x19, 0xc8,
+ 0x78, 0x4c, 0x72, 0xd4, 0x1e, 0xca, 0x75, 0x0f, 0xa0, 0x1f, 0x11, 0x79, 0x18, 0xd8, 0x6e, 0xdc,
+ 0x9d, 0xc8, 0xe2, 0x89, 0x12, 0x5f, 0xe8, 0x4d, 0xa2, 0x2a, 0x8a, 0xbc, 0x3a, 0xb3, 0xd5, 0x27,
+ 0x63, 0xa8, 0xfe, 0x2e, 0x1b, 0x1f, 0xd7, 0x9a, 0x88, 0xb1, 0x01, 0xc8, 0x1d, 0x1e, 0x80, 0x6b,
+ 0xba, 0xb1, 0xd7, 0x66, 0xfa, 0xbd, 0x39, 0xb4, 0x2a, 0xeb, 0xac, 0xbc, 0x51, 0x5e, 0xb4, 0x9e,
+ 0x89, 0x7b, 0x48, 0x2c, 0xe1, 0x18, 0x5d, 0x27, 0x1a, 0xca, 0x41, 0x6b, 0x27, 0x6c, 0x8f, 0xd0,
+ 0xcc, 0x31, 0xb5, 0x39, 0x8b, 0x11, 0x4c, 0x46, 0x85, 0x51, 0x5f, 0xe9, 0x10, 0x1d, 0x3e, 0x21,
+ 0x54, 0xa6, 0x25, 0xd3, 0x7e, 0x93, 0x8d, 0x9b, 0x6d, 0x96, 0x68, 0x16, 0x5a, 0x3b, 0x5b, 0xe3,
+ 0x22, 0x26, 0x1e, 0xdc, 0xaa, 0x09, 0x84, 0xcf, 0x46, 0x9c, 0xa8, 0x2e, 0x79, 0x6b, 0xe3, 0x51,
+ 0x8f, 0x7e, 0x77, 0x72, 0xbe, 0xa0, 0x0e, 0x1e, 0x79, 0x1d, 0xe4, 0xb2, 0x60, 0xdd, 0x64, 0x3c,
+ 0xea, 0xdd, 0x3c, 0xf1, 0xff, 0x21, 0xff, 0x91, 0x0b, 0x37, 0xb7, 0xcb, 0xe5, 0xd7, 0x8d, 0xf5,
+ 0x09, 0x76, 0x5a, 0x1b, 0xd4, 0xf9, 0x25, 0xac, 0x0d, 0xac, 0x07, 0x81, 0xc3, 0xe6, 0x6c, 0x96,
+ 0x4b, 0x6a, 0x8a, 0xf1, 0x31, 0xd6, 0x22, 0x0e, 0xf9, 0xb0, 0x5e, 0xb6, 0x69, 0x4d, 0xe9, 0xf0,
+ 0xf2, 0xee, 0xe1, 0x13, 0x14, 0xa7, 0xff, 0x43, 0x53, 0x86, 0x15, 0x14, 0x5c, 0x89, 0x41, 0xb3,
+ 0x1e, 0xaa, 0x6f, 0x96, 0x56, 0x9c, 0xe8, 0x59, 0xa3, 0x51, 0xad, 0x30, 0x59, 0xce, 0x47, 0xde,
+ 0xdc, 0x6d, 0xd7, 0x0d, 0x9a, 0x29, 0xad, 0xd0, 0x61, 0xf5, 0xbc, 0x68, 0xb0, 0xa9, 0xc5, 0x23,
+ 0x0d, 0xdf, 0x5e, 0xb4, 0x19, 0xd4, 0xc8, 0x84, 0x70, 0x05, 0x5b, 0x7c, 0x9b, 0xd5, 0x93, 0x39,
+ 0x8a, 0xbe, 0xe8, 0x8f, 0x42, 0x0e, 0xdc, 0xdf, 0xb0, 0xb6, 0xdb, 0xc7, 0x85, 0xb0, 0xe3, 0x0b,
+ 0x34, 0x9f, 0xfc, 0xf9, 0x8e, 0x53, 0x0e, 0x64, 0x1b, 0xb4, 0x41, 0xa6, 0xe0, 0x06, 0x64, 0x90,
+ 0x82, 0x5d, 0x1c, 0x5a, 0x04, 0x14, 0xd8, 0x7e, 0x9c, 0x7f, 0x9d, 0x35, 0xc1, 0xeb, 0xb6, 0xf2,
+ 0xfe, 0x96, 0x34, 0x75, 0xcd, 0xea, 0x39, 0xd3, 0xb7, 0x04, 0x12, 0x64, 0xd9, 0xc2, 0x1f, 0x17,
+ 0x62, 0x37, 0x87, 0x08, 0x6b, 0xdc, 0x0b, 0xe0, 0x0b, 0x30, 0x55, 0x37, 0x14, 0x10, 0x3b, 0x60,
+ 0x62, 0x53, 0xd5, 0x47, 0xd0, 0xc4, 0xab, 0xfc, 0xdc, 0xc2, 0x73, 0xff, 0x61, 0xa9, 0x75, 0xf4,
+ 0x99, 0xa3, 0xcf, 0xae, 0xc8, 0xd7, 0xe0, 0x20, 0x8a, 0xc9, 0xda, 0xfe, 0x66, 0x00, 0x9b, 0x1d,
+ 0x01, 0x54, 0x18, 0xbb, 0x6b, 0x41, 0xdb, 0x07, 0x84, 0x75, 0x9f, 0x33, 0x94, 0x85, 0xf5, 0x4c,
+ 0xa9, 0xdf, 0x6d, 0x9e, 0xde, 0xe7, 0x7a, 0x45, 0x08, 0x1f, 0xc5, 0x22, 0x9d, 0x8d, 0x62, 0xef,
+ 0x94, 0x46, 0x25, 0x5f, 0x40, 0x8f, 0x6f, 0x24, 0x65, 0x57, 0xfa, 0x0c, 0x1d, 0x1b, 0xa9, 0xd1,
+ 0x93, 0x00, 0x40, 0xc3, 0xed, 0xd5, 0x7f, 0x8c, 0x98, 0xb2, 0xd4, 0xf3, 0x19, 0x02, 0x82, 0x01,
+ 0x01, 0x00, 0xea, 0xae, 0x2b, 0x8b, 0x8f, 0x87, 0x2b, 0xe4, 0x10, 0x20, 0x50, 0xad, 0x1b, 0x81,
+ 0xdc, 0x4a, 0xfb, 0x38, 0xdb, 0x8e, 0x87, 0x82, 0x21, 0x7e, 0x18, 0xb9, 0xc8, 0xee, 0x04, 0x7c,
+ 0xdb, 0xad, 0x3d, 0xa4, 0xb1, 0x27, 0xc5, 0xd4, 0xa6, 0xbe, 0x14, 0x8c, 0x55, 0x7d, 0x39, 0x03,
+ 0x6c, 0xe9, 0xb0, 0x25, 0xc4, 0x2a, 0xc0, 0xab, 0x98, 0xe9, 0xf8, 0x6c, 0x6b, 0x75, 0x51, 0xc2,
+ 0xcc, 0x44, 0x53, 0x92, 0x7a, 0x17, 0xda, 0xad, 0x6d, 0x5a, 0x55, 0x7c, 0xfd, 0x2d, 0x85, 0xa2,
+ 0xa4, 0xb0, 0xc0, 0x4d, 0xf0, 0xde, 0xca, 0xe1, 0xe1, 0xd4, 0x76, 0xd6, 0xfe, 0xb0, 0xb6, 0xac,
+ 0x36, 0x6a, 0xf3, 0x0c, 0xe0, 0xa0, 0x9c, 0xbd, 0xd7, 0x46, 0x82, 0xe7, 0x32, 0x73, 0x58, 0x34,
+ 0x75, 0xeb, 0x83, 0xc9, 0x3d, 0x8e, 0xf7, 0x76, 0xe1, 0xa9, 0x0e, 0xb9, 0x07, 0x87, 0x0c, 0x37,
+ 0xeb, 0x22, 0xe3, 0x55, 0x7b, 0xf9, 0x24, 0xf6, 0x0e, 0xe7, 0x4f, 0x88, 0x83, 0x12, 0xf1, 0xec,
+ 0xa9, 0xf7, 0xf7, 0xf5, 0xf4, 0x53, 0x71, 0xa2, 0x9a, 0x2d, 0xc4, 0x5b, 0x52, 0x28, 0x47, 0xdf,
+ 0x19, 0x1e, 0x47, 0x7c, 0x3c, 0x82, 0x37, 0x46, 0xeb, 0xce, 0x8c, 0x3c, 0x41, 0x08, 0x76, 0x16,
+ 0x46, 0x5b, 0x23, 0x6c, 0x77, 0xd4, 0x6a, 0xae, 0xd6, 0x8f, 0x34, 0x6a, 0x9f, 0x17, 0xa2, 0xb5,
+ 0xeb, 0x5e, 0x4c, 0x7c, 0x5e, 0xe1, 0x73, 0xb5, 0x75, 0x39, 0xa9, 0x0b, 0x3f, 0xf6, 0xdc, 0xb3,
+ 0x3d, 0x2e, 0x70, 0x4b, 0x32, 0x19, 0x38, 0x48, 0xe7, 0x57, 0x47, 0xee, 0xee, 0x99, 0xde, 0x33,
+ 0x0c, 0xc1, 0xe6, 0xcb, 0x45, 0x51, 0xb3, 0xbe, 0x69, 0x35, 0xe6, 0xc0, 0x11, 0x03, 0x74, 0xd3,
+ 0x24, 0x76, 0x14, 0x82, 0x31, 0x3e, 0xe3, 0x86, 0x52, 0x13, 0x26, 0xe0, 0x0e, 0x46, 0x5a, 0x84,
+ 0x98, 0xf3, 0x02, 0x82, 0x01, 0x01, 0x00, 0xdc, 0xf8, 0xef, 0x30, 0x44, 0xb8, 0x35, 0xee, 0xe0,
+ 0x97, 0x4e, 0x11, 0x4a, 0xab, 0x1b, 0xfa, 0x33, 0x18, 0x3d, 0xc1, 0x3a, 0x48, 0x8f, 0x4c, 0x1f,
+ 0x81, 0xf9, 0x16, 0x42, 0x73, 0x8b, 0x37, 0x01, 0xc1, 0x49, 0xb9, 0xb9, 0x72, 0x90, 0x16, 0x0a,
+ 0x64, 0x0f, 0xd6, 0x18, 0x5e, 0xe6, 0x4f, 0x2d, 0x96, 0xe5, 0xfe, 0x1b, 0x29, 0xff, 0xef, 0xc5,
+ 0x91, 0x56, 0x09, 0xfd, 0x78, 0xd9, 0xa1, 0x04, 0xe4, 0xcb, 0xfb, 0x74, 0xac, 0x43, 0x20, 0x7f,
+ 0xd4, 0x1f, 0xb2, 0x63, 0x6a, 0x22, 0xc0, 0x56, 0xe3, 0x3c, 0x05, 0xdd, 0x64, 0xcc, 0x13, 0x37,
+ 0xab, 0xaa, 0xea, 0xbf, 0x89, 0x61, 0x39, 0xc4, 0x5b, 0x4c, 0xbd, 0xae, 0xcb, 0x53, 0xdf, 0x92,
+ 0x7c, 0x48, 0x57, 0x33, 0x4f, 0x9f, 0xb2, 0xae, 0x35, 0xba, 0x87, 0x35, 0x88, 0x2f, 0xe3, 0xb0,
+ 0x87, 0xef, 0xf3, 0xc1, 0x8f, 0xc2, 0x9a, 0x72, 0x9f, 0x11, 0xa9, 0x95, 0x00, 0x14, 0xc8, 0xcc,
+ 0x62, 0x50, 0x7f, 0xb2, 0x23, 0xf8, 0x8b, 0x41, 0xb2, 0x31, 0x70, 0xd2, 0x75, 0x4d, 0x54, 0xf4,
+ 0x88, 0x28, 0x47, 0x68, 0x3f, 0x01, 0x12, 0x8d, 0x58, 0xab, 0x9c, 0x5f, 0xd1, 0xe8, 0xf1, 0x8f,
+ 0xb9, 0x15, 0x8c, 0xfb, 0xac, 0x77, 0xd0, 0xe5, 0x03, 0xf4, 0x9a, 0x4e, 0x26, 0x7c, 0xb3, 0xca,
+ 0x99, 0x10, 0x5f, 0x6f, 0x21, 0x51, 0x4e, 0xff, 0x74, 0x30, 0x13, 0x1a, 0x3e, 0x28, 0xb1, 0xe0,
+ 0x55, 0xfc, 0xab, 0xb6, 0xa5, 0xc5, 0x97, 0xb2, 0xa4, 0x9d, 0x0c, 0x3b, 0xaa, 0xf6, 0xd9, 0x66,
+ 0xea, 0x5f, 0xa1, 0x37, 0x23, 0xb0, 0x3d, 0x03, 0x94, 0xaf, 0x8c, 0xc3, 0x03, 0xd4, 0xc9, 0x1e,
+ 0x30, 0x63, 0x59, 0x57, 0x82, 0x65, 0xf2, 0x1e, 0xb2, 0x37, 0xd3, 0xbf, 0xbe, 0xa6, 0xed, 0x6b,
+ 0x9f, 0x7d, 0x64, 0xc0, 0x74, 0xfb, 0xcd, 0x02, 0x82, 0x01, 0x01, 0x00, 0x98, 0x99, 0x6e, 0x99,
+ 0x4e, 0x58, 0x0f, 0xf3, 0x39, 0x85, 0x39, 0xd0, 0x86, 0x7d, 0x77, 0xb8, 0x8e, 0x09, 0x17, 0xc3,
+ 0x63, 0x5b, 0xfb, 0xd9, 0x59, 0xcc, 0x9c, 0xda, 0x20, 0xb2, 0xeb, 0xc9, 0x87, 0xb6, 0xea, 0xb7,
+ 0x39, 0x0d, 0xa0, 0xeb, 0x22, 0xc3, 0x69, 0xe7, 0x86, 0x46, 0x32, 0xf0, 0xf5, 0xe8, 0x68, 0xd9,
+ 0x7f, 0xf5, 0x54, 0xf6, 0x76, 0xe2, 0x51, 0x31, 0xb5, 0x5b, 0x9c, 0xa5, 0xa5, 0x4e, 0x2e, 0xf4,
+ 0x09, 0xef, 0x11, 0x97, 0x56, 0xd5, 0x72, 0x6f, 0xc2, 0x60, 0xd3, 0x04, 0x57, 0xd7, 0x96, 0x93,
+ 0xd8, 0x8a, 0xee, 0xe4, 0xcf, 0xed, 0xd7, 0x29, 0x23, 0x6f, 0x71, 0xe7, 0x33, 0x6a, 0x21, 0x3a,
+ 0x6f, 0x11, 0x86, 0xc5, 0x43, 0xe3, 0x80, 0x4b, 0xbe, 0x84, 0x46, 0x55, 0x41, 0x99, 0x7e, 0xdc,
+ 0xd3, 0x0f, 0x4b, 0x87, 0x39, 0x9a, 0x99, 0x49, 0x78, 0x69, 0x78, 0x0d, 0x74, 0x93, 0xa6, 0x8c,
+ 0x88, 0x3b, 0x33, 0xcf, 0xb7, 0x48, 0xc6, 0x2a, 0x70, 0x83, 0x7a, 0xb6, 0x52, 0x57, 0x6d, 0x6b,
+ 0x41, 0x0e, 0x01, 0x81, 0x57, 0x18, 0x26, 0xa1, 0x28, 0xb2, 0xea, 0x4b, 0x65, 0x22, 0x64, 0xda,
+ 0x2b, 0x85, 0x83, 0x5a, 0x08, 0x98, 0x39, 0x95, 0x7d, 0xeb, 0xd8, 0x0d, 0xf5, 0x47, 0xd7, 0xd7,
+ 0x99, 0x13, 0x5d, 0x53, 0x3b, 0x3b, 0x45, 0x7e, 0x02, 0x00, 0x97, 0x2e, 0xf7, 0x3f, 0x3c, 0x17,
+ 0x0f, 0xbd, 0x63, 0x9f, 0x7d, 0xcb, 0x61, 0xe9, 0x6c, 0xf3, 0x64, 0x0a, 0x29, 0x5c, 0xcc, 0x13,
+ 0xd8, 0x24, 0x97, 0xc1, 0x8a, 0x75, 0xd4, 0x52, 0xdb, 0x48, 0x88, 0xb8, 0x21, 0x11, 0xf6, 0x5e,
+ 0x3d, 0x29, 0xc8, 0x92, 0x13, 0x1c, 0xbb, 0x33, 0x6b, 0x28, 0xcc, 0xa1, 0xb7, 0x8e, 0x3c, 0xe5,
+ 0x6e, 0xdf, 0x6d, 0xc9, 0x24, 0x53, 0x37, 0x15, 0x0a, 0x51, 0x04, 0x7f, 0x02, 0x82, 0x01, 0x00,
+ 0x19, 0xad, 0xd4, 0x1e, 0x07, 0xde, 0x60, 0x66, 0x22, 0x33, 0x73, 0x1f, 0x0f, 0x4e, 0x53, 0x32,
+ 0x00, 0x3e, 0x10, 0xef, 0x23, 0x96, 0xcb, 0x10, 0x4d, 0x99, 0x0d, 0x19, 0x49, 0x1f, 0xa4, 0x4e,
+ 0x00, 0x26, 0x36, 0x2b, 0x1f, 0x21, 0xf1, 0x1c, 0x9e, 0x98, 0x82, 0x3e, 0x9f, 0x16, 0x68, 0x2d,
+ 0x4b, 0x5e, 0xfd, 0xdb, 0x49, 0xcc, 0xd7, 0xb1, 0x45, 0x84, 0x5e, 0x3b, 0x4a, 0xf9, 0x80, 0x50,
+ 0xf6, 0x00, 0xa0, 0xb3, 0xd8, 0x1b, 0x2c, 0xb1, 0xda, 0x29, 0x0c, 0x85, 0xee, 0x87, 0xa7, 0x02,
+ 0x33, 0x16, 0xb5, 0x22, 0xf9, 0x57, 0x7d, 0x5f, 0xbe, 0x58, 0x74, 0xc4, 0x52, 0xfd, 0xe4, 0x0e,
+ 0x92, 0x83, 0x09, 0xa8, 0x01, 0x68, 0x1f, 0x97, 0x1b, 0xae, 0xd5, 0xb9, 0x4c, 0x7d, 0x34, 0x51,
+ 0xcf, 0x6c, 0xef, 0x00, 0x47, 0x78, 0x4c, 0x18, 0x69, 0xab, 0x62, 0x77, 0x31, 0x47, 0x43, 0x96,
+ 0x2f, 0x3b, 0xcd, 0x11, 0xa7, 0xff, 0x1a, 0x6b, 0x3b, 0x55, 0x31, 0x85, 0xa5, 0x6e, 0x08, 0xb4,
+ 0x26, 0x2e, 0x4f, 0x10, 0x8d, 0x64, 0x94, 0x58, 0x0b, 0x12, 0xc7, 0x9b, 0x84, 0xc1, 0xcd, 0x9e,
+ 0x1a, 0x4e, 0xf3, 0xa2, 0x78, 0x80, 0x2c, 0x51, 0xe6, 0x21, 0xdc, 0x1f, 0x46, 0x20, 0x04, 0xcc,
+ 0x81, 0xd0, 0xb3, 0xdc, 0x3a, 0xb8, 0xbe, 0x45, 0x26, 0x86, 0x23, 0x20, 0xf4, 0x09, 0x2b, 0x29,
+ 0xc3, 0x05, 0xfd, 0x90, 0x3a, 0xbc, 0x7e, 0x7e, 0x2d, 0x53, 0xd0, 0xc9, 0x23, 0xb0, 0xa0, 0x05,
+ 0xc0, 0xfc, 0xe0, 0x43, 0x4b, 0xab, 0xd2, 0x83, 0xf1, 0x31, 0xcb, 0x6b, 0x30, 0xbd, 0x34, 0xfd,
+ 0xe2, 0x2c, 0xa5, 0x39, 0xf6, 0x6f, 0xbb, 0x8a, 0xa3, 0xb7, 0x7b, 0xd4, 0x26, 0x17, 0x41, 0x41,
+ 0xa1, 0xcf, 0x94, 0x2d, 0x47, 0x5b, 0x20, 0x8a, 0xf6, 0xb6, 0xd2, 0x1b, 0xa3, 0x41, 0xf5, 0x01,
+ 0x02, 0x82, 0x01, 0x01, 0x00, 0x83, 0xca, 0xca, 0xea, 0xa4, 0xdf, 0xc1, 0x0b, 0xe9, 0xcf, 0xca,
+ 0x88, 0xbe, 0x3b, 0xe8, 0x9b, 0x3c, 0xa3, 0xd1, 0x73, 0x15, 0x13, 0x47, 0xfb, 0xbe, 0x64, 0xbf,
+ 0x91, 0x6d, 0x26, 0xf6, 0xfc, 0x05, 0x77, 0x0b, 0x1f, 0x95, 0x14, 0x74, 0x02, 0x75, 0xe5, 0x1d,
+ 0xf3, 0x31, 0x24, 0xd1, 0x3b, 0x8e, 0x97, 0xdb, 0xe8, 0xaa, 0xa0, 0xc8, 0xe4, 0x72, 0xda, 0x6a,
+ 0xf6, 0x42, 0x95, 0xcf, 0x55, 0x4f, 0x80, 0x3d, 0xb5, 0xea, 0x7b, 0x45, 0x15, 0x08, 0xde, 0xda,
+ 0xd4, 0xe6, 0x1e, 0xdb, 0x4f, 0x3d, 0x20, 0x73, 0xa6, 0x88, 0x4e, 0x63, 0x42, 0x79, 0xd3, 0xbb,
+ 0xea, 0xac, 0x75, 0x70, 0xbd, 0x4b, 0xc5, 0x97, 0x9e, 0xd9, 0x33, 0x12, 0x1a, 0xe1, 0xab, 0xba,
+ 0xd7, 0xa9, 0x48, 0xfd, 0xc9, 0x85, 0x41, 0x6b, 0x36, 0x4f, 0xbc, 0x64, 0xf7, 0xc3, 0x6d, 0x94,
+ 0x57, 0x22, 0x1d, 0x65, 0x36, 0x70, 0xe6, 0x48, 0x47, 0xf9, 0xdb, 0x94, 0x06, 0x91, 0xec, 0x03,
+ 0x0a, 0x16, 0xe9, 0xbd, 0x94, 0x2a, 0x1f, 0x78, 0xd5, 0x70, 0x64, 0x40, 0xb3, 0x7f, 0xa6, 0xc2,
+ 0x89, 0x9c, 0xed, 0x76, 0xe2, 0x16, 0x29, 0x64, 0x41, 0xd6, 0x37, 0x11, 0x59, 0x23, 0x64, 0x84,
+ 0x85, 0x6e, 0x88, 0x0e, 0x4e, 0xd5, 0xc2, 0x5a, 0x70, 0x11, 0x66, 0x22, 0x6a, 0x2e, 0x46, 0x10,
+ 0x28, 0x01, 0xd7, 0xe8, 0xfb, 0xb4, 0xdb, 0xf2, 0xfd, 0x35, 0xef, 0x85, 0x42, 0xd2, 0xa2, 0x30,
+ 0xa3, 0x38, 0xc9, 0x66, 0x9b, 0x9d, 0x71, 0x6c, 0xa5, 0xac, 0x6e, 0x50, 0x7c, 0x0d, 0xb5, 0x7f,
+ 0x50, 0x9f, 0x0d, 0x28, 0x65, 0x69, 0x9b, 0x97, 0x07, 0x97, 0xf4, 0x47, 0x49, 0xd8, 0x78, 0xc4,
+ 0x57, 0xff, 0xae, 0x32, 0xb1, 0xcd, 0x7b, 0xb5, 0x99, 0x6c, 0x4a, 0xc0, 0x40, 0x6d, 0x0b, 0x64,
+ 0x78, 0x37, 0x1b, 0x47, 0x83};
+
+static const uint8_t kRSACACertDER[] = {0x30, 0x82, 0x04, 0x11, 0x30, 0x82, 0x02, 0xf9, 0xa0, 0x03,
+ 0x02, 0x01, 0x02, 0x02, 0x09, 0x00, 0xac, 0x5d, 0x53, 0x88, 0x67, 0x97, 0x39, 0x87, 0x30, 0x0d,
+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81, 0x9e,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x0b, 0x30,
+ 0x09, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x02, 0x4e, 0x53, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03,
0x55, 0x04, 0x0a, 0x0c, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20, 0x57, 0x69,
- 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c, 0x74, 0x64, 0x31, 0x21, 0x30,
- 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x18, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x55, 0x6e, 0x69, 0x74, 0x20, 0x4e, 0x61, 0x6d, 0x65,
- 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x1c, 0x6e, 0x6f, 0x6e, 0x65, 0x78,
- 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65,
- 0x6e, 0x74, 0x2e, 0x65, 0x63, 0x63, 0x61, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x39, 0x30, 0x35, 0x30,
- 0x38, 0x31, 0x32, 0x34, 0x37, 0x31, 0x31, 0x5a, 0x17, 0x0d, 0x33, 0x39, 0x30, 0x35, 0x30, 0x33,
- 0x31, 0x32, 0x34, 0x37, 0x31, 0x31, 0x5a, 0x30, 0x81, 0x8f, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03,
- 0x55, 0x04, 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08,
- 0x0c, 0x0a, 0x53, 0x6f, 0x6d, 0x65, 0x2d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x31, 0x21, 0x30, 0x1f,
- 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20,
- 0x57, 0x69, 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c, 0x74, 0x64, 0x31,
- 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x18, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69,
- 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x55, 0x6e, 0x69, 0x74, 0x20, 0x4e, 0x61,
- 0x6d, 0x65, 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x1c, 0x6e, 0x6f, 0x6e,
- 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73,
- 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x65, 0x63, 0x63, 0x61, 0x30, 0x81, 0x9b, 0x30, 0x10, 0x06, 0x07,
- 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, 0x05, 0x2b, 0x81, 0x04, 0x00, 0x23, 0x03, 0x81,
- 0x86, 0x00, 0x04, 0x01, 0xf3, 0x42, 0x76, 0xea, 0xca, 0x37, 0x6b, 0x80, 0xb4, 0x26, 0x42, 0x9f,
- 0x26, 0x0b, 0xfe, 0x8b, 0x94, 0x4a, 0x56, 0x48, 0x56, 0x78, 0xda, 0x65, 0x07, 0xa6, 0x92, 0x63,
- 0xdc, 0x33, 0x9f, 0x2f, 0x67, 0xaa, 0xc7, 0xf2, 0x77, 0xba, 0x4a, 0x65, 0xe7, 0x6b, 0x5b, 0x79,
- 0x8a, 0x92, 0xe2, 0xd1, 0x99, 0x8f, 0x6d, 0x08, 0x50, 0x9f, 0x2f, 0xe9, 0x39, 0xff, 0xee, 0xa1,
- 0xf7, 0x3b, 0x4f, 0xb1, 0x96, 0x01, 0xbc, 0xda, 0xa9, 0x21, 0x1b, 0x15, 0xb1, 0x24, 0x59, 0x38,
- 0x3a, 0xee, 0x46, 0x31, 0x51, 0xae, 0xd8, 0x63, 0x0f, 0x5a, 0xae, 0xa5, 0xfa, 0x12, 0x2e, 0xbb,
- 0x71, 0x71, 0xe5, 0x85, 0xa3, 0x4b, 0x90, 0x47, 0xbb, 0xa9, 0xa5, 0x55, 0x10, 0xeb, 0xe7, 0xf5,
- 0x34, 0xe7, 0x3a, 0xd7, 0xb2, 0xaa, 0xad, 0x86, 0x8d, 0x29, 0xb9, 0xe9, 0x3b, 0xc4, 0x6b, 0x2c,
- 0x23, 0x3f, 0x08, 0x37, 0xac, 0xeb, 0x6b, 0xa3, 0x53, 0x30, 0x51, 0x30, 0x1d, 0x06, 0x03, 0x55,
- 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xcc, 0x8b, 0x62, 0xc3, 0x62, 0x94, 0x1e, 0x17, 0x51, 0x32,
- 0xd5, 0x95, 0x2f, 0xaf, 0x20, 0x68, 0x9d, 0x67, 0xc2, 0xb0, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
- 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xcc, 0x8b, 0x62, 0xc3, 0x62, 0x94, 0x1e, 0x17, 0x51,
- 0x32, 0xd5, 0x95, 0x2f, 0xaf, 0x20, 0x68, 0x9d, 0x67, 0xc2, 0xb0, 0x30, 0x0f, 0x06, 0x03, 0x55,
- 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0a, 0x06, 0x08,
- 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x03, 0x81, 0x8c, 0x00, 0x30, 0x81, 0x88, 0x02,
- 0x42, 0x01, 0x91, 0xfa, 0xdc, 0xb9, 0x61, 0x21, 0x29, 0x01, 0xd0, 0xd0, 0x07, 0xa6, 0xed, 0x77,
- 0xa6, 0x81, 0x27, 0x13, 0x4d, 0x74, 0x96, 0xbd, 0x0a, 0x97, 0xeb, 0xd0, 0x02, 0x77, 0x90, 0x80,
- 0xdf, 0xc1, 0xd3, 0xd3, 0x3c, 0xe5, 0x30, 0x6d, 0xba, 0x5a, 0xcf, 0x22, 0x70, 0x13, 0xad, 0x44,
- 0x46, 0xbb, 0x6c, 0xdf, 0x27, 0x8a, 0x00, 0xf9, 0xc6, 0xa4, 0x87, 0x71, 0xeb, 0x19, 0x93, 0x13,
- 0x6d, 0xcb, 0x2d, 0x02, 0x42, 0x01, 0x22, 0x3a, 0x74, 0xe9, 0xee, 0x1b, 0x09, 0xe0, 0xc7, 0xd5,
- 0x78, 0xf2, 0x0c, 0x45, 0x30, 0x23, 0x48, 0xcc, 0x6a, 0x5f, 0x63, 0x32, 0xb7, 0x34, 0xf2, 0xfb,
- 0xf4, 0x68, 0x16, 0xbd, 0x2e, 0xea, 0x88, 0x11, 0x3b, 0xd0, 0x4e, 0xc3, 0x6a, 0x1a, 0xa4, 0x6d,
- 0xb7, 0x63, 0x2f, 0x7b, 0x65, 0x24, 0xde, 0xbd, 0x1a, 0x00, 0xaf, 0x46, 0xa2, 0x7c, 0xbc, 0x08,
- 0x38, 0xcd, 0x12, 0x8a, 0x63, 0x4d, 0x3b};
-
-static const uint8_t kDSACertDER[] = {0x30, 0x82, 0x03, 0xdf, 0x30, 0x82, 0x03, 0x9c, 0xa0, 0x03,
- 0x02, 0x01, 0x02, 0x02, 0x14, 0x60, 0xe4, 0x10, 0x21, 0xe4, 0xc9, 0xaa, 0xf4, 0x6f, 0x72, 0x62,
- 0xd1, 0x9f, 0x6e, 0x11, 0xc9, 0xee, 0x65, 0xd4, 0x62, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48,
- 0x01, 0x65, 0x03, 0x04, 0x03, 0x02, 0x30, 0x81, 0x9f, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
- 0x04, 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c,
- 0x0a, 0x53, 0x6f, 0x6d, 0x65, 0x2d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x31, 0x0f, 0x30, 0x0d, 0x06,
- 0x03, 0x55, 0x04, 0x07, 0x0c, 0x06, 0x53, 0x69, 0x64, 0x6e, 0x65, 0x79, 0x31, 0x21, 0x30, 0x1f,
- 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20,
- 0x57, 0x69, 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c, 0x74, 0x64, 0x31,
- 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x18, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69,
- 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x55, 0x6e, 0x69, 0x74, 0x20, 0x4e, 0x61,
- 0x6d, 0x65, 0x31, 0x24, 0x30, 0x22, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x1b, 0x6e, 0x6f, 0x6e,
- 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73,
- 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x73, 0x61, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x39, 0x30, 0x35,
- 0x30, 0x38, 0x31, 0x32, 0x34, 0x38, 0x33, 0x36, 0x5a, 0x17, 0x0d, 0x33, 0x39, 0x30, 0x35, 0x30,
- 0x33, 0x31, 0x32, 0x34, 0x38, 0x33, 0x36, 0x5a, 0x30, 0x81, 0x9f, 0x31, 0x0b, 0x30, 0x09, 0x06,
- 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04,
- 0x08, 0x0c, 0x0a, 0x53, 0x6f, 0x6d, 0x65, 0x2d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x31, 0x0f, 0x30,
- 0x0d, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x06, 0x53, 0x69, 0x64, 0x6e, 0x65, 0x79, 0x31, 0x21,
- 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65,
- 0x74, 0x20, 0x57, 0x69, 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c, 0x74,
- 0x64, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x18, 0x4f, 0x72, 0x67, 0x61,
- 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x55, 0x6e, 0x69, 0x74, 0x20,
- 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x24, 0x30, 0x22, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x1b, 0x6e,
- 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78,
- 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x73, 0x61, 0x30, 0x82, 0x01, 0xb7, 0x30, 0x82,
- 0x01, 0x2c, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x38, 0x04, 0x01, 0x30, 0x82, 0x01, 0x1f, 0x02,
- 0x81, 0x81, 0x00, 0xb2, 0xf2, 0xb3, 0x0d, 0x25, 0x1c, 0x01, 0x78, 0x24, 0xaf, 0x21, 0x37, 0xe1,
- 0x07, 0x1a, 0xd6, 0x3f, 0xc5, 0x5c, 0x94, 0x4e, 0xf9, 0x82, 0x11, 0x4a, 0x42, 0xf8, 0xbc, 0x86,
- 0x21, 0xd7, 0xe1, 0xef, 0x21, 0x50, 0xad, 0x79, 0x26, 0xab, 0x38, 0xb6, 0xd9, 0x46, 0x0f, 0xef,
- 0xa3, 0x74, 0x3f, 0x3b, 0x10, 0x55, 0x67, 0x81, 0xfc, 0xe5, 0x48, 0x94, 0x33, 0xdd, 0x2c, 0x0a,
- 0x7e, 0x0b, 0x23, 0x07, 0x89, 0x96, 0x09, 0x8c, 0xcd, 0x22, 0xfc, 0xdc, 0x09, 0x6f, 0x62, 0xec,
- 0x0f, 0x5a, 0x0e, 0x02, 0x1c, 0x74, 0x02, 0x04, 0xb9, 0x52, 0x0a, 0xae, 0x95, 0x85, 0xea, 0x2b,
- 0xee, 0x99, 0xbd, 0x7c, 0xf4, 0x27, 0xb7, 0xaf, 0x86, 0x3e, 0x0c, 0x69, 0x55, 0x51, 0x8f, 0x05,
- 0xcf, 0x4e, 0xde, 0xfd, 0xb0, 0x98, 0xbb, 0xdd, 0x55, 0xa4, 0x53, 0xc5, 0x98, 0x31, 0xde, 0x8d,
- 0xa9, 0xcf, 0x4b, 0x02, 0x15, 0x00, 0x9a, 0x11, 0xba, 0xd8, 0x08, 0x2b, 0x64, 0x4f, 0x5b, 0xaf,
- 0x2f, 0xb8, 0x8b, 0x43, 0x9e, 0x8f, 0xc1, 0x04, 0xa2, 0x4d, 0x02, 0x81, 0x81, 0x00, 0xa8, 0x8f,
- 0xe1, 0xb3, 0xe3, 0xd5, 0x61, 0xa8, 0x57, 0xe0, 0x0c, 0x55, 0x95, 0xaf, 0x80, 0xf8, 0xe3, 0xf8,
- 0x73, 0xfe, 0x30, 0x3d, 0xf0, 0x10, 0x10, 0xa9, 0x11, 0x94, 0xc8, 0x98, 0x44, 0x25, 0x79, 0xa5,
- 0x1a, 0xe9, 0x57, 0xe3, 0x0d, 0x57, 0x3a, 0x49, 0xc1, 0x4c, 0x7f, 0x01, 0x21, 0x6c, 0x15, 0xd5,
- 0xdb, 0x73, 0x41, 0xbc, 0x4b, 0xf2, 0x8e, 0xe0, 0x30, 0x55, 0xda, 0x86, 0xac, 0x23, 0x78, 0x7a,
- 0x7a, 0xef, 0xb4, 0x84, 0xbf, 0x9f, 0x02, 0x77, 0xe6, 0x44, 0x54, 0xca, 0xac, 0x2a, 0x6b, 0xfd,
- 0x58, 0xfa, 0xbe, 0xc2, 0xeb, 0x02, 0xf0, 0xce, 0x32, 0x2e, 0x1c, 0x5f, 0xca, 0xdd, 0xe9, 0xf6,
- 0x67, 0xf7, 0x4f, 0xa4, 0xe5, 0x2b, 0x27, 0xec, 0xaa, 0x47, 0xfd, 0xfb, 0x63, 0x9c, 0x3f, 0xba,
- 0xdc, 0xda, 0xd2, 0x18, 0xd6, 0x8d, 0x65, 0xf5, 0x8d, 0xc5, 0x97, 0x78, 0xcc, 0x6f, 0x03, 0x81,
- 0x84, 0x00, 0x02, 0x81, 0x80, 0x70, 0x3d, 0xfa, 0x84, 0x2a, 0x3c, 0xad, 0x9c, 0xfa, 0x86, 0x39,
- 0xaf, 0xa9, 0xdb, 0x4f, 0x94, 0x27, 0x12, 0xa7, 0x60, 0x5b, 0xa8, 0xe9, 0x30, 0x19, 0x5d, 0xf8,
- 0x0d, 0x20, 0x90, 0x61, 0x9f, 0xd7, 0xf8, 0xa9, 0xbe, 0x5f, 0x2d, 0x31, 0x38, 0x5a, 0xb4, 0xaa,
- 0x25, 0x6b, 0xb2, 0x37, 0x25, 0xdb, 0xc2, 0x50, 0xca, 0xaf, 0x44, 0xcb, 0x2e, 0x5f, 0x69, 0xc8,
- 0x56, 0x16, 0x0e, 0x90, 0x20, 0x94, 0xc8, 0x43, 0x86, 0x5b, 0x52, 0x6c, 0xd4, 0x74, 0xd0, 0x76,
- 0xec, 0xe4, 0x81, 0xcc, 0x21, 0x30, 0xf9, 0x75, 0x54, 0xd9, 0xf3, 0xd0, 0x83, 0x46, 0x63, 0x96,
- 0xf9, 0x60, 0x1a, 0xa7, 0xeb, 0xe2, 0xe4, 0x7a, 0x89, 0x9d, 0xfa, 0x26, 0xc6, 0x22, 0xab, 0xee,
- 0x29, 0x43, 0x4d, 0x32, 0x5c, 0x01, 0x09, 0x18, 0xf6, 0xe4, 0x9f, 0xfd, 0xeb, 0xb7, 0x16, 0x08,
- 0xdd, 0x29, 0xbb, 0xce, 0x10, 0xa3, 0x53, 0x30, 0x51, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e,
- 0x04, 0x16, 0x04, 0x14, 0x04, 0x11, 0x5e, 0x1f, 0xd4, 0x92, 0x92, 0xea, 0xe3, 0x1c, 0xc2, 0x03,
- 0x6f, 0xc1, 0x80, 0x73, 0x2b, 0xa5, 0xa0, 0x3e, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04,
- 0x18, 0x30, 0x16, 0x80, 0x14, 0x04, 0x11, 0x5e, 0x1f, 0xd4, 0x92, 0x92, 0xea, 0xe3, 0x1c, 0xc2,
- 0x03, 0x6f, 0xc1, 0x80, 0x73, 0x2b, 0xa5, 0xa0, 0x3e, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13,
- 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86,
- 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x02, 0x03, 0x30, 0x00, 0x30, 0x2d, 0x02, 0x14, 0x73, 0x18,
- 0xf9, 0x68, 0x26, 0xdb, 0x0d, 0xd5, 0x49, 0x52, 0x14, 0x50, 0xb4, 0xcf, 0x3a, 0x1f, 0x0d, 0x49,
- 0x8f, 0xe7, 0x02, 0x15, 0x00, 0x92, 0x6e, 0xb6, 0xce, 0x87, 0x1e, 0x7b, 0x68, 0xfc, 0x2e, 0xd3,
- 0xa9, 0x3d, 0xe1, 0x55, 0x39, 0xc0, 0x66, 0xe0, 0x20};
+ 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c, 0x74, 0x64, 0x31, 0x0b, 0x30,
+ 0x09, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x02, 0x41, 0x41, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03,
+ 0x55, 0x04, 0x03, 0x0c, 0x10, 0x77, 0x77, 0x77, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73,
+ 0x74, 0x65, 0x6e, 0x74, 0x33, 0x31, 0x37, 0x30, 0x35, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+ 0x0d, 0x01, 0x09, 0x01, 0x16, 0x28, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e,
+ 0x74, 0x33, 0x40, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x30, 0x1e,
+ 0x17, 0x0d, 0x31, 0x36, 0x31, 0x31, 0x31, 0x38, 0x32, 0x32, 0x34, 0x34, 0x34, 0x39, 0x5a, 0x17,
+ 0x0d, 0x31, 0x39, 0x31, 0x31, 0x31, 0x38, 0x32, 0x32, 0x34, 0x34, 0x34, 0x39, 0x5a, 0x30, 0x81,
+ 0x9e, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x0b,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x02, 0x4e, 0x53, 0x31, 0x21, 0x30, 0x1f, 0x06,
+ 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20, 0x57,
+ 0x69, 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c, 0x74, 0x64, 0x31, 0x0b,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x02, 0x41, 0x41, 0x31, 0x19, 0x30, 0x17, 0x06,
+ 0x03, 0x55, 0x04, 0x03, 0x0c, 0x10, 0x77, 0x77, 0x77, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69,
+ 0x73, 0x74, 0x65, 0x6e, 0x74, 0x33, 0x31, 0x37, 0x30, 0x35, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+ 0xf7, 0x0d, 0x01, 0x09, 0x01, 0x16, 0x28, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65,
+ 0x6e, 0x74, 0x33, 0x40, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x30,
+ 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01,
+ 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00,
+ 0xd6, 0x49, 0x39, 0xb9, 0xfd, 0x02, 0xe4, 0xf7, 0x0b, 0x98, 0x14, 0x51, 0xbc, 0xc2, 0xb0, 0x0b,
+ 0xd6, 0x09, 0xf0, 0x12, 0xd5, 0xe4, 0x6a, 0x80, 0x10, 0x49, 0x54, 0x71, 0xa7, 0x75, 0x3f, 0x4b,
+ 0x18, 0xb4, 0xb8, 0xef, 0xe1, 0xb4, 0x03, 0x55, 0xa4, 0xcf, 0x09, 0x24, 0x03, 0x0a, 0xf2, 0x34,
+ 0xa5, 0xbc, 0xaa, 0x8e, 0x72, 0x39, 0x9c, 0xfe, 0x7a, 0x16, 0x44, 0x18, 0x7a, 0xbb, 0x56, 0x4f,
+ 0x7a, 0xef, 0x93, 0x7f, 0x91, 0x98, 0x53, 0xe2, 0xd3, 0xc9, 0x5e, 0x20, 0x4a, 0x91, 0xf5, 0x8b,
+ 0x51, 0x9d, 0x36, 0x15, 0x20, 0x7b, 0x0b, 0xd1, 0x41, 0xac, 0x0e, 0xbd, 0x14, 0x09, 0x69, 0xf3,
+ 0xb8, 0x9f, 0x9f, 0x65, 0x2b, 0x26, 0xae, 0xb9, 0x6b, 0x09, 0x45, 0x7c, 0x55, 0xe0, 0xb5, 0x87,
+ 0x60, 0x14, 0xd2, 0xaf, 0x93, 0x2b, 0x31, 0x90, 0x7b, 0xe9, 0x7c, 0x2a, 0x04, 0xd7, 0xb6, 0x72,
+ 0x27, 0xd2, 0xf9, 0x88, 0x27, 0xb7, 0x66, 0xc9, 0xd2, 0x58, 0xff, 0x65, 0x68, 0x0a, 0x7a, 0x31,
+ 0xc9, 0x99, 0x0d, 0xd1, 0x0c, 0x42, 0x46, 0xbd, 0xd0, 0x8e, 0xfa, 0xfa, 0x90, 0x50, 0xee, 0x47,
+ 0x8b, 0xf0, 0xc4, 0x5f, 0x9d, 0xf4, 0x58, 0x7b, 0x53, 0x0d, 0xfb, 0x9d, 0x60, 0xde, 0x0e, 0x54,
+ 0x9b, 0xef, 0xac, 0xcf, 0xce, 0x50, 0xda, 0xfe, 0xf6, 0x95, 0xd0, 0x70, 0xf2, 0xeb, 0xb6, 0x90,
+ 0x15, 0xc9, 0xe6, 0xf0, 0x3d, 0xb0, 0x14, 0x03, 0xc3, 0xa1, 0xc6, 0x9a, 0x5d, 0x5d, 0x70, 0x8f,
+ 0xfe, 0xd2, 0x8c, 0xac, 0x8d, 0xa7, 0x0d, 0x1e, 0x8f, 0x40, 0xf8, 0xff, 0x8c, 0x06, 0x23, 0xe0,
+ 0xc5, 0x28, 0x67, 0x54, 0xd2, 0xf3, 0xa0, 0x25, 0x74, 0xd0, 0xe5, 0x5f, 0x44, 0x11, 0x42, 0xc5,
+ 0x33, 0x4e, 0x58, 0xe6, 0xf2, 0x64, 0x5f, 0xf4, 0x41, 0x07, 0xaa, 0x06, 0x42, 0xc8, 0x49, 0xff,
+ 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x50, 0x30, 0x4e, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e,
+ 0x04, 0x16, 0x04, 0x14, 0xd7, 0xde, 0xbb, 0xad, 0x37, 0xb6, 0x45, 0x6d, 0x71, 0x0d, 0xd4, 0xb3,
+ 0x59, 0x7c, 0x7f, 0xcd, 0xbb, 0xc1, 0xa5, 0x50, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04,
+ 0x18, 0x30, 0x16, 0x80, 0x14, 0xd7, 0xde, 0xbb, 0xad, 0x37, 0xb6, 0x45, 0x6d, 0x71, 0x0d, 0xd4,
+ 0xb3, 0x59, 0x7c, 0x7f, 0xcd, 0xbb, 0xc1, 0xa5, 0x50, 0x30, 0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13,
+ 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+ 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x34, 0x8c, 0xa8, 0x0d, 0xf8,
+ 0xb8, 0x9e, 0xa7, 0xd5, 0xb5, 0x8c, 0xf5, 0x5d, 0x7e, 0x4e, 0x37, 0x8a, 0xb0, 0xed, 0x8d, 0x22,
+ 0xa0, 0xe4, 0x36, 0x87, 0xaa, 0x91, 0xc6, 0xcd, 0xae, 0x99, 0x39, 0xd6, 0xc8, 0xa2, 0x61, 0x4f,
+ 0x18, 0xc7, 0x16, 0xd8, 0x3f, 0x48, 0x71, 0xe7, 0x14, 0x5b, 0x99, 0x04, 0xe5, 0x04, 0x17, 0x41,
+ 0x98, 0x68, 0x24, 0x8b, 0xab, 0x03, 0x91, 0xcd, 0xfa, 0x54, 0xc9, 0xeb, 0x97, 0x25, 0x69, 0x34,
+ 0xcd, 0x30, 0x6c, 0xb9, 0x86, 0xea, 0x5c, 0xf6, 0x0f, 0xcf, 0x02, 0x8d, 0xe4, 0xf6, 0xeb, 0x0a,
+ 0xf3, 0x0d, 0x96, 0x27, 0x30, 0x16, 0x2c, 0x33, 0x9c, 0x16, 0x3d, 0xad, 0x1c, 0x9f, 0xc0, 0x76,
+ 0xb3, 0xcb, 0x1e, 0xe3, 0x4b, 0x69, 0x42, 0x22, 0x82, 0x35, 0x16, 0x7d, 0x90, 0xd3, 0x36, 0x63,
+ 0xba, 0x0d, 0xd8, 0x26, 0xf8, 0xe4, 0xf3, 0x4d, 0x2f, 0x2d, 0xcf, 0x2b, 0xc6, 0xa5, 0x08, 0xc5,
+ 0xb5, 0xa2, 0x02, 0x94, 0xc8, 0x11, 0xd4, 0x93, 0x1b, 0x2e, 0xae, 0x38, 0x80, 0x4b, 0x47, 0x21,
+ 0x24, 0x17, 0x36, 0x1c, 0xd3, 0x6b, 0xfe, 0x52, 0x33, 0xff, 0x19, 0x5c, 0xa5, 0x24, 0x79, 0x10,
+ 0x26, 0xc7, 0x79, 0x6e, 0xc5, 0xb6, 0x02, 0x58, 0xdc, 0x00, 0x55, 0x0b, 0xf3, 0xb3, 0x63, 0x61,
+ 0x82, 0xf2, 0xd4, 0xe3, 0xf2, 0x5f, 0x39, 0xc4, 0x02, 0x58, 0x4d, 0x42, 0x09, 0x01, 0xa1, 0x56,
+ 0x30, 0x9f, 0x9e, 0x79, 0x21, 0xc6, 0xfe, 0x47, 0x31, 0x95, 0xbb, 0x31, 0x4c, 0x52, 0xdb, 0x1f,
+ 0xe7, 0xfa, 0xbf, 0x71, 0x5d, 0x5b, 0xd4, 0x37, 0xbc, 0xbd, 0x7b, 0x85, 0x08, 0x65, 0x06, 0x59,
+ 0xf6, 0xb2, 0x09, 0x82, 0x0d, 0xce, 0x5a, 0xae, 0xf5, 0x1d, 0xb0, 0x2e, 0x15, 0xd5, 0x8c, 0xbb,
+ 0xca, 0x4b, 0x4c, 0x27, 0x01, 0x12, 0x8b, 0xe9, 0xfd, 0x61, 0xed};
+
+static const uint8_t kECCACertDER[] = {0x30, 0x82, 0x02, 0x6e, 0x30, 0x82, 0x02, 0x15, 0xa0, 0x03,
+ 0x02, 0x01, 0x02, 0x02, 0x09, 0x00, 0xf7, 0x16, 0x78, 0x5d, 0xe9, 0x0d, 0xc6, 0x8e, 0x30, 0x0a,
+ 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x30, 0x81, 0x93, 0x31, 0x0b, 0x30,
+ 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x0f, 0x30, 0x0d, 0x06, 0x03,
+ 0x55, 0x04, 0x08, 0x0c, 0x06, 0x53, 0x79, 0x64, 0x6e, 0x65, 0x79, 0x31, 0x21, 0x30, 0x1f, 0x06,
+ 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20, 0x57,
+ 0x69, 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c, 0x74, 0x64, 0x31, 0x0c,
+ 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x03, 0x73, 0x61, 0x64, 0x31, 0x14, 0x30, 0x12,
+ 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x0b, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x2e,
+ 0x34, 0x34, 0x31, 0x2c, 0x30, 0x2a, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09,
+ 0x01, 0x16, 0x1d, 0x6e, 0x6f, 0x6e, 0x40, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e,
+ 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x34, 0x33, 0x34, 0x33, 0x32,
+ 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x36, 0x31, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x36, 0x35, 0x38,
+ 0x5a, 0x17, 0x0d, 0x31, 0x39, 0x31, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x36, 0x35, 0x38, 0x5a,
+ 0x30, 0x81, 0x93, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x41, 0x55,
+ 0x31, 0x0f, 0x30, 0x0d, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x06, 0x53, 0x79, 0x64, 0x6e, 0x65,
+ 0x79, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x18, 0x49, 0x6e, 0x74, 0x65,
+ 0x72, 0x6e, 0x65, 0x74, 0x20, 0x57, 0x69, 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79,
+ 0x20, 0x4c, 0x74, 0x64, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x03, 0x73,
+ 0x61, 0x64, 0x31, 0x14, 0x30, 0x12, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x0b, 0x6e, 0x6f, 0x6e,
+ 0x65, 0x78, 0x69, 0x73, 0x74, 0x2e, 0x34, 0x34, 0x31, 0x2c, 0x30, 0x2a, 0x06, 0x09, 0x2a, 0x86,
+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x01, 0x16, 0x1d, 0x6e, 0x6f, 0x6e, 0x40, 0x65, 0x78, 0x69,
+ 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e,
+ 0x74, 0x34, 0x33, 0x34, 0x33, 0x32, 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce,
+ 0x3d, 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00,
+ 0x04, 0x68, 0x63, 0xa8, 0xd1, 0x25, 0xc8, 0x1e, 0x07, 0x24, 0x62, 0x37, 0xd4, 0x03, 0xac, 0xa8,
+ 0xa7, 0x6e, 0x90, 0x02, 0x99, 0xcf, 0x29, 0xeb, 0x4c, 0x40, 0x59, 0xb6, 0x7e, 0x3f, 0x12, 0xe5,
+ 0x1f, 0x52, 0xca, 0x0b, 0x10, 0x7d, 0xd5, 0xaa, 0x51, 0x8d, 0xd3, 0x50, 0x94, 0x7f, 0x9e, 0x2f,
+ 0x16, 0x79, 0x37, 0x5b, 0x47, 0x9b, 0xbe, 0xf4, 0xaf, 0xe2, 0x9a, 0x9b, 0x15, 0x31, 0x0c, 0xc6,
+ 0x61, 0xa3, 0x50, 0x30, 0x4e, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+ 0x49, 0xdb, 0xfd, 0x0c, 0x73, 0x69, 0x83, 0x7f, 0xc1, 0xc1, 0xc2, 0x3f, 0xce, 0x4e, 0x82, 0xe6,
+ 0xd3, 0xdc, 0x3c, 0x6e, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80,
+ 0x14, 0x49, 0xdb, 0xfd, 0x0c, 0x73, 0x69, 0x83, 0x7f, 0xc1, 0xc1, 0xc2, 0x3f, 0xce, 0x4e, 0x82,
+ 0xe6, 0xd3, 0xdc, 0x3c, 0x6e, 0x30, 0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, 0x05, 0x30, 0x03,
+ 0x01, 0x01, 0xff, 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x03,
+ 0x47, 0x00, 0x30, 0x44, 0x02, 0x20, 0x0e, 0x49, 0x30, 0xc0, 0x3f, 0x41, 0xcd, 0xc7, 0x87, 0xe7,
+ 0x0f, 0xfd, 0x2a, 0xcd, 0xd8, 0x9c, 0xf8, 0x1c, 0x8f, 0xbc, 0x94, 0xab, 0x29, 0xcd, 0xaf, 0x7e,
+ 0xf1, 0x94, 0x28, 0x25, 0x1d, 0xc1, 0x02, 0x20, 0x29, 0x93, 0xf3, 0x91, 0x44, 0xe3, 0xac, 0xfe,
+ 0xc5, 0x86, 0xdd, 0x27, 0x36, 0x49, 0xd6, 0x61, 0x72, 0x47, 0x1b, 0x55, 0x46, 0x29, 0x50, 0x2a,
+ 0x16, 0xf3, 0x60, 0x2e, 0x3f, 0x96, 0x8d, 0x9a};
+
+static const uint8_t kDSACertDER[] = {0x30, 0x82, 0x04, 0x1d, 0x30, 0x82, 0x03, 0xdb, 0xa0, 0x03,
+ 0x02, 0x01, 0x02, 0x02, 0x09, 0x00, 0xcc, 0x5e, 0x3b, 0x1d, 0xfd, 0xc4, 0x05, 0x9b, 0x30, 0x0b,
+ 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x02, 0x30, 0x81, 0xc6, 0x31, 0x0b,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x0c, 0x30, 0x0a, 0x06,
+ 0x03, 0x55, 0x04, 0x08, 0x0c, 0x03, 0x4e, 0x53, 0x57, 0x31, 0x0f, 0x30, 0x0d, 0x06, 0x03, 0x55,
+ 0x04, 0x07, 0x0c, 0x06, 0x53, 0x79, 0x64, 0x6e, 0x65, 0x79, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03,
+ 0x55, 0x04, 0x0a, 0x0c, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20, 0x57, 0x69,
+ 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c, 0x74, 0x64, 0x31, 0x0b, 0x30,
+ 0x09, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x02, 0x4f, 0x55, 0x31, 0x2a, 0x30, 0x28, 0x06, 0x03,
+ 0x55, 0x04, 0x03, 0x0c, 0x21, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74,
+ 0x2e, 0x61, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78,
+ 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x31, 0x3c, 0x30, 0x3a, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+ 0xf7, 0x0d, 0x01, 0x09, 0x01, 0x16, 0x2d, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65,
+ 0x6e, 0x74, 0x40, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x61,
+ 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73,
+ 0x74, 0x65, 0x6e, 0x74, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x37, 0x30, 0x32, 0x32, 0x30, 0x32, 0x30,
+ 0x34, 0x32, 0x34, 0x30, 0x5a, 0x17, 0x0d, 0x31, 0x37, 0x30, 0x33, 0x32, 0x32, 0x32, 0x30, 0x34,
+ 0x32, 0x34, 0x30, 0x5a, 0x30, 0x81, 0xc6, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+ 0x13, 0x02, 0x41, 0x55, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x03, 0x4e,
+ 0x53, 0x57, 0x31, 0x0f, 0x30, 0x0d, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x06, 0x53, 0x79, 0x64,
+ 0x6e, 0x65, 0x79, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x18, 0x49, 0x6e,
+ 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20, 0x57, 0x69, 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50,
+ 0x74, 0x79, 0x20, 0x4c, 0x74, 0x64, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c,
+ 0x02, 0x4f, 0x55, 0x31, 0x2a, 0x30, 0x28, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x21, 0x6e, 0x6f,
+ 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x75, 0x73, 0x74, 0x72, 0x61,
+ 0x6c, 0x69, 0x61, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x31,
+ 0x3c, 0x30, 0x3a, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x01, 0x16, 0x2d,
+ 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x40, 0x6e, 0x6f, 0x6e, 0x65,
+ 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69,
+ 0x61, 0x2e, 0x6e, 0x6f, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x30, 0x82, 0x01,
+ 0xb6, 0x30, 0x82, 0x01, 0x2b, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x38, 0x04, 0x01, 0x30, 0x82,
+ 0x01, 0x1e, 0x02, 0x81, 0x81, 0x00, 0xe6, 0xb9, 0x3b, 0xb0, 0xc8, 0xa8, 0x45, 0xf8, 0x20, 0xf2,
+ 0x62, 0x34, 0xaa, 0x09, 0x2d, 0xc1, 0x9b, 0x70, 0xde, 0x0b, 0x4e, 0x93, 0xb1, 0x40, 0x22, 0xf4,
+ 0x89, 0x41, 0x8d, 0x0f, 0x17, 0x99, 0x15, 0x65, 0x88, 0xbf, 0x3c, 0x07, 0xf1, 0x92, 0xc0, 0x63,
+ 0xfa, 0xed, 0x6a, 0x56, 0x8c, 0xe9, 0xd8, 0x6f, 0xcb, 0x10, 0x40, 0x27, 0x63, 0x38, 0xc0, 0x8f,
+ 0x4f, 0x5d, 0xe5, 0x97, 0x9b, 0x3b, 0x74, 0xa2, 0xc3, 0x89, 0xec, 0x54, 0x01, 0x6b, 0xef, 0xb8,
+ 0xca, 0x33, 0x06, 0xb3, 0xa4, 0x51, 0xce, 0x02, 0x71, 0x81, 0x26, 0xc8, 0x3b, 0x6d, 0x6e, 0xb0,
+ 0x28, 0x9d, 0x5d, 0x44, 0x9b, 0xf4, 0xc5, 0x86, 0x36, 0xe6, 0xe0, 0xbf, 0xc7, 0x43, 0xd9, 0xc7,
+ 0x60, 0xfd, 0xef, 0x6b, 0xb9, 0xaf, 0x1e, 0xc0, 0xa0, 0x47, 0xc7, 0xfe, 0x07, 0x38, 0xb8, 0x31,
+ 0x01, 0xbf, 0xdd, 0xe4, 0x97, 0xe1, 0x02, 0x15, 0x00, 0xcf, 0x70, 0xf6, 0xf0, 0x7b, 0x10, 0x56,
+ 0x2f, 0x41, 0x1d, 0xca, 0x02, 0x4e, 0x3f, 0xcd, 0xbc, 0xef, 0x14, 0x87, 0x3f, 0x02, 0x81, 0x80,
+ 0x6a, 0x8a, 0xe3, 0x0f, 0xdd, 0x6d, 0xce, 0xc6, 0x38, 0x44, 0x7c, 0x55, 0x55, 0xe6, 0x08, 0x8f,
+ 0x55, 0x12, 0x03, 0xdf, 0xbc, 0x9a, 0x74, 0xc2, 0xc1, 0xf2, 0x10, 0xbc, 0xc4, 0x56, 0xf1, 0xa9,
+ 0xb2, 0xee, 0x68, 0xa0, 0x29, 0x61, 0x30, 0xe6, 0x7c, 0x2e, 0xfd, 0x8d, 0x00, 0xf8, 0x54, 0xa9,
+ 0xeb, 0x54, 0xf1, 0x35, 0x97, 0xad, 0x3a, 0x15, 0x1d, 0x0a, 0x7f, 0xb7, 0x67, 0x6f, 0x3f, 0xc2,
+ 0x88, 0xf7, 0x70, 0x9f, 0xb3, 0xed, 0xfd, 0x7d, 0x0d, 0x1c, 0x7c, 0x0b, 0x42, 0xd5, 0x17, 0x0a,
+ 0x3d, 0x10, 0xa1, 0x26, 0x17, 0x88, 0x2b, 0x24, 0x1d, 0x61, 0xf6, 0x92, 0x85, 0x66, 0xfe, 0xae,
+ 0x45, 0xab, 0xf9, 0x67, 0xa9, 0xe5, 0x10, 0x1a, 0x79, 0xf7, 0xff, 0x45, 0x03, 0x85, 0xc8, 0xa9,
+ 0xc2, 0xbc, 0x02, 0xa9, 0x6b, 0x99, 0x6c, 0x49, 0x24, 0x9a, 0xa2, 0x7e, 0xf2, 0xfc, 0xf4, 0x99,
+ 0x03, 0x81, 0x84, 0x00, 0x02, 0x81, 0x80, 0x5c, 0xb1, 0x43, 0xda, 0xc6, 0xff, 0x7e, 0xe9, 0x4f,
+ 0x43, 0x76, 0x4b, 0x5a, 0xb7, 0x45, 0xe7, 0x3a, 0x6d, 0xc2, 0x9f, 0xf8, 0x1c, 0x5e, 0x7b, 0x2d,
+ 0x76, 0x5e, 0xff, 0x04, 0x44, 0xfc, 0x41, 0x08, 0x15, 0x7f, 0x55, 0x5e, 0x5f, 0x2f, 0x06, 0x59,
+ 0x4f, 0xaf, 0x03, 0xf9, 0x49, 0xc9, 0x0d, 0xd4, 0xb3, 0xde, 0x5a, 0x55, 0xd0, 0x78, 0x77, 0x6d,
+ 0x0c, 0xb7, 0x37, 0x03, 0xe9, 0x7c, 0xf7, 0x55, 0x19, 0xf4, 0xe1, 0x01, 0x3d, 0xb1, 0xd9, 0xbf,
+ 0x42, 0xa3, 0xc4, 0x67, 0x00, 0xa4, 0x51, 0x9f, 0xe3, 0x45, 0xb3, 0x1c, 0xff, 0x1e, 0xfd, 0x02,
+ 0x80, 0x0f, 0x2b, 0x05, 0x93, 0x5a, 0xc9, 0xaf, 0x90, 0x85, 0xc8, 0x30, 0x48, 0x10, 0x15, 0x78,
+ 0x60, 0xd7, 0xb8, 0x31, 0x67, 0x8b, 0x81, 0x10, 0x0c, 0x5c, 0x98, 0x91, 0xf2, 0x13, 0xf3, 0x89,
+ 0x81, 0xe7, 0xe9, 0x4b, 0xd5, 0xa6, 0x94, 0xa3, 0x50, 0x30, 0x4e, 0x30, 0x1d, 0x06, 0x03, 0x55,
+ 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x59, 0x67, 0xab, 0x05, 0xf7, 0x03, 0xa6, 0xcd, 0x91, 0xd1,
+ 0x3a, 0x8f, 0xfe, 0xf2, 0x9c, 0x66, 0xcf, 0x96, 0x74, 0x0b, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+ 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x59, 0x67, 0xab, 0x05, 0xf7, 0x03, 0xa6, 0xcd, 0x91,
+ 0xd1, 0x3a, 0x8f, 0xfe, 0xf2, 0x9c, 0x66, 0xcf, 0x96, 0x74, 0x0b, 0x30, 0x0c, 0x06, 0x03, 0x55,
+ 0x1d, 0x13, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48,
+ 0x01, 0x65, 0x03, 0x04, 0x03, 0x02, 0x03, 0x2f, 0x00, 0x30, 0x2c, 0x02, 0x14, 0x45, 0x42, 0x16,
+ 0x1f, 0x87, 0xe9, 0x52, 0x6a, 0xda, 0x51, 0x9a, 0x24, 0xa7, 0x91, 0xf7, 0xff, 0x60, 0x1c, 0x40,
+ 0x04, 0x02, 0x14, 0x7d, 0x55, 0x25, 0x8b, 0x59, 0x4a, 0xfa, 0xfd, 0xc4, 0x96, 0x87, 0x55, 0xd0,
+ 0xc8, 0xf2, 0xbb, 0x51, 0x98, 0x20, 0x13};
static SSL_CTX* ctx = NULL;
@@ -525,17 +474,6 @@ static int npn_callback(SSL* ssl, const uint8_t** out, unsigned* out_len, void*
return SSL_TLSEXT_ERR_OK;
}
-static int session_id_callback(
-#if defined(HF_SSL_IS_LIBRESSL)
- const
-#endif /* defined(HF_SSL_IS_LIBRESSL) */
- SSL* ssl,
- unsigned char* id, unsigned int* id_len) {
- static unsigned char sess_cnt = 'A';
- memset(id, sess_cnt++, *id_len);
- return 1;
-}
-
int LLVMFuzzerInitialize(int* argc, char*** argv) {
HFInit();
HFResetRand();
@@ -593,7 +531,7 @@ int LLVMFuzzerInitialize(int* argc, char*** argv) {
X509_free(cert);
SSL_CTX_set_cert_store(ctx, store);
- SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, NULL);
+ SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER | SSL_VERIFY_CLIENT_ONCE, NULL);
SSL_CTX_set_verify_depth(ctx, 10);
#if !defined(HF_SSL_IS_LIBRESSL)
@@ -612,22 +550,6 @@ int LLVMFuzzerInitialize(int* argc, char*** argv) {
SSL_CTX_set_alpn_select_cb(ctx, alpn_callback, NULL);
SSL_CTX_set_next_protos_advertised_cb(ctx, npn_callback, NULL);
SSL_CTX_set_ecdh_auto(ctx, 1);
-#if defined(TLS1_3_VERSION)
- SSL_CTX_set_min_proto_version(ctx, SSL3_VERSION);
- SSL_CTX_set_max_proto_version(ctx, TLS1_3_VERSION);
-#endif /* defined(TLS1_3_VERSION) */
- SSL_CTX_set_session_cache_mode(ctx, SSL_SESS_CACHE_BOTH);
- SSL_CTX_set_timeout(ctx, 3);
-
-#if defined(HF_SSL_IS_OPENSSL_GE_1_1)
- SSL_CTX_enable_ct(ctx, SSL_CT_VALIDATION_STRICT);
- SSL_CTX_set_max_early_data(ctx, 1024);
-#endif /* defined(HF_SSL_IS_OPENSSL_GE_1_1) */
-
-#if defined(HF_SSL_IS_OPENSSL_GE_1_1) || defined(HF_SSL_IS_LIBRESSL)
- SSL_CTX_set_dh_auto(ctx, 1);
- SSL_CTX_set_generate_session_id(ctx, session_id_callback);
-#endif /* defined(HF_SSL_IS_OPENSSL_GE_1_1) || defined(HF_SSL_IS_LIBRESSL) */
long opts = SSL_CTX_get_options(ctx);
opts |= SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION;
@@ -645,6 +567,11 @@ int LLVMFuzzerTestOneInput(const uint8_t* buf, size_t len) {
SSL* server = SSL_new(ctx);
+#if defined(HF_SSL_IS_OPENSSL_GE_1_1) || defined(HF_SSL_IS_BORINGSSL)
+ SSL_set_min_proto_version(server, SSL3_VERSION);
+ SSL_set_max_proto_version(server, TLS1_3_VERSION);
+#endif // defined(HF_SSL_IS_OPENSSL_GE_1_1) || defined(HF_SSL_IS_BORINGSSL)
+
#if defined(HF_SSL_FROM_STDIN)
BIO* in = BIO_new(BIO_s_fd());
BIO_set_fd(in, 0, BIO_NOCLOSE);
@@ -660,6 +587,10 @@ int LLVMFuzzerTestOneInput(const uint8_t* buf, size_t len) {
SSL_set_accept_state(server);
#if defined(HF_SSL_IS_OPENSSL_GE_1_1)
+ SSL_enable_ct(server, SSL_CT_VALIDATION_STRICT);
+ SSL_set_dh_auto(server, 1);
+
+ SSL_set_max_early_data(server, 1024);
for (;;) {
size_t sz;
uint8_t edata_rbuf[128];
@@ -677,13 +608,10 @@ int LLVMFuzzerTestOneInput(const uint8_t* buf, size_t len) {
X509* peer;
if ((peer = SSL_get_peer_certificate(server)) != NULL) {
- long res = SSL_get_verify_result(server);
- if (res != X509_V_OK) {
- if (getenv("HFUZZ_SSL_ABORT_ON_VERIFY")) {
- fprintf(stderr, "verify: %ld\n", res);
- abort();
- }
+ if (getenv("HFUZZ_SSL_ABORT_ON_VERIFY")) {
+ abort();
}
+ SSL_get_verify_result(server);
X509_free(peer);
}
for (;;) {
diff --git a/fuzz.c b/fuzz.c
index 950c556f..564357a4 100644
--- a/fuzz.c
+++ b/fuzz.c
@@ -152,9 +152,6 @@ static void fuzz_setDynamicMainState(run_t* run) {
return;
}
- LOG_I("Entering phase 2/3: Switching to Dynamic Main (Feedback Driven Mode)");
- ATOMIC_SET(run->global->feedback.state, _HF_STATE_DYNAMIC_SWITCH_TO_MAIN);
-
for (;;) {
/* Check if all threads have already reported in for changing state */
if (ATOMIC_GET(cnt) == run->global->threads.threadsMax) {
@@ -163,10 +160,10 @@ static void fuzz_setDynamicMainState(run_t* run) {
if (fuzz_isTerminating()) {
return;
}
- util_sleepForMSec(10); /* Check every 10ms */
+ usleep(1000 * 10); /* Check every 10ms */
}
- LOG_I("Entering phase 3/3: Dynamic Main (Feedback Driven Mode)");
+ LOG_I("Entering phase 2/2: Dynamic Main");
snprintf(run->origFileName, sizeof(run->origFileName), "[DYNAMIC]");
ATOMIC_SET(run->global->feedback.state, _HF_STATE_DYNAMIC_MAIN);
@@ -310,16 +307,13 @@ static bool fuzz_runVerifier(run_t* run) {
}
static bool fuzz_fetchInput(run_t* run) {
- {
- fuzzState_t st = fuzz_getState(run->global);
- if (st == _HF_STATE_DYNAMIC_DRY_RUN || st == _HF_STATE_DYNAMIC_SWITCH_TO_MAIN) {
- run->mutationsPerRun = 0U;
- if (input_prepareStaticFile(run, /* rewind= */ false, true)) {
- return true;
- }
- fuzz_setDynamicMainState(run);
- run->mutationsPerRun = run->global->mutate.mutationsPerRun;
+ if (fuzz_getState(run->global) == _HF_STATE_DYNAMIC_DRY_RUN) {
+ run->mutationsPerRun = 0U;
+ if (input_prepareStaticFile(run, /* rewind= */ false)) {
+ return true;
}
+ fuzz_setDynamicMainState(run);
+ run->mutationsPerRun = run->global->mutate.mutationsPerRun;
}
if (fuzz_getState(run->global) == _HF_STATE_DYNAMIC_MAIN) {
@@ -328,12 +322,7 @@ static bool fuzz_fetchInput(run_t* run) {
LOG_E("input_prepareFileExternally() failed");
return false;
}
- } else if (run->global->exe.feedbackMutateCommand) {
- if (!input_prepareDynamicInput(run, false)) {
- LOG_E("input_prepareFileDynamically() failed");
- return false;
- }
- } else if (!input_prepareDynamicInput(run, true)) {
+ } else if (!input_prepareDynamicInput(run)) {
LOG_E("input_prepareFileDynamically() failed");
return false;
}
@@ -345,12 +334,7 @@ static bool fuzz_fetchInput(run_t* run) {
LOG_E("input_prepareFileExternally() failed");
return false;
}
- } else if (run->global->exe.feedbackMutateCommand) {
- if (!input_prepareStaticFile(run, true, false)) {
- LOG_E("input_prepareFileDynamically() failed");
- return false;
- }
- } else if (!input_prepareStaticFile(run, true /* rewind */, true)) {
+ } else if (!input_prepareStaticFile(run, true /* rewind */)) {
LOG_E("input_prepareFile() failed");
return false;
}
@@ -361,11 +345,6 @@ static bool fuzz_fetchInput(run_t* run) {
return false;
}
- if (run->global->exe.feedbackMutateCommand && !input_feedbackMutateFile(run)) {
- LOG_E("input_feedbackMutateFile() failed");
- return false;
- }
-
return true;
}
@@ -548,7 +527,7 @@ void fuzz_threadsStart(honggfuzz_t* hfuzz) {
LOG_I("Entering phase - Feedback Driven Mode (SocketFuzzer)");
hfuzz->feedback.state = _HF_STATE_DYNAMIC_MAIN;
} else if (hfuzz->feedback.dynFileMethod != _HF_DYNFILE_NONE) {
- LOG_I("Entering phase 1/3: Dry Run");
+ LOG_I("Entering phase 1/2: Dry Run");
hfuzz->feedback.state = _HF_STATE_DYNAMIC_DRY_RUN;
} else {
LOG_I("Entering phase: Static");
@@ -556,8 +535,7 @@ void fuzz_threadsStart(honggfuzz_t* hfuzz) {
}
for (size_t i = 0; i < hfuzz->threads.threadsMax; i++) {
- if (!subproc_runThread(
- hfuzz, &hfuzz->threads.threads[i], fuzz_threadNew, /* joinable= */ true)) {
+ if (!subproc_runThread(hfuzz, &hfuzz->threads.threads[i], fuzz_threadNew)) {
PLOG_F("Couldn't run a thread #%zu", i);
}
}
diff --git a/hfuzz_cc/hfuzz-cc.c b/hfuzz_cc/hfuzz-cc.c
index 288d0406..9bc0c901 100644
--- a/hfuzz_cc/hfuzz-cc.c
+++ b/hfuzz_cc/hfuzz-cc.c
@@ -73,8 +73,8 @@ static bool useM32() {
return false;
}
-static bool useBelowGCC8() {
- if (getenv("HFUZZ_CC_USE_GCC_BELOW_8")) {
+static bool useGccGE8() {
+ if (getenv("HFUZZ_CC_USE_GCC_GE_8")) {
return true;
}
return false;
@@ -103,7 +103,7 @@ static bool isLDMode(int argc, char** argv) {
static bool isFSanitizeFuzzer(int argc, char** argv) {
for (int i = 1; i < argc; i++) {
- if (util_strStartsWith(argv[i], "-fsanitize=") && strstr(argv[i], "fuzzer")) {
+ if (strcmp(argv[i], "-fsanitize=fuzzer") == 0) {
return true;
}
}
@@ -247,7 +247,7 @@ static bool getLibPath(
return true;
}
-static char* getLibHFuzzPath() {
+static char* getLibHfuzzPath() {
extern uint8_t lhfuzz_start __asm__("lhfuzz_start");
extern uint8_t lhfuzz_end __asm__("lhfuzz_end");
@@ -279,17 +279,19 @@ static char* getLibHFNetDriverPath() {
static void commonOpts(int* j, char** args) {
args[(*j)++] = getIncPaths();
if (isGCC) {
- if (useBelowGCC8()) {
- /* trace-pc is the best that gcc-6/7 currently offers */
+ if (useGccGE8()) {
+ /* gcc-8 offers trace-cmp as well, but it's not that widely used yet */
args[(*j)++] = "-fsanitize-coverage=trace-pc,trace-cmp";
} else {
- /* gcc-8+ offers trace-cmp as well, but it's not that widely used yet */
+ /* trace-pc is the best that gcc-6/7 currently offers */
args[(*j)++] = "-fsanitize-coverage=trace-pc";
}
} else {
args[(*j)++] = "-Wno-unused-command-line-argument";
args[(*j)++] = "-fsanitize-coverage=trace-pc-guard,trace-cmp,trace-div,indirect-calls";
args[(*j)++] = "-mllvm";
+ args[(*j)++] = "-sanitizer-coverage-prune-blocks=0";
+ args[(*j)++] = "-mllvm";
args[(*j)++] = "-sanitizer-coverage-level=3";
}
@@ -304,14 +306,14 @@ static void commonOpts(int* j, char** args) {
/* Make it possible to use the libhfnetdriver */
args[(*j)++] = "-DHFND_FUZZING_ENTRY_FUNCTION_CXX(x,y)="
- "extern const char* LIBHFNETDRIVER_module_netdriver;"
- "const char** LIBHFNETDRIVER_tmp1 = &LIBHFNETDRIVER_module_netdriver;"
"extern \"C\" int HonggfuzzNetDriver_main(x,y);"
+ "extern const char* LIBHFNETDRIVER_module_netdriver;"
+ "const char** LIBHFNETDRIVER_module_main = &LIBHFNETDRIVER_module_netdriver;"
"int HonggfuzzNetDriver_main(x,y)";
args[(*j)++] = "-DHFND_FUZZING_ENTRY_FUNCTION(x,y)="
- "extern const char* LIBHFNETDRIVER_module_netdriver;"
- "const char** LIBHFNETDRIVER_tmp1 = &LIBHFNETDRIVER_module_netdriver;"
"int HonggfuzzNetDriver_main(x,y);"
+ "extern const char* LIBHFNETDRIVER_module_netdriver;"
+ "const char** LIBHFNETDRIVER_module_main = &LIBHFNETDRIVER_module_netdriver;"
"int HonggfuzzNetDriver_main(x,y)";
if (useM32()) {
@@ -335,11 +337,6 @@ static int ccMode(int argc, char** argv) {
args[j++] = argv[i];
}
- /* Disable -fsanitize=fuzzer */
- if (isFSanitizeFuzzer(argc, argv)) {
- args[j++] = "-fno-sanitize=fuzzer";
- }
-
return execCC(j, args);
}
@@ -393,26 +390,26 @@ static int ldMode(int argc, char** argv) {
args[j++] = "-Wl,--wrap=strcsequal";
#endif /* _HF_ARCH_DARWIN */
+ for (int i = 1; i < argc; i++) {
+ args[j++] = argv[i];
+ }
+
+ /* Reference standard honggfuzz libraries (libhfuzz and libhfnetdriver) */
+ args[j++] = getLibHFNetDriverPath();
+ args[j++] = getLibHfuzzPath();
+ args[j++] = getLibHFNetDriverPath();
+
/* Pull modules defining the following symbols (if they exist) */
#ifdef _HF_ARCH_DARWIN
- args[j++] = "-Wl,-U,_HonggfuzzNetDriver_main";
+ args[j++] = "-Wl,-U,_LIBHFNETDRIVER_module_main",
args[j++] = "-Wl,-U,_LIBHFUZZ_module_instrument";
args[j++] = "-Wl,-U,_LIBHFUZZ_module_memorycmp";
#else /* _HF_ARCH_DARWIN */
- args[j++] = "-Wl,-u,HonggfuzzNetDriver_main";
+ args[j++] = "-Wl,-u,LIBHFNETDRIVER_module_main",
args[j++] = "-Wl,-u,LIBHFUZZ_module_instrument";
args[j++] = "-Wl,-u,LIBHFUZZ_module_memorycmp";
#endif /* _HF_ARCH_DARWIN */
- for (int i = 1; i < argc; i++) {
- args[j++] = argv[i];
- }
-
- /* Reference standard honggfuzz libraries (libhfuzz and libhfnetdriver) */
- args[j++] = getLibHFNetDriverPath();
- args[j++] = getLibHFuzzPath();
- args[j++] = getLibHFNetDriverPath();
-
/* Needed by the libhfcommon */
args[j++] = "-pthread";
diff --git a/honggfuzz.c b/honggfuzz.c
index 4a3eb741..0bffb99b 100644
--- a/honggfuzz.c
+++ b/honggfuzz.c
@@ -64,12 +64,14 @@ static void exitWithMsg(const char* msg, int exit_code) {
}
}
+static bool showDisplay = true;
static void sigHandler(int sig) {
/* We should not terminate upon SIGALRM delivery */
if (sig == SIGALRM) {
if (fuzz_shouldTerminate()) {
exitWithMsg("Terminating forcefully\n", EXIT_FAILURE);
}
+ showDisplay = true;
return;
}
/* Do nothing with pings from the main thread */
@@ -142,7 +144,7 @@ static void setupSignalsPreThreads(void) {
/* This is checked for via sigwaitinfo/sigtimedwait */
sigaddset(&ss, SIGUSR1);
if (sigprocmask(SIG_SETMASK, &ss, NULL) != 0) {
- PLOG_F("sigprocmask(SIG_SETMASK)");
+ PLOG_F("pthread_sigmask(SIG_SETMASK)");
}
struct sigaction sa = {
@@ -178,7 +180,7 @@ static void setupSignalsMainThread(void) {
sigaddset(&ss, SIGINT);
sigaddset(&ss, SIGQUIT);
sigaddset(&ss, SIGALRM);
- if (pthread_sigmask(SIG_UNBLOCK, &ss, NULL) != 0) {
+ if (sigprocmask(SIG_UNBLOCK, &ss, NULL) != 0) {
PLOG_F("pthread_sigmask(SIG_UNBLOCK)");
}
}
@@ -219,7 +221,6 @@ static void* signalThread(void* arg) {
if (fuzz_isTerminating()) {
break;
}
-
if (sig == SIGCHLD) {
pingThreads(hfuzz);
}
@@ -291,7 +292,7 @@ int main(int argc, char** argv) {
fuzz_threadsStart(&hfuzz);
pthread_t sigthread;
- if (!subproc_runThread(&hfuzz, &sigthread, signalThread, /* joinable= */ false)) {
+ if (!subproc_runThread(&hfuzz, &sigthread, signalThread)) {
LOG_F("Couldn't start the signal thread");
}
@@ -299,8 +300,9 @@ int main(int argc, char** argv) {
setupMainThreadTimer();
for (;;) {
- if (hfuzz.display.useScreen) {
+ if (hfuzz.display.useScreen && showDisplay) {
display_display(&hfuzz);
+ showDisplay = false;
}
if (ATOMIC_GET(sigReceived) > 0) {
LOG_I("Signal %d (%s) received, terminating", ATOMIC_GET(sigReceived),
@@ -325,7 +327,7 @@ int main(int argc, char** argv) {
break;
}
pingThreads(&hfuzz);
- util_sleepForMSec(50); /* 50ms */
+ usleep(50000); /* 50ms */
}
/* Clean-up global buffers */
diff --git a/honggfuzz.h b/honggfuzz.h
index d0a219e6..a6147c30 100644
--- a/honggfuzz.h
+++ b/honggfuzz.h
@@ -38,7 +38,7 @@
#include "libhfcommon/util.h"
#define PROG_NAME "honggfuzz"
-#define PROG_VERSION "1.9"
+#define PROG_VERSION "1.8"
/* Name of the template which will be replaced with the proper name of the file */
#define _HF_FILE_PLACEHOLDER "___FILE___"
@@ -149,8 +149,7 @@ typedef enum {
_HF_STATE_UNSET = 0,
_HF_STATE_STATIC = 1,
_HF_STATE_DYNAMIC_DRY_RUN = 2,
- _HF_STATE_DYNAMIC_SWITCH_TO_MAIN = 3,
- _HF_STATE_DYNAMIC_MAIN = 4,
+ _HF_STATE_DYNAMIC_MAIN = 3,
} fuzzState_t;
struct dynfile_t {
@@ -207,7 +206,6 @@ typedef struct {
bool fuzzStdin;
const char* externalCommand;
const char* postExternalCommand;
- const char* feedbackMutateCommand;
bool netDriver;
bool persistent;
uint64_t asLimit;
diff --git a/input.c b/input.c
index 372ee055..70182162 100644
--- a/input.c
+++ b/input.c
@@ -56,12 +56,13 @@ void input_setSize(run_t* run, size_t sz) {
if (sz > run->global->mutate.maxFileSz) {
PLOG_F("Too large size requested: %zu > maxSize: %zu", sz, run->global->mutate.maxFileSz);
}
- /* ftruncate of a mmaped file fails under CygWin, it's also painfully slow under MacOS X */
-#if !defined(__CYGWIN__) && !defined(_HF_ARCH_DARWIN)
+ /* ftruncate of a mmaped file fails under CygWin */
+#if !defined(__CYGWIN__)
+ /* ftruncate for each change of a dynamic file size might be expensive though */
if (TEMP_FAILURE_RETRY(ftruncate(run->dynamicFileFd, sz)) == -1) {
PLOG_W("ftruncate(run->dynamicFileFd=%d, sz=%zu)", run->dynamicFileFd, sz);
}
-#endif /* !defined(__CYGWIN__) && !defined(_HF_ARCH_DARWIN) */
+#endif /* !defined(__CYGWIN__) */
run->dynamicFileSz = sz;
}
@@ -183,7 +184,7 @@ bool input_init(honggfuzz_t* hfuzz) {
return false;
}
- int dir_fd = TEMP_FAILURE_RETRY(open(hfuzz->io.inputDir, O_DIRECTORY | O_RDONLY | O_CLOEXEC));
+ int dir_fd = open(hfuzz->io.inputDir, O_DIRECTORY | O_RDONLY | O_CLOEXEC);
if (dir_fd == -1) {
PLOG_W("open('%s', O_DIRECTORY|O_RDONLY|O_CLOEXEC)", hfuzz->io.inputDir);
return false;
@@ -311,7 +312,7 @@ bool input_parseBlacklist(honggfuzz_t* hfuzz) {
return true;
}
-bool input_prepareDynamicInput(run_t* run, bool need_mangele) {
+bool input_prepareDynamicInput(run_t* run) {
{
MX_SCOPED_RWLOCK_READ(&run->global->io.dynfileq_mutex);
@@ -332,12 +333,12 @@ bool input_prepareDynamicInput(run_t* run, bool need_mangele) {
input_setSize(run, run->dynfileqCurrent->size);
memcpy(run->dynamicFile, run->dynfileqCurrent->data, run->dynfileqCurrent->size);
- if (need_mangele) mangle_mangleContent(run);
+ mangle_mangleContent(run);
return true;
}
-bool input_prepareStaticFile(run_t* run, bool rewind, bool need_mangele) {
+bool input_prepareStaticFile(run_t* run, bool rewind) {
char fname[PATH_MAX];
if (!input_getNext(run, fname, /* rewind= */ rewind)) {
return false;
@@ -352,7 +353,7 @@ bool input_prepareStaticFile(run_t* run, bool rewind, bool need_mangele) {
}
input_setSize(run, fileSz);
- if (need_mangele) mangle_mangleContent(run);
+ mangle_mangleContent(run);
return true;
}
@@ -421,35 +422,3 @@ bool input_postProcessFile(run_t* run) {
input_setSize(run, (size_t)sz);
return true;
}
-
-bool input_feedbackMutateFile(run_t* run) {
- int fd =
- files_writeBufToTmpFile(run->global->io.workDir, run->dynamicFile, run->dynamicFileSz, 0);
- if (fd == -1) {
- LOG_E("Couldn't write input file to a temporary buffer");
- return false;
- }
- defer {
- close(fd);
- };
-
- char fname[PATH_MAX];
- snprintf(fname, sizeof(fname), "/dev/fd/%d", fd);
-
- const char* const argv[] = {run->global->exe.feedbackMutateCommand, fname, NULL};
- if (subproc_System(run, argv) != 0) {
- LOG_E("Subprocess '%s' returned abnormally", run->global->exe.feedbackMutateCommand);
- return false;
- }
- LOG_D("Subporcess '%s' finished with success", run->global->exe.externalCommand);
-
- input_setSize(run, run->global->mutate.maxFileSz);
- ssize_t sz = files_readFromFdSeek(fd, run->dynamicFile, run->global->mutate.maxFileSz, 0);
- if (sz == -1) {
- LOG_E("Couldn't read file from fd=%d", fd);
- return false;
- }
-
- input_setSize(run, (size_t)sz);
- return true;
-}
diff --git a/input.h b/input.h
index 15664ce7..769335a5 100644
--- a/input.h
+++ b/input.h
@@ -31,10 +31,9 @@ extern bool input_getNext(run_t* run, char* fname, bool rewind);
extern bool input_init(honggfuzz_t* hfuzz);
extern bool input_parseDictionary(honggfuzz_t* hfuzz);
extern bool input_parseBlacklist(honggfuzz_t* hfuzz);
-extern bool input_prepareDynamicInput(run_t* run, bool need_mangele);
-extern bool input_prepareStaticFile(run_t* run, bool rewind, bool need_mangele);
+extern bool input_prepareDynamicInput(run_t* run);
+extern bool input_prepareStaticFile(run_t* run, bool rewind);
extern bool input_prepareExternalFile(run_t* run);
extern bool input_postProcessFile(run_t* run);
-extern bool input_feedbackMutateFile(run_t* run);
#endif /* ifndef _HF_INPUT_H_ */
diff --git a/libhfcommon/files.h b/libhfcommon/files.h
index f535a366..aa257d15 100644
--- a/libhfcommon/files.h
+++ b/libhfcommon/files.h
@@ -24,13 +24,13 @@
#ifndef _HF_COMMON_FILES_H_
#define _HF_COMMON_FILES_H_
+#include "common.h"
+
#include <stdbool.h>
#include <stdint.h>
#include <sys/socket.h>
#include <unistd.h>
-#include "common.h"
-
extern ssize_t files_readFileToBufMax(const char* fileName, uint8_t* buf, size_t fileMaxSz);
extern bool files_writeBufToFile(
diff --git a/libhfcommon/util.c b/libhfcommon/util.c
index 51ec608e..e40a608f 100644
--- a/libhfcommon/util.c
+++ b/libhfcommon/util.c
@@ -24,7 +24,6 @@
#include "libhfcommon/util.h"
#include <ctype.h>
-#include <errno.h>
#include <fcntl.h>
#include <inttypes.h>
#include <math.h>
@@ -181,13 +180,6 @@ int util_ssnprintf(char* str, size_t size, const char* format, ...) {
return ret;
}
-bool util_strStartsWith(const char* str, const char* tofind) {
- if (strncmp(str, tofind, strlen(tofind)) == 0) {
- return true;
- }
- return false;
-}
-
void util_getLocalTime(const char* fmt, char* buf, size_t len, time_t tm) {
struct tm ltime;
localtime_r(&tm, &ltime);
@@ -205,13 +197,13 @@ void util_closeStdio(bool close_stdin, bool close_stdout, bool close_stderr) {
}
if (close_stdin) {
- TEMP_FAILURE_RETRY(dup2(fd, STDIN_FILENO));
+ dup2(fd, STDIN_FILENO);
}
if (close_stdout) {
- TEMP_FAILURE_RETRY(dup2(fd, STDOUT_FILENO));
+ dup2(fd, STDOUT_FILENO);
}
if (close_stderr) {
- TEMP_FAILURE_RETRY(dup2(fd, STDERR_FILENO));
+ dup2(fd, STDERR_FILENO);
}
if (fd > STDERR_FILENO) {
@@ -243,17 +235,6 @@ int64_t util_timeNowMillis(void) {
return (((int64_t)tv.tv_sec * 1000LL) + ((int64_t)tv.tv_usec / 1000LL));
}
-void util_sleepForMSec(uint64_t msec) {
- if (msec == 0) {
- return;
- }
- struct timespec ts = {
- .tv_sec = msec / 1000U,
- .tv_nsec = (msec % 1000U) * 1000000U,
- };
- TEMP_FAILURE_RETRY(nanosleep(&ts, &ts));
-}
-
uint64_t util_getUINT32(const uint8_t* buf) {
uint32_t r;
memcpy(&r, buf, sizeof(r));
diff --git a/libhfcommon/util.h b/libhfcommon/util.h
index d71b3a70..1efc3c1f 100644
--- a/libhfcommon/util.h
+++ b/libhfcommon/util.h
@@ -100,8 +100,6 @@ extern int util_ssnprintf(char* str, size_t size, const char* format, ...)
extern int util_vssnprintf(char* str, size_t size, const char* format, va_list ap);
-extern bool util_strStartsWith(const char* str, const char* tofind);
-
extern void util_getLocalTime(const char* fmt, char* buf, size_t len, time_t tm);
extern void util_closeStdio(bool close_stdin, bool close_stdout, bool close_stderr);
@@ -109,7 +107,6 @@ extern void util_closeStdio(bool close_stdin, bool close_stdout, bool close_stde
extern uint64_t util_hash(const char* buf, size_t len);
extern int64_t util_timeNowMillis(void);
-extern void util_sleepForMSec(uint64_t msec);
extern uint64_t util_getUINT32(const uint8_t* buf);
extern uint64_t util_getUINT64(const uint8_t* buf);
diff --git a/libhfnetdriver/netdriver.c b/libhfnetdriver/netdriver.c
index 2b4f1ea8..a9178287 100644
--- a/libhfnetdriver/netdriver.c
+++ b/libhfnetdriver/netdriver.c
@@ -44,7 +44,11 @@ static struct {
.sa_family = AF_UNSPEC,
};
-extern int HonggfuzzNetDriver_main(int argc, char **argv);
+__attribute__((weak)) int HonggfuzzNetDriver_main(
+ int argc HF_ATTR_UNUSED, char **argv HF_ATTR_UNUSED) {
+ LOG_F("The HonggfuzzNetDriver_main function was not defined in your code");
+ return EXIT_FAILURE;
+}
static void *netDriver_mainProgram(void *unused HF_ATTR_UNUSED) {
int ret = HonggfuzzNetDriver_main(hfnd_globals.argc_server, hfnd_globals.argv_server);
@@ -127,18 +131,14 @@ static int netDriver_sockConnAddr(const struct sockaddr *addr, socklen_t socklen
}
int val = 1;
if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &val, (socklen_t)sizeof(val)) == -1) {
- PLOG_W("setsockopt(sock=%d, SOL_SOCKET, SO_REUSEADDR, %d)", sock, val);
+ PLOG_W("setsockopt(sock=%d, SOL_SOCKET, SO_REUSEADDR, 1)", sock);
}
#if defined(SOL_TCP) && defined(TCP_NODELAY)
val = 1;
if (setsockopt(sock, SOL_TCP, TCP_NODELAY, &val, (socklen_t)sizeof(val)) == -1) {
- PLOG_W("setsockopt(sock=%d, SOL_TCP, TCP_NODELAY, %d)", sock, val);
- }
-#endif /* defined(SOL_TCP) && defined(TCP_NODELAY) */
- val = (1024ULL * 1024ULL); /* 1MiB */
- if (setsockopt(sock, SOL_SOCKET, SO_SNDBUF, &val, (socklen_t)sizeof(val)) == -1) {
- PLOG_D("setsockopt(sock=%d, SOL_SOCKET, SO_SNDBUF, %d)", sock, val);
+ PLOG_W("setsockopt(sock=%d, SOL_TCP, TCP_NODELAY, 1)", sock);
}
+#endif /* defined(SOL_TCP) && defined(TCP_NODELAY) */
netDriver_bindToRndLoopback(sock, addr->sa_family);
@@ -252,8 +252,7 @@ static void netDriver_waitForServerReady(uint16_t portno) {
"connections at TCP4:127.0.0.1:%" PRIu16 " or at TCP6:[::1]:%" PRIu16
". Sleeping for 0.5 seconds ...",
(int)getpid(), portno, portno);
-
- util_sleepForMSec(500);
+ usleep(500000U);
}
}
@@ -284,6 +283,11 @@ __attribute__((weak)) int LLVMFuzzerInitialize(int *argc, char ***argv) {
LOG_I(
"Honggfuzz Net Driver (pid=%d): '%s' is set, skipping fuzzing, calling main() directly",
getpid(), HFND_SKIP_FUZZING_ENV);
+ if (!HonggfuzzNetDriver_main) {
+ LOG_F("Honggfuzz Net Driver (pid=%d): HonggfuzzNetDriver_main was not defined in your "
+ "code",
+ getpid());
+ }
exit(HonggfuzzNetDriver_main(*argc, *argv));
}
@@ -317,7 +321,7 @@ __attribute__((weak)) int LLVMFuzzerTestOneInput(const uint8_t *buf, size_t len)
LOG_F("Couldn't connect to the server TCP port");
}
if (!files_sendToSocket(sock, buf, len)) {
- PLOG_W("files_sendToSocket(sock=%d, len=%zu) failed", sock, len);
+ PLOG_E("files_sendToSocket(sock=%d, len=%zu) failed", sock, len);
close(sock);
return 0;
}
diff --git a/libhfuzz/memorycmp.c b/libhfuzz/memorycmp.c
index 4a42ed95..b955314d 100644
--- a/libhfuzz/memorycmp.c
+++ b/libhfuzz/memorycmp.c
@@ -2,6 +2,7 @@
#include <inttypes.h>
#include <stdbool.h>
#include <stdint.h>
+#include <string.h>
#include <unistd.h>
#include "libhfcommon/common.h"
@@ -66,13 +67,13 @@ static inline int HF_strncasecmp(const char* s1, const char* s2, size_t n, uintp
}
static inline char* HF_strstr(const char* haystack, const char* needle, uintptr_t addr) {
- size_t needle_len = __builtin_strlen(needle);
+ size_t needle_len = strlen(needle);
if (needle_len == 0) {
return (char*)haystack;
}
const char* h = haystack;
- for (; (h = __builtin_strchr(h, needle[0])) != NULL; h++) {
+ for (; (h = strchr(h, needle[0])) != NULL; h++) {
if (HF_strncmp(h, needle, needle_len, addr) == 0) {
return (char*)h;
}
@@ -81,7 +82,7 @@ static inline char* HF_strstr(const char* haystack, const char* needle, uintptr_
}
static inline char* HF_strcasestr(const char* haystack, const char* needle, uintptr_t addr) {
- size_t needle_len = __builtin_strlen(needle);
+ size_t needle_len = strlen(needle);
for (size_t i = 0; haystack[i]; i++) {
if (HF_strncasecmp(&haystack[i], needle, needle_len, addr) == 0) {
return (char*)(&haystack[i]);
@@ -127,13 +128,10 @@ static inline void* HF_memmem(const void* haystack, size_t haystacklen, const vo
}
static inline char* HF_strcpy(char* dest, const char* src, uintptr_t addr) {
- size_t len = __builtin_strlen(src);
- if (len > 0) {
- uint32_t level = (sizeof(len) * 8) - __builtin_clzl(len);
- instrumentUpdateCmpMap(addr, level);
- }
+ size_t len = strlen(src);
- return __builtin_memcpy(dest, src, len + 1);
+ instrumentUpdateCmpMap(addr, len);
+ return memcpy(dest, src, len + 1);
}
/* Define a weak function x, as well as __wrap_x pointing to x */
diff --git a/libhfuzz/persistent.c b/libhfuzz/persistent.c
index 5e015c39..4f725dc2 100644
--- a/libhfuzz/persistent.c
+++ b/libhfuzz/persistent.c
@@ -1,3 +1,5 @@
+#include "libhfuzz/libhfuzz.h"
+
#include <errno.h>
#include <fcntl.h>
#include <inttypes.h>
@@ -19,7 +21,6 @@
#include "libhfcommon/log.h"
#include "libhfuzz/fetch.h"
#include "libhfuzz/instrument.h"
-#include "libhfuzz/libhfuzz.h"
__attribute__((weak)) int LLVMFuzzerInitialize(
int* argc HF_ATTR_UNUSED, char*** argv HF_ATTR_UNUSED) {
diff --git a/linux/arch.c b/linux/arch.c
index cda074f1..d3fd0cc3 100644
--- a/linux/arch.c
+++ b/linux/arch.c
@@ -62,8 +62,10 @@ static __thread jmp_buf env;
HF_ATTR_NO_SANITIZE_ADDRESS
HF_ATTR_NO_SANITIZE_MEMORY
-__attribute__((noreturn)) static int arch_cloneFunc(void* arg HF_ATTR_UNUSED) {
+static int arch_cloneFunc(void* arg HF_ATTR_UNUSED) {
longjmp(env, 1);
+ abort();
+ return 0;
}
/* Avoid problem with caching of PID/TID in glibc */
@@ -205,7 +207,6 @@ void arch_prepareParentAfterFork(run_t* run) {
}
}
- arch_perfClose(run);
if (!arch_perfOpen(run)) {
LOG_F("Couldn't open perf event for pid=%d", (int)run->pid);
}
@@ -298,6 +299,9 @@ void arch_reapChild(run_t* run) {
}
}
+ if (run->pid == 0) {
+ arch_perfClose(run);
+ }
arch_perfAnalyze(run);
}
diff --git a/linux/perf.c b/linux/perf.c
index f3b805d7..46103430 100644
--- a/linux/perf.c
+++ b/linux/perf.c
@@ -199,7 +199,6 @@ static bool arch_perfCreate(run_t* run, pid_t pid, dynFileMethod_t method, int*
NULL, pem->aux_size, PROT_READ, MAP_SHARED, *perfFd, pem->aux_offset)) == MAP_FAILED) {
munmap(run->linux.perfMmapBuf, _HF_PERF_MAP_SZ + getpagesize());
run->linux.perfMmapBuf = NULL;
- run->linux.perfMmapAux = NULL;
PLOG_W(
"mmap(mmapAuxBuf) failed, try increasing the kernel.perf_event_mlock_kb sysctl (up to "
"even 300000000)");
@@ -252,7 +251,7 @@ out:
close(run->linux.cpuBranchFd);
run->linux.cpuBranchFd = -1;
close(run->linux.cpuIptBtsFd);
- run->linux.cpuIptBtsFd = -1;
+ run->linux.cpuIptBtsFd = 1;
return false;
}
diff --git a/linux/pt.c b/linux/pt.c
index 0c20a610..e9103279 100644
--- a/linux/pt.c
+++ b/linux/pt.c
@@ -21,15 +21,15 @@
*
*/
-#include "pt.h"
+#include "libhfcommon/common.h"
#include <inttypes.h>
#include <linux/perf_event.h>
#include <stdio.h>
-#include "libhfcommon/common.h"
#include "libhfcommon/log.h"
#include "libhfcommon/util.h"
+#include "pt.h"
#ifdef _HF_LINUX_INTEL_PT_LIB
diff --git a/linux/trace.c b/linux/trace.c
index 3d827ee2..fafc2dde 100644
--- a/linux/trace.c
+++ b/linux/trace.c
@@ -1054,7 +1054,7 @@ static void arch_traceExitSaveData(run_t* run, pid_t pid) {
}
}
- int fd = TEMP_FAILURE_RETRY(open(run->crashFileName, O_WRONLY | O_EXCL | O_CREAT, 0600));
+ int fd = open(run->crashFileName, O_WRONLY | O_EXCL | O_CREAT, 0600);
if (fd == -1 && errno == EEXIST) {
LOG_I("It seems that '%s' already exists, skipping", run->crashFileName);
return;
diff --git a/mac/arch.c b/mac/arch.c
index d641cea8..e0d0ca2e 100644
--- a/mac/arch.c
+++ b/mac/arch.c
@@ -24,19 +24,11 @@
#include "arch.h"
-#import <Foundation/Foundation.h>
#include <ctype.h>
#include <dirent.h>
#include <errno.h>
#include <fcntl.h>
-#include <mach/i386/thread_status.h>
-#include <mach/mach.h>
-#include <mach/mach_types.h>
-#include <mach/mach_vm.h>
-#include <mach/task_info.h>
#include <poll.h>
-#include <pthread.h>
-#include <servers/bootstrap.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
@@ -57,9 +49,20 @@
#include "libhfcommon/files.h"
#include "libhfcommon/log.h"
#include "libhfcommon/util.h"
+#include "subproc.h"
+
+#include <mach/i386/thread_status.h>
+#include <mach/mach.h>
+#include <mach/mach_types.h>
+#include <mach/mach_vm.h>
+#include <mach/task_info.h>
+#include <pthread.h>
+#include <servers/bootstrap.h>
+
#include "mach_exc.h"
#include "mach_excServer.h"
-#include "subproc.h"
+
+#import <Foundation/Foundation.h>
/*
* Interface to third_party/CrashReport_*.o
@@ -179,12 +182,12 @@ static void arch_generateReport(run_t* run, int termsig) {
* Returns true if a process exited (so, presumably, we can delete an input
* file)
*/
-static void arch_analyzeSignal(run_t* run, int status) {
+static bool arch_analyzeSignal(run_t* run, int status) {
/*
* Resumed by delivery of SIGCONT
*/
if (WIFCONTINUED(status)) {
- return;
+ return false;
}
/*
@@ -192,7 +195,7 @@ static void arch_analyzeSignal(run_t* run, int status) {
*/
if (WIFEXITED(status)) {
LOG_D("Process (pid %d) exited normally with status %d", run->pid, WEXITSTATUS(status));
- return;
+ return true;
}
/*
@@ -201,14 +204,14 @@ static void arch_analyzeSignal(run_t* run, int status) {
if (!WIFSIGNALED(status)) {
LOG_E("Process (pid %d) exited with the following status %d, please report that as a bug",
run->pid, status);
- return;
+ return true;
}
int termsig = WTERMSIG(status);
LOG_D("Process (pid %d) killed by signal %d '%s'", run->pid, termsig, strsignal(termsig));
if (!arch_sigs[termsig].important) {
LOG_D("It's not that important signal, skipping");
- return;
+ return true;
}
/*
@@ -242,7 +245,7 @@ static void arch_analyzeSignal(run_t* run, int status) {
run->backtrace) != -1)) {
LOG_I("Blacklisted stack hash '%" PRIx64 "', skipping", run->backtrace);
ATOMIC_POST_INC(run->global->cnts.blCrashesCnt);
- return;
+ return true;
}
/* If dry run mode, copy file with same name into workspace */
@@ -268,13 +271,13 @@ static void arch_analyzeSignal(run_t* run, int status) {
LOG_I("Crash (dup): '%s' already exists, skipping", run->crashFileName);
// Clear filename so that verifier can understand we hit a duplicate
memset(run->crashFileName, 0, sizeof(run->crashFileName));
- return;
+ return true;
}
if (!files_writeBufToFile(run->crashFileName, run->dynamicFile, run->dynamicFileSz,
O_CREAT | O_EXCL | O_WRONLY)) {
LOG_E("Couldn't save crash as '%s'", run->crashFileName);
- return;
+ return true;
}
LOG_I("Crash: saved as '%s'", run->crashFileName);
@@ -284,6 +287,8 @@ static void arch_analyzeSignal(run_t* run, int status) {
ATOMIC_CLEAR(run->global->cfg.dynFileIterExpire);
arch_generateReport(run, termsig);
+
+ return true;
}
pid_t arch_fork(run_t* run HF_ATTR_UNUSED) {
@@ -357,41 +362,6 @@ void arch_prepareParent(run_t* run HF_ATTR_UNUSED) {
void arch_prepareParentAfterFork(run_t* run HF_ATTR_UNUSED) {
}
-static bool arch_checkWait(run_t* run) {
- /* All queued wait events must be tested when SIGCHLD was delivered */
- for (;;) {
- int status;
- /* Wait for the whole process group of run->pid */
- pid_t pid = TEMP_FAILURE_RETRY(wait4(-(run->pid), &status, WNOHANG, NULL));
- if (pid == 0) {
- return false;
- }
- if (pid == -1 && errno == ECHILD) {
- LOG_D("No more processes to track");
- return true;
- }
- if (pid == -1) {
- PLOG_F("wait4(pid/session=%d) failed", (int)run->pid);
- }
-
- arch_analyzeSignal(run, status);
-
- char statusStr[4096];
- LOG_D("pid=%d returned with status: %s", pid,
- subproc_StatusToStr(status, statusStr, sizeof(statusStr)));
-
- if (pid == run->pid && (WIFEXITED(status) || WIFSIGNALED(status))) {
- if (run->global->exe.persistent) {
- if (!fuzz_isTerminating()) {
- LOG_W("Persistent mode: PID %d exited with status: %s", pid,
- subproc_StatusToStr(status, statusStr, sizeof(statusStr)));
- }
- }
- return true;
- }
- }
-}
-
void arch_reapChild(run_t* run) {
for (;;) {
if (subproc_persistentModeStateMachine(run)) {
@@ -420,7 +390,38 @@ void arch_reapChild(run_t* run) {
}
}
- if (arch_checkWait(run)) {
+ int status;
+ int ret = waitpid(run->pid, &status, WNOHANG);
+ if (ret == 0) {
+ continue;
+ }
+ if (ret == -1 && errno == EINTR) {
+ continue;
+ }
+ if (ret == -1 && errno == ECHILD) {
+ run->pid = 0;
+ break;
+ }
+ if (ret == -1) {
+ PLOG_W("waitpid(pid=%d)", run->pid);
+ continue;
+ }
+ if (ret != run->pid) {
+ continue;
+ }
+
+ char strStatus[4096];
+ if (run->global->exe.persistent && (WIFEXITED(status) || WIFSIGNALED(status))) {
+ if (!fuzz_isTerminating()) {
+ LOG_W("Persistent mode: PID %d exited with status: %s", ret,
+ subproc_StatusToStr(status, strStatus, sizeof(strStatus)));
+ }
+ }
+
+ LOG_D("Process (pid %d) came back with status: %s", run->pid,
+ subproc_StatusToStr(status, strStatus, sizeof(strStatus)));
+
+ if (arch_analyzeSignal(run, status)) {
run->pid = 0;
break;
}
diff --git a/mangle.c b/mangle.c
index 0a20d587..4d66c811 100644
--- a/mangle.c
+++ b/mangle.c
@@ -828,6 +828,11 @@ static void mangle_CloneByte(run_t* run) {
run->dynamicFile[off2] = tmp;
}
+static void mangle_Resize(run_t* run) {
+ size_t sz = util_rndGet(1, run->global->mutate.maxFileSz);
+ input_setSize(run, sz);
+}
+
static void mangle_Expand(run_t* run) {
size_t off = util_rndGet(0, run->dynamicFileSz - 1);
size_t len = util_rndGet(1, run->dynamicFileSz - off);
@@ -876,6 +881,7 @@ static void mangle_ASCIIVal(run_t* run) {
void mangle_mangleContent(run_t* run) {
static void (*const mangleFuncs[])(run_t * run) = {
+ mangle_Resize,
mangle_Byte,
mangle_Bit,
mangle_Bytes,
@@ -897,6 +903,7 @@ void mangle_mangleContent(run_t* run) {
};
static void (*const manglePrintableFuncs[])(run_t * run) = {
+ mangle_Resize,
mangle_PrintableByte,
mangle_BitPrintable,
mangle_PrintableBytes,
diff --git a/netbsd/arch.c b/netbsd/arch.c
index bacd1ee1..63b758e5 100644
--- a/netbsd/arch.c
+++ b/netbsd/arch.c
@@ -138,12 +138,15 @@ static bool arch_checkWait(run_t* run) {
for (;;) {
int status;
/* Wait for the whole process group of run->pid */
- pid_t pid = TEMP_FAILURE_RETRY(wait6(P_SID, run->pid, &status,
+ pid_t pid = wait6(P_SID, run->pid, &status,
WALLSIG | WALTSIG | WTRAPPED | WEXITED | WUNTRACED | WCONTINUED | WSTOPPED | WNOHANG,
- NULL, NULL));
+ NULL, NULL);
if (pid == 0) {
return false;
}
+ if (pid == -1 && errno == EINTR) {
+ return false;
+ }
if (pid == -1 && errno == ECHILD) {
LOG_D("No more processes to track");
return true;
diff --git a/report.c b/report.c
index 034a1868..d50b061f 100644
--- a/report.c
+++ b/report.c
@@ -23,7 +23,6 @@
#include "report.h"
-#include <errno.h>
#include <fcntl.h>
#include <inttypes.h>
#include <stdio.h>
@@ -80,8 +79,7 @@ void report_Report(run_t* run) {
snprintf(reportFName, sizeof(reportFName), "%s", run->global->cfg.reportFile);
}
- reportFD =
- TEMP_FAILURE_RETRY(open(reportFName, O_WRONLY | O_CREAT | O_APPEND | O_CLOEXEC, 0644));
+ reportFD = open(reportFName, O_WRONLY | O_CREAT | O_APPEND | O_CLOEXEC, 0644);
if (reportFD == -1) {
PLOG_F("Couldn't open('%s') for writing", reportFName);
}
diff --git a/socketfuzzer.c b/socketfuzzer.c
index 29783582..14a5f246 100644
--- a/socketfuzzer.c
+++ b/socketfuzzer.c
@@ -1,5 +1,3 @@
-#include "socketfuzzer.h"
-
#include <errno.h>
#include <fcntl.h>
#include <inttypes.h>
@@ -13,14 +11,19 @@
#include <string.h>
#include <sys/mman.h>
#include <sys/param.h>
-#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <sys/types.h>
-#include <sys/un.h>
#include <time.h>
#include <unistd.h>
+#include <errno.h>
+#include <string.h>
+#include <sys/socket.h>
+#include <sys/types.h>
+#include <sys/un.h>
+#include <unistd.h>
+
#include "honggfuzz.h"
#include "libhfcommon/common.h"
#include "libhfcommon/files.h"
@@ -28,10 +31,13 @@
#include "libhfcommon/ns.h"
#include "libhfcommon/util.h"
+#include "socketfuzzer.h"
+
bool fuzz_waitForExternalInput(run_t* run) {
/* tell the external fuzzer to do his thing */
if (!fuzz_prepareSocketFuzzer(run)) {
LOG_F("fuzz_prepareSocketFuzzer() failed");
+ return false;
}
/* the external fuzzer may inform us of a crash */
@@ -44,10 +50,17 @@ bool fuzz_waitForExternalInput(run_t* run) {
}
bool fuzz_prepareSocketFuzzer(run_t* run) {
+ ssize_t ret;
+
// Notify fuzzer that he should send teh things
LOG_D("fuzz_prepareSocketFuzzer: SEND Fuzz");
- return files_sendToSocket(
- run->global->socketFuzzer.clientSocket, (uint8_t*)"Fuzz", strlen("Fuzz"));
+ ret = send(run->global->socketFuzzer.clientSocket, "Fuzz", 4, 0);
+ if (ret < 0) {
+ LOG_F("fuzz_prepareSocketFuzzer: received: %zu", ret);
+ return false;
+ }
+
+ return true;
}
/* Return values:
@@ -57,16 +70,17 @@ bool fuzz_prepareSocketFuzzer(run_t* run) {
*/
int fuzz_waitforSocketFuzzer(run_t* run) {
ssize_t ret;
- uint8_t buf[16];
+ char buf[16];
// Wait until the external fuzzer did his thing
bzero(buf, 16);
- ret = files_readFromFd(run->global->socketFuzzer.clientSocket, buf, 4);
+ ret = recv(run->global->socketFuzzer.clientSocket, buf, 4, 0);
LOG_D("fuzz_waitforSocketFuzzer: RECV: %s", buf);
// We dont care what we receive, its just to block here
if (ret < 0) {
LOG_F("fuzz_waitforSocketFuzzer: received: %zu", ret);
+ return 0;
}
if (memcmp(buf, "okay", 4) == 0) {
@@ -79,21 +93,27 @@ int fuzz_waitforSocketFuzzer(run_t* run) {
}
bool fuzz_notifySocketFuzzerNewCov(honggfuzz_t* hfuzz) {
+ ssize_t ret;
+
// Tell the fuzzer that the thing he sent reached new BB's
- bool ret = files_sendToSocket(hfuzz->socketFuzzer.clientSocket, (uint8_t*)"New!", 4);
+ ret = send(hfuzz->socketFuzzer.clientSocket, "New!", 4, 0);
LOG_D("fuzz_notifySocketFuzzer: SEND: New!");
- if (!ret) {
- LOG_F("fuzz_notifySocketFuzzer");
+ if (ret < 0) {
+ LOG_F("fuzz_notifySocketFuzzer: sent: %zu", ret);
+ return false;
}
return true;
}
bool fuzz_notifySocketFuzzerCrash(run_t* run) {
- bool ret = files_sendToSocket(run->global->socketFuzzer.clientSocket, (uint8_t*)"Cras", 4);
+ ssize_t ret;
+
+ ret = send(run->global->socketFuzzer.clientSocket, "Cras", 4, 0);
LOG_D("fuzz_notifySocketFuzzer: SEND: Crash");
- if (!ret) {
- LOG_F("fuzz_notifySocketFuzzer");
+ if (ret < 0) {
+ LOG_F("fuzz_notifySocketFuzzer: sent: %zu", ret);
+ return false;
}
return true;
@@ -127,8 +147,7 @@ bool setupSocketFuzzer(honggfuzz_t* run) {
printf("Waiting for SocketFuzzer connection on socket: %s\n", socketPath);
t = sizeof(remote);
- if ((run->socketFuzzer.clientSocket =
- TEMP_FAILURE_RETRY(accept(s, (struct sockaddr*)&remote, &t))) == -1) {
+ if ((run->socketFuzzer.clientSocket = accept(s, (struct sockaddr*)&remote, &t)) == -1) {
perror("accept");
return false;
}
diff --git a/subproc.c b/subproc.c
index aeb23c79..ff5d0a7e 100644
--- a/subproc.c
+++ b/subproc.c
@@ -177,8 +177,9 @@ bool subproc_persistentModeStateMachine(run_t* run) {
/* The current persistent round is done */
return true;
}; break;
- default:
+ default: {
LOG_F("Unknown runState: %d", run->runState);
+ }; break;
}
}
}
@@ -251,22 +252,20 @@ static bool subproc_PrepareExecv(run_t* run) {
/* close_stderr= */ run->global->exe.nullifyStdio);
/* The bitmap structure */
- if (run->global->feedback.bbFd != -1 &&
- TEMP_FAILURE_RETRY(dup2(run->global->feedback.bbFd, _HF_BITMAP_FD)) == -1) {
+ if (run->global->feedback.bbFd != -1 && dup2(run->global->feedback.bbFd, _HF_BITMAP_FD) == -1) {
PLOG_E("dup2(%d, _HF_BITMAP_FD=%d)", run->global->feedback.bbFd, _HF_BITMAP_FD);
return false;
}
/* The input file to _HF_INPUT_FD */
- if (run->global->exe.persistent &&
- TEMP_FAILURE_RETRY(dup2(run->dynamicFileFd, _HF_INPUT_FD)) == -1) {
+ if (run->global->exe.persistent && dup2(run->dynamicFileFd, _HF_INPUT_FD) == -1) {
PLOG_E("dup2('%d', _HF_INPUT_FD='%d')", run->dynamicFileFd, _HF_INPUT_FD);
return false;
}
/* The log FD */
if ((run->global->exe.netDriver || run->global->exe.persistent)) {
- if (TEMP_FAILURE_RETRY(dup2(logFd(), _HF_LOG_FD)) == -1) {
+ if (dup2(logFd(), _HF_LOG_FD) == -1) {
PLOG_E("dup2(%d, _HF_LOG_FD=%d)", logFd(), _HF_LOG_FD);
return false;
}
@@ -287,8 +286,7 @@ static bool subproc_PrepareExecv(run_t* run) {
LOG_E("Couldn't save data to a temporary file");
return false;
}
- if (run->global->exe.fuzzStdin &&
- TEMP_FAILURE_RETRY(dup2(run->dynamicFileCopyFd, STDIN_FILENO)) == -1) {
+ if (run->global->exe.fuzzStdin && dup2(run->dynamicFileCopyFd, STDIN_FILENO) == -1) {
PLOG_E("dup2(_HF_INPUT_FD=%d, STDIN_FILENO=%d)", run->dynamicFileCopyFd, STDIN_FILENO);
return false;
}
@@ -344,7 +342,7 @@ static bool subproc_New(run_t* run) {
signal(SIGALRM, SIG_DFL);
if (run->global->exe.persistent) {
- if (TEMP_FAILURE_RETRY(dup2(sv[1], _HF_PERSISTENT_FD)) == -1) {
+ if (dup2(sv[1], _HF_PERSISTENT_FD) == -1) {
PLOG_F("dup2('%d', '%d')", sv[1], _HF_PERSISTENT_FD);
}
close(sv[0]);
@@ -426,7 +424,10 @@ uint8_t subproc_System(run_t* run, const char* const argv[]) {
for (;;) {
int status;
- int ret = TEMP_FAILURE_RETRY(wait4(pid, &status, flags, NULL));
+ int ret = wait4(pid, &status, flags, NULL);
+ if (ret == -1 && errno == EINTR) {
+ continue;
+ }
if (ret == -1) {
PLOG_E("wait4() for process pid=%d", (int)pid);
return 255;
@@ -487,13 +488,11 @@ void subproc_checkTermination(run_t* run) {
}
}
-bool subproc_runThread(
- honggfuzz_t* hfuzz, pthread_t* thread, void* (*thread_func)(void*), bool joinable) {
+bool subproc_runThread(honggfuzz_t* hfuzz, pthread_t* thread, void* (*thread_func)(void*)) {
pthread_attr_t attr;
pthread_attr_init(&attr);
- pthread_attr_setdetachstate(
- &attr, joinable ? PTHREAD_CREATE_JOINABLE : PTHREAD_CREATE_DETACHED);
+ pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
pthread_attr_setstacksize(&attr, _HF_PTHREAD_STACKSIZE);
pthread_attr_setguardsize(&attr, (size_t)sysconf(_SC_PAGESIZE));
diff --git a/subproc.h b/subproc.h
index b8ebad80..8f113c5a 100644
--- a/subproc.h
+++ b/subproc.h
@@ -45,7 +45,6 @@ extern void subproc_checkTimeLimit(run_t* run);
extern void subproc_checkTermination(run_t* run);
-bool subproc_runThread(
- honggfuzz_t* hfuzz, pthread_t* thread, void* (*thread_func)(void*), bool joinable);
+bool subproc_runThread(honggfuzz_t* hfuzz, pthread_t* thread, void* (*thread_func)(void*));
#endif