extra/libgnutls-openssl.la
extra/Makefile
extra/Makefile.in
+fuzz/*_fuzzer
gl/alloca.h
gl/arg-nonnull.h
gl/byteswap.h
endif
if ENABLE_TESTS
-SUBDIRS += tests
+SUBDIRS += tests fuzz
endif
if HAVE_GUILE
exclude_file_name_regexp--sc_file_system = ^doc/doxygen/Doxyfile
exclude_file_name_regexp--sc_prohibit_cvs_keyword = ^lib/nettle/.*$$
exclude_file_name_regexp--sc_prohibit_undesirable_word_seq = ^tests/nist-pkits/gnutls-nist-tests.html$$
-exclude_file_name_regexp--sc_space_tab = ^doc/.*.(pdf|png)|\.crl|\.pdf|\.zip|tests/nist-pkits/|tests/data/|devel/|tests/suite/x509paths/.*$$
+exclude_file_name_regexp--sc_space_tab = ^doc/.*.(pdf|png)|\.crl|\.pdf|\.zip|tests/nist-pkits/|tests/data/|devel/|tests/suite/x509paths/.*|fuzz/.*\.in/.*$$
_makefile_at_at_check_exceptions = ' && !/CODE_COVERAGE_RULES/ && !/VERSION/'
exclude_file_name_regexp--sc_m4_quote_check='lib/unistring/m4/absolute-header.m4'
exclude_file_name_regexp--sc_makefile_at_at_check='lib/unistring/Makefile.am'
dnl No fork on MinGW, disable some self-tests until we fix them.
dnl Check clock_gettime and pthread_mutex_lock in libc (avoid linking to other libs)
-AC_CHECK_FUNCS([fork setitimer inet_ntop inet_pton getrusage getpwuid_r nanosleep daemon getpid clock_gettime localtime fmemopen vasprintf mmap],,)
+AC_CHECK_FUNCS([fork setitimer inet_ntop inet_pton getrusage getpwuid_r nanosleep daemon getpid clock_gettime localtime fmemopen vasprintf mmap fmemopen],,)
if test "$ac_cv_func_vasprintf" != "yes";then
AC_MSG_CHECKING([for va_copy])
AC_LINK_IFELSE([AC_LANG_PROGRAM([
tests/key-tests/Makefile
tests/slow/Makefile
tests/suite/Makefile
+ fuzz/Makefile
])
AC_OUTPUT
--- /dev/null
+AM_CFLAGS = $(WERROR_CFLAGS) $(WARN_CFLAGS) -Wno-unused-parameter -Wno-pedantic
+AM_CPPFLAGS = -I$(top_srcdir)/lib/includes -I$(top_builddir)/lib/includes -I$(srcdir) \
+ -DSRCDIR=\"$(abs_srcdir)\" -DTEST_RUN
+AM_LDFLAGS = -static
+LDADD = ../gl/libgnu.la ../lib/libgnutls.la \
+ $(LIBOBJS) $(GETADDRINFO_LIB) $(HOSTENT_LIB) $(INET_NTOP_LIB)\
+ $(LIBSOCKET) $(LIB_CLOCK_GETTIME) $(LIB_NANOSLEEP) $(LIB_POLL) $(LIB_PTHREAD)\
+ $(LIB_SELECT) $(LIBTHREAD) $(SERVENT_LIB) \
+ $(LIBS)
+
+FUZZERS = \
+ gnutls_base64_decoder_fuzzer$(EXEEXT) \
+ gnutls_base64_encoder_fuzzer$(EXEEXT) \
+ gnutls_client_fuzzer$(EXEEXT) \
+ gnutls_dn_parser_fuzzer$(EXEEXT) \
+ gnutls_idna_parser_fuzzer$(EXEEXT) \
+ gnutls_ocsp_req_parser_fuzzer$(EXEEXT) \
+ gnutls_ocsp_resp_parser_fuzzer$(EXEEXT) \
+ gnutls_pkcs12_key_parser_fuzzer$(EXEEXT) \
+ gnutls_pkcs7_parser_fuzzer$(EXEEXT) \
+ gnutls_pkcs8_key_parser_fuzzer$(EXEEXT) \
+ gnutls_private_key_parser_fuzzer$(EXEEXT) \
+ gnutls_psk_client_fuzzer$(EXEEXT) \
+ gnutls_psk_server_fuzzer$(EXEEXT) \
+ gnutls_reverse_idna_parser_fuzzer$(EXEEXT) \
+ gnutls_server_fuzzer$(EXEEXT) \
+ gnutls_srp_client_fuzzer$(EXEEXT) \
+ gnutls_srp_server_fuzzer$(EXEEXT) \
+ gnutls_set_trust_file_fuzzer$(EXEEXT) \
+ gnutls_x509_parser_fuzzer$(EXEEXT)
+
+check_PROGRAMS = $(FUZZERS)
+
+gnutls_base64_decoder_fuzzer_SOURCES = gnutls_base64_decoder_fuzzer.c main.c fuzzer.h
+gnutls_base64_encoder_fuzzer_SOURCES = gnutls_base64_encoder_fuzzer.c main.c fuzzer.h
+gnutls_client_fuzzer_SOURCES = gnutls_client_fuzzer.c main.c fuzzer.h
+gnutls_dn_parser_fuzzer_SOURCES = gnutls_dn_parser_fuzzer.c main.c fuzzer.h
+gnutls_idna_parser_fuzzer_SOURCES = gnutls_idna_parser_fuzzer.c main.c fuzzer.h
+gnutls_ocsp_req_parser_fuzzer_SOURCES = gnutls_ocsp_req_parser_fuzzer.c main.c fuzzer.h
+gnutls_ocsp_resp_parser_fuzzer_SOURCES = gnutls_ocsp_resp_parser_fuzzer.c main.c fuzzer.h
+gnutls_pkcs12_key_parser_fuzzer_SOURCES = gnutls_pkcs12_key_parser_fuzzer.c main.c fuzzer.h
+gnutls_pkcs7_parser_fuzzer_SOURCES = gnutls_pkcs7_parser_fuzzer.c main.c fuzzer.h
+gnutls_pkcs8_key_parser_fuzzer_SOURCES = gnutls_pkcs8_key_parser_fuzzer.c main.c fuzzer.h
+gnutls_private_key_parser_fuzzer_SOURCES = gnutls_private_key_parser_fuzzer.c main.c fuzzer.h
+gnutls_psk_client_fuzzer_SOURCES = gnutls_psk_client_fuzzer.c main.c fuzzer.h
+gnutls_psk_server_fuzzer_SOURCES = gnutls_psk_server_fuzzer.c main.c fuzzer.h
+gnutls_reverse_idna_parser_fuzzer_SOURCES = gnutls_reverse_idna_parser_fuzzer.c main.c fuzzer.h
+gnutls_server_fuzzer_SOURCES = gnutls_server_fuzzer.c main.c fuzzer.h
+gnutls_srp_client_fuzzer_SOURCES = gnutls_srp_client_fuzzer.c main.c fuzzer.h
+gnutls_srp_server_fuzzer_SOURCES = gnutls_srp_server_fuzzer.c main.c fuzzer.h
+gnutls_set_trust_file_fuzzer_SOURCES = gnutls_set_trust_file_fuzzer.c main.c fuzzer.h
+gnutls_x509_parser_fuzzer_SOURCES = gnutls_x509_parser_fuzzer.c main.c fuzzer.h
+
+gnutls_set_trust_file_fuzzer_LDADD = $(LDADD) -ldl
+
+
+#EXTRA_DIST = $(wildcard *.options) $(wildcard *.dict) \
+# $(wildcard *.in) $(wildcard *.repro)
+
+dist-hook:
+ find . -name '*.options' -exec cp -v '{}' $(distdir) ';'
+ find . -name '*.dict' -exec cp -v '{}' $(distdir) ';'
+ find . -name '*.in' -exec cp -vr '{}' $(distdir) ';'
+ find . -name '*.repro' -exec cp -vr '{}' $(distdir) ';'
+
+TESTS = $(FUZZERS)
+
+clean-local:
+ rm -rf *.gc?? *.log lcov
+
+oss-fuzz:
+ if test "$$OUT" != ""; then \
+ for ccfile in *_fuzzer.c; do \
+ fuzzer=$$(basename $$ccfile .c); \
+ XLIBS="-lnettle -lhogweed -ltasn1 -lgmp -lidn2 -lunistring"; \
+ $$CXX $$CXXFLAGS -I$(top_srcdir)/lib/includes/ -I$(top_srcdir) \
+ "$${fuzzer}.c" -o "$${fuzzer}" \
+ ../lib/.libs/libgnutls.a $${LIB_FUZZING_ENGINE} \
+ -Wl,-Bstatic \
+ $${XLIBS} \
+ -Wl,-Bdynamic; \
+ done; \
+ fi
+
+.PHONY: oss-fuzz
--- /dev/null
+# Fuzzers
+
+These are fuzzers designed for use with `libFuzzer` or `afl`. They can
+be used to run on Google's OSS-Fuzz (https://github.com/google/oss-fuzz/).
+
+The convention used here is that the initial values for each parser fuzzer
+are taken from the $NAME.in directory.
+
+Crash reproducers from OSS-Fuzz are put into $NAME.repro directory for
+regression testing with top dir 'make check'.
+
+
+# Running a fuzzer using clang
+
+Use the following commands on top dir:
+```
+export CC=clang-5.0
+export CFLAGS="-O0 -g -fno-omit-frame-pointer -gline-tables-only -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=undefined,integer,nullability -fsanitize=address -fsanitize-address-use-after-scope -fsanitize-coverage=trace-pc-guard,trace-cmp"
+./configure --enable-fuzzer-target --enable-static --disable-doc --disable-gcc-warnings --disable-hardware-acceleration
+make clean
+make
+cd fuzz
+
+# build and run gnutls_base64_decode_fuzzer
+UBSAN_OPTIONS=print_stacktrace=1 ASAN_SYMBOLIZER_PATH=/usr/lib/llvm-5.0/bin/llvm-symbolizer \
+ ./run-clang.sh gnutls_base64_decode_fuzzer
+```
+
+
+# Running a fuzzer using AFL
+
+Use the following commands on top dir:
+
+```
+$ CC=afl-clang-fast ./configure --disable-doc
+$ make -j$(nproc) clean all
+$ cd fuzz
+$ ./run-afl.sh gnutls_base64_decode_fuzzer
+```
+
+# Fuzz code coverage using the corpus directories *.in/
+
+Code coverage reports currently work best with gcc+lcov+genhtml.
+
+In the top directory:
+```
+CC=gcc CFLAGS="-O0 -g" ./configure --disable-doc --disable-manywarnings
+make fuzz-coverage
+xdg-open lcov/index.html
+```
+
+Each fuzzer target has it's own files/functions to cover, e.g.
+`gnutls_base64_decode_fuzzer` covers lib/x509_b64.c.
+
+To work on corpora for better coverage, `cd fuzz` and use e.g.
+`./view-coverage.sh gnutls_base64_decode_fuzzer`.
+
+
+# Enhancing the testsuite for issues found
+
+Each reproducer corpus should be placed into <fuzzer>.repro/.
--- /dev/null
+/*
+ * Copyright (C) 2017 Nikos Mavrogiannopoulos
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+#ifndef CERTS_H
+# define CERTS_H
+
+static const uint8_t kRSACertificateDER[] = {
+ 0x30, 0x82, 0x02, 0xff, 0x30, 0x82, 0x01, 0xe7, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x11, 0x00, 0xb1, 0x84, 0xee, 0x34, 0x99, 0x98, 0x76, 0xfb,
+ 0x6f, 0xb2, 0x15, 0xc8, 0x47, 0x79, 0x05, 0x9b, 0x30, 0x0d, 0x06, 0x09,
+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30,
+ 0x12, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x07,
+ 0x41, 0x63, 0x6d, 0x65, 0x20, 0x43, 0x6f, 0x30, 0x1e, 0x17, 0x0d, 0x31,
+ 0x35, 0x31, 0x31, 0x30, 0x37, 0x30, 0x30, 0x32, 0x34, 0x35, 0x36, 0x5a,
+ 0x17, 0x0d, 0x31, 0x36, 0x31, 0x31, 0x30, 0x36, 0x30, 0x30, 0x32, 0x34,
+ 0x35, 0x36, 0x5a, 0x30, 0x12, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55,
+ 0x04, 0x0a, 0x13, 0x07, 0x41, 0x63, 0x6d, 0x65, 0x20, 0x43, 0x6f, 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, 0xce, 0x47, 0xcb, 0x11,
+ 0xbb, 0xd2, 0x9d, 0x8e, 0x9e, 0xd2, 0x1e, 0x14, 0xaf, 0xc7, 0xea, 0xb6,
+ 0xc9, 0x38, 0x2a, 0x6f, 0xb3, 0x7e, 0xfb, 0xbc, 0xfc, 0x59, 0x42, 0xb9,
+ 0x56, 0xf0, 0x4c, 0x3f, 0xf7, 0x31, 0x84, 0xbe, 0xac, 0x03, 0x9e, 0x71,
+ 0x91, 0x85, 0xd8, 0x32, 0xbd, 0x00, 0xea, 0xac, 0x65, 0xf6, 0x03, 0xc8,
+ 0x0f, 0x8b, 0xfd, 0x6e, 0x58, 0x88, 0x04, 0x41, 0x92, 0x74, 0xa6, 0x57,
+ 0x2e, 0x8e, 0x88, 0xd5, 0x3d, 0xda, 0x14, 0x3e, 0x63, 0x88, 0x22, 0xe3,
+ 0x53, 0xe9, 0xba, 0x39, 0x09, 0xac, 0xfb, 0xd0, 0x4c, 0xf2, 0x3c, 0x20,
+ 0xd6, 0x97, 0xe6, 0xed, 0xf1, 0x62, 0x1e, 0xe5, 0xc9, 0x48, 0xa0, 0xca,
+ 0x2e, 0x3c, 0x14, 0x5a, 0x82, 0xd4, 0xed, 0xb1, 0xe3, 0x43, 0xc1, 0x2a,
+ 0x59, 0xa5, 0xb9, 0xc8, 0x48, 0xa7, 0x39, 0x23, 0x74, 0xa7, 0x37, 0xb0,
+ 0x6f, 0xc3, 0x64, 0x99, 0x6c, 0xa2, 0x82, 0xc8, 0xf6, 0xdb, 0x86, 0x40,
+ 0xce, 0xd1, 0x85, 0x9f, 0xce, 0x69, 0xf4, 0x15, 0x2a, 0x23, 0xca, 0xea,
+ 0xb7, 0x7b, 0xdf, 0xfb, 0x43, 0x5f, 0xff, 0x7a, 0x49, 0x49, 0x0e, 0xe7,
+ 0x02, 0x51, 0x45, 0x13, 0xe8, 0x90, 0x64, 0x21, 0x0c, 0x26, 0x2b, 0x5d,
+ 0xfc, 0xe4, 0xb5, 0x86, 0x89, 0x43, 0x22, 0x4c, 0xf3, 0x3b, 0xf3, 0x09,
+ 0xc4, 0xa4, 0x10, 0x80, 0xf2, 0x46, 0xe2, 0x46, 0x8f, 0x76, 0x50, 0xbf,
+ 0xaf, 0x2b, 0x90, 0x1b, 0x78, 0xc7, 0xcf, 0xc1, 0x77, 0xd0, 0xfb, 0xa9,
+ 0xfb, 0xc9, 0x66, 0x5a, 0xc5, 0x9b, 0x31, 0x41, 0x67, 0x01, 0xbe, 0x33,
+ 0x10, 0xba, 0x05, 0x58, 0xed, 0x76, 0x53, 0xde, 0x5d, 0xc1, 0xe8, 0xbb,
+ 0x9f, 0xf1, 0xcd, 0xfb, 0xdf, 0x64, 0x7f, 0xd7, 0x18, 0xab, 0x0f, 0x94,
+ 0x28, 0x95, 0x4a, 0xcc, 0x6a, 0xa9, 0x50, 0xc7, 0x05, 0x47, 0x10, 0x41,
+ 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x50, 0x30, 0x4e, 0x30, 0x0e, 0x06,
+ 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x05,
+ 0xa0, 0x30, 0x13, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04, 0x0c, 0x30, 0x0a,
+ 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x01, 0x30, 0x0c,
+ 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x02, 0x30, 0x00,
+ 0x30, 0x19, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x12, 0x30, 0x10, 0x82,
+ 0x0e, 0x66, 0x75, 0x7a, 0x7a, 0x2e, 0x62, 0x6f, 0x72, 0x69, 0x6e, 0x67,
+ 0x73, 0x73, 0x6c, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+ 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x92,
+ 0xde, 0xef, 0x96, 0x06, 0x7b, 0xff, 0x71, 0x7d, 0x4e, 0xa0, 0x7d, 0xae,
+ 0xb8, 0x22, 0xb4, 0x2c, 0xf7, 0x96, 0x9c, 0x37, 0x1d, 0x8f, 0xe7, 0xd9,
+ 0x47, 0xff, 0x3f, 0xe9, 0x35, 0x95, 0x0e, 0xdd, 0xdc, 0x7f, 0xc8, 0x8a,
+ 0x1e, 0x36, 0x1d, 0x38, 0x47, 0xfc, 0x76, 0xd2, 0x1f, 0x98, 0xa1, 0x36,
+ 0xac, 0xc8, 0x70, 0x38, 0x0a, 0x3d, 0x51, 0x8d, 0x0f, 0x03, 0x1b, 0xef,
+ 0x62, 0xa1, 0xcb, 0x2b, 0x4a, 0x8c, 0x12, 0x2b, 0x54, 0x50, 0x9a, 0x6b,
+ 0xfe, 0xaf, 0xd9, 0xf6, 0xbf, 0x58, 0x11, 0x58, 0x5e, 0xe5, 0x86, 0x1e,
+ 0x3b, 0x6b, 0x30, 0x7e, 0x72, 0x89, 0xe8, 0x6b, 0x7b, 0xb7, 0xaf, 0xef,
+ 0x8b, 0xa9, 0x3e, 0xb0, 0xcd, 0x0b, 0xef, 0xb0, 0x0c, 0x96, 0x2b, 0xc5,
+ 0x3b, 0xd5, 0xf1, 0xc2, 0xae, 0x3a, 0x60, 0xd9, 0x0f, 0x75, 0x37, 0x55,
+ 0x4d, 0x62, 0xd2, 0xed, 0x96, 0xac, 0x30, 0x6b, 0xda, 0xa1, 0x48, 0x17,
+ 0x96, 0x23, 0x85, 0x9a, 0x57, 0x77, 0xe9, 0x22, 0xa2, 0x37, 0x03, 0xba,
+ 0x49, 0x77, 0x40, 0x3b, 0x76, 0x4b, 0xda, 0xc1, 0x04, 0x57, 0x55, 0x34,
+ 0x22, 0x83, 0x45, 0x29, 0xab, 0x2e, 0x11, 0xff, 0x0d, 0xab, 0x55, 0xb1,
+ 0xa7, 0x58, 0x59, 0x05, 0x25, 0xf9, 0x1e, 0x3d, 0xb7, 0xac, 0x04, 0x39,
+ 0x2c, 0xf9, 0xaf, 0xb8, 0x68, 0xfb, 0x8e, 0x35, 0x71, 0x32, 0xff, 0x70,
+ 0xe9, 0x46, 0x6d, 0x5c, 0x06, 0x90, 0x88, 0x23, 0x48, 0x0c, 0x50, 0xeb,
+ 0x0a, 0xa9, 0xae, 0xe8, 0xfc, 0xbe, 0xa5, 0x76, 0x94, 0xd7, 0x64, 0x22,
+ 0x38, 0x98, 0x17, 0xa4, 0x3a, 0xa7, 0x59, 0x9f, 0x1d, 0x3b, 0x75, 0x90,
+ 0x1a, 0x81, 0xef, 0x19, 0xfb, 0x2b, 0xb7, 0xa7, 0x64, 0x61, 0x22, 0xa4,
+ 0x6f, 0x7b, 0xfa, 0x58, 0xbb, 0x8c, 0x4e, 0x77, 0x67, 0xd0, 0x5d, 0x58,
+ 0x76, 0x8a, 0xbb,
+};
+
+static const uint8_t kRSAPrivateKeyDER[] = {
+ 0x30, 0x82, 0x04, 0xa5, 0x02, 0x01, 0x00, 0x02, 0x82, 0x01, 0x01, 0x00,
+ 0xce, 0x47, 0xcb, 0x11, 0xbb, 0xd2, 0x9d, 0x8e, 0x9e, 0xd2, 0x1e, 0x14,
+ 0xaf, 0xc7, 0xea, 0xb6, 0xc9, 0x38, 0x2a, 0x6f, 0xb3, 0x7e, 0xfb, 0xbc,
+ 0xfc, 0x59, 0x42, 0xb9, 0x56, 0xf0, 0x4c, 0x3f, 0xf7, 0x31, 0x84, 0xbe,
+ 0xac, 0x03, 0x9e, 0x71, 0x91, 0x85, 0xd8, 0x32, 0xbd, 0x00, 0xea, 0xac,
+ 0x65, 0xf6, 0x03, 0xc8, 0x0f, 0x8b, 0xfd, 0x6e, 0x58, 0x88, 0x04, 0x41,
+ 0x92, 0x74, 0xa6, 0x57, 0x2e, 0x8e, 0x88, 0xd5, 0x3d, 0xda, 0x14, 0x3e,
+ 0x63, 0x88, 0x22, 0xe3, 0x53, 0xe9, 0xba, 0x39, 0x09, 0xac, 0xfb, 0xd0,
+ 0x4c, 0xf2, 0x3c, 0x20, 0xd6, 0x97, 0xe6, 0xed, 0xf1, 0x62, 0x1e, 0xe5,
+ 0xc9, 0x48, 0xa0, 0xca, 0x2e, 0x3c, 0x14, 0x5a, 0x82, 0xd4, 0xed, 0xb1,
+ 0xe3, 0x43, 0xc1, 0x2a, 0x59, 0xa5, 0xb9, 0xc8, 0x48, 0xa7, 0x39, 0x23,
+ 0x74, 0xa7, 0x37, 0xb0, 0x6f, 0xc3, 0x64, 0x99, 0x6c, 0xa2, 0x82, 0xc8,
+ 0xf6, 0xdb, 0x86, 0x40, 0xce, 0xd1, 0x85, 0x9f, 0xce, 0x69, 0xf4, 0x15,
+ 0x2a, 0x23, 0xca, 0xea, 0xb7, 0x7b, 0xdf, 0xfb, 0x43, 0x5f, 0xff, 0x7a,
+ 0x49, 0x49, 0x0e, 0xe7, 0x02, 0x51, 0x45, 0x13, 0xe8, 0x90, 0x64, 0x21,
+ 0x0c, 0x26, 0x2b, 0x5d, 0xfc, 0xe4, 0xb5, 0x86, 0x89, 0x43, 0x22, 0x4c,
+ 0xf3, 0x3b, 0xf3, 0x09, 0xc4, 0xa4, 0x10, 0x80, 0xf2, 0x46, 0xe2, 0x46,
+ 0x8f, 0x76, 0x50, 0xbf, 0xaf, 0x2b, 0x90, 0x1b, 0x78, 0xc7, 0xcf, 0xc1,
+ 0x77, 0xd0, 0xfb, 0xa9, 0xfb, 0xc9, 0x66, 0x5a, 0xc5, 0x9b, 0x31, 0x41,
+ 0x67, 0x01, 0xbe, 0x33, 0x10, 0xba, 0x05, 0x58, 0xed, 0x76, 0x53, 0xde,
+ 0x5d, 0xc1, 0xe8, 0xbb, 0x9f, 0xf1, 0xcd, 0xfb, 0xdf, 0x64, 0x7f, 0xd7,
+ 0x18, 0xab, 0x0f, 0x94, 0x28, 0x95, 0x4a, 0xcc, 0x6a, 0xa9, 0x50, 0xc7,
+ 0x05, 0x47, 0x10, 0x41, 0x02, 0x03, 0x01, 0x00, 0x01, 0x02, 0x82, 0x01,
+ 0x01, 0x00, 0xa8, 0x47, 0xb9, 0x4a, 0x06, 0x47, 0x93, 0x71, 0x3d, 0xef,
+ 0x7b, 0xca, 0xb4, 0x7c, 0x0a, 0xe6, 0x82, 0xd0, 0xe7, 0x0d, 0xa9, 0x08,
+ 0xf6, 0xa4, 0xfd, 0xd8, 0x73, 0xae, 0x6f, 0x56, 0x29, 0x5e, 0x25, 0x72,
+ 0xa8, 0x30, 0x44, 0x73, 0xcf, 0x56, 0x26, 0xb9, 0x61, 0xde, 0x42, 0x81,
+ 0xf4, 0xf0, 0x1f, 0x5d, 0xcb, 0x47, 0xf2, 0x26, 0xe9, 0xe0, 0x93, 0x28,
+ 0xa3, 0x10, 0x3b, 0x42, 0x1e, 0x51, 0x11, 0x12, 0x06, 0x5e, 0xaf, 0xce,
+ 0xb0, 0xa5, 0x14, 0xdd, 0x82, 0x58, 0xa1, 0xa4, 0x12, 0xdf, 0x65, 0x1d,
+ 0x51, 0x70, 0x64, 0xd5, 0x58, 0x68, 0x11, 0xa8, 0x6a, 0x23, 0xc2, 0xbf,
+ 0xa1, 0x25, 0x24, 0x47, 0xb3, 0xa4, 0x3c, 0x83, 0x96, 0xb7, 0x1f, 0xf4,
+ 0x44, 0xd4, 0xd1, 0xe9, 0xfc, 0x33, 0x68, 0x5e, 0xe2, 0x68, 0x99, 0x9c,
+ 0x91, 0xe8, 0x72, 0xc9, 0xd7, 0x8c, 0x80, 0x20, 0x8e, 0x77, 0x83, 0x4d,
+ 0xe4, 0xab, 0xf9, 0x74, 0xa1, 0xdf, 0xd3, 0xc0, 0x0d, 0x5b, 0x05, 0x51,
+ 0xc2, 0x6f, 0xb2, 0x91, 0x02, 0xec, 0xc0, 0x02, 0x1a, 0x5c, 0x91, 0x05,
+ 0xf1, 0xe3, 0xfa, 0x65, 0xc2, 0xad, 0x24, 0xe6, 0xe5, 0x3c, 0xb6, 0x16,
+ 0xf1, 0xa1, 0x67, 0x1a, 0x9d, 0x37, 0x56, 0xbf, 0x01, 0xd7, 0x3b, 0x35,
+ 0x30, 0x57, 0x73, 0xf4, 0xf0, 0x5e, 0xa7, 0xe8, 0x0a, 0xc1, 0x94, 0x17,
+ 0xcf, 0x0a, 0xbd, 0xf5, 0x31, 0xa7, 0x2d, 0xf7, 0xf5, 0xd9, 0x8c, 0xc2,
+ 0x01, 0xbd, 0xda, 0x16, 0x8e, 0xb9, 0x30, 0x40, 0xa6, 0x6e, 0xbd, 0xcd,
+ 0x4d, 0x84, 0x67, 0x4e, 0x0b, 0xce, 0xd5, 0xef, 0xf8, 0x08, 0x63, 0x02,
+ 0xc6, 0xc7, 0xf7, 0x67, 0x92, 0xe2, 0x23, 0x9d, 0x27, 0x22, 0x1d, 0xc6,
+ 0x67, 0x5e, 0x66, 0xbf, 0x03, 0xb8, 0xa9, 0x67, 0xd4, 0x39, 0xd8, 0x75,
+ 0xfa, 0xe8, 0xed, 0x56, 0xb8, 0x81, 0x02, 0x81, 0x81, 0x00, 0xf7, 0x46,
+ 0x68, 0xc6, 0x13, 0xf8, 0xba, 0x0f, 0x83, 0xdb, 0x05, 0xa8, 0x25, 0x00,
+ 0x70, 0x9c, 0x9e, 0x8b, 0x12, 0x34, 0x0d, 0x96, 0xcf, 0x0d, 0x98, 0x9b,
+ 0x8d, 0x9c, 0x96, 0x78, 0xd1, 0x3c, 0x01, 0x8c, 0xb9, 0x35, 0x5c, 0x20,
+ 0x42, 0xb4, 0x38, 0xe3, 0xd6, 0x54, 0xe7, 0x55, 0xd6, 0x26, 0x8a, 0x0c,
+ 0xf6, 0x1f, 0xe0, 0x04, 0xc1, 0x22, 0x42, 0x19, 0x61, 0xc4, 0x94, 0x7c,
+ 0x07, 0x2e, 0x80, 0x52, 0xfe, 0x8d, 0xe6, 0x92, 0x3a, 0x91, 0xfe, 0x72,
+ 0x99, 0xe1, 0x2a, 0x73, 0x76, 0xb1, 0x24, 0x20, 0x67, 0xde, 0x28, 0xcb,
+ 0x0e, 0xe6, 0x52, 0xb5, 0xfa, 0xfb, 0x8b, 0x1e, 0x6a, 0x1d, 0x09, 0x26,
+ 0xb9, 0xa7, 0x61, 0xba, 0xf8, 0x79, 0xd2, 0x66, 0x57, 0x28, 0xd7, 0x31,
+ 0xb5, 0x0b, 0x27, 0x19, 0x1e, 0x6f, 0x46, 0xfc, 0x54, 0x95, 0xeb, 0x78,
+ 0x01, 0xb6, 0xd9, 0x79, 0x5a, 0x4d, 0x02, 0x81, 0x81, 0x00, 0xd5, 0x8f,
+ 0x16, 0x53, 0x2f, 0x57, 0x93, 0xbf, 0x09, 0x75, 0xbf, 0x63, 0x40, 0x3d,
+ 0x27, 0xfd, 0x23, 0x21, 0xde, 0x9b, 0xe9, 0x73, 0x3f, 0x49, 0x02, 0xd2,
+ 0x38, 0x96, 0xcf, 0xc3, 0xba, 0x92, 0x07, 0x87, 0x52, 0xa9, 0x35, 0xe3,
+ 0x0c, 0xe4, 0x2f, 0x05, 0x7b, 0x37, 0xa5, 0x40, 0x9c, 0x3b, 0x94, 0xf7,
+ 0xad, 0xa0, 0xee, 0x3a, 0xa8, 0xfb, 0x1f, 0x11, 0x1f, 0xd8, 0x9a, 0x80,
+ 0x42, 0x3d, 0x7f, 0xa4, 0xb8, 0x9a, 0xaa, 0xea, 0x72, 0xc1, 0xe3, 0xed,
+ 0x06, 0x60, 0x92, 0x37, 0xf9, 0xba, 0xfb, 0x9e, 0xed, 0x05, 0xa6, 0xd4,
+ 0x72, 0x68, 0x4f, 0x63, 0xfe, 0xd6, 0x10, 0x0d, 0x4f, 0x0a, 0x93, 0xc6,
+ 0xb9, 0xd7, 0xaf, 0xfd, 0xd9, 0x57, 0x7d, 0xcb, 0x75, 0xe8, 0x93, 0x2b,
+ 0xae, 0x4f, 0xea, 0xd7, 0x30, 0x0b, 0x58, 0x44, 0x82, 0x0f, 0x84, 0x5d,
+ 0x62, 0x11, 0x78, 0xea, 0x5f, 0xc5, 0x02, 0x81, 0x81, 0x00, 0x82, 0x0c,
+ 0xc1, 0xe6, 0x0b, 0x72, 0xf1, 0x48, 0x5f, 0xac, 0xbd, 0x98, 0xe5, 0x7d,
+ 0x09, 0xbd, 0x15, 0x95, 0x47, 0x09, 0xa1, 0x6c, 0x03, 0x91, 0xbf, 0x05,
+ 0x70, 0xc1, 0x3e, 0x52, 0x64, 0x99, 0x0e, 0xa7, 0x98, 0x70, 0xfb, 0xf6,
+ 0xeb, 0x9e, 0x25, 0x9d, 0x8e, 0x88, 0x30, 0xf2, 0xf0, 0x22, 0x6c, 0xd0,
+ 0xcc, 0x51, 0x8f, 0x5c, 0x70, 0xc7, 0x37, 0xc4, 0x69, 0xab, 0x1d, 0xfc,
+ 0xed, 0x3a, 0x03, 0xbb, 0xa2, 0xad, 0xb6, 0xea, 0x89, 0x6b, 0x67, 0x4b,
+ 0x96, 0xaa, 0xd9, 0xcc, 0xc8, 0x4b, 0xfa, 0x18, 0x21, 0x08, 0xb2, 0xa3,
+ 0xb9, 0x3e, 0x61, 0x99, 0xdc, 0x5a, 0x97, 0x9c, 0x73, 0x6a, 0xb9, 0xf9,
+ 0x68, 0x03, 0x24, 0x5f, 0x55, 0x77, 0x9c, 0xb4, 0xbe, 0x7a, 0x78, 0x53,
+ 0x68, 0x48, 0x69, 0x53, 0xc8, 0xb1, 0xf5, 0xbf, 0x98, 0x2d, 0x11, 0x1e,
+ 0x98, 0xa8, 0x36, 0x50, 0xa0, 0xb1, 0x02, 0x81, 0x81, 0x00, 0x90, 0x88,
+ 0x30, 0x71, 0xc7, 0xfe, 0x9b, 0x6d, 0x95, 0x37, 0x6d, 0x79, 0xfc, 0x85,
+ 0xe7, 0x44, 0x78, 0xbc, 0x79, 0x6e, 0x47, 0x86, 0xc9, 0xf3, 0xdd, 0xc6,
+ 0xec, 0xa9, 0x94, 0x9f, 0x40, 0xeb, 0x87, 0xd0, 0xdb, 0xee, 0xcd, 0x1b,
+ 0x87, 0x23, 0xff, 0x76, 0xd4, 0x37, 0x8a, 0xcd, 0xb9, 0x6e, 0xd1, 0x98,
+ 0xf6, 0x97, 0x8d, 0xe3, 0x81, 0x6d, 0xc3, 0x4e, 0xd1, 0xa0, 0xc4, 0x9f,
+ 0xbd, 0x34, 0xe5, 0xe8, 0x53, 0x4f, 0xca, 0x10, 0xb5, 0xed, 0xe7, 0x16,
+ 0x09, 0x54, 0xde, 0x60, 0xa7, 0xd1, 0x16, 0x6e, 0x2e, 0xb7, 0xbe, 0x7a,
+ 0xd5, 0x9b, 0x26, 0xef, 0xe4, 0x0e, 0x77, 0xfa, 0xa9, 0xdd, 0xdc, 0xb9,
+ 0x88, 0x19, 0x23, 0x70, 0xc7, 0xe1, 0x60, 0xaf, 0x8c, 0x73, 0x04, 0xf7,
+ 0x71, 0x17, 0x81, 0x36, 0x75, 0xbb, 0x97, 0xd7, 0x75, 0xb6, 0x8e, 0xbc,
+ 0xac, 0x9c, 0x6a, 0x9b, 0x24, 0x89, 0x02, 0x81, 0x80, 0x5a, 0x2b, 0xc7,
+ 0x6b, 0x8c, 0x65, 0xdb, 0x04, 0x73, 0xab, 0x25, 0xe1, 0x5b, 0xbc, 0x3c,
+ 0xcf, 0x5a, 0x3c, 0x04, 0xae, 0x97, 0x2e, 0xfd, 0xa4, 0x97, 0x1f, 0x05,
+ 0x17, 0x27, 0xac, 0x7c, 0x30, 0x85, 0xb4, 0x82, 0x3f, 0x5b, 0xb7, 0x94,
+ 0x3b, 0x7f, 0x6c, 0x0c, 0xc7, 0x16, 0xc6, 0xa0, 0xbd, 0x80, 0xb0, 0x81,
+ 0xde, 0xa0, 0x23, 0xa6, 0xf6, 0x75, 0x33, 0x51, 0x35, 0xa2, 0x75, 0x55,
+ 0x70, 0x4d, 0x42, 0xbb, 0xcf, 0x54, 0xe4, 0xdb, 0x2d, 0x88, 0xa0, 0x7a,
+ 0xf2, 0x17, 0xa7, 0xdd, 0x13, 0x44, 0x9f, 0x5f, 0x6b, 0x2c, 0x42, 0x42,
+ 0x8b, 0x13, 0x4d, 0xf9, 0x5b, 0xf8, 0x33, 0x42, 0xd9, 0x9e, 0x50, 0x1c,
+ 0x7c, 0xbc, 0xfa, 0x62, 0x85, 0x0b, 0xcf, 0x99, 0xda, 0x9e, 0x04, 0x90,
+ 0xb2, 0xc6, 0xb2, 0x0a, 0x2a, 0x7c, 0x6d, 0x6a, 0x40, 0xfc, 0xf5, 0x50,
+ 0x98, 0x46, 0x89, 0x82, 0x40,
+};
+
+static const uint8_t kECDSACertificateDER[] = {
+ 0x30, 0x82, 0x02, 0xA6, 0x30, 0x82, 0x01, 0x5E, 0xA0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x08, 0x53,
+ 0x66, 0x2B, 0x39, 0x11, 0xBE, 0x18, 0xCB, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7,
+ 0x0D, 0x01, 0x01, 0x0B, 0x05, 0x00, 0x30, 0x19, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04,
+ 0x03, 0x13, 0x0E, 0x47, 0x6E, 0x75, 0x54, 0x4C, 0x53, 0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x43,
+ 0x41, 0x30, 0x22, 0x18, 0x0F, 0x32, 0x30, 0x31, 0x34, 0x30, 0x35, 0x30, 0x34, 0x31, 0x31, 0x35,
+ 0x37, 0x34, 0x36, 0x5A, 0x18, 0x0F, 0x39, 0x39, 0x39, 0x39, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33,
+ 0x35, 0x39, 0x35, 0x39, 0x5A, 0x30, 0x14, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x03,
+ 0x13, 0x09, 0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x68, 0x6F, 0x73, 0x74, 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, 0x4C, 0x54, 0x46, 0xB0, 0x82, 0x30, 0x2F, 0x08, 0x16, 0xB7,
+ 0x9F, 0x23, 0xFF, 0xCF, 0xBA, 0x05, 0x0D, 0x8B, 0x6D, 0x18, 0x58, 0xAC, 0x46, 0xB9, 0xD0, 0x9E,
+ 0xAB, 0x72, 0x76, 0xF7, 0xC8, 0x0B, 0x3B, 0xD7, 0x6F, 0x6D, 0xC4, 0x97, 0xFB, 0x0D, 0x88, 0x33,
+ 0xBD, 0x17, 0xE2, 0xFE, 0x43, 0x8B, 0x48, 0x99, 0x60, 0x24, 0x57, 0x9C, 0xB7, 0x25, 0x6E, 0x71,
+ 0x4A, 0x3F, 0x03, 0x64, 0xDC, 0xB1, 0xA3, 0x81, 0x8D, 0x30, 0x81, 0x8A, 0x30, 0x0C, 0x06, 0x03,
+ 0x55, 0x1D, 0x13, 0x01, 0x01, 0xFF, 0x04, 0x02, 0x30, 0x00, 0x30, 0x14, 0x06, 0x03, 0x55, 0x1D,
+ 0x11, 0x04, 0x0D, 0x30, 0x0B, 0x82, 0x09, 0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x68, 0x6F, 0x73, 0x74,
+ 0x30, 0x13, 0x06, 0x03, 0x55, 0x1D, 0x25, 0x04, 0x0C, 0x30, 0x0A, 0x06, 0x08, 0x2B, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x03, 0x01, 0x30, 0x0F, 0x06, 0x03, 0x55, 0x1D, 0x0F, 0x01, 0x01, 0xFF, 0x04,
+ 0x05, 0x03, 0x03, 0x07, 0x80, 0x00, 0x30, 0x1D, 0x06, 0x03, 0x55, 0x1D, 0x0E, 0x04, 0x16, 0x04,
+ 0x14, 0xBE, 0xF6, 0x00, 0xC6, 0x24, 0x6B, 0x60, 0xEA, 0xB5, 0xF8, 0x13, 0xC9, 0xA5, 0xD5, 0xE0,
+ 0xC9, 0x29, 0xD5, 0xD7, 0x33, 0x30, 0x1F, 0x06, 0x03, 0x55, 0x1D, 0x23, 0x04, 0x18, 0x30, 0x16,
+ 0x80, 0x14, 0x4D, 0x56, 0xB7, 0x6A, 0x00, 0x58, 0xF1, 0x67, 0x92, 0xF4, 0xA6, 0x75, 0x55, 0x1B,
+ 0x8E, 0x53, 0x01, 0x03, 0xEF, 0xCF, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D,
+ 0x01, 0x01, 0x0B, 0x05, 0x00, 0x03, 0x82, 0x01, 0x31, 0x00, 0x63, 0xCD, 0xAF, 0xA6, 0xFF, 0xCC,
+ 0x78, 0x47, 0xE5, 0x00, 0xE3, 0x69, 0xF8, 0xC5, 0x19, 0x47, 0xA0, 0xD7, 0x0A, 0x95, 0x95, 0x5C,
+ 0xC7, 0x88, 0x1C, 0x0A, 0x2A, 0x97, 0x1C, 0x7E, 0xC0, 0x0E, 0xBD, 0x3D, 0xFF, 0x9A, 0xBC, 0x17,
+ 0x0E, 0xD9, 0xB8, 0x30, 0xDE, 0x84, 0x5F, 0x13, 0xA7, 0xA3, 0xC4, 0xA3, 0x3F, 0x01, 0x4F, 0x48,
+ 0xBB, 0x8A, 0xD2, 0x59, 0x4F, 0x17, 0x6B, 0x99, 0xD7, 0xD7, 0x26, 0xF7, 0xFB, 0xFB, 0xAB, 0x8F,
+ 0x79, 0x45, 0x1C, 0x6C, 0x46, 0xD3, 0x4A, 0xB3, 0x39, 0x70, 0xE2, 0x40, 0x12, 0x02, 0x60, 0xCA,
+ 0xE9, 0x6E, 0xDB, 0x13, 0xC8, 0x24, 0x46, 0x38, 0xAB, 0x4A, 0xBC, 0xCE, 0xFF, 0x3C, 0x2D, 0x99,
+ 0xDC, 0x53, 0xF5, 0xC2, 0x2D, 0x42, 0x3A, 0xA8, 0xB6, 0x3D, 0x4D, 0x1C, 0x1D, 0x7D, 0xF3, 0x38,
+ 0x89, 0xC0, 0xDE, 0xCB, 0x90, 0x00, 0x5A, 0x5A, 0xB8, 0xA5, 0x3C, 0x76, 0xD7, 0x1D, 0x60, 0xE9,
+ 0x12, 0x31, 0x2B, 0x8C, 0xD3, 0xA0, 0xA0, 0x6B, 0x67, 0x17, 0xE8, 0xAD, 0x50, 0x87, 0xCA, 0x24,
+ 0x74, 0xFD, 0x4E, 0xED, 0x21, 0x10, 0xC1, 0x70, 0x59, 0x7E, 0x2B, 0x9D, 0x8B, 0x0E, 0xCB, 0x03,
+ 0xEC, 0xE5, 0x75, 0xC8, 0x1E, 0xB4, 0xAA, 0x1F, 0x81, 0x93, 0x1B, 0x8D, 0x77, 0xAF, 0x96, 0x83,
+ 0xBD, 0x03, 0xEC, 0x68, 0x4D, 0xE5, 0x1A, 0x7E, 0x32, 0x78, 0x85, 0x0D, 0x34, 0xBC, 0x60, 0xE2,
+ 0xDC, 0x2F, 0x43, 0x42, 0x1D, 0xE5, 0x66, 0xD2, 0x45, 0xAA, 0x86, 0x84, 0x41, 0xB3, 0x31, 0xA9,
+ 0xC8, 0x2F, 0xA6, 0x79, 0xC6, 0xA2, 0xBB, 0x7E, 0x08, 0x84, 0x43, 0x14, 0xBC, 0xB9, 0x30, 0xCA,
+ 0xA4, 0x46, 0x51, 0xFA, 0x40, 0xF4, 0x09, 0xAC, 0x03, 0xE0, 0xBC, 0xCE, 0x2C, 0xB3, 0xB4, 0x55,
+ 0xC7, 0x20, 0x4F, 0xE8, 0xAC, 0xC4, 0x95, 0x81, 0x6B, 0x4B, 0x1C, 0x02, 0x12, 0xB7, 0xA4, 0x1A,
+ 0x69, 0x69, 0xF1, 0x7D, 0x97, 0x55, 0xB4, 0x53, 0x40, 0x95, 0x10, 0x3A, 0x23, 0xE9, 0x43, 0xD3,
+ 0x62, 0xB7, 0x07, 0xAF, 0xE0, 0xF6, 0x81, 0x47, 0x93, 0x55, 0x1E, 0xE1, 0x0A, 0x64, 0xAA, 0x62,
+ 0x1D, 0x8B, 0xEA, 0xFA, 0xC7, 0x15, 0xA0, 0x8F, 0x88, 0xE0
+};
+
+static const uint8_t kECDSAPrivateKeyDER[] = {
+ 0x30, 0x78, 0x02, 0x01, 0x01, 0x04, 0x21, 0x00, 0xDB, 0x98, 0xC6, 0xEB, 0xDB, 0xC9, 0x68, 0x33,
+ 0x25, 0x2C, 0x0B, 0xA9, 0xEC, 0x0C, 0x98, 0x4A, 0x3A, 0x01, 0x38, 0xB6, 0x10, 0x70, 0x4E, 0x24,
+ 0x5B, 0xAB, 0xB7, 0xD0, 0xB2, 0xC3, 0x99, 0xAB, 0xA0, 0x0A, 0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE,
+ 0x3D, 0x03, 0x01, 0x07, 0xA1, 0x44, 0x03, 0x42, 0x00, 0x04, 0x4C, 0x54, 0x46, 0xB0, 0x82, 0x30,
+ 0x2F, 0x08, 0x16, 0xB7, 0x9F, 0x23, 0xFF, 0xCF, 0xBA, 0x05, 0x0D, 0x8B, 0x6D, 0x18, 0x58, 0xAC,
+ 0x46, 0xB9, 0xD0, 0x9E, 0xAB, 0x72, 0x76, 0xF7, 0xC8, 0x0B, 0x3B, 0xD7, 0x6F, 0x6D, 0xC4, 0x97,
+ 0xFB, 0x0D, 0x88, 0x33, 0xBD, 0x17, 0xE2, 0xFE, 0x43, 0x8B, 0x48, 0x99, 0x60, 0x24, 0x57, 0x9C,
+ 0xB7, 0x25, 0x6E, 0x71, 0x4A, 0x3F, 0x03, 0x64, 0xDC, 0xB1
+};
+
+static const uint8_t kEd25519CertificateDER[] = {
+ 0x30, 0x82, 0x01, 0xc1, 0x30, 0x82, 0x01, 0x66, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x08, 0x59, 0x36, 0x5a, 0xb1, 0x05, 0x86, 0x35, 0x51, 0x30,
+ 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x30,
+ 0x7d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x42, 0x45, 0x31, 0x0f, 0x30, 0x0d, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x06, 0x47, 0x6e, 0x75, 0x54, 0x4c, 0x53, 0x31, 0x25, 0x30, 0x23, 0x06,
+ 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1c, 0x47, 0x6e, 0x75, 0x54, 0x4c, 0x53,
+ 0x20, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65,
+ 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x31, 0x0f,
+ 0x30, 0x0d, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x06, 0x4c, 0x65, 0x75,
+ 0x76, 0x65, 0x6e, 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x03,
+ 0x13, 0x1c, 0x47, 0x6e, 0x75, 0x54, 0x4c, 0x53, 0x20, 0x63, 0x65, 0x72,
+ 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x61, 0x75, 0x74,
+ 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30, 0x20, 0x17, 0x0d, 0x31, 0x37,
+ 0x30, 0x36, 0x30, 0x36, 0x30, 0x37, 0x33, 0x33, 0x30, 0x35, 0x5a, 0x18,
+ 0x0f, 0x39, 0x39, 0x39, 0x39, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35,
+ 0x39, 0x35, 0x39, 0x5a, 0x30, 0x19, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03,
+ 0x55, 0x04, 0x03, 0x13, 0x0e, 0x45, 0x64, 0x32, 0x35, 0x35, 0x31, 0x39,
+ 0x20, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x30, 0x2a, 0x30, 0x05, 0x06,
+ 0x03, 0x2b, 0x65, 0x70, 0x03, 0x21, 0x00, 0xf3, 0x05, 0xfb, 0xe9, 0x73,
+ 0x2c, 0x8c, 0xdf, 0xc8, 0x25, 0xf4, 0xbf, 0x40, 0x7b, 0x2c, 0x86, 0x9b,
+ 0x65, 0x66, 0x7f, 0x75, 0xe3, 0xd6, 0xf4, 0x77, 0xb1, 0x21, 0xb5, 0xb7,
+ 0xb5, 0x89, 0x87, 0xa3, 0x61, 0x30, 0x5f, 0x30, 0x0c, 0x06, 0x03, 0x55,
+ 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x02, 0x30, 0x00, 0x30, 0x0f, 0x06,
+ 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x05, 0x03, 0x03, 0x07,
+ 0x80, 0x00, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04,
+ 0x14, 0xe3, 0x52, 0x4a, 0x73, 0x9d, 0x18, 0xbc, 0xe9, 0xbf, 0x7c, 0x4d,
+ 0x71, 0xc8, 0xbc, 0x66, 0x22, 0x8a, 0xab, 0x3c, 0xaa, 0x30, 0x1f, 0x06,
+ 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xf0, 0xb4,
+ 0x81, 0xfe, 0x98, 0x12, 0xbf, 0xb5, 0x28, 0xb9, 0x64, 0x40, 0x03, 0xcb,
+ 0xcc, 0x1f, 0x66, 0x4e, 0x28, 0x03, 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86,
+ 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x03, 0x49, 0x00, 0x30, 0x46, 0x02,
+ 0x21, 0x00, 0xc7, 0x19, 0xf4, 0xa0, 0x33, 0x8e, 0x03, 0x55, 0x97, 0xeb,
+ 0x3f, 0x90, 0x85, 0xf0, 0xb4, 0x8d, 0x94, 0x53, 0x79, 0xe6, 0xd8, 0xb7,
+ 0x67, 0xaf, 0x58, 0x27, 0x44, 0x8a, 0xf0, 0x5c, 0xbd, 0x79, 0x02, 0x21,
+ 0x00, 0xdd, 0x94, 0x29, 0xe5, 0xf7, 0x97, 0xc0, 0x3d, 0x0a, 0x47, 0x26,
+ 0xed, 0xb6, 0xab, 0x46, 0x88, 0x7e, 0xab, 0x1e, 0xd9, 0x55, 0x8a, 0x5e,
+ 0xfb, 0x9c, 0x37, 0x25, 0x8b, 0xb1, 0xcb, 0x5e, 0xb0
+};
+
+static const uint8_t kEd25519PrivateKeyDER[] = {
+ 0x30, 0x2e, 0x02, 0x01, 0x00, 0x30, 0x05, 0x06, 0x03, 0x2b, 0x65, 0x70,
+ 0x04, 0x22, 0x04, 0x20, 0xe5, 0xc3, 0x25, 0x73, 0x94, 0xe8, 0x9e, 0x97,
+ 0x75, 0x7c, 0x78, 0x59, 0xf7, 0x32, 0x3c, 0x82, 0xcf, 0x60, 0x90, 0xc7,
+ 0xe5, 0xb4, 0x5f, 0x9b, 0xd7, 0xa6, 0xf8, 0x36, 0x0c, 0x92, 0x59, 0x70
+};
+
+#endif
--- /dev/null
+/*
+ * Copyright(c) 2017 Free Software Foundation, Inc.
+ *
+ * GnuTLS is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GnuTLS is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with gnutls. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+#include <stddef.h> // size_t
+#include <stdint.h> // uint8_t
+#include <gnutls/gnutls.h>
+
+#ifdef __cplusplus
+extern "C"
+#endif
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size);
+
+static void __attribute__((constructor)) init(void)
+{
+ gnutls_global_init();
+}
+
+static void __attribute__((destructor)) deinit(void)
+{
+ gnutls_global_deinit();
+}
--- /dev/null
+#!/bin/sh -eu
+
+if ! grep -q FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION Makefile; then
+ echo "The fuzzers haven't been built for fuzzing (maybe for regression testing !?)"
+ echo "Please built regarding README.md and try again."
+ exit 1
+fi
+
+for fuzzer in *_fuzzer.c; do
+ ./get_ossfuzz_corpora $(basename $fuzzer .c)
+done
--- /dev/null
+#!/bin/sh -eu
+
+# As a first step see README.md and follow the steps under "Running a fuzzer using clang".
+
+# You might need 'gsutil' to download new corpora from the Google cloud:
+# Read the docs at https://github.com/google/oss-fuzz/blob/master/docs/corpora.md
+# then install 'google-cloud-sdk' and execute 'gcloud init'.
+# Now 'gsutil' should be ready to use.
+
+if test -z "$1"; then
+ echo "Usage: $0 <fuzzer target>"
+ echo "Example: $0 gnutls_base64_decode_fuzzer"
+ exit 1
+fi
+
+if ! grep -q FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION Makefile; then
+ echo "The fuzzers haven't been built for fuzzing (maybe for regression testing !?)"
+ echo "Please built regarding README.md and try again."
+ exit 1
+fi
+
+fuzzer=$1
+project=gnutls
+
+# sync/copy the OSS-Fuzz corpora into the .new directory
+mkdir -p ${fuzzer}.new
+cp -fp ${fuzzer}.in/* ${fuzzer}.new
+gsutil -m rsync gs://${project}-corpus.clusterfuzz-external.appspot.com/libFuzzer/${fuzzer} ${fuzzer}.new
+
+# create fuzzer target
+BUILD_ONLY=1 ./run-clang.sh ${fuzzer}
+
+# merge the corpora into the .in directory
+./${fuzzer} -merge=1 ${fuzzer}.in ${fuzzer}.new
+
+# now clear .new dir and put all corpora there
+rm -f ${fuzzer}.new/*
+mv ${fuzzer}.in/* ${fuzzer}.new
+
+# now merge again (optimizes number of corpora)
+./${fuzzer} -merge=1 ${fuzzer}.in ${fuzzer}.new
+
+echo
+echo "If new files have been added, 'git add' and 'git commit' them."
--- /dev/null
+/*
+# Copyright 2017 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+*/
+
+#include <stdint.h>
+
+#include <gnutls/gnutls.h>
+#include "fuzzer.h"
+
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+{
+ gnutls_datum_t raw = {.data = (unsigned char *)data, .size = size};
+ gnutls_datum_t out;
+ int ret;
+
+ ret = gnutls_pem_base64_decode2(NULL, &raw, &out);
+ if (ret >= 0)
+ gnutls_free(out.data);
+
+ return 0;
+}
--- /dev/null
+------BEGIN ---\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r|\r\r-----END \r\r\r\r\r\r\r--END -BEGIN -----\v------END
--- /dev/null
+------BEGIN -----
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+-----
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+BEGIN -ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ-------END -BE-----\v-N \v,-----END
--- /dev/null
+------BEGI-----BEGIN -----BECIN IN N ------------END -BEGIN ;\v-BE-N \vGI------END N
+
--- /dev/null
+------BEGIN -----BE -----END ----- \ f ------BEGIN -----BEGIN --------END -BEGIN --------EN-----D -BE-----\v-N \v,-----END
--- /dev/null
+-----BEGIN IN
\ No newline at end of file
--- /dev/null
+-----BEGIN -----BE---------END -END CIN IN
\ No newline at end of file
--- /dev/null
+------BEGIN ---\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r|\r\r-----END \r\r\r-Î-\v------END
--- /dev/null
+------BEGIN ---\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r-----END \r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r²|\r\r-----END \r\r\r\r\r\r\r--END -BEGIN -----\v------END
--- /dev/null
+------BEGIN -----BE,-----BEGIN -----BEGIN --------END -BEGIN --------END -BE-----\v-N \v,-----END
--- /dev/null
+------BEGIN -----BE ----- \ f ------BEGIN -----BEGIN --------END -BEGIN --------EN-----D -BE-----\v-N \v,-----END
--- /dev/null
+------BEGIN -----
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+BEGIN -ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ-------END -BE-----\v-N \v,-----END
--- /dev/null
+------BEGIN -----
+
+
+
+
+
+
+
+
+
+
+
+
+BEGIN -ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ*ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ-------END -BE-----\v-N \v,-----END
--- /dev/null
+------BEGIN -----'------END
--- /dev/null
+-----BEGIN
--- /dev/null
+------BEGIN --\r--BEGIN --;-----\v-N \v,-----END
--- /dev/null
+------BEGIN -----BE h -----EN \ f ®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®® ------BEGIN -----BEGIN --------E-----ND -BEGIN --------EN-----D -BE-----\v-N \v,-----END
--- /dev/null
+------BEGIN -----END -BEGIN ;\v-N \v------END
--- /dev/null
+------BEGIN ---\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r-----END \r\r\r\r\r\r\r\r\r\r--END -BEGIN -----\v------END
--- /dev/null
+------BEGIN --------END -BEGIN ;\v-N \v------END
--- /dev/null
+------BEGIN -----'---END -BEGIN ;\v-N \v------END
--- /dev/null
+------BEGIN -----BE ------BEGIN -----BEGIN --------END -BEGIN --------END -BE-----\v-N \v,-----END
--- /dev/null
+-----BEGIN -----EGIN -----B-----END TCIN IN
\ No newline at end of file
--- /dev/null
+------BEGIN -----END \r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r|\r\r-----END \r\r\r\r\r\r\r--END -BEGIN -----\v------END -
\ No newline at end of file
--- /dev/null
+-----BEGIN -----BECIN IN
\ No newline at end of file
--- /dev/null
+------BEGIN -----
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+BE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+BEGIN -ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ-------END -BE---0-\v-N \v,-----END
--- /dev/null
+/*
+# Copyright 2017 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+*/
+
+#include <stdint.h>
+
+#include <gnutls/gnutls.h>
+#include "fuzzer.h"
+
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+{
+ gnutls_datum_t raw = {.data = (unsigned char *)data, .size = size};
+ gnutls_datum_t out;
+ int ret;
+
+ ret = gnutls_pem_base64_encode2(NULL, &raw, &out);
+ if (ret >= 0)
+ gnutls_free(out.data);
+
+ return 0;
+}
--- /dev/null
+/*
+# Copyright 2016 Google Inc.
+# Copyright 2017 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+*/
+
+#include <assert.h>
+#include <fcntl.h>
+#include <stdint.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <string.h>
+#include <stdlib.h>
+#include <stdbool.h>
+
+#include <gnutls/gnutls.h>
+#include "mem.h"
+#include "fuzzer.h"
+
+int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
+{
+ int res;
+ gnutls_session_t session;
+ gnutls_certificate_credentials_t xcred;
+ struct mem_st memdata;
+
+ res = gnutls_init(&session, GNUTLS_CLIENT);
+ assert(res >= 0);
+
+ res = gnutls_certificate_allocate_credentials(&xcred);
+ assert(res >= 0);
+ res = gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
+ assert(res >= 0);
+
+ res = gnutls_set_default_priority(session);
+ assert(res >= 0);
+
+ memdata.data = data;
+ memdata.size = size;
+
+ gnutls_transport_set_push_function(session, mem_push);
+ gnutls_transport_set_pull_function(session, mem_pull);
+ gnutls_transport_set_pull_timeout_function(session, mem_pull_timeout);
+ gnutls_transport_set_ptr(session, &memdata);
+
+ do {
+ res = gnutls_handshake(session);
+ } while (res < 0 && gnutls_error_is_fatal(res) == 0);
+ if (res >= 0) {
+ while (true) {
+ char buf[16384];
+ res = gnutls_record_recv(session, buf, sizeof(buf));
+ if (res <= 0) {
+ break;
+ }
+ }
+ }
+
+ gnutls_deinit(session);
+ gnutls_certificate_free_credentials(xcred);
+ return 0;
+}
--- /dev/null
+\15\ 30\ 2\ 1d
\ No newline at end of file
--- /dev/null
+0\ 30AA
\ No newline at end of file
--- /dev/null
+\166
\ No newline at end of file
--- /dev/null
+/*
+# Copyright 2016 Nikos Mavrogiannopoulos
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+*/
+
+#include <assert.h>
+#include <stdint.h>
+
+#include <gnutls/gnutls.h>
+#include <gnutls/x509.h>
+
+#include "fuzzer.h"
+
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+{
+ gnutls_datum_t out, raw;
+ gnutls_x509_dn_t dn;
+ int ret;
+
+ raw.data = (unsigned char *)data;
+ raw.size = size;
+
+ ret = gnutls_x509_dn_init(&dn);
+ assert(ret >= 0);
+
+ ret = gnutls_x509_dn_import(dn, &raw);
+ if (ret < 0)
+ goto cleanup;
+
+ /* If properly loaded, try to re-export in string */
+ ret = gnutls_x509_dn_get_str(dn, &out);
+ if (ret < 0) {
+ goto cleanup;
+ }
+
+ gnutls_free(out.data);
+
+cleanup:
+ gnutls_x509_dn_deinit(dn);
+ return 0;
+}
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6,<++,<
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2E*
\ No newline at end of file
--- /dev/null
+0&1$0"\ 6\ 3U\ 4
+\14\eYyy""``````"""````````"""""
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2E%
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2EJ
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2Eq
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4)\14\ 6MMM+++
\ No newline at end of file
--- /dev/null
+0+1\v0 \ 6\ 3U\ 4)\13\ 2, 1\r0\v\ 6\ 3U\ 4\v\13\ 4 X 1\r0\v\ 6\ 3U\ 4\v\13\ 4 X
\ No newline at end of file
--- /dev/null
+0+1\v0 \ 6\ 3U\ 4\ 6\13\ 2- 1\r0\v\ 6\ 3U\ 4\ 3\14\ 4#_XX1\r0\v\ 6\ 3U\ 4\ 3\14\ 4#X__
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e[[3..2.62.5.2.62.5.42.5[¯Î±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2}}
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2gS
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6,?zzz,
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6,oo,o\11
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6,1+,,+
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 23S
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2EU
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 42\96\90¨1$0"\ 6\ 3U\ 4
+\14\e2.582.5.4.8tf8Stutf8String±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2k.u~k~n$ve.u~i~euk.k~i~n$v1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ÎÎκ¹®1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 28S
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6ooo,o\11
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2|S
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¸1$0"\ 6\ 3U\ 4
+\14\e992.5.39.65.2.5.5891.4.15α1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\v1 0\a\ 6\ 3U\ 4\a\1f\16
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4\v\14\81\ 1Ô
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2e)
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e[[3..2.62.5.2.62.[.42.5[¯Î±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2E$
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2""
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4ÿÿÿÿS
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U¢\ 6\13\ 6,+;<>\
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6,zz,,:
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2niverqnivuniverqalStsingqH1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84νκή1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2{{
\ No newline at end of file
--- /dev/null
+0&1$0"\ 6\ 3U\ 4
+\14\eYyy"""""""";"""""""""""""""
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2ZZ
\ No newline at end of file
--- /dev/null
+0+1\v0 \ 6\ 3U\ 4\ f\13\ 2, 1\r0\v\ 6\ 3U\ 4\v\14\ 4`0X`1\r0\v\ 6\ 3U\ 4\v\14\ 4 `S\16
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6,zzzz,
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2X}
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2.utf8StringiversalStringl±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0+1\v0 \ 6\ 3U\ 4\ 4\13\ 2, 1\r0\v\ 6\ 3U\ 4\v\13\ 4 X 1\r0\v\ 6\ 3W\ 4\ 3\f\ 4#XXX
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6,,pp\13>
\ No newline at end of file
--- /dev/null
+0\ 61\ 20\ 1\1f\ 6
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2!S
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\a\14\ 6\>\>\\
\ No newline at end of file
--- /dev/null
+0'1\v0 \ 6\ 3U\ 4)\14\ 20\f1\v0 \ 6\ 3U\ 4\f\14\ 20\ 21\v0 \ 6\ 3U\ 4\f\14\ 20\ 2
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6-&V&VV
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4\v\1e\81\ 1Ô
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2;[
\ No newline at end of file
--- /dev/null
+0&1$0"\ 6\ 3U\ 4
+\14\e7ccccccccc77;;;;;;;;;;;;;p)
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6,:+,,:
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6---&--
\ No newline at end of file
--- /dev/null
+0+1\v0 \ 6\ 3U\ 4\ f\13\ 2, 1\r0\v\ 6\ 3U\ 4\v\14\ 4 X 1\r0\v\ 6\ 3W\ 4\ 3\f\ 4#XXX
\ No newline at end of file
--- /dev/null
+0\7f1\r0\v\ 6\ 3U\ 4\90\9f\f\ 3!¨\ 41$0"\ 6\ 3U\ 4
+\16\ehh,,,8,,,,,,,',),,,,,\81,ία1\150\13\ 6\ 3U\ 4\10\f\fÎ\91Ï\84Ï\84ιÎÀή1\v0 \ 6\ 3U\ 4\ 6\13\ 2¨\ 41$0"\ 6\ 3U\ 4
+\f\ehh,6,8,,,,,,,',),,,,,,\81ÎÀGR
\ No newline at end of file
--- /dev/null
+0&1$0"\ 6\ 3U\ 4
+\14\e:sBBB8888\\\\\\\\8888\\\\88
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2E(
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2.5.*.*nivbnggtringgtringl±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 6\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2.5.*.*nivbmpStbin*gtringl±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ʹκή1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2EE
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2Ea
\ No newline at end of file
--- /dev/null
+0&1$0"\ 6\ 3U\ 4
+\14\ew,,vOw,,vOvOB,OvOw,,vOvOB,O
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2k.u~i~n$ve.u~i~euk.u~i~n$v1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ÎÎκ¹®1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2.5nSt5ctypeIcEt5ctyEEIcEe±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ë\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2B(
\ No newline at end of file
--- /dev/null
+0+1\v0 \ 6\ 3U\ 4\ 6\13\ 2- 1\r0\v\ 6\ 3U\ 4\ 3\14\ 4#_XX1\r0\v\ 6\ 3U\ 4\ 3\14\ 4#X_X
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2=i
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6,::,,:
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2DS
\ No newline at end of file
--- /dev/null
+041\v0 \ 6\ 3U\ 4)\14\ 21ä1\v0 \ 6\ 3U\ 4)\14\ 2^\9a1\v0 \ 6\ 3U\ 4)\14\ 2\ 2!1\v0 \ 6\ 3U\ 4)\14\ 2Ì1
\ No newline at end of file
--- /dev/null
+0+1\v0 \ 6\ 3U\ 4\ 6\13\ 2- 1\r0\v\ 6\ 3U\ 4\ 3\14\ 4#YXY1\r0\v\ 6\ 3U\ 4\ 3\14\ 4#XXY
\ No newline at end of file
--- /dev/null
+0+1\v0 \ 6\ 3U\ 4\ 6\13\ 2- 1\r0\v\ 6\ 3U\ 4\ 3\14\ 4#YXX1\r0\v\ 6\ 3U\ 4\ 3\14\ 4#XXY
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6-&V&V&
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2EC
\ No newline at end of file
--- /dev/null
+0+1\v0 \ 6\ 3U\ 4\ 6\13\ 2- 1\r0\v\ 6\ 3U\ 4\v\13\ 4 X 1\r0\v\ 6\ 3U\ 4\ 3\14\ 4#''X
\ No newline at end of file
--- /dev/null
+041\v0 \ 6\ 3U\ 4.\13\ 2641\v0 \ 6\ 3U\ 4.\13\ 2041\v0 \ 6\ 3U\ 4.\13\ 2641\v0 \ 6\ 3U\ 4.\13\ 211
\ No newline at end of file
--- /dev/null
+0&1$0"\ 6\ 3U\ 4
+\14\ewovRR<<<<><<<<<<<<<<<RRRovL
\ No newline at end of file
--- /dev/null
+0+1\v0 \ 6\ 3U\ 4\ f\13\ 2, 1\r0\v\ 6\ 3U\ 4\v\14\ 4 0X 1\r0\v\ 6\ 3U\ 4\v\14\ 4 0X
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2DD
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2||
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e11.2.36.20.21.4.30.30.0.8α1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6,p,ppp
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2FS
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 42\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2.5.*.*nivutf8Stutf8Striff±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6,>>+>>
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 29S
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\a\14\ 6\<]]]]
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4\ 6\ f\ 2ES
\ No newline at end of file
--- /dev/null
+0h1\v0 \ 6\ 3U\ 4\r\1e\ 20!1\v0 \ 6\ 3U\ 4\r\1e\ 20!1\v0 \ 6\ 3U\ 4\r\1e\ 20!1\v0 \ 6\ 3U\ 4\r\1e\ 20!1\v0 \ 6\ 3U\ 4\r\1e\ 20!1\v0 \ 6\ 3U\ 4\r\1e\ 20!1\v0 \ 6\ 3U\ 4\r\1e\ 20!1\v0 \ 6\ 3U\ 4\r\1e\ 20!
\ No newline at end of file
--- /dev/null
+0+1\v0 \ 6\ 3U\ 4\ 63\ 2ý\161\r0\v\ 6\ 3U\ 4\ 6/\ 4 X 1\r0\v\ 6\ 3U\ 4þ\f\ 4#XX)
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6-V&VVV
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2.5.4.untsing2Hg2Hunivalg2H1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2EL
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2GG
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2Eã
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2Ez
\ No newline at end of file
--- /dev/null
+0&1$0"\ 6\ 3U\ 4
+\14\esO(N>>>:>>>>>>M>>(NsO(N>>>>
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2`S
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 5«,\7f]º\9a¬
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2E<
\ No newline at end of file
--- /dev/null
+0V1\v0 \ 6\ 3U\ 4,\14\ 2Ôß1\r0\v\ 6\ 3U\ 4,\14\ 4 l0+1\v0 \ 6\ 3U\ 4,\13\ 2Ôß1\r0\v\ 6\ 3U\ 4,\14\ 4 l 1\r0\v\ 6\ 3U\ 4,\14\ 4 l h1\r0\v\ 6\ 3U\ 4,\14\ 4 l h
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6????\9e:
\ No newline at end of file
--- /dev/null
+0+1\v0 \ 6\ 3U\ 4\ 6\13\ 2ý\161\r0\v\ 6\ 3U\ 4\ 6\13\ 4 X 1\r0\v\ 6\ 3U\ 4\fþ\ 4#XX)
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2E2
\ No newline at end of file
--- /dev/null
+0'1\v0 \ 6\ 3U\ 4)\14\ 2Z\1a1\v0 \ 6\ 3U\ 4)\14\ 2Z'1\v0 \ 6\ 3U\ 4)\14\ 2ZZ
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6n+\13\ 6>:
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2E\
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6-====-
\ No newline at end of file
--- /dev/null
+0h1\v0 \ 6\ 3U\ 4.\13\ 2\ 1\ 11\v0 \ 6\ 3U\ 4.\13\ 2\ 1\ 11\v0 \ 6\ 3U\ 4.\13\ 2\ 1)1\v0 \ 6\ 3U\ 4\ 5\13\ 2\ 1\ 11\v0 \ 6\ 3U\ 4.\13\ 2\ 1\ 11\v0 \ 6\ 3U\ 4.\13\ 2\ 1\ 11\v0 \ 6\ 3U\ 4.\13\ 2\ 1)1\v0 \ 6\ 3U\ 4\ 5\13\ 20\ 2
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2K"
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2.5NSt6locaveuNl5iveuNi1uNi1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0+1\v0 \ 6\ 3U\ 4\ f\13\ 2, 1\r0\v\ 6\ 3U\ 4\v\14\ 4 0X`1\r0\v\ 6\ 3U\ 4\v\14\ 4 `S\16
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2mS
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3\ 42[\f\ 4Õ\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2.5.*.*nivutf8Studf8Studfg±1\150\13\ 6\ 3³Î\b\f\f'\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6,?o?\9e:
\ No newline at end of file
--- /dev/null
+0+1\v0 \ 6\ 3U\ 4\ 6\13\ 2- 1\r0\v\ 6\ 3U\ 4\v\13\ 4 X 1\r0\v\ 6\ 3U\ 4\ 3\14\ 4'''X
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2.5.*.*nivbmpStbin*gtbingl±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ʹκή1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6-&<!<<
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\a\14\ 6\<>]>]
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2[3..2.62.5.2.62.5.42.5[¯Î±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4\ 6!\ 2ES
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2EQ
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2$5.$.^RZ^^^^^^^^^^^^^^sal±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6-=-&=-
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 24S
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2.5.*.*nivbmpStrin*g*ringl±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ʹκή1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 25w
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6-&-&&&
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2^^
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2II5.4.e)ive.unSt5ctypeIcE±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ë\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0+1\v0 \ 6\ 3U\ 4\ 63\ 2ý\161\r0\v\ 6\ 3U\ 4\ 6/\ 4 X 1\r0\v\ 6\ 3U\ 4\ 6/\ 4 X)
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2.5NSt6locall5iveuNl5iveuNi1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 20S
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2UU
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2KK
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2.5nSt5ctypeIcEt5ctyEeIcEe±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ë\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0r1\v0 \ 6\ 3U\ 4\ 3\13\ 2[ 1\r0\v\ 6\ 3U\ 4 \14\ 4_<_ 1\v0 \ 6\ 3U\ 4*\13\ 2[ 1\r0\v\ 6\ 3U\ 4*\14\ 4_)) 1\r0\v\ 6\ 3U\ 4 \14\ 4_<_ 1\v0 \ 6\ 3U\ 4*\13\ 2[ 1\r0\v\ 6\ 3U\ 4*\14\ 4_)) 1\r0\v\ 6\ 3U\ 4 \14\ 4_)[
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2ER
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6---&&\13
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2$5.$.^RZ^^¢¡¡¡¡¡¡\9b^^^^sal±1\150\13\ 6\ 3³Î\b\f\f»\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2.5.4.enivutf8Stringtrinfl±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2El
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4\ 6\13\ 2ES
\ No newline at end of file
--- /dev/null
+0x1\r0\v\ 6\ 3U\ 4A\1e\ 4ð\9fQQ1\r0\v\ 6\ 3U\ 4A\1e\ 4ð\9fQQ1\r0\v\ 6\ 3U\ 4A\1e\ 4ð\9fQQ1\r0\v\ 6\ 3U\ 4A\1e\ 4ð\9fQQ1\r0\v\ 6\ 3U\ 4A\1e\ 4ð\9fQQ1\r0\v\ 6\ 3U\ 4A\1e\ 4ð\9fQQ1\r0\v\ 6\ 3U\ 4A\1e\ 4ð\9fQQ1\r0\v\ 6\ 3U\ 4A\1e\ 4ð\9fm2
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\a\14\ 6>">""]
\ No newline at end of file
--- /dev/null
+0+1\v0 \ 6\ 3U\ 4\ 3\1c\ 2ý\161\r0\v\ 6\ 3U\ 4\ 6\13\ 4#XX)1\r0\v\ 6\ 3U\ 4\ 3\f\ 4#XX)
\ No newline at end of file
--- /dev/null
+0+1\v0 \ 6\ 3U\ 4\ 3\14\ 2XX1\r0\v\ 6\ 3U\ 4\ 3\14\ 4#XXX1\r0\v\ 6\ 3U\ 4\ 3\14\ 4#XXX
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2hh
\ No newline at end of file
--- /dev/null
+0&1$0"\ 6\ 3U\ 4
+\14\ew,,,,,,,,,,,,,,,vOvBO,vOvRI
\ No newline at end of file
--- /dev/null
+041\v0 \ 6\ 3U\ 4)\14\ 29 1\v0 \ 6\ 3U\ 4)\14\ 29 1\v0 \ 6\ 3U\ 4)\14\ 29 1\v0 \ 6\ 3U\ 4)\14\ 29
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e4.5.4.42.54.5.4.42.5.4.4¯Î±1\150\13\ 6\ 3Î\b³\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6,:::,:
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2FF
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6,,p\13>:
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2.utf8StringiverralStringl±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0h1\v0 \ 6\ 3U\ 4,\1e\81\ 1 1\v0 \ 6\ 3U\ 4,\1e\81\ 1 1\v0 \ 6\ 3U\ 4,\1e\81\ 1 1\v0 \ 6\ 3U\ 4,\1e\81\ 1 1\v0 \ 6\ 3U\ 4,\1e\81\ 1 1\v0 \ 6\ 3U\ 4,\1e\81\ 1 1\v0 \ 6\ 3U\ 4,\1e\81\ 1 1\v0 \ 6\ 3U\ 4,\1e\81\ 1
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2EY
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2vS
\ No newline at end of file
--- /dev/null
+0j1\r0\v\ 6\ 3U;\ 3;\ 4ð\9f\90¥1\r0\v\ 6\ 3U{\ 3;\ 4ð\9f7¨1$0"\ 6\ 3U\ 4\a;\ei0 p0ppppppppppppppp109094:1$0"\ 6\ 3U\14\a\14\ei)))p0ppppppppppppppp109094
\ No newline at end of file
--- /dev/null
+0&1$0"\ 6\ 3U\ 4
+\14\ewovRR<<<<<<<<<<<<<<<<RRRovL
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2.utf8RtringiveRralStringl±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2VS
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6,A,A,A
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2PP
\ No newline at end of file
--- /dev/null
+041\v0 \ 6\ 3U\ 4\v\1c\81\ 1«1\v0 \ 6\ 3U\ 4\v\1c\81\ 141\v0 \ 6\ 3U\ 4\v\1c\81\ 1«1\v0 \ 6\ 3U\ 4\v\1c\81\ 1«
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2Ed
\ No newline at end of file
--- /dev/null
+0+1\v0 \ 6\ 3U\ 4\ 6\13\ 2- 1\r0\v\ 6\ 3U\ 4\ 3\14\ 4#YXY1\r0\v\ 6\ 3U\ 4\ 3\14\ 4#YXY
\ No newline at end of file
--- /dev/null
+0y1\r0\v\ 6\ 3Ý\ 4qð\ 4;\9fY\ 31\r0\v\ 6\ 3ÿÿû\16\ 4ð\9fpW1$0"\ 6\ 3U\ 4
+\14\e*"7>>>>>><>>>>%I"7>>>>>>hhh1\r0\v\ 6\ 3ÿÿû\16\ 4ð\9fpW1$0"\ 6\ 3U\ 4
+\14\e*"7>>>>>><>>>>%I"7>>>>>><hh
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¸1$0"\ 6\ 3U\ 4
+\14\e99.2!3.62.5.2.5.5891!5.15α1\150\13\ 6\ 3³Î\b\11\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6(\ 2GR
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\1f\90¸1$0"\ 6\ 3U\ 4
+\14\e99.2!3.62.5.2.5!5891!5.15α1\150\13\ 6\ 3³Î\b\11\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6(\ 2GR
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\a\14\ 6\<>\>]
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2EI
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2II5.4.e)Ive.unSt5ctypeIcE±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ë\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3U\ 4\ 3\f\ 4🐨1$0"\ 6\ 3U\ 4
+\1c\eΜεγάλη εταιρία1\150\13\ 6\ 3U\ 4\b\1c\fΑττική1\v0 \ 6\ 3U\ 4&\13\ 2GR
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2AS
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2EO
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e11.2.36.20.33.4.32.5.4.15α1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2mm
\ No newline at end of file
--- /dev/null
+0+1\v0 \ 6\ 3U\ 4\ 6\13\ 2- 1\r0\v\ 6\ 3U\ 4\ 3\14\ 4#XXX1\r0\v\ 6\ 3U\ 4\ 3\14\ 4#X#X
\ No newline at end of file
--- /dev/null
+0&1$0"\ 6\ 3U\ 4
+\14\e+++++++++++++++++++++++++++
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6,////1
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2E^
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6,,x,,x
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 27S
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2Es
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6,xxx,x
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3U\ 4\f\ 2\ 4\9f\90ð¨1$0"\ 6\ 3U\ 4
+\14\e++++++++++++++++++++++BBBBB1\150\13\ 6\ 3U\ 4\b\14\fBB++++++++++1\v0 \ 6\ 3U\ 4\a\13\ 2GR
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2SS
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6-&<<<<
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2fS
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\1f\90¸1$0"\ 6\ 3U\ 4
+\14\e99.2!3.62.5.2.5!5891!5.!5α1\150\13\ 6\ 3³Î\b\11\fÎ\91i\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6(\ 2GR
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 26S
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 21S
\ No newline at end of file
--- /dev/null
+0+1\v0 \ 6\ 3U\ 4\ 6\13\ 2, 1\r0\v\ 6\ 3U\ 4\vï\ 4 X 1\r0\v\ 6\ 3U$\ 3\f\ 4#XXX
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2E]
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2E{
\ No newline at end of file
--- /dev/null
+0&1$0"\ 6\ 3U\ 4
+\14\e7cccc77;;;;7;;;;;;;;;;;;;p)
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\13\ 2ES
\ No newline at end of file
--- /dev/null
+0\ f1\r0\v\ 6\ 3U\ 4)\14\ 4;;{;
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2 S
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2niverqnivuniverqalStqingqH1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84νκή1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 42\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2.S.*.*nivutf8Stutf8StringS1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2GS
\ No newline at end of file
--- /dev/null
+0+1\v0 \ 6\ 3U\ 4\ f\13\ 2, 1\r0\v\ 6\ 3U\ 4\v\14\ 4`0X`1\r0\v\ 6\ 3U\ 4\v\14\ 4 `S`
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2CC
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2$5.$.pppppppppppppp\18pp.u~±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 42\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e11(2(36.20.21(4.5.(4.2.15α1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4þS\ 2GR
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6-&\13\ 6>:
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2M@
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2$5.$.en$1$0"\ 6\ 3U\ 4
+\14\e2$5sal±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2j_
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6,AAA,A
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6,,?\13>:
\ No newline at end of file
--- /dev/null
+0+1\v0 \ 6\ 3U\ 4\ 6\13\ 2ý\161\r0\v\ 6\ 3U\ 4\ 6\13\ 4 X 1\r0\v\ 6\ 3U\ 4\ 6\13\ 4#XX)
\ No newline at end of file
--- /dev/null
+0+1\v0 \ 6\ 3U\ 4\ f\13\ 2, 1\r0\v\ 6\ 3U\ 4\v\14\ 4 0X 1\r0\v\ 6\ 3W\ 4\ 3\f\ 4#XXX
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2bP
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2I5.4.c)ive>unSt5ctypeIcEe±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ë\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2MM
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2OO
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¸1$0"\ 6\ 3U\ 4
+\14\e91.3.3%62.%.2.%.%891.4.15α1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 42\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2.5.*.*nivutf8Stutf8StringS1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0+1\v0 \ 6\ 3U\ 4\ 6\13\ 2X 1\r0\v\ 6\ 3U\ 4\ 3\14\ 4#''X1\r0\v\ 6\ 3U\ 4\ 3\14\ 4#''X
\ No newline at end of file
--- /dev/null
+0&1$0"\ 6\ 3U\ 4
+\16\e++ÕÔÔÒ++ÿÿÿÿÿÿÿÿ+++++++++++
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3\ 42[\f\ 4Õ\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2.5.f8Studutf8Studf8Studfg±1\150\13\ 6\ 3³Î\b\f\f'\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2.5.4.untsing2Huniversalg2H1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2Ec
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2niverqnivuniverqalStsing1H1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84νκή1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0+1\v0 \ 6\ 3U\ 4\ 6\13\ 2- 1\r0\v\ 6\ 3U\ 4\ 3\14\ 4#XXX1\r0\v\ 6\ 3U\ 4\ 3\14\ 4#X##
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2EZ
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3U\ 4\90\9f\f\ 3!(\ 41$0"\ 6\ 3U\ 4
+\14\e4\\\\\\\\\\\\\\\\\\\\\\11111\150\13\ 6\ 3U\ 4\f\14\f\\\\\\\\\\\\1\v0 \ 6\ 3U\ 4)\13\ 2GR
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2$5.$.en$ve.u~i~euniversal±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2jj
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6l,+\13>:
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2Xy
\ No newline at end of file
--- /dev/null
+0+1\v0 \ 6\ 3U\ 4)\13\ 2 ,1\r0\v\ 6\ 3U\ 4\v\13\ 4 X 1\r0\v\ 6\ 3U\ 4\v\13\ 4 X
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2;;
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3U\ 4\ 6\f\ 4🐨1$0"\ 6\ 3U\ 4\ 6\f\eΜεγάλη εταιρία1\150\13\ 6\ 3U\ 4\ 6\f\fΑττική1\v0 \ 6\ 3U\ 4\ 6\11\ 2GR
\ No newline at end of file
--- /dev/null
+0h1\v0 \ 6\ 3U\ 4,\1e\ 2ÚÝ1\v0 \ 6\ 3U\ 4,\1e\ 2ÚÝ1\v0 \ 6\ 3U\ 4,\1e\ 2ÚÝ1\v0 \ 6\ 3U\ 4,\1e\ 2ÚÝ1\v0 \ 6\ 3U\ 4,\1e\ 2ÚÝ1\v0 \ 6\ 3U\ 4,\1e\ 2ÚÝ1\v0 \ 6\ 3U\ 4,\1e\ 2ÚÝ1\v0 \ 6\ 3U\ 4,\1e\ 2ÚÝ
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6-&-&&\13
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2>S
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2.5.4.enive.unWt5ctypeIWEe±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ë\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0+1\v0 \ 6\ 3U\ 4\ 6\13\ 2 ,1\r0\v\ 6\ 3U\ 4\v\13\ 4 X 1\r0\v\ 6\ 3W\ 4\ 3\f\ 4#XXX
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2k[
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\1e\ 2ES
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\1e\ 6-&\13\ 6>:
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¸1$0"\ 6\ 3U\ 4
+\14\e91.2.3.62.%.2.%.5891.4.15α1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2bS
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2TS
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6,A>+,A
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2.5NSt6locale5iveuniversal±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\a\14\ 6\<>\>\
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2k.u~k~n$ve.u~i~euk.u~i~n$v1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ÎÎκ¹®1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0+1\v0 \ 6\ 3U\ 4\ 6\13\ 2- 1\r0\v\ 6\ 3U\ 4\v\13\ 4 X 1\r0\v\ 6\ 3U\ 4\ 3\14\ 4#XXX
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6-=-==-
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2Er
\ No newline at end of file
--- /dev/null
+0&1$0"\ 6\ 3U\ 4
+\14\esO(N>>>>>>>>>>>>>(N>>>>>>>>
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2:S
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e779..2.62.5.2.62.5.42.5[¯Î±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2$5.$.ppppppppppppppppp.u~±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0h1\v0 \ 6\ 3U\ 4\r\14\ 2bä1\v0 \ 6\ 3U\ 4\r\14\ 2bä1\v0 \ 6\ 3U\ 4\r\14\ 2)\161\v0 \ 6\ 3U\ 4\r\14\ 2)Û1\v0 \ 6\ 3U\ 4\r\14\ 2bä1\v0 \ 6\ 3U\ 4\r\14\ 2)Û1\v0 \ 6\ 3U\ 4\r\14\ 2bä1\v0 \ 6\ 3U\ 4\r\14\ 2bä
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2~S
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\a\14\ 6\<>]]]
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2NS
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2HS
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2))
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6,,xx,x
\ No newline at end of file
--- /dev/null
+0'1\v0 \ 6\ 3U\ 4)\1e\ 2Þ\1a1\v0 \ 6\ 3U\ 4)\1e\ 2Þ'1\v0 \ 6\ 3U\ 4)\1e\ 2Þ*
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 42\96\90¨1$0"\ 6\ 3U\ 4
+\14\e2.5.2.5.4.8tf8Stutf8String±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2.5.4.univuniversalStsing2H1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6,,,+\13>
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¸1$0"\ 6\ 3U\ 4
+\14\e91.3.3.62.%.2.%.%891.4.15α1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2$5.$.en$ve.u~i~eunivve.u~±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\ e\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e11.2.91.1.1.4.1132.5.4.15α1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2h[
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2$5.$.^R^^^^^^^^^^^^^^^sal±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2$5..^R^^^\8a^^^^^^^^^^^^sal±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\a\14\ 6>">"""
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e223..2.62.5.2.62.2.42.5[¯Î±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2tS
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2TT
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2xS
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2.utf8RtRingiveRralStringl±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ική1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6?o??\9e:
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6,.+\13>:
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6,,++++
\ No newline at end of file
--- /dev/null
+0&1$0"\ 6\ 3U\ 4
+\14\e:sB\\\\88\\\\\\\\8888\\\\88
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6,ppp\13>
\ No newline at end of file
--- /dev/null
+0\r1\v0 \ 6\ 3U\ 4)\14\ 2EW
\ No newline at end of file
--- /dev/null
+0\ f1\r0\v\ 6\ 3U\ 4)\14\ 4;;;;
\ No newline at end of file
--- /dev/null
+0h1\v0 \ 6\ 3U\ 4\r\14\ 20!1\v0 \ 6\ 3U\ 4\r\14\ 20!1\v0 \ 6\ 3U\ 4\r\14\ 20!1\v0 \ 6\ 3U\ 4\r\14\ 20V1\v0 \ 6\ 3U\ 4\r\14\ 20!1\v0 \ 6\ 3U\ 4\r\14\ 20!1\v0 \ 6\ 3U\ 4\r\14\ 20!1\v0 \ 6\ 3U\ 4\r\14\ 20'
\ No newline at end of file
--- /dev/null
+0\111\ f0\r\ 6\ 3U\ 4\v\14\ 6,>+S>>
\ No newline at end of file
--- /dev/null
+0Y1\r0\v\ 6\ 3Õ\ 4[\f\ 41\9f\90¨1$0"\ 6\ 3U\ 4
+\14\e2.5.*.*nivbmbStbin*gtbingl±1\150\13\ 6\ 3³Î\b\f\fÎ\91Ï\84Ï\84ʹκή1\v0 \ 6\ 3U\ 4\ 6S\ 2GR
\ No newline at end of file
--- /dev/null
+/*
+# Copyright 2016 Nikos Mavrogiannopoulos
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+*/
+
+#include <assert.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <string.h>
+
+#include <gnutls/gnutls.h>
+
+#include "fuzzer.h"
+
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+{
+ gnutls_datum_t out;
+
+ if (gnutls_idna_map((const char *) data, size, &out, 0) >= 0) {
+ assert(out.size == strlen((char *) out.data));
+ gnutls_free(out.data);
+ }
+
+ return 0;
+}
--- /dev/null
+LSt:t:ctyTST\f
\ No newline at end of file
--- /dev/null
+CAffffffffffffffffttttttttttttttttttttttttttssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssstttttttttttttsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssstttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttHOST
--- /dev/null
+C)QON
\ No newline at end of file
--- /dev/null
+MOCALHOjjjjjjjjjjSD
--- /dev/null
+LMCYCLVLMCYCLMC!LvO
\ No newline at end of file
--- /dev/null
+5S2O5ST2O0ST
--- /dev/null
+LOtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttCALSTHCA\f<
--- /dev/null
+LSt5ctyp5ctypEIcT5ctyppEt5cyIcIcT\fTST\f¬ó«¬«óT\fTST\f¬ó«¬«ó«ë
\ No newline at end of file
--- /dev/null
+LL)HOSULL);aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaOSU
+®
\ No newline at end of file
--- /dev/null
+AApAAAAAAAAAA8AAAAAAAAAAAAAAPA2127515192PPPPPPUAAæ.謪æPPPPPUAAæ.謪æ\9eÜ¥.jp\9eÜ¥.
+jp
--- /dev/null
+LSt5ctyp5cpypEIcT\fTST\fT\f
\ No newline at end of file
--- /dev/null
+LSt5cSt5cS:t5ctp5!\fTT\fST\f
\ No newline at end of file
--- /dev/null
+LOADDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDLHO!(IT05
--- /dev/null
+LMCLVOCMCLVO
\ No newline at end of file
--- /dev/null
+SSt5\typeIcEtSt2ctypStSt2ctypeIcEyy\r\90eIcEyyp\90p I
\ No newline at end of file
--- /dev/null
+LKGQTJ
\ No newline at end of file
--- /dev/null
+CTSOCTS
\ No newline at end of file
--- /dev/null
+$CLO$CLV$CLVOC
+LVOC
--- /dev/null
+BBS;SB
\ No newline at end of file
--- /dev/null
+LOCAL}}}}}}}}}}}}}}}}}}}}}})OCT%HCAL
+LSTHC[AL
--- /dev/null
+L3qqqqSyL3Sy
\ No newline at end of file
--- /dev/null
+LOOCsLOOCsAC{LTQLOAC{LTQLOOTQ
\ No newline at end of file
--- /dev/null
+g9ggggggggggGggggggg9ggggggggggGggggggg
\ No newline at end of file
--- /dev/null
+L_C66666666666666666666666666666666666666666666666666666666ALHGSL_CALHT\ f
\ No newline at end of file
--- /dev/null
+StSt5cty+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++!++++++++++++++++++++++++++++++++++++++++++++++++++peIcEyyp\90p I
\ No newline at end of file
--- /dev/null
+LSt$$$$$$$$$$$$$$$$$$6ctyp5000(T\fTSTô®\f
\ No newline at end of file
--- /dev/null
+LSt5ct}p5ctypLS5ctty05ckkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk\95\94\94\94\94\94\94\94k\ 5kkkkkkkkkkkkkkkkkkkkkkkkkkkkkEtIcTyKLSt5ct}p5ctypLS5cttyp5cEtIcTyKpEIcT\fTSpEIcT\fTST\fT\f\fTST\fT\f
\ No newline at end of file
--- /dev/null
+AAAAAAAAAAAAAAAAA9AAAAAAAAAAAAAAPXAAAA9AAAAAAAAAAAAAAPXÐPPPPPPPPPPPUAAæ.¥æ¬\9e.jp
--- /dev/null
+LSt5ctyp5ctypEIcT5ctyt5ctyp5ctypEIcT5ctyp5ctyp5ctypEIcT\fTST\fT\fTST\fT\f
\ No newline at end of file
--- /dev/null
+Lzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{zzzzzzzzzzzzzzzzzzzzzzzzzzrSt5ctyp5ctypEIcT\fTST\fT\f
\ No newline at end of file
--- /dev/null
+LHO2LHO2T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\v
\ No newline at end of file
--- /dev/null
+VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVJQGH\ 1KKTKKT}
\ No newline at end of file
--- /dev/null
+gggg(ggg'gggg 0 zzzEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEÿ#EEEEEEEEEEE:EEEEEEEEEEEEEEEEEEEgggo
\ No newline at end of file
--- /dev/null
+b___É____________T
\ No newline at end of file
--- /dev/null
+LSt5ct}p5ctypLS5cttyBBBBBBBBBBBBBBBBBBCBBBBBBBBBBBBBBBBBB44444444444444444444444444$4444444444444444444444444444444444444444444444444444444444444444444444BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBp544444444444444444444444$4444444444444444444444444444444444444444444444444444444\fTST\fT\f
\ No newline at end of file
--- /dev/null
+LSt5ctyCCCCCCCCCCCpyCCCCCCCCCycT\fT\f
\ No newline at end of file
--- /dev/null
+LSt5ct}p5ctypLS5cttyp5cEtIct}p5ctypLS5cttyp51111111111111111111111111111111111111111111111111cEtIcTyKLSt5ct}p5ctypLS5cttyp5cEtIcTyKpEIcTyKLSt5ct}p5ctypLS5cttyp5cEtIcTyKpEIcT\fTSpEIcT\fTST\fT\f\fTST\fT\f
\ No newline at end of file
--- /dev/null
+mOLOCALQLO
\ No newline at end of file
--- /dev/null
+LJLOCCAL O
\ No newline at end of file
--- /dev/null
+%%%%%%!%%%+%%%%%%%%%%%%%%%%L_CALHGSF_CA%%%%%%%%%%%%%LALó°\ f
\ No newline at end of file
--- /dev/null
+LSt5ct}p5ctypLS5cttyp5cEtIct}p5ctypLS5cttyp5cEtIcTyKLStuct}p5ctypLS5cttyp5cEtIcTyKpEIcTyKcEtIct}p5ctypT\fT\f
\ No newline at end of file
--- /dev/null
+O++TaK
\ No newline at end of file
--- /dev/null
+j:)Oaj:)Oa
\ No newline at end of file
--- /dev/null
+CT[Ga''T[GCT[Ga''T[Ga'''T[!a'OC'''!T[Oa'T[Oa''T[GCT[Ga''T[GOC''
\ No newline at end of file
--- /dev/null
+L)CQLHOvOL)CQCQLHOvOL)CQLHOvOLHOvOTT
--- /dev/null
+R*+
\ No newline at end of file
--- /dev/null
+AAAAAQ$$$$$$$$$$$$$$$$$$$$$$$$$$Q$$ ooooooooooooooooooooooooooooAAAAAAZÇAAAAAAAAAAæ.¥æÜèª\9e¬A.^$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$TSOLAAAAAAAAAZÇAAAAAAAAAAæ.¥æÜ説\9eA.^jp
+
--- /dev/null
+C]SC]SO)O)SOC]SC]SO)O)SO
\ No newline at end of file
--- /dev/null
+LSZtLSt5ctyp5ctypEIcT5%TST\fTEIcT\fTSTTST\fT\fypEI
\ No newline at end of file
--- /dev/null
+@A{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{@A{{{{{{{{{{{{{{{{{{{{{AAAA¿¾¾»A¥æÜ説\9e.jp
--- /dev/null
+AApAAAQQQQQQQQQAAAAAAA8AAAAAAAAAAAAAAPPPPPPPP00000000000000Ö0000000017644527522127515129PPPPPPUAAæ.謪æ\9eÜ¥.jp
--- /dev/null
+LKCAPQHKCAPQHOTOT
--- /dev/null
+LpppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppOCALHLOCppppppppppppppppppppppppppppppppppppppppppppppppOCALHLOC\ 2
\ No newline at end of file
--- /dev/null
+uuuuuuuteeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaCA'LH)Oa
\ No newline at end of file
--- /dev/null
+"OCL';
\ No newline at end of file
--- /dev/null
+b!er.dedeb!er.dr.dedeb!e
--- /dev/null
+***
\ No newline at end of file
--- /dev/null
+LOCJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJLVOC
--- /dev/null
+MOCALH;
\ No newline at end of file
--- /dev/null
+gggg(gggg''gggg gng''gggg LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLgg''gggg gng''gggg LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLjjjjjj`````` ```````````````````` LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 0 Lgg g ggo
\ No newline at end of file
--- /dev/null
+OO<FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFO<ST
+ST
--- /dev/null
+PLHOCAOCAYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY§«YYYYLOCALH
\ No newline at end of file
--- /dev/null
+Sw{rr```r``½
\ No newline at end of file
--- /dev/null
+LOiiiiiiiiimiiiiiiiiiiiiiiiLOiiiiiiiiimiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiihiiiiiiiiiiiiCALHO2T
--- /dev/null
+LOOCsACsLTQLOOTQLOOCsACsA
--- /dev/null
+^B:^_*
\ No newline at end of file
--- /dev/null
+LOCVVVVVVVVVVVVVVVVVVVVALHO(IT1
--- /dev/null
+LOOCLVOCCLVOC
--- /dev/null
+J\8d`½
\ No newline at end of file
--- /dev/null
+]____*___]_____^__D_______
\ No newline at end of file
--- /dev/null
+CCT[Oa')T[Oa')Oa
\ No newline at end of file
--- /dev/null
+2O0ST2O00ST2O0SST
--- /dev/null
+O)+TaK
\ No newline at end of file
--- /dev/null
+LO9A\fH
\ No newline at end of file
--- /dev/null
+SSt5ctypeIcEtSt2ctyp{{{{{{{{{{{{{SSt5ctypeIcEtSt2ctypStS'2ctypetS'2ctypeIcEyyp\90eIcEyyp\90p I
\ No newline at end of file
--- /dev/null
+2O0ST2O0GGGGGGGGGST
--- /dev/null
+CTS6)AODDDDDDDDDDDDDDDDDDDDDDDDDDDDD
\ No newline at end of file
--- /dev/null
+)CALHOvOLOCAL}CALHOv}}}:}}}}}STHC[AL
--- /dev/null
+uuuuuuutaCA'LH)Oa
\ No newline at end of file
--- /dev/null
+StSt5ctypeIcEyyp\90p I
\ No newline at end of file
--- /dev/null
+]]]]]]]]]]]]]]]]]]]]]]U]U]]]]]\15]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]LOS(¸´ST
--- /dev/null
+OO::3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333¬X
\ No newline at end of file
--- /dev/null
+JQGKKT}
\ No newline at end of file
--- /dev/null
+LOCAL}}}OCT%uCAL
+LSTHC[AL
--- /dev/null
+LOT1LHOST1
--- /dev/null
+VVUUUUUAAAAAAAAAAAAUUUUU
\ No newline at end of file
--- /dev/null
+LOOCC{LTQsAC{LTQLOAC{LTQLOOTQ
\ No newline at end of file
--- /dev/null
+b!er.dedeb!er!er.dr.!er.dedebdede.dr.!er.dedebdedeb!e
+ß
\ No newline at end of file
--- /dev/null
+(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((LOCALSTHC[AL
--- /dev/null
+CT[Oa'''D[OammmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmÓOa
\ No newline at end of file
--- /dev/null
+VVLHiiiiiiisiiiiiiixiiiiiiiiiiiiiiiiiiii\97\96\96\97iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiipiyqiiii
\ No newline at end of file
--- /dev/null
+L_H_GLBLSCCSTGLB
\ No newline at end of file
--- /dev/null
+JQGKKT
\ No newline at end of file
--- /dev/null
+COMdddddddddddddddddddddddddddddddddddddddddddA)HOjjDjÿ~:j:jj
--- /dev/null
+AApAAAAAAAAAA8AAAAAAAAAAAAAAPPPPPPPP444444444'ær\97¥çÜp
+4444444444444444444444444444444444PPPPPPUAAæ.謪æ\9eÜ¥.jp
--- /dev/null
+gggg(gggg''gggg ggg''gg:?????DD?DDDDD????????????????????????????????????????????????????????) )DD?DDDDD????????????????????????????????????gggg(gggg''gggg ggg''gg:?????DD?DDDDD????????????????????????????????????????????????????????) )DD?DDDDD???????????????????????????????????????????????????????? ) 0 ` g 0 0 ` $g 0 : ( 0 : g???????????????????? ) 0 ` g 0 0 ` $g 0 : ( 0 : ggo
\ No newline at end of file
--- /dev/null
+RP
+RT
\ No newline at end of file
--- /dev/null
+PLHOCAOCALHOCAOCAPbb}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbLHOCAOCPLHOCAOCALHOCA
--- /dev/null
+LSt6ctyp5ctyp5ccty000000000000000(T\fTST\fT\f
\ No newline at end of file
--- /dev/null
+:LbbbvOQLH____________OLHOv!TT
--- /dev/null
+llllllllllllllllllll0000000000000000000000000000000000000000000000000000000000000012297829382473034410nnnnnnnnn6666(666666l*l4444444444444466666nn444n
\ No newline at end of file
--- /dev/null
+LSt5cRyt5cty==================================cRyt5cty===================================================================================================ypEIcT\fTST\f
\ No newline at end of file
--- /dev/null
+2O2O00SO00ST2O0SSTT2O0SST
--- /dev/null
+LSSt6ctt6ctyTST\fT\f
\ No newline at end of file
--- /dev/null
+Sw{rr``rr``½
\ No newline at end of file
--- /dev/null
+b!er.dedeb!er.dede)er.de
--- /dev/null
+a))aa
\ No newline at end of file
--- /dev/null
+b)er.de*e\8dr.deå
\ No newline at end of file
--- /dev/null
+R**
\ No newline at end of file
--- /dev/null
+L````````````````````````````````````````.............\89...........}...........................................```````\ 1\f5ctyp5c
\ No newline at end of file
--- /dev/null
+ppppppppppppppppppCCT[Oa')CT[Oa')T[Oa')T[Oa')Oa
\ No newline at end of file
--- /dev/null
+AAAAAAAAAAAAAAAAAYYYYYYYYYYYYYYYYYAAAAAAAAAAAAAYYYYYYYAAAYYYYYYYYYYYYYYYYYAAAAAAAAAAAAAAAAAAAAAAAAAAAsAYYYYYYYYYYAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAAYYYYYYYYYYYYYYYYYAAAAAAAAAAAAAYYYYYYYYYYYYYYYYYAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAæ.¥æÜ説\9e.jp
+AAAAAæ.¥æÜ説\9e.jp
--- /dev/null
+LSt7cSt5ctyp5ctyTSt7cSt5
\ No newline at end of file
--- /dev/null
+PLHOCAOCAPLHOCPLHOCOCbbrbbbbbbLHOCAOCPLHOCAOCALAOrrrrrrrrrrrCALHOCHOCAAbbrbbbbbbLHOCAOCPLHOCAOCALAOrrrrrrrrrrrCALHOCHOCAA
+
--- /dev/null
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^V^^OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO^^^^^^^^^^\^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^V^^OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO^^^^^^^L_CAL_OȸSL°CLA¬¦\fT\f
\ No newline at end of file
--- /dev/null
+}p5ctypLS5cTyKpEIcTyKLSt7777777777777777777777777777777777777777777777777777777777777777777LS5cttyp5cEtIcTyKLSt5ct}p5ctypLS5cttyp5cEtIttyp5cEtIcTyKLSt5ct}p5ctypLS5cttyp5cEtIcTyKpEIcTyKLSt5ct}p5ctypLS5cTyKpEIcTyKLSt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777775ct}p5ctyvLS5cttyp5cEtIcTyKpEIcT\fTSpEIcT\fTST\fT\f\fTST\fT\f
\ No newline at end of file
--- /dev/null
+OO::33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333¬X
\ No newline at end of file
--- /dev/null
+LSt5ct}p5ctypLS5cttyp5cEtIct}p5ctypLS5cttyp511111111111111111111111ÆÎÎÎ1111111111111111111111cEtIcTyKLSt5ct}p5ctypLS5cttyp5cEtIcTyKpEIcTyKLSt5ct}p5ctypLS5cttyp5cEtIcTyKpEIcT\fTSpEIcT\fTST\fT\f\fTST\fT\f
\ No newline at end of file
--- /dev/null
+O+/TaK
\ No newline at end of file
--- /dev/null
+LSt5ctyCCCCCCCCCCCpycT\fT\f
\ No newline at end of file
--- /dev/null
+BS;wBS;w\10`þ
\ No newline at end of file
--- /dev/null
+CTSOAOA00O
\ No newline at end of file
--- /dev/null
+L_CALHOSL_CA_CALHBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBOSL_CALHOST\fTLHOST\fT\f
\ No newline at end of file
--- /dev/null
+B!S.......
\ No newline at end of file
--- /dev/null
+K)Q(QLvOT
+Í
\ No newline at end of file
--- /dev/null
+COMddddddddddddd`dddd¦\9bdddddddddddddddddddddddA)HOjjDjÿ~:j:jj
--- /dev/null
+L_CALHGS ALHGS _CAH_CHOAHHGS ALHOST\fT\ f
\ No newline at end of file
--- /dev/null
+COMA)HOjjDjÿ~:j:jj
--- /dev/null
+JQGKKTKKT}QGKKTKKT}
\ No newline at end of file
--- /dev/null
+LOCvvvvLJCvvvvLJ))ALLJOLCvvvrLJ)AL O
\ No newline at end of file
--- /dev/null
+AAAAAddddddddddddddddddddddddddddddddddddddddd//////////////////////////////////////////////////////////////////////////////////////////////////////jddddddddddddddddddddddddddddM_CASt5ctype///////////////////////////////////////////////////////////////////////////jddIcELHOS!_CALHOS!L'(CALHMOS!L'(CALHML'(CALHMOS!L'(CALHMSLMS_HOS!L'(t5ctypetypeICALHMOSßLcE'(CALHMLLHOS!L'(CALHMOS!L'(CILHLLLHMOS'dddddddddddd(CALddddddddddddlddddddddAAAA>AAAAHMOS!!L'(CALSL_L'(CALHMSL_ST\fL_TAAƾ¾¾¾¾!¾¾AAAAAK\fæ.¥æÜ説\9e.jp
--- /dev/null
+CT**************************************[Oa''#T[Oa'OOa''#T[Oaa
\ No newline at end of file
--- /dev/null
+L_CssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssALHGSF_CA_CALH/SF_CA_CALHGSF_CSF_ó\fOHGSF_CSF_ó\fO\ f
\ No newline at end of file
--- /dev/null
+LOCvvvvLJCvvvvLJ))ALLJOLCOCvvvvLJCvvvvLJ))ALLJOLvvvrLJ)AL O
\ No newline at end of file
--- /dev/null
+@AAAAAAAAJA¿¾¾».jp
--- /dev/null
+JQGKKTKKT}
\ No newline at end of file
--- /dev/null
+))))))9))))))9)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))LO
--- /dev/null
+LK...........................................................CAPQHKCAPQHOTOT
--- /dev/null
+COMALHOjjjjjjjSD
--- /dev/null
+L!!CAOHLVST1
+CAOHLVST1
--- /dev/null
+2O0STppppspppppppp\87\8f\8f\8fppppppppppppp\81ppppppppppppppppp`pp
--- /dev/null
+PLHOCAOCALHOCA
--- /dev/null
+5S2O5SdddddddddddddddddddddddddddddddddddddddddddddddddO5SdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddT2OddddddddddddddddddT2O0ST*
\ No newline at end of file
--- /dev/null
+BS;SBS
\ No newline at end of file
--- /dev/null
+L74TSTL74TST\f
\ No newline at end of file
--- /dev/null
+))))))9)))))))))))))))))))))))))))))))))))))))))))))))))))))))LO
--- /dev/null
+L5ctyTSTST\fT\f
\ No newline at end of file
--- /dev/null
+LSt5cttypEIcpEITTS999999999999999999999999999999999999T\f#\fT\f
\ No newline at end of file
--- /dev/null
+L5ctyTST~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ST\fT\f
\ No newline at end of file
--- /dev/null
+L_COSLSL_dddddddddddT\f
\ No newline at end of file
--- /dev/null
+^VV^^
\ No newline at end of file
--- /dev/null
+LSu:STT~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\8b\81\81\81~~~~~~~~~~~~~~~~~~~~~~~~~TJ\f~~~\8b\81\81\81~~~~~~~~~~~~~~~~~~~~~~~~~TJ\f\fcT\f
\ No newline at end of file
--- /dev/null
+AAAAAAAAAAAAAAAAA9AAAAAAAAAAAAAAPXAAAA0qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqAA0qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqAAAAAAAAAAAAAAPXÐPPPPPPPPPPPUAAæ.¥æ¬\9e.jA
--- /dev/null
+LS;5ctytiiiâââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiyp5cpuctctypEIcT\fTST\f
\ No newline at end of file
--- /dev/null
+LOCvvv\82L¶ßALLJLOCvvvvLJ)AL O
\ No newline at end of file
--- /dev/null
+L_CALHGS _CAHHALHGS _CAHL_CALHGS _CAHHALHGS _CAHL_CALHGS _CAHHALHGS _CAHHO%T\fO%T\fT\ fHO%T\fO%T\fS _CAHHO%T\fO%T\fT\ fHO%T\fO%T\fT\ f
\ No newline at end of file
--- /dev/null
+L)CQLHHOvO)CQLHOvOTHO
\ No newline at end of file
--- /dev/null
+LTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT_CALHOST
--- /dev/null
+gggg(EEEEEEEEEEEEEEEEEEEEE\ 5EEEEEEEEEEEEEEEEEEEEEEEEEEEEE*EEEEEEEEEEE»ºººEEEEEEEEEEEEEEEgggo (
\ No newline at end of file
--- /dev/null
+CCOa')Ta')T'[CT]OFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)Oa
\ No newline at end of file
--- /dev/null
+MOCMOCALHOjjjjjjjjjALHOjjjjjjjjjjSD
--- /dev/null
+JJL@
\ No newline at end of file
--- /dev/null
+L)QL)Q(QLvO¨(QLvO¨
+Í
\ No newline at end of file
--- /dev/null
+CT[Oa'''T[Oa'Oa
\ No newline at end of file
--- /dev/null
+g9ggggggggggGggggggg
\ No newline at end of file
--- /dev/null
+C]SC]SO)O!SOC]S!!SO)O)SO
\ No newline at end of file
--- /dev/null
+LOCvvvvLJ)ALLJLOCvvvvLJ)AL O
\ No newline at end of file
--- /dev/null
+LOC}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}ADDHOT
--- /dev/null
+(@@LCA
\ No newline at end of file
--- /dev/null
+CARLCARLCARL*O*OCARL*O*O
--- /dev/null
+LOOCsACsACLOOCsAC{LTQLO{LTQLOOTQ
\ No newline at end of file
--- /dev/null
+Lzzzzzzzzzzze'eeeeeeeeeeeeee*eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeezzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzze'eeeeeeeeeeeeee*eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeezzzzzzzzzzzzzzzzzzzzzzzzzzzzz___________________zzzzzrSt0cty___________________zzzzzrSt5ctyp5ctypEIcT\fTST\fT\f
\ No newline at end of file
--- /dev/null
+AAAAAQAAAAC$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$TSOLAAAAAAAAAZAAAAAAAAAAAæ.¥æÜ説\9eA.^jp
+
--- /dev/null
+OO<O<ST
+ST
--- /dev/null
+;OCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCAOST0
--- /dev/null
+S5ctyvSt5ctypeIcEyyp\90p I
\ No newline at end of file
--- /dev/null
+L!!CL!!CAOHLAOHLVST1
+CAOHLVST1
--- /dev/null
+CT[Oa''T[Oa'Oa
\ No newline at end of file
--- /dev/null
+LOCZZZZZZZZZZZZA¬·°×IT1
--- /dev/null
+LOCZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZALHO(IT1
--- /dev/null
+CT[Oa''[OoasOa''#T['#OoasOa''#T[Oaa
\ No newline at end of file
--- /dev/null
+;OCCCCCCCCCCCCCCCCCCCCCCChhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhCCCCCCCCCAOST0
--- /dev/null
+OO7¬«×
\ No newline at end of file
--- /dev/null
+CT[O88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888a''T[Oa'Oa
\ No newline at end of file
--- /dev/null
+O++++TaK
\ No newline at end of file
--- /dev/null
+CT[Oa'''Oa'LLLLCT[Oa''#T[Oa'OOa''#TLLLL[Oa'''Oa'LLLLCT[Oa''#T[Oa'OOa''#TLLLLL[OLaLL[OLaL
\ No newline at end of file
--- /dev/null
+CT[Oa''#T[Oa'OOa''#T[Oaa
\ No newline at end of file
--- /dev/null
+220OTS0OGGGGGÇGGGST
--- /dev/null
+<FFFFFFFFFFFF<<<<<<<<<<(
\ No newline at end of file
--- /dev/null
+CT[O88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888'T[Oa'Oa
\ No newline at end of file
--- /dev/null
+O+++\ 1MaK
\ No newline at end of file
--- /dev/null
+AApAAAA'AAAAA9@AAAAAA*PmmmmmmmmBBBBBBBBBBBBBBBBBBBBBBBBBB\91BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBmmmmmmmmmmmmmmA')PPOPPPaPPaPjp
--- /dev/null
+LHO2LHO2T>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\v
\ No newline at end of file
--- /dev/null
+LOOCLLVOCCLVOCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVOCCLVOCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
--- /dev/null
+LSt5ctyTST:::::::::::::::::::\fT\f
\ No newline at end of file
--- /dev/null
+CT[Oa')Oa
\ No newline at end of file
--- /dev/null
+LOtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttCAttttttttttttttttttttttttttttttttttttttttttttttttttttttttttCALST\bCA\f<
--- /dev/null
+NSt6locale5L:CALHO(IT1
--- /dev/null
+<<<<<<<<<<<<<<<<<<<<<<
\ No newline at end of file
--- /dev/null
+]____*______*___^__*_]_____^__*__^__*_]_____^__*_______
\ No newline at end of file
--- /dev/null
+C]SO)SO
\ No newline at end of file
--- /dev/null
+LS;5ctytiiiiiiiiiiiii\97\96\96\96\96\96\96\96iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii5ctyp5cpuctctypEIcT\fTST\f
\ No newline at end of file
--- /dev/null
+LOCvvv~LJ)ALLJLOCwvvwLJ)AL O
\ No newline at end of file
--- /dev/null
+L)CQLHOvOL)CQ,,,,,,QH:OvOL)CQLHOvOLHOvLTCL,,,,,,,,,,,,,QH:OvOL)CQLHOvOLHOvLTT
--- /dev/null
+CT[Oa'''Oa'LLLLLLLLLLLLLLLLL11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111LLLLL111111111111111111111111111111111111111111LLLLLT[Oa'OCT[Oa'''T[Oa'LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLOaa
\ No newline at end of file
--- /dev/null
+LSt6cST\fT\f
\ No newline at end of file
--- /dev/null
+CALHOWSCALHOWSTALHOWSCALHOWST
--- /dev/null
+LJLOCvvvvvK)AL O
\ No newline at end of file
--- /dev/null
+gggg(ggg'gggg 0 LggEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 0 LggEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 0 LggEEEEEEEEEEEEEEEEEEEEEEEEEEgggo B»°EEEEEEEEEEEEEEEEEEEEEEEgggo B
\ No newline at end of file
--- /dev/null
+AAAAAAAAAAAAAAAAAAAAAAAZBAAAAAAAAAAæ.¥¬\9e.jp
--- /dev/null
+LOCAL}}}OCT%uCALDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
+DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
+LVVVVVVVVVSTHC[AL\ e
\ No newline at end of file
--- /dev/null
+^^^^^^^^ý^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^L_CALÈOSL¸_°CLA¬¦\fT\f
\ No newline at end of file
--- /dev/null
+LHO2LHO2T\v
\ No newline at end of file
--- /dev/null
+LOLOCALHLO
\ No newline at end of file
--- /dev/null
+JQKKT}QGKKKKTKKT}QGKT)GKKTKKT}QGKKTKKT}
\ No newline at end of file
--- /dev/null
+L_CALHGSLCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCFFFFFFFFFFFFFFFFFFFFFFFFFFFF_CALHOST\fT\ f
\ No newline at end of file
--- /dev/null
+L_CALHOSL_CAL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HOST\fT\f
\ No newline at end of file
--- /dev/null
+LSt5caaaaaaaaaaaaaaaaaaaaaaaaaaaaatyp5yqEIaaaaaaaa222222222222222222222222222222222222222222222222222222222222222222222222222222222222111111111111ÿÿÿÿÿÿÿÿ22222222222222aatyp5yqEIcTcT\fTST\fT\f
\ No newline at end of file
--- /dev/null
+LSt5caaaaaaaaaaaaaaaaaaaaaaaatyp5yqE<<***<
\ No newline at end of file
--- /dev/null
+ _CAHHO%TL_CALHGS _CAHHO%T\fT\ f
\ No newline at end of file
--- /dev/null
+LSt6ctyp5ctyp5ccty00000000000000000000(T\fTST\fT\f
\ No newline at end of file
--- /dev/null
+M_CASt5ctypeIcELHOS!_CALHOS!L'(CALHMOS!L'(CALHML'(CALHMOS!L'(CALHMSLMS_HOS!L'(t5ctypetypeICALHMOS!LcE'(CALHMLLHOS!L'(CALHMOS!L'(CILHLLLHMOS'(CALHMOS!!OS!L#(CALHMOS!L'(CILHLLLHMOS'(CALHMOS!!L'(CwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwtypeIcELHOS!_CALHOS!L'(CALHMOS!L'(CALHML'(CALHMOS!L'(CALHMSLMS_HOS!L'(t5ctypetypeICALHMOS!LcE'(CALHMLLHOS!L'(CALHMOS!L'(CILHLLLHMOS'(CALHMOS!!OS!L#(CALHMOS!L'(CILHLLLHMOS'(CALHMOS!!L'(CwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwALSL_L'(C????????????ALHMSLHMOS!L'(CALHMSlMS_HOS!L'(t5ctypetypeICALHMOS!LcE'(CALHMLLHOS!L'(CALHMOS!L'(CILHLLLHMOS'(CALHMOS!!OS!L'(L'(CALHMOS!L'(CILHLLLHMOS'(CALHM!LO!S'(CwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwALSL_L'(C????????????ALHMSLHMOS!L'(CALHMSlMS_HOS!L'(t5ctypetypeICALHMOS!LcE'(CALHMLLHOS!L'(CALHMOS!L'(CILHLLLHMOS'(CALHMOS!!OS!L'(L'(CALHMOS!L'(CILHLLLHMOS'(CALHM!LO!S'(Cwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww_T\f
\ No newline at end of file
--- /dev/null
+AApAAAAAAAAAA9AAAAAAAPPPPPPjp
--- /dev/null
+L_)))))))))CALH:SL_CA_CALHO·L_CALHOST\fTLHOST\fT\f
\ No newline at end of file
--- /dev/null
+L3SyL3Sy
\ No newline at end of file
--- /dev/null
+AAXPPPyyyyyyAAAAAXPPPyyyyyyyyyyypyyyyyyypyyyyyPAAAAAAAAAAAXPPPyyyyyyAAAAAXPPPyyyyyyyyyyypyyyyyyypyyyyyPAæAUy.¥æÜ説\9e.jp
--- /dev/null
+PLHOCACAPLHOCA~~~~~~~~~~~~\r~~~~~~~~~~OCALHOCA
--- /dev/null
+LOOCLVOCCLVOCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
--- /dev/null
+L_CALHGSF_CA_CALHGSF_CSF_ó\fO\ f
\ No newline at end of file
--- /dev/null
+CT~1O~O
\ No newline at end of file
--- /dev/null
+OOFFFFFFFFFFFFFFFFFFFFFFFFF\ 1(FFFFFFFFST
--- /dev/null
+L_CALHGS _CAHHALHGS _CAHL_CALHGS _CAHHALHGS _CAHHO%T\fO%T\fT\ fHO%T\fO%T\fT\ f
\ No newline at end of file
--- /dev/null
+CT[Ga'''T[Oa'OC'''!T[Oa'Oaa
\ No newline at end of file
--- /dev/null
+OO::3¬X
\ No newline at end of file
--- /dev/null
+LSt5ctyp5ctypEIcTp5ctypEIcT\fTS\fTST\fT\f
\ No newline at end of file
--- /dev/null
+L_OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOCOH*LLSA_CALHOSOH*LLSA_CALT\fT\f
\ No newline at end of file
--- /dev/null
+uuuuuuuuuuCT[Oa')Oa
\ No newline at end of file
--- /dev/null
+CT[Oa'''T[''T[Oa'OCT[Oa'''Oa'OCT[Oa'''T[Oa'Oaa
\ No newline at end of file
--- /dev/null
+AApAAAAAAAAAA8AAAAA7522127515192PPPP0000000000000000000000014764527522127515192PPPPPPUAAæ.謪æ\9eÜ¥.jp
--- /dev/null
+gggg(ggg'gggg 0 Lgggggo
\ No newline at end of file
--- /dev/null
+LSt5ctyt5ctyp5ct5ctyt5ctyp5cp5ctctp5ctctypEIcT\fTST\f
\ No newline at end of file
--- /dev/null
+LOcALHO(ITLHO(IcA
\ No newline at end of file
--- /dev/null
+------------------BBBBBBBBBwBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAA!ï.¥æÜAèª
+¬\9e.jp
--- /dev/null
+MMO##########################################CALH;OCALH;
\ No newline at end of file
--- /dev/null
+L_CALHGS _CAHHOST\fT\ f
\ No newline at end of file
--- /dev/null
+LTQLOOTQLOOCsACsA
--- /dev/null
+AAAAbbbbbbbbbbbbbbbbbbbbbbbbbbbbbÁAAAA>AAAAAAƾ¾¾¾A\86jp
--- /dev/null
+CCT[Oa')CT[()T[Oa')T[Oa')Oa
\ No newline at end of file
--- /dev/null
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^L_CALÈOSL¸3ÿÿÿA¬¦\fT\f
\ No newline at end of file
--- /dev/null
+CAf0000GGGGGGGGGGGGGGGGGGGGGGGGGGGG0000000;01844674YYYYCAfYYY
\ No newline at end of file
--- /dev/null
+MMO#######ALH;OCAL#####/H;
\ No newline at end of file
--- /dev/null
+LOLOCALLOLOCALHLOHLO
\ No newline at end of file
--- /dev/null
+LOCALC
\ No newline at end of file
--- /dev/null
+gggg(ggg'gggg 0 {{{{{{{{{{{{{{{{{{{{{x{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{====================='=================================================={{{{{{{{{{{{{{{{{{{{{g 0 {{{{{{{{{{{{{{{{{{{{{xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE LggEEE EEEEEEEEEEEEE\8aEEEEEEEEEEEEEEEEEEEEEEEEEE\8aEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEgggo
\ No newline at end of file
--- /dev/null
+LO88888888888888888888888888888CLAC
\ No newline at end of file
--- /dev/null
+LkOLOCALH1O
\ No newline at end of file
--- /dev/null
+gggg(gggg'g'ggg ggg''gg:gggg''gggg ggg''gggg ) 0 ` g 0 : 2222222222222222222222 \82 ggo
\ No newline at end of file
--- /dev/null
+LOCALHVSTNSt6lo6locale
\ No newline at end of file
--- /dev/null
+LOCALfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffnfzffffffffff!ffffnfzffnfffff|ffffffnfffff|fffffff\1c
\ No newline at end of file
--- /dev/null
+L_)))))))CAH:H:SL_CLH:H:SL_L_)))))))CAH:H:SL_CLH:H:SL_CA_CALHO·L_CALHOST\fTLHLHOST\fCA_CALHO·L_CALHOST\fTLHLHOST\f
\ No newline at end of file
--- /dev/null
+LSt:t:cSt:t:ctyTSTtyTST\f
\ No newline at end of file
--- /dev/null
+g9gggggggg6666666666666600000000000000000000000000000000000002241375787ggGggggggg4ggggggggggGggggggg
\ No newline at end of file
--- /dev/null
+L)CQLHOvOL)CQCL,,,,,,,,,,,,,QH:OvOL)CQLHOvOLHOvLTT
--- /dev/null
+CARLCARL*O*O
--- /dev/null
+YBs;S3OOOOOOOOOOOOOOOOOOOOOOOOOwYBs;S;S3wYBs;S1
\ No newline at end of file
--- /dev/null
+L`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````I#T\fTST\fT\f
\ No newline at end of file
--- /dev/null
+~CTHLSAL\11
\ No newline at end of file
--- /dev/null
+Lzzzzzzzzzzzeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee'eeeeeeeeeeeeeeeeeeeeeeeeeezzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_z_z__X__________________________________________________________________________________________________________zzzzzrSt5cty________X__________zzzzzrSt0ctyp5ctyqEIcT\fTST\fT\f
\ No newline at end of file
--- /dev/null
+L)Cqqqqqqqqqqqsqqqqqqqqqqqqqqqqsq||||||||qqqqqqqqqqqqqqqqqqqqqqqqqqp\ 1qqqqqqqqqqqÓqqqqH\rT
--- /dev/null
+AAAAAAAAAAAAA9AAAAAAAAAAAAAAPXPPPPPPPPPPPPUAAæ.¥æÜ説\9e.jp
--- /dev/null
+LOCvvvvLJCvvvJCvvvvLJ))ALLJOLCOCvvLvfJCvvvvLJ))ALLJOLvvvrLJ)AvLJ))ALLJOLCOCvvLvAL O
\ No newline at end of file
--- /dev/null
+CT*************22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222******333333;333333333333333333333333333333333333330000000000000088753**[Oa''#O[Ta'OOa''#\10[Oaa
\ No newline at end of file
--- /dev/null
+CARLCARLCARL*O*ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍOCARL*O*O
--- /dev/null
+VVVVVVVVTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTVT
--- /dev/null
+CTS6)AO
\ No newline at end of file
--- /dev/null
+b!er.dedeb!er.dr.!er.dedebdedeb!e
+ß
\ No newline at end of file
--- /dev/null
+L_AOH]LL_AOH]LLSA_CSA_C
\ No newline at end of file
--- /dev/null
+OO::333300000000000000000000000000000000000000003333¬X
\ No newline at end of file
--- /dev/null
+BSwUUUUUUUUUUUUUUUULOCALfffffffff)ffffffffUWWWfWWf
\ No newline at end of file
--- /dev/null
+AAAAbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb[bbbbAAAAAAƾ»¾¾A\86jp
--- /dev/null
+PLHOCbbrbbbbbbLHOCAOCPLHOCAOCALHOCA
--- /dev/null
+JQKKT}QGKKTKGKKTKhh}hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhMMMMMMMMMMhhhhhhhhhhhhhhhhhhhhhhhhhhhMMMMMMMMMMhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhQGKKTKKT}
\ No newline at end of file
--- /dev/null
+L3STSyT\fT\f
\ No newline at end of file
--- /dev/null
+B!S...............
\ No newline at end of file
--- /dev/null
+b)er.de)er.de
--- /dev/null
+AAAAA!$$$$$$$$$$$$$$$$$$$$$$$$$$Q$$$$$$$$$$$$$$$$$$$$HHHHHHHHHHHHHHH$$$$$$````````````\r```````````$$$TSOL\ 1AAAAAAAAZÇAAAAAAAAAAæ.¥æÜ説\9eA.^jp
+
--- /dev/null
+LMCYCL:VLMCYCLMCYCL:VLMCC!LV(O
\ No newline at end of file
--- /dev/null
+(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((LOCALSTHC[AL
--- /dev/null
+2O2O00ST2O0SST
--- /dev/null
+CAf0000GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG00000000001844674YYYYCAfYYY
\ No newline at end of file
--- /dev/null
+?ALH''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''½½½OWËT
--- /dev/null
+MMO##MMO######)O#######ALH;#/H;####)O#######ALH;#/H;
\ No newline at end of file
--- /dev/null
+LOCALH}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}OSD
--- /dev/null
+PLHOCAOCALHOCAOCAPLHOCAOCPLHOCAOCALHOCA
--- /dev/null
+VVVVVVVVTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTtTTTTTTTTTTTTTTTTTTTVT
--- /dev/null
+b!er.dede)er.de
--- /dev/null
+LSt[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\[[[[[[[[[[[[[[[[[[[[[[5ctyTST\fT\f
\ No newline at end of file
--- /dev/null
+JPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQGKKT
\ No newline at end of file
--- /dev/null
+****
\ No newline at end of file
--- /dev/null
+PLHOCAOCAYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYLOCALH
\ No newline at end of file
--- /dev/null
+LS;5ctytiiiiiii%iiiiiiiiiiiiiiiii5cpuctctypEI!T\fTST\f
\ No newline at end of file
--- /dev/null
+]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]LOS(¸´ST
--- /dev/null
+Styyp p I
\ No newline at end of file
--- /dev/null
+AAAAAAAAAAAPPPPyyyyyyyyyyyyyyyyyPAæAUy.¥æÜ説\9e.jp
--- /dev/null
+Sw```½
\ No newline at end of file
--- /dev/null
+2O0ST2O0GGG¯¸¸¸GGST
--- /dev/null
+C[O;+)Oa
\ No newline at end of file
--- /dev/null
+LTTTTTTTTTTTTTTTTTTTTTTTTTT¬¬TTTTTTTTtTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT_CALHOST
--- /dev/null
+PLHOCAOCAPLHOCPLHOCbbrbbbbbbLHOCAOCPLHOCAOCALAOrrrrrrrrrrrCALHOCHOCAA
+
--- /dev/null
+LL)HOSULL)HOSU
+®
\ No newline at end of file
--- /dev/null
+L)H!OSULL)HOSUU
+®
\ No newline at end of file
--- /dev/null
+/*
+# Copyright 2017 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+*/
+
+#include <assert.h>
+#include <stdint.h>
+
+#include <gnutls/gnutls.h>
+#include <gnutls/ocsp.h>
+
+#include "fuzzer.h"
+
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+{
+ gnutls_datum_t raw;
+ gnutls_datum_t out;
+ gnutls_ocsp_req_t req;
+ int ret;
+
+ raw.data = (unsigned char *)data;
+ raw.size = size;
+
+ ret = gnutls_ocsp_req_init(&req);
+ assert(ret >= 0);
+
+ ret = gnutls_ocsp_req_import(req, &raw);
+ if (ret >= 0) {
+ ret = gnutls_ocsp_req_print(req, GNUTLS_OCSP_PRINT_FULL, &out);
+ assert(ret >= 0);
+ gnutls_free(out.data);
+ }
+
+ gnutls_ocsp_req_deinit(req);
+ return 0;
+}
--- /dev/null
+0\ 10\ 1¡\ 1\9f\b
\ No newline at end of file
--- /dev/null
+0ù
\ No newline at end of file
--- /dev/null
+/*
+# Copyright 2017 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+*/
+
+#include <assert.h>
+#include <stdint.h>
+
+#include <gnutls/gnutls.h>
+#include <gnutls/ocsp.h>
+
+#include "fuzzer.h"
+
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+{
+ gnutls_datum_t raw;
+ gnutls_datum_t out;
+ gnutls_ocsp_resp_t resp;
+ int ret;
+
+ raw.data = (unsigned char *)data;
+ raw.size = size;
+
+ ret = gnutls_ocsp_resp_init(&resp);
+ assert(ret >= 0);
+
+ ret = gnutls_ocsp_resp_import(resp, &raw);
+ if (ret >= 0) {
+ ret = gnutls_ocsp_resp_print(resp, GNUTLS_OCSP_PRINT_FULL, &out);
+ assert(ret >= 0);
+ gnutls_free(out.data);
+ }
+
+ gnutls_ocsp_resp_deinit(resp);
+ return 0;
+}
--- /dev/null
+0\82
\ No newline at end of file
--- /dev/null
+/*
+# Copyright 2016 Nikos Mavrogiannopoulos
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+*/
+
+#include <assert.h>
+#include <stdint.h>
+
+#include <gnutls/gnutls.h>
+#include <gnutls/pkcs12.h>
+
+#include "fuzzer.h"
+
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+{
+ gnutls_datum_t raw = {(unsigned char*)data, (unsigned int)size};
+ gnutls_pkcs12_t p12;
+ gnutls_x509_privkey_t key;
+ gnutls_x509_crt_t *chain;
+ gnutls_x509_crt_t *extras;
+ gnutls_x509_crl_t crl;
+ unsigned int chain_len = 0, extras_len = 0;
+ int ret;
+
+ raw.data = (unsigned char *)data;
+ raw.size = size;
+
+ ret = gnutls_pkcs12_init(&p12);
+ assert(ret >= 0);
+
+ ret = gnutls_pkcs12_import(p12, &raw, GNUTLS_X509_FMT_DER, 0);
+ if (ret < 0) {
+ goto cleanup;
+ }
+
+ /* catch crashes */
+ gnutls_pkcs12_verify_mac(p12, "1234");
+
+ ret = gnutls_pkcs12_simple_parse(p12, "1234", &key, &chain, &chain_len, &extras, &extras_len, &crl, 0);
+ if (ret >= 0) {
+ gnutls_x509_privkey_deinit(key);
+ if (crl)
+ gnutls_x509_crl_deinit(crl);
+ if (extras_len > 0) {
+ for (unsigned i = 0; i < extras_len; i++)
+ gnutls_x509_crt_deinit(extras[i]);
+ gnutls_free(extras);
+ }
+ if (chain_len > 0) {
+ for (unsigned i = 0; i < chain_len; i++)
+ gnutls_x509_crt_deinit(chain[i]);
+ gnutls_free(chain);
+ }
+ }
+
+cleanup:
+ gnutls_pkcs12_deinit(p12);
+ return 0;
+}
--- /dev/null
+0\82
\ No newline at end of file
--- /dev/null
+/*
+# Copyright 2016 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+*/
+
+#include <assert.h>
+#include <stdint.h>
+
+#include <gnutls/gnutls.h>
+#include <gnutls/pkcs7.h>
+
+#include "fuzzer.h"
+
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+{
+ gnutls_datum_t raw;
+ gnutls_datum_t out;
+ gnutls_pkcs7_t pkcs7;
+ int ret;
+
+ raw.data = (unsigned char *)data;
+ raw.size = size;
+
+ ret = gnutls_pkcs7_init(&pkcs7);
+ assert(ret >= 0);
+
+ ret = gnutls_pkcs7_import(pkcs7, &raw, GNUTLS_X509_FMT_DER);
+ if (ret >= 0) {
+ ret = gnutls_pkcs7_print(pkcs7, GNUTLS_CRT_PRINT_FULL, &out);
+ assert(ret >= 0);
+ gnutls_free(out.data);
+ }
+
+ gnutls_pkcs7_deinit(pkcs7);
+ return 0;
+}
--- /dev/null
+0\80\1f\ 6
\ No newline at end of file
--- /dev/null
+0ç
\ No newline at end of file
--- /dev/null
+/*
+# Copyright 2016 Nikos Mavrogiannopoulos
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+*/
+
+#include <assert.h>
+#include <stdint.h>
+
+#include <gnutls/gnutls.h>
+#include <gnutls/x509.h>
+
+#include "fuzzer.h"
+
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+{
+ gnutls_datum_t raw;
+ gnutls_x509_privkey_t key;
+ gnutls_datum_t out;
+ int ret;
+
+ raw.data = (unsigned char *)data;
+ raw.size = size;
+
+ ret = gnutls_x509_privkey_init(&key);
+ assert(ret >= 0);
+
+ ret = gnutls_x509_privkey_import_pkcs8(key, &raw, GNUTLS_X509_FMT_DER, "password", 0);
+ if (ret < 0) {
+ goto cleanup;
+ }
+
+ /* If properly loaded, try to re-export */
+ ret = gnutls_x509_privkey_export2(key, GNUTLS_X509_FMT_DER, &out);
+ if (ret < 0) {
+ goto cleanup;
+ }
+
+ gnutls_free(out.data);
+
+cleanup:
+ gnutls_x509_privkey_deinit(key);
+ return 0;
+}
--- /dev/null
+0\1f0\e\ 6
+*\86H\86÷\r\ 1\f\ 1\ 30\r$\b\ e®½¼ xò¾\ 2\ 1\f?\ 4
\ No newline at end of file
--- /dev/null
+0\81ç0J\ 6 *\86H\86÷\r\ 1\ 5\r0=0%\ 6 *\86H\86÷\r\ 1\ 5\f0\18\ 4\13\ 6«{7÷\97è"\ 3çm\92Q\7f¿*©½]\ 2\ 1\ 10\14\ 6\b*\86H\86÷\r\ 3\a\ 4\b\93\18oY¤»¦û\ 4\81\98ë:è|lÙ\a9\17q\ 6n¯' òrÙ¨ Îé+2 â15\17\1e\965\15\13²ª\84©\rî"\8cyË%*àbSBÛrr°\82i~9¸±\ 5\9a\8d/¤þ²æs¤ý¯¦\9d\ 2
+)\8aáVY¥»¦û\ 4\81\98ë:è|lÙ\a9\17q\ 6n¯' òEÙ¨ Îé+1 â15\17\1e\965\15\13²ª\84©\rî"\8cy\ 4<@?ã\84\8e÷.\9f\ 1r ¦\90r&6-³è
\ No newline at end of file
--- /dev/null
+0\81
\ No newline at end of file
--- /dev/null
+0\81!0\e\ 6
+*\86H\86÷\r\ 1\ 5\ 3ô0\r\ 4\b\ e©½¼ x²¾\ 2\ 1
+\ 4\ 2\97\8c
\ No newline at end of file
--- /dev/null
+0\81ç0J\ 6 *\86H\86÷\r\ 1\ 5\r0=0%\ 6 *\86H\86÷\r\ 1\ 5\f0\18\ 4\13\ 6«{7÷\97è"\ 3çm\99Q\7f¿*©½]\ 2\ 1\ 10\14\ 6\b*\86H\86÷\r\ 3\a\ 4\b\93\18oY¤»¦û\ 4\81\98ë:è|lÙ\a9\17q\ 6n¯' òEÙ¨ Îé+1 â15\17\1e\965\15\13²ª\84©\rî"\8cyË%*àbSBÛrr°\82i~9¸±\ 5\9a\8d/¤þ²æs¤ý¯¦\ 2\9d
+)\8aáW\91°ã\84'\88mi²\87!í*\87Ü\ 6\90\18Öá_ÂÄì]\85æ\ 3\9f<\rP»
+ÿ½;mX\ 1%ìÄ?³÷HUÞ\1f\v\ 4<@?ã\84\8e÷.\9f\ 1r ¦\90r&6-³è
\ No newline at end of file
--- /dev/null
+0\81\120\f\ 6
+*\86H\86÷\r\ 1\f\ 1\ 6\ 4\ 2\97$
\ No newline at end of file
--- /dev/null
+0'0\e\ 6
+*\86H\86÷\r\ 1\ 5\ 3ô0\r\ 4\b\ eó½¼ |²¾\ 2\ 1Í\ 4\b\ eó½¼ x\r\ 1
\ No newline at end of file
--- /dev/null
+0\81ç0J\ 6 *\86H\86÷\r\ 1\ 5\r0=0%\ 6 *\86H\86÷\r\ 1\ 5\f0\18\ 4\13\ 6«{7÷\97è"\ 3çm\92Q\7f¿*©½]\ 2\ 1\ 10\14\ 6\b*\86H\86÷\r\ 3\a\ 4\b\93\18oY¤»¦û\ 4\81\98ë:è|lÙ\a9\17q\ 6n¯' òEÙ¨ Îé+1 â15\17\1e\965\15\13²ª\84©\rî"\8cyË%*àbSBÛrr°\82i~9¸±\ 5\9a\8d/¤þ²æs¤ý¯¦\ 2\9d
+)\8aáW\91°ã\84'\88mi²\87!í*\87Ü\ 6\90\18Öá_ÂÄì]\85æ\ 3\9f<\rP»
+ÿ½;mX\ 1%ìÄ?³÷HUÞ\1f\v\ 4<@?ã\84\8e÷.\9f\ 1r ¦\90r&6-³è
\ No newline at end of file
--- /dev/null
+0\ 10\ 1\1f\ 6
\ No newline at end of file
--- /dev/null
+0\81ç0J\ 6 *\86H\86÷\r\ 1\ 5\r0=0%\ 6 *\86H\86÷\r\ 1\ 5\f0\18\ 4\13\ 6«{7÷\97è"\ 3çm\92Q\7f¿*©½]\ 2\ 1\ 10\14\ 6\b*\86H\86÷\r\ 3\a+\b\93\18oY¤»¦û\ 4\81\98ë:è|lÙ\a9\17q\ 6n¯' òEÙ¨ Îé+1 â15\17\1e\965\15\13²ª\84©\rî"\8cyË%*àbSBÛrr°\82i~9¸±\ 5\9a\8d/¤þ²æs¤ý¯¦\ 2\9d
+)\8aáW\91°ã\84'\88mi²\87!í*\87Ü\ 6\90\18Öá_ÂÄì]\85æ\ 3\9f<\rP»
+ÿ½;mX\ 1%ìÄ?³÷HUÞ\1f\v\ 4<@?ã\84\8e÷.\9f\ 1r ¦\90r&6-³è
\ No newline at end of file
--- /dev/null
+0\81ç0J\ 6 *\86H\86÷\r\ 1\ 5\r0=0%\ 6 *\86H\86÷\r \ 5\f0\18\ 4\13\ 6«{7÷\97è"\ 3çm\92Q\7f¿*©½]\ 2\ 1\ 10\14\ 6\b*\86H\86÷\r\ 3\a\ 4\b\93\18oY¤»¦û\ 4\81\98ë:è|lÙ\a9\17q\ 6n¯' òEÙ¨ Îé+1 â15\17\1e\965\15\13²ª\84©\rî"\8cyË%*àbSBÛrr°\82i~9¸±\ 5\9a\8d/¤þ²æs¤ý¯¦\ 2\9d
+)\8aáW\91°ã\84'\88mi²\87!í*\87Ü\ 6\90\18Öá_ÂÄì]\85æ\ 3\9f<\rP»
+ÿ½;mX\ 1%ìÄ?³÷HUÞ\1f\v\ 4<@?ã\84\8e÷.\9f\ 1r ¦\90r&6-³è
\ No newline at end of file
--- /dev/null
+0\81ç0J\ 6 *\86H\86÷\r\ 1\ 5\r0=0%\ 6 *\86H\86÷\r\ 1\ 5\f5\18\ 4\13\ 6«{7÷\97è"\ 3çm\92Q\7f¿*©½]\ 2\ 1\ 10\14\ 6\b*\86H\86÷\r\ 3\a\ 4\b\93\18oY¤»¦û\ 4\81\98ë:è|lÙ\a9\17q\ 6n¯' òEÙ¨ Îé+1 â15\17\1e\965\15\13²ª\84©\rî"\8cyË%*àbSBÛrr°\82i~9¸±\ 5\9a\8d/¤þ²æs¤ý¯¦\ 2\9d
+)\8aáW\91°ã\84'\88mi²\87!í*\87Ü\ 6\90\18Öá_ÂÄì]\85æ\ 3\9f<\rP»
+ÿ½;mX\ 1%ìÄ?³÷HUÞ\1f\v\ 4<@?ã\84\8e÷.\9f\ 1r ¦\90r&6-³è
\ No newline at end of file
--- /dev/null
+/*
+# Copyright 2016 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+*/
+
+#include <assert.h>
+#include <stdint.h>
+
+#include <gnutls/gnutls.h>
+#include <gnutls/x509.h>
+
+#include "fuzzer.h"
+
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+{
+ gnutls_datum_t raw;
+ gnutls_x509_privkey_t key;
+ int ret;
+
+ raw.data = (unsigned char *)data;
+ raw.size = size;
+
+ ret = gnutls_x509_privkey_init(&key);
+ assert(ret >= 0);
+
+ ret = gnutls_x509_privkey_import(key, &raw, GNUTLS_X509_FMT_DER);
+
+ gnutls_x509_privkey_deinit(key);
+ return 0;
+}
--- /dev/null
+0\ 20\ 2\1f\ 6
\ No newline at end of file
--- /dev/null
+0\ 20
+»\ 1
\ No newline at end of file
--- /dev/null
+0\82
\ No newline at end of file
--- /dev/null
+0\ e\ 2\ 1·0\ 5\ 6\ 3+ep\ 4\ 2$\80
\ No newline at end of file
--- /dev/null
+0w\ 2\ 1\ 1\ 4 \ fÄB¸Å °\8eÏýÂØ¸\9a.¥Íß`\7f%X}W\87ëª|ào®ø
+\ 6\b*\86HÎ=\ 3\ 1\a¡D\ 3BÛ\ 4ù,_ïÚÛ\ 1\ 1\ 4 \ fÄB¸Å °\8eÏýÂØ¸\9a.¥Íßa\7f%X}W\87ëB¸Å °\8eÏýÂØ¸\9a.¥Íßa\7f%X}Ù\9cÊ3k\17G
\ No newline at end of file
--- /dev/null
+0\b\ 2\ 4\ 1:\ 1\ 2\ 4\81
\ No newline at end of file
--- /dev/null
+/*
+ * Copyright (C) 2017 Nikos Mavrogiannopoulos
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+#include <assert.h>
+#include <fcntl.h>
+#include <stdint.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include <gnutls/gnutls.h>
+
+#include "psk.h"
+#include "mem.h"
+#include "fuzzer.h"
+
+int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
+{
+ int res;
+ gnutls_session_t session;
+ gnutls_psk_client_credentials_t pcred;
+ struct mem_st memdata;
+ gnutls_datum_t psk_key;
+
+ psk_key.data = (unsigned char*)psk_key16;
+ psk_key.size = 16;
+
+ res = gnutls_init(&session, GNUTLS_CLIENT);
+ assert(res >= 0);
+
+ res = gnutls_psk_allocate_client_credentials(&pcred);
+ assert(res >= 0);
+
+ res = gnutls_psk_set_client_credentials(pcred, "test", &psk_key, GNUTLS_PSK_KEY_RAW);
+ assert(res >= 0);
+
+ res = gnutls_credentials_set(session, GNUTLS_CRD_PSK, pcred);
+ assert(res >= 0);
+
+ res = gnutls_priority_set_direct(session, "NORMAL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK", NULL);
+ assert(res >= 0);
+
+ memdata.data = data;
+ memdata.size = size;
+
+ gnutls_transport_set_push_function(session, mem_push);
+ gnutls_transport_set_pull_function(session, mem_pull);
+ gnutls_transport_set_pull_timeout_function(session,
+ mem_pull_timeout);
+ gnutls_transport_set_ptr(session, &memdata);
+
+ do {
+ res = gnutls_handshake(session);
+ } while (res < 0 && gnutls_error_is_fatal(res) == 0);
+ if (res >= 0) {
+ for (;;) {
+ char buf[16384];
+ res = gnutls_record_recv(session, buf, sizeof(buf));
+ if (res <= 0) {
+ break;
+ }
+ }
+ }
+
+ gnutls_deinit(session);
+ gnutls_psk_free_client_credentials(pcred);
+ return 0;
+}
--- /dev/null
+\16\ 3\16
\ No newline at end of file
--- /dev/null
+\15ý\16???????????????????????????????????????????????????????????????????????
\ No newline at end of file
--- /dev/null
+\16\ 3\16\ 3\16
\ No newline at end of file
--- /dev/null
+/*
+ * Copyright (C) 2017 Nikos Mavrogiannopoulos
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+#include <assert.h>
+#include <stdint.h>
+#include <unistd.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include <gnutls/gnutls.h>
+
+#include "certs.h"
+#include "psk.h"
+#include "mem.h"
+#include "fuzzer.h"
+
+static int psk_cb(gnutls_session_t session, const char *username, gnutls_datum_t * key)
+{
+ key->data = (unsigned char*)gnutls_malloc(16);
+ assert(key->data != NULL);
+
+ memcpy(key->data, psk_key16, 16);
+ key->size = 16;
+
+ return 0;
+}
+
+int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
+{
+ int res;
+ gnutls_datum_t rsa_cert, rsa_key;
+ gnutls_datum_t ecdsa_cert, ecdsa_key;
+ gnutls_datum_t ed25519_cert, ed25519_key;
+ gnutls_session_t session;
+ gnutls_certificate_credentials_t xcred;
+ gnutls_psk_server_credentials_t pcred;
+ struct mem_st memdata;
+
+ res = gnutls_init(&session, GNUTLS_SERVER);
+ assert(res >= 0);
+
+ res = gnutls_certificate_allocate_credentials(&xcred);
+ assert(res >= 0);
+
+ res = gnutls_psk_allocate_server_credentials(&pcred);
+ assert(res >= 0);
+
+ gnutls_psk_set_server_credentials_function(pcred, psk_cb);
+ gnutls_psk_set_server_known_dh_params(pcred, GNUTLS_SEC_PARAM_MEDIUM);
+
+ rsa_cert.data = (unsigned char *)kRSACertificateDER;
+ rsa_cert.size = sizeof(kRSACertificateDER);
+ rsa_key.data = (unsigned char *)kRSAPrivateKeyDER;
+ rsa_key.size = sizeof(kRSAPrivateKeyDER);
+
+ ecdsa_cert.data = (unsigned char *)kECDSACertificateDER;
+ ecdsa_cert.size = sizeof(kECDSACertificateDER);
+ ecdsa_key.data = (unsigned char *)kECDSAPrivateKeyDER;
+ ecdsa_key.size = sizeof(kECDSAPrivateKeyDER);
+
+ ed25519_cert.data = (unsigned char *)kEd25519CertificateDER;
+ ed25519_cert.size = sizeof(kEd25519CertificateDER);
+ ed25519_key.data = (unsigned char *)kEd25519PrivateKeyDER;
+ ed25519_key.size = sizeof(kEd25519PrivateKeyDER);
+
+ res =
+ gnutls_certificate_set_x509_key_mem(xcred, &rsa_cert, &rsa_key,
+ GNUTLS_X509_FMT_DER);
+ assert(res >= 0);
+
+ res =
+ gnutls_certificate_set_x509_key_mem(xcred, &ecdsa_cert, &ecdsa_key,
+ GNUTLS_X509_FMT_DER);
+ assert(res >= 0);
+
+ res =
+ gnutls_certificate_set_x509_key_mem(xcred, &ed25519_cert, &ed25519_key,
+ GNUTLS_X509_FMT_DER);
+ assert(res >= 0);
+
+ gnutls_certificate_set_known_dh_params(xcred, GNUTLS_SEC_PARAM_MEDIUM);
+
+ res = gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
+ assert(res >= 0);
+
+ res = gnutls_credentials_set(session, GNUTLS_CRD_PSK, pcred);
+ assert(res >= 0);
+
+ res = gnutls_priority_set_direct(session, "NORMAL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+RSA-PSK", NULL);
+ assert(res >= 0);
+
+ memdata.data = data;
+ memdata.size = size;
+
+ gnutls_transport_set_push_function(session, mem_push);
+ gnutls_transport_set_pull_function(session, mem_pull);
+ gnutls_transport_set_pull_timeout_function(session, mem_pull_timeout);
+ gnutls_transport_set_ptr(session, &memdata);
+
+ do {
+ res = gnutls_handshake(session);
+ } while (res < 0 && gnutls_error_is_fatal(res) == 0);
+ if (res >= 0) {
+ for (;;) {
+ char buf[16384];
+ res = gnutls_record_recv(session, buf, sizeof(buf));
+ if (res <= 0) {
+ break;
+ }
+ }
+ }
+
+ gnutls_deinit(session);
+ gnutls_certificate_free_credentials(xcred);
+ gnutls_psk_free_server_credentials(pcred);
+ return 0;
+}
--- /dev/null
+\16\ 3
\ No newline at end of file
--- /dev/null
+\80\ 3ÿÿ\ 6
\ No newline at end of file
--- /dev/null
+/*
+# Copyright 2016 Nikos Mavrogiannopoulos
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+*/
+
+#include <assert.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <string.h>
+
+#include <gnutls/gnutls.h>
+
+#include "fuzzer.h"
+
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+{
+ gnutls_datum_t out;
+ int ret;
+
+ ret = gnutls_idna_reverse_map((char*)data, size, &out, 0);
+ if (ret < 0)
+ goto cleanup;
+
+ assert(out.size == strlen((char*)out.data));
+ gnutls_free(out.data);
+
+cleanup:
+ return 0;
+}
--- /dev/null
+LOCºLHOST\b
\ No newline at end of file
--- /dev/null
+/*
+# Copyright 2017 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+*/
+
+#include <assert.h>
+#include <stdint.h>
+#include <unistd.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include <gnutls/gnutls.h>
+
+#include "certs.h"
+#include "mem.h"
+#include "fuzzer.h"
+
+int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
+{
+ int res;
+ gnutls_datum_t rsa_cert, rsa_key;
+ gnutls_datum_t ecdsa_cert, ecdsa_key;
+ gnutls_datum_t ed25519_cert, ed25519_key;
+ gnutls_session_t session;
+ gnutls_certificate_credentials_t xcred;
+ struct mem_st memdata;
+
+ res = gnutls_init(&session, GNUTLS_SERVER);
+ assert(res >= 0);
+
+ res = gnutls_certificate_allocate_credentials(&xcred);
+ assert(res >= 0);
+
+ rsa_cert.data = (unsigned char *)kRSACertificateDER;
+ rsa_cert.size = sizeof(kRSACertificateDER);
+ rsa_key.data = (unsigned char *)kRSAPrivateKeyDER;
+ rsa_key.size = sizeof(kRSAPrivateKeyDER);
+
+ ecdsa_cert.data = (unsigned char *)kECDSACertificateDER;
+ ecdsa_cert.size = sizeof(kECDSACertificateDER);
+ ecdsa_key.data = (unsigned char *)kECDSAPrivateKeyDER;
+ ecdsa_key.size = sizeof(kECDSAPrivateKeyDER);
+
+ ed25519_cert.data = (unsigned char *)kEd25519CertificateDER;
+ ed25519_cert.size = sizeof(kEd25519CertificateDER);
+ ed25519_key.data = (unsigned char *)kEd25519PrivateKeyDER;
+ ed25519_key.size = sizeof(kEd25519PrivateKeyDER);
+
+ res =
+ gnutls_certificate_set_x509_key_mem(xcred, &rsa_cert, &rsa_key,
+ GNUTLS_X509_FMT_DER);
+ assert(res >= 0);
+
+ res =
+ gnutls_certificate_set_x509_key_mem(xcred, &ecdsa_cert, &ecdsa_key,
+ GNUTLS_X509_FMT_DER);
+ assert(res >= 0);
+
+ res =
+ gnutls_certificate_set_x509_key_mem(xcred, &ed25519_cert, &ed25519_key,
+ GNUTLS_X509_FMT_DER);
+ assert(res >= 0);
+
+ gnutls_certificate_set_known_dh_params(xcred, GNUTLS_SEC_PARAM_MEDIUM);
+
+ res = gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
+ assert(res >= 0);
+
+ res = gnutls_set_default_priority(session);
+ assert(res >= 0);
+
+ memdata.data = data;
+ memdata.size = size;
+
+ gnutls_transport_set_push_function(session, mem_push);
+ gnutls_transport_set_pull_function(session, mem_pull);
+ gnutls_transport_set_pull_timeout_function(session, mem_pull_timeout);
+ gnutls_transport_set_ptr(session, &memdata);
+
+ do {
+ res = gnutls_handshake(session);
+ } while (res < 0 && gnutls_error_is_fatal(res) == 0);
+ if (res >= 0) {
+ for (;;) {
+ char buf[16384];
+ res = gnutls_record_recv(session, buf, sizeof(buf));
+ if (res <= 0) {
+ break;
+ }
+ }
+ }
+
+ gnutls_deinit(session);
+ gnutls_certificate_free_credentials(xcred);
+ return 0;
+}
--- /dev/null
+\80\ 1\ 100Á
\ No newline at end of file
--- /dev/null
+\80\ 6\ 100000Á
\ No newline at end of file
--- /dev/null
+CONNE0
\ No newline at end of file
--- /dev/null
+ÿ0\ 1000
\ No newline at end of file
--- /dev/null
+\87*Ì ;\9bã\ 1Â)×(D
\ No newline at end of file
--- /dev/null
+\80\ 4\ 1000\ 3
\ No newline at end of file
--- /dev/null
+<
\ No newline at end of file
--- /dev/null
+\80\b\ 10000000Á
\ No newline at end of file
--- /dev/null
+/*
+# Copyright 2017 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+*/
+
+#include <config.h>
+
+#include <stdint.h>
+
+#include <gnutls/gnutls.h>
+#include "fuzzer.h"
+
+static const uint8_t *g_data;
+static size_t g_size;
+
+#if ! defined _WIN32 && defined HAVE_FMEMOPEN
+#include <stdio.h>
+#include <string.h>
+#include <dlfcn.h>
+FILE *fopen(const char *pathname, const char *mode)
+{
+ FILE *(*libc_fopen)(const char *, const char *) =
+ (FILE *(*)(const char *, const char *)) dlsym (RTLD_NEXT, "fopen");
+
+ if (!strcmp(pathname, "ca_or_crl"))
+ return fmemopen((void *) g_data, g_size, mode);
+
+ return libc_fopen(pathname, mode);
+}
+#endif
+
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+{
+ g_data = data;
+ g_size = size;
+
+ gnutls_certificate_credentials_t creds;
+ gnutls_certificate_allocate_credentials(&creds);
+ gnutls_certificate_set_x509_trust_file(creds, "ca_or_crl", GNUTLS_X509_FMT_PEM);
+ gnutls_certificate_set_x509_crl_file(creds, "ca_or_crl", GNUTLS_X509_FMT_PEM);
+ gnutls_certificate_free_credentials(creds);
+
+ return 0;
+}
--- /dev/null
+ÿ-----BEGIN CERTIFICATE09 :ER-----BEGIN X500 CRLTI\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13FICAT ÿÿÿÿÿÿÿÿÿÿÿÿ\13ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-----END ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
--- /dev/null
+ÿÿÿÿÿÿÿ-----BEGIN X509 CERTIFICATEÿÿÿ---GBEIN-- X----ÿÿÿÿÿÿÿÿÿ-----BEGIN X509 CERTIFICATEIN CERTIFICA-----END TEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
--- /dev/null
+ÿÿÿÿ~-----BEGIN CERTIFICATE09 CER-----BEGIN X\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r509 CRLTI\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13FICATEÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\r\r\r\r\r\r\r\r\r\r\r509 CRLTI\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13ÿÿ-----END ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
--- /dev/null
+ÿ-----END -----BEGIN CERTIFICATEÿ-----ÿÿÿ-----BEGIN X509 CERTIFICATEÿÿÿ-----END ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-----BE\91\94\94\94\94\94\94\94\94\94\94-----BEGIN CERTIFICATE\94\94\94\94\94\94\94\94\94\94ÿ\94\94\94\94\94\94\94\94\94\94\94\94\94ÿ
+\1d
\ No newline at end of file
--- /dev/null
+ÿÿÿÿÿÿÿÿÿÿ-³---BEGIN -----BEGIN CERTIFICATEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-----BEGIN CERTI-----END FICATEÿÿÿÿÿÿÿÿ;ÿÿÿÿÿ;ÿ
--- /dev/null
+ÿÿÿÿÿÿÿÿÿÿ-----BEGIN X-----509 CERTIFICATEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-----BEGIN CERTIFICATEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
--- /dev/null
+ÿ----BEGIN CERTIFICATE09 CER--ÿ-----BEGIN CERTIFICATE09 CER-----BEGIN X\r\r\rÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-----END ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\13ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
+ÿÿ-----END ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
--- /dev/null
+ÿÿÿÿ~-----BEGIN CERTIFICATE09 CER-----BEGIN X\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r509 CRLTI\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13FICATEÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\r\r\r\r\r\r\r\r\r\r\r509 CRLTI\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13ÿÿ-----END ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
--- /dev/null
+ÿ-----BEGIN CERTIFICATE09 CER-----BEGIN X\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r509 CRLTI\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13FICATEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-----END ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
--- /dev/null
+ÿ-----BEGIN CERTIFICATEÿÿÿÿÿÿÿÿÿ-----BEGIN X509 CERTIFICATEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-----BEGIN CERTIFICATEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
--- /dev/null
+ÿÿÿÿÿÿÿ-----BEGIN CERTIFICATEÿÿÿ-----BEG---BEGIN X-----509 CERTIFICATEÿÿÿÿÿÿ-----BEGIN CERTIFICATEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-----BEGIN CERTIFICATEÿÿÿ-----Bÿÿÿÿÿÿÿÿÿÿ-----BEGIN CERTIFI-----BEGEG---BEGIN X-----509 CERTIFICATEÿÿÿÿÿÿ-----BEGIN CERTIFICATEÿÿÿÿÿÿÿÿÿÿ-----BEGIN X509 CERTIFICATE----BEGIN X509-----END ATECATIN X509-----END ATECATEÿÿÿÿÿEÿÿÿÿÿÿÿÿÿÿÿÿÿ
+ÿÿ
--- /dev/null
+ÿ-----BEGIN CERTIFICATE09 CER-----BEGIN X500 CRLTI\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13FICATEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ\13ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-----END ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
--- /dev/null
+ÿ-----BEGIN CERTIFICATEÿÿÿÿÿÿÿÿÿ-----MMMMMMMMMMMMMMMMBEGI-----9 CERTIFICATEÿÿÿ-----END ÿÿÿÿÿÿÿÿÿÿÿÿûÿÿÿÿÿÿÿÿÿ-----BE\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94ÿ\94\94\94\94\94\94\94\94\94\94-----END \94\94\94ÿ
+\1d
\ No newline at end of file
--- /dev/null
+ÿ-----BEGIN X509 CERTIFICATEÿÿÿÿ-----BEGI---BEGIN X509 CERTIFI-----END CATEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
--- /dev/null
+ÿ-----BEG--BEGIN X5-----BEGIN X509 CERTIFICATE09 C-----END -----END Eÿÿÿ-----END ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-----BE\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94ÿ\94\94\94\94\94\94\94\94\94\94\94\94\94ÿ
+\1d
\ No newline at end of file
--- /dev/null
+ÿ--%--BEGIN CERTIFICATEÿÿGIN CERTIFICATEÿÿÿÿÿÿÿÿÿ-----BEGIN X509 CERTIFICATEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-----BEGIN CERTIFICATEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-ÿÿÿ----BEGIN X509 CERTIFICATEÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-----BE-----BEGIN X509 CERTIFICATEÿÿÿÿ-----END ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
--- /dev/null
+ÿ-----BEGIN CERTIFICATEÿÿÿÿÿÿÿÿÿ-----BEGIN X509 CERTIFICATEÿÿÿ------BEGIN X509 CERTIFICATEÿÿÿ-----BE\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94ÿ\94\94\94\94\94\94\94\94\94\94-----END \94\94\94ÿ
+\1d
\ No newline at end of file
--- /dev/null
+ÿ-----BEGIN CERTIFICATEÿÿÿÿÿÿÿÿÿ-----BEGIN X509 CERTIFICATEÿÿÿ-----END ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-----BE\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94ÿ\94\94\94\94\94\94\94\94\94\94\94\94\94ÿ
+\1d
\ No newline at end of file
--- /dev/null
+ÿ-----BEGIN CERTIFICATEÿÿÿÿÿÿÿÿÿ-----BEGIN X509 CERTIFICATEÿ ÿÿ-----END ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ------END \94\94\94\94\94\94\94\94\94\94\94\94\94-----BEGIN X509 CEDENR \94\94\94\94\94\94\94\94\94\94\94\94\9c\94\94\94\94\94\94\94\94\94\94ÿ
+\1d
\ No newline at end of file
--- /dev/null
+ÿ-----BEGIN CERTIFICATEÿÿÿÿÿÿÿÿÿ-----BEGIN X509 CERTIFICATEÿÿÿ-----END -----END ÿÿÿÿÿÿÿÿÿÿÿÿÿ-----BE\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94ÿ\94\94\94\94\94\94\94\94\94\94\94\94\94ÿ
+\1d
\ No newline at end of file
--- /dev/null
+ÿ-----BEGIN CERTIFICATEÿÿÿÿÿÿÿÿÿ------END X\ f09 CERTIFICATEÿÿÿ-----END ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-----BE\94\94\94\94\94-----END \94\94\94\94\94\94\94ÿ\94\94\94\94\94\94\94\94\94\94\94\94\94ÿ
+\1d
\ No newline at end of file
--- /dev/null
+ÿ-----BEGIN CERTIFICATEÿÿÿÿÿÿÿÿÿ-----BEGIN X509 CERTIF ÿÿ-----END ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ------END \94\94\94\94\94\94\94\94\94\94\94\94\94-----BEGIN X509 CEDENR \94\94\94\94\94\94\94\94\94\94\94\94\9c\94\94\94\94\94\94\94\94\94\94ÿ
+\1d
\ No newline at end of file
--- /dev/null
+ÿ-----BEGIN CERTIFICATEÿÿÿÿÿÿÿÿÿ-----BEGIN X509 CERTIFICATEÿÿÿ----------END ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-----BE\94\94\94\94\94-----END \94\94\94\94\94\94\94ÿ\94\94\94\94\94\94\94\94\94\94\94\94\94ÿ
+\1d
\ No newline at end of file
--- /dev/null
+ÿ-----BEGIN CERTIFICATEÿÿÿÿÿÿÿÿÿ CERTIFICATEÿÿÿ----------END ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-----BE\94\94\94\94\94-----END \94\94\94\94\94\94\94ÿ\94\94\94\94\94\94\94\94\94\94\94\94\94ÿ
+-----BEGIN X509 CERTIFICATEÿÿÿ----------END ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-----BE\94\94\94\94\94-----END \94\94\94\94\94\94\94ÿ\94\94\94\94\94\94\94\94\94\94\94\94\94ÿ
+\1d
\ No newline at end of file
--- /dev/null
+ÿ-----BEGIN CERTIFICATE09 CER-----BEGIN X509 CRLTI\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13 -----BEGIN CERTIFICATE \13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13FICATEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-----END ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
--- /dev/null
+ÿ-----BEGIN CERTIFICATE09 CER-----BEGIN X500 CRLTI\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13FICATEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ\13ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-----END ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
--- /dev/null
+ÿÿÿÿ-----BEGIN X509 CERTIFIÿ-----BEGIN CERTIFICATE09 CER-----BEGIN X509 CRLTI\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13 CATEÿÿÿ-----END ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿ-- ----END
\ No newline at end of file
--- /dev/null
+ÿ-----BEGIN CERTIFICATE09 CER-----BEGIN X\r\r\r\r\r\r\r\r\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13FICATEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-----END ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
--- /dev/null
+ÿ-----BEGIN CERTIFICATEÿÿÿÿÿÿÿÿÿ-----BEGI-----9 CERTIFICATEÿÿÿ-----END ÿÿÿÿÿÿÿÿÿÿÿÿûÿÿÿÿÿÿÿÿÿ-----BE\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94ÿ\94\94\94\94\94\94\94\94\94\94-----END \94\94\94ÿ
+\1d
\ No newline at end of file
--- /dev/null
+ÿ-----BEGIN CERTIFICATE09 CER-----BEGIN X509 CRLTI\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13 \13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13FICATEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-----END ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
--- /dev/null
+ÿ-----BEGIN CERTIFICATE-----R-----BEGIN X509 CRLTIFICATEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-----END ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
--- /dev/null
+ÿ--%--BEGIN CERTIFICATEÿÿGIN ERTIFICATEÿÿÿÿÿÿÿÿÿ-----BEGIN X509 CERTIFICATEÿÿÿÿÿÿÿÿÿÿÿÿ\ 1
+ÿÿÿÿÿÿ-ÿÿÿ----BEGIN X509 CERTIFICATEÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-----BE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+úõõõ
+
+
+
+
+
+
+
+
+
+
+-----BGEGIN X509 CERTIFICATEÿÿÿÿ-----END ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
--- /dev/null
+ÿ-----BEGIN CERTIFICATE09 CER-----BEGIN X509 CRLTIFICATEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
--- /dev/null
+ÿ-----BEGIN CERTIFICATEÿÿÿÿÿÿÿÿÿ-----BEGIN X509 CERTIFICATEÿÿÿ-----END ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ------END \94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94\94ÿ\94\94\94\94\94\94\94\94\94\94\94\94\94ÿ
+\1d
\ No newline at end of file
--- /dev/null
+ÿ-----BEGIN CERTIFICATE09 CER-----BEGIN X\r\r\r\r\r\13\13\13\13FICATEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-----END ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
--- /dev/null
+ÿ-----BEGIN CERTIFICATE09 CER-----BEGIN X\r\r\r\r\r\r\r\r\r\r\r\r\r\r\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13FICATEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-----END ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
--- /dev/null
+/*
+ * Copyright (C) 2017 Nikos Mavrogiannopoulos
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+#include <assert.h>
+#include <fcntl.h>
+#include <stdint.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include <gnutls/gnutls.h>
+
+#include "srp.h"
+#include "mem.h"
+#include "fuzzer.h"
+
+int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
+{
+ int res;
+ gnutls_session_t session;
+ gnutls_srp_client_credentials_t pcred;
+ struct mem_st memdata;
+
+ res = gnutls_init(&session, GNUTLS_CLIENT);
+ assert(res >= 0);
+
+ res = gnutls_srp_allocate_client_credentials(&pcred);
+ assert(res >= 0);
+
+ res = gnutls_srp_set_client_credentials(pcred, USERNAME, PASSWORD);
+ assert(res >= 0);
+
+ res = gnutls_credentials_set(session, GNUTLS_CRD_SRP, pcred);
+ assert(res >= 0);
+
+ res = gnutls_priority_set_direct(session, "NORMAL:-KX-ALL:+SRP:+SRP-RSA:+SRP-DSS", NULL);
+ assert(res >= 0);
+
+ memdata.data = data;
+ memdata.size = size;
+
+ gnutls_transport_set_push_function(session, mem_push);
+ gnutls_transport_set_pull_function(session, mem_pull);
+ gnutls_transport_set_pull_timeout_function(session,
+ mem_pull_timeout);
+ gnutls_transport_set_ptr(session, &memdata);
+
+ do {
+ res = gnutls_handshake(session);
+ } while (res < 0 && gnutls_error_is_fatal(res) == 0);
+ if (res >= 0) {
+ for (;;) {
+ char buf[16384];
+ res = gnutls_record_recv(session, buf, sizeof(buf));
+ if (res <= 0) {
+ break;
+ }
+ }
+ }
+
+ gnutls_deinit(session);
+ gnutls_srp_free_client_credentials(pcred);
+ return 0;
+}
--- /dev/null
+\17\ 3\ 2>\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\8e\ 2
\ No newline at end of file
--- /dev/null
+\16\16
\ No newline at end of file
--- /dev/null
+\16\ 3\ 2\ 3\ 2
\ No newline at end of file
--- /dev/null
+/*
+ * Copyright (C) 2017 Nikos Mavrogiannopoulos
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+#include <assert.h>
+#include <stdint.h>
+#include <unistd.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include <gnutls/gnutls.h>
+
+#include "certs.h"
+#include "srp.h"
+#include "mem.h"
+#include "fuzzer.h"
+
+static int
+srp_cb(gnutls_session_t session, const char *username,
+ gnutls_datum_t *salt, gnutls_datum_t *verifier, gnutls_datum_t *generator, gnutls_datum_t *prime)
+{
+ int ret;
+
+ salt->data = (unsigned char*)gnutls_malloc(SALT_SIZE);
+ memcpy(salt->data, (unsigned char*)SALT, SALT_SIZE);
+ salt->size = SALT_SIZE;
+
+ generator->data = (unsigned char*)gnutls_malloc(gnutls_srp_1024_group_generator.size);
+ memcpy(generator->data, gnutls_srp_1024_group_generator.data, gnutls_srp_1024_group_generator.size);
+ generator->size = gnutls_srp_1024_group_generator.size;
+
+ prime->data = (unsigned char*)gnutls_malloc(gnutls_srp_1024_group_prime.size);
+ memcpy(prime->data, gnutls_srp_1024_group_prime.data, gnutls_srp_1024_group_prime.size);
+ prime->size = gnutls_srp_1024_group_prime.size;
+
+ ret = gnutls_srp_verifier(USERNAME, PASSWORD, salt, generator, prime, verifier);
+ if (ret < 0)
+ return -1;
+
+ return 0;
+}
+
+int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
+{
+ int res;
+ gnutls_datum_t rsa_cert, rsa_key;
+ gnutls_datum_t ecdsa_cert, ecdsa_key;
+ gnutls_datum_t ed25519_cert, ed25519_key;
+ gnutls_session_t session;
+ gnutls_certificate_credentials_t xcred;
+ gnutls_srp_server_credentials_t pcred;
+ struct mem_st memdata;
+
+ res = gnutls_init(&session, GNUTLS_SERVER);
+ assert(res >= 0);
+
+ res = gnutls_certificate_allocate_credentials(&xcred);
+ assert(res >= 0);
+
+ res = gnutls_srp_allocate_server_credentials(&pcred);
+ assert(res >= 0);
+
+ gnutls_srp_set_server_credentials_function(pcred, srp_cb);
+
+ rsa_cert.data = (unsigned char *)kRSACertificateDER;
+ rsa_cert.size = sizeof(kRSACertificateDER);
+ rsa_key.data = (unsigned char *)kRSAPrivateKeyDER;
+ rsa_key.size = sizeof(kRSAPrivateKeyDER);
+
+ ecdsa_cert.data = (unsigned char *)kECDSACertificateDER;
+ ecdsa_cert.size = sizeof(kECDSACertificateDER);
+ ecdsa_key.data = (unsigned char *)kECDSAPrivateKeyDER;
+ ecdsa_key.size = sizeof(kECDSAPrivateKeyDER);
+
+ ed25519_cert.data = (unsigned char *)kEd25519CertificateDER;
+ ed25519_cert.size = sizeof(kEd25519CertificateDER);
+ ed25519_key.data = (unsigned char *)kEd25519PrivateKeyDER;
+ ed25519_key.size = sizeof(kEd25519PrivateKeyDER);
+
+ res =
+ gnutls_certificate_set_x509_key_mem(xcred, &rsa_cert, &rsa_key,
+ GNUTLS_X509_FMT_DER);
+ assert(res >= 0);
+
+ res =
+ gnutls_certificate_set_x509_key_mem(xcred, &ecdsa_cert, &ecdsa_key,
+ GNUTLS_X509_FMT_DER);
+ assert(res >= 0);
+
+ res =
+ gnutls_certificate_set_x509_key_mem(xcred, &ed25519_cert, &ed25519_key,
+ GNUTLS_X509_FMT_DER);
+ assert(res >= 0);
+
+ gnutls_certificate_set_known_dh_params(xcred, GNUTLS_SEC_PARAM_MEDIUM);
+
+ res = gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
+ assert(res >= 0);
+
+ res = gnutls_credentials_set(session, GNUTLS_CRD_SRP, pcred);
+ assert(res >= 0);
+
+ res = gnutls_priority_set_direct(session, "NORMAL:-KX-ALL:+SRP:+SRP-RSA:+SRP-DSS", NULL);
+ assert(res >= 0);
+
+ memdata.data = data;
+ memdata.size = size;
+
+ gnutls_transport_set_push_function(session, mem_push);
+ gnutls_transport_set_pull_function(session, mem_pull);
+ gnutls_transport_set_pull_timeout_function(session, mem_pull_timeout);
+ gnutls_transport_set_ptr(session, &memdata);
+
+ do {
+ res = gnutls_handshake(session);
+ } while (res < 0 && gnutls_error_is_fatal(res) == 0);
+ if (res >= 0) {
+ for (;;) {
+ char buf[16384];
+ res = gnutls_record_recv(session, buf, sizeof(buf));
+ if (res <= 0) {
+ break;
+ }
+ }
+ }
+
+ gnutls_deinit(session);
+ gnutls_certificate_free_credentials(xcred);
+ gnutls_srp_free_server_credentials(pcred);
+ return 0;
+}
--- /dev/null
+/*
+# Copyright 2016 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+*/
+
+#include <assert.h>
+#include <stdint.h>
+
+#include <gnutls/gnutls.h>
+#include <gnutls/x509.h>
+
+#include "fuzzer.h"
+
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+{
+ gnutls_datum_t raw;
+ gnutls_datum_t out;
+ gnutls_x509_crt_t crt;
+ int ret;
+
+ raw.data = (unsigned char *)data;
+ raw.size = size;
+
+ ret = gnutls_x509_crt_init(&crt);
+ assert(ret >= 0);
+
+ ret = gnutls_x509_crt_import(crt, &raw, GNUTLS_X509_FMT_DER);
+ if (ret >= 0) {
+ ret = gnutls_x509_crt_print(crt, GNUTLS_CRT_PRINT_FULL, &out);
+ assert(ret >= 0);
+ gnutls_free(out.data);
+ }
+
+ gnutls_x509_crt_deinit(crt);
+ return 0;
+}
--- /dev/null
+\9f\9c¹\86
\ No newline at end of file
--- /dev/null
+0\86:;\800\1f
\ No newline at end of file
--- /dev/null
+0\80
\ No newline at end of file
--- /dev/null
+0\800\80\ 2\ 2000\80\ 6\ 2000\80
\ No newline at end of file
--- /dev/null
+0\800\80\ 2\ 1(0\ 6\ 6\ 10\1e\ 11
\ No newline at end of file
--- /dev/null
+0\800\80\ 2(í0\82\ 4\800\82\ 3h \ 3\14\14\801\92\13\ 2h A\ 3\ 2\ 1\ 1\ 2\ 2!1hö|\ 20\82\ 2%\93\ f¥0\r\ 6\v*\b\86\8000¯\80\800\ 2
\ No newline at end of file
--- /dev/null
+0\800\80 \80\ 2\ 3000
\ No newline at end of file
--- /dev/null
+Ȇ\1f!:
\ No newline at end of file
--- /dev/null
+0\800\80 \80\ 2\ 1000
\ No newline at end of file
--- /dev/null
+\10\14\ 4\801\92\13h A\ 3\ 2\ 1\ 2\ 2\b1hö|%\93\ få000\82\ 4\800\82\ 3h
\ No newline at end of file
--- /dev/null
+?\10\80?\10\80ÿ0(0
\ No newline at end of file
--- /dev/null
+0\800\80\ 2\81\ 100\80\ 6\81\ 101\800\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 1\ 6'\81\ 6\ 1
\ No newline at end of file
--- /dev/null
+0\800\80\ 2\ 2ÿÿÿ\80\ 6
\ No newline at end of file
--- /dev/null
+0\800\80\ 2\ 100\80\ 6\ 3U\ 4&0
\ No newline at end of file
--- /dev/null
+0\800\80\ 2(í0\82\ 4\800\82\ 3h \ 3\14\14\801\92\13\ 2h A\ 3\ 2\ 1\ 1\ 2\ 2\b1hö|\ 2:\82\ 2%\93\ f;0\r\ 6\b¿÷\9c¹æ\86*\b+\80¿0ÿ
\ No newline at end of file
--- /dev/null
+0\800\80\ 2(í0\82\ 4\800\82\ 3h \ 3\14\14\801\92\13\ 2h A\ 3\ 2\ 1\ 1\ 2\ 2\b1hö|\ 20\82\ 2%\93\ få0\r\ 6\v*\b\86\8000¯\800\80\ 2
\ No newline at end of file
--- /dev/null
+0\800\80\ 2\10\94\14\801\92\13h A\ 3\ 2\ 1\ 20\82\ 2\b
\ No newline at end of file
--- /dev/null
+0\82
\ No newline at end of file
--- /dev/null
+ÿ÷Ñ
\ No newline at end of file
--- /dev/null
+0\800\80 \ 4\ 2\ 2ÿ\ 1\ 2\ 2ÿ\85\ 1
\ No newline at end of file
--- /dev/null
+ÿ(
\ No newline at end of file
--- /dev/null
+0\800\80\ 2(í0\82\ 4\800\82\ 3h \ 3\14\14\801\92\13\ 2h A\ 3\ 2\ 1\ 1\ 2\ 2\b1hö|\ 20\82\ 2%\93\ få0\r\ 6 *\b\86\8000¯\800\80\ 2
\ No newline at end of file
--- /dev/null
+0\800\80\ 2(í0\82\ 4\800\82\ 3h \ 3\14\14\801\92\13\ 2h A\ 3\ 2\ 1\ 1\ 2\ 2\b1hö|\ 20\82\ 2%\93\ få0\r\ 6\b¿÷\9c¹æ\86*\b*\80¿0ÿ\9c
\ No newline at end of file
--- /dev/null
+0\800\80\ 2(í0\82\ 4\800\82\ 3h \ 3\14\14\801\92\13\ 2h A\ 3\ 2\ 1\ 1\ 2\ 2\b1hö|\ 20\82\ 2%\93\ få0\r\ 6 ¿÷\9c¹æ\86*\b\86H\86÷\r\ 1
\ No newline at end of file
--- /dev/null
+0\800\80\ 2(í0\82\ 4\800\82\ 3h \ 3\14\14\801\92\13\ 2h A\ 3\ 2\ 1\ 1\ 2\ 2\b1hö|\ 20\82\ 2%\93\ få0\r\ 6 \80*\9a\b\86H\86÷\r\ 10\800
\ No newline at end of file
--- /dev/null
+0\800\80\ 2(í0\82\ 4\800\82\ 3h \ 3\14\14\801\92\13\ 2h A\ 3\ 2\ 1\ 1\ 2\ 2!1hö|\ 20\82\ 2%\93\ f¥0\r\ 6\v*\b\86\80\800¯\80\80'\ 2
\ No newline at end of file
--- /dev/null
+1\880
\ No newline at end of file
--- /dev/null
+0\800\80\ 2(í0\82\ 4\800\82\ 3h \ 3\14\14\801\92\13\ 2h A\ 3\ 2\ 1\ 1\ 2\ 2\b1hö|\ 20\82\ 2%\93\ få0\r\ 6\b¿÷\9c¹æ\86*\b0\800
\ No newline at end of file
--- /dev/null
+0\800\80 \ 4\ 2\ 2ÿ\ 1\ 2\ 2ÿ\ 1
\ No newline at end of file
--- /dev/null
+¿ÿ\9c)\86(;
\ No newline at end of file
--- /dev/null
+0\86:;\800
\ No newline at end of file
--- /dev/null
+¿\86¹ÿ\9c(;
\ No newline at end of file
--- /dev/null
+ÿ\80\80\80\80\80\80\80\80\80\80\80\80\80\94\94\94\94
\ No newline at end of file
--- /dev/null
+ÿ\80\80\80\80\80\80\80\94\94
\ No newline at end of file
--- /dev/null
+\84\87(
\ No newline at end of file
--- /dev/null
+0\800\80\ 2(í0\82\ 4\800\8a\ 3h \ 3\14\14\801\92\13\ 2h A\ 3\ 2\ 3\ 1\ 2\ 2\bPhö|\ 20\82\ 2%\93\ få0\ f\ 6 ¿÷\9c¹æ(*)03\800\80
\ No newline at end of file
--- /dev/null
+?ÿ\9c',;
\ No newline at end of file
--- /dev/null
+0\800\80\ 2\ 2û\80&0\80
\ No newline at end of file
--- /dev/null
+0\88ï00000000
\ No newline at end of file
--- /dev/null
+¿÷\9c¹
\ No newline at end of file
--- /dev/null
+0\800\80\ 2\10\14\14\801\92\13h A\ 3\ 2\ 1\ 20\82\ 2\b
\ No newline at end of file
--- /dev/null
+¿¹)\86ÿ¼;
\ No newline at end of file
--- /dev/null
+0\ 3}\8200
\ No newline at end of file
--- /dev/null
+0\800\80\ 2\ 1 0\ 6\ 6\ 15\ 5\ 11
\ No newline at end of file
--- /dev/null
+¿ÿ\9c¹\86(;
\ No newline at end of file
--- /dev/null
+¿óµ90\86
\ No newline at end of file
--- /dev/null
+\9f\9c:\86
\ No newline at end of file
--- /dev/null
+¿
\ No newline at end of file
--- /dev/null
+0\800\80"\10*\14\14\801\92\13h A0\ 1:;\80\ 3
\ No newline at end of file
--- /dev/null
+0\800\80\ 2(í0\82\ 4\800\82\ 3h \ 3\14\14\801\92\13\ 2h A\ 3\ 2\ 1\ 1\ 2\ 2\b1hö|\ 20\82\ 2%\93\ få0\r\ 6 *\b\860¯\800\800\80\ 2
\ No newline at end of file
--- /dev/null
+0\80ÿ\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\800\80
\ No newline at end of file
--- /dev/null
+1\82\ 4
\ No newline at end of file
--- /dev/null
+0\800\80\ 2(í0\82\ 4\800\82\ 3h \ 3\14\14\801\92\13\ 2h A\ 3\ 2\ 1\ 1\ 2\ 2\b1hö|\ 20\82\ 2%\93\ få0\r\ 6 (\800\86*\b0À0\80\ 2
\ No newline at end of file
--- /dev/null
+0\800\80\ 2\ 1(0\ 6\ 6\ 10\1c\ 11
\ No newline at end of file
--- /dev/null
+0\80ÿ\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\800\80
\ No newline at end of file
--- /dev/null
+/*
+ * Copyright(c) 2017 Tim Ruehsen
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <string.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <sys/stat.h>
+
+#include "fuzzer.h"
+
+#ifdef TEST_RUN
+
+#include <dirent.h>
+
+static void test_all_from(const char *dirname)
+{
+ DIR *dirp;
+ struct dirent *dp;
+
+ if ((dirp = opendir(dirname))) {
+ while ((dp = readdir(dirp))) {
+ if (*dp->d_name == '.') continue;
+
+ char fname[strlen(dirname) + strlen(dp->d_name) + 2];
+ snprintf(fname, sizeof(fname), "%s/%s", dirname, dp->d_name);
+
+ int fd;
+ if ((fd = open(fname, O_RDONLY)) == -1) {
+ fprintf(stderr, "Failed to open %s (%d)\n", fname, errno);
+ continue;
+ }
+
+ struct stat st;
+ if (fstat(fd, &st) != 0) {
+ fprintf(stderr, "Failed to stat %d (%d)\n", fd, errno);
+ close(fd);
+ continue;
+ }
+
+ uint8_t *data = malloc(st.st_size);
+ ssize_t n;
+ if ((n = read(fd, data, st.st_size)) == st.st_size) {
+ printf("testing %llu bytes from '%s'\n", (unsigned long long) st.st_size, fname);
+ fflush(stdout);
+ LLVMFuzzerTestOneInput(data, st.st_size);
+ fflush(stderr);
+ } else
+ fprintf(stderr, "Failed to read %llu bytes from %s (%d), got %zd\n", (unsigned long long) st.st_size, fname, errno, n);
+
+ free(data);
+ close(fd);
+ }
+ closedir(dirp);
+ }
+}
+
+int main(int argc, char **argv)
+{
+ const char *target = strrchr(argv[0], '/');
+ target = target ? target + 1 : argv[0];
+
+ char corporadir[sizeof(SRCDIR) + 1 + strlen(target) + 8];
+ snprintf(corporadir, sizeof(corporadir), SRCDIR "/%s.in", target);
+
+ test_all_from(corporadir);
+
+ snprintf(corporadir, sizeof(corporadir), SRCDIR "/%s.repro", target);
+
+ test_all_from(corporadir);
+
+ return 0;
+}
+
+#else
+
+#ifndef __AFL_LOOP
+static int __AFL_LOOP(int n)
+{
+ static int first = 1;
+
+ if (first) {
+ first = 0;
+ return 1;
+ }
+
+ return 0;
+}
+#endif
+
+int main(int argc, char **argv)
+{
+ int ret;
+ unsigned char buf[64 * 1024];
+
+ while (__AFL_LOOP(10000)) { // only works with afl-clang-fast
+ ret = fread(buf, 1, sizeof(buf), stdin);
+ if (ret < 0)
+ return 0;
+
+ LLVMFuzzerTestOneInput(buf, ret);
+ }
+
+ return 0;
+}
+
+#endif /* TEST_RUN */
--- /dev/null
+/*
+ * Copyright (C) 2017 Nikos Mavrogiannopoulos
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+#ifndef MEM_H
+# define MEM_H
+
+typedef struct mem_st {
+ const uint8_t *data;
+ size_t size;
+} mem_st;
+
+#define MIN(x,y) ((x)<(y)?(x):(y))
+static ssize_t
+mem_push(gnutls_transport_ptr_t tr, const void *data, size_t len)
+{
+ return len;
+}
+
+static ssize_t mem_pull(gnutls_transport_ptr_t tr, void *data, size_t len)
+{
+ struct mem_st *p = (struct mem_st *)tr;
+
+ if (p->size == 0) {
+ return 0;
+ }
+
+ len = MIN(len, p->size);
+ memcpy(data, p->data, len);
+
+ p->size -= len;
+ p->data += len;
+
+ return len;
+}
+
+static
+int mem_pull_timeout(gnutls_transport_ptr_t tr, unsigned int ms)
+{
+ struct mem_st *p = (struct mem_st *)tr;
+
+ if (p->size > 0)
+ return 1; /* available data */
+ else
+ return 0; /* timeout */
+}
+
+#endif
--- /dev/null
+/*
+ * Copyright (C) 2017 Nikos Mavrogiannopoulos
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+#ifndef PSK_H
+# define PSK_H
+
+static const uint8_t psk_key16[] = {
+ 0x8a, 0x77, 0x59, 0xb3, 0xf2, 0x69, 0x83, 0xc4,
+ 0x53, 0xe4, 0x48, 0x06, 0x0b, 0xde, 0x89, 0x81
+};
+
+#endif
--- /dev/null
+#!/bin/bash -e
+#
+# Copyright(c) 2017 Tim Rühsen
+#
+# This file is part of GnuTLS
+#
+# GnuTLS is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GnuTLS is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with gnutls. If not, see <https://www.gnu.org/licenses/>.
+
+trap ctrl_c INT
+
+ctrl_c() {
+ ./${fuzzer} -merge=1 ${fuzzer}.in ${fuzzer}.new
+ rm -rf ${fuzzer}.new
+}
+
+if test -z "$1"; then
+ echo "Usage: $0 <fuzzer target>"
+ echo "Example: $0 gnutls_base64_decode_fuzzer"
+ exit 1
+fi
+
+if ! grep -q FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION Makefile; then
+ echo "The fuzzers haven't been built for fuzzing (maybe for regression testing !?)"
+ echo "Please built regarding README.md and try again."
+ exit 1
+fi
+
+fuzzer=$1
+workers=$(($(nproc) - 0))
+jobs=$workers
+
+clang-5.0 \
+ $CFLAGS -I/usr/local/include -I../lib/include -I.. \
+ ${fuzzer}.c -o ${fuzzer} \
+ -Wl,-Bstatic ../lib/.libs/libgnutls.a -lFuzzer \
+ -Wl,-Bdynamic -lnettle -lhogweed -lgmp -lp11-kit -ltasn1 -lidn2 -lunistring -lclang-5.0 -lstdc++
+
+if test -n "$BUILD_ONLY"; then
+ exit 0
+fi
+
+# create directory for NEW test corpora (covering new areas of code)
+mkdir -p ${fuzzer}.new
+
+if test -f ${fuzzer}.dict; then
+ $sudo ./${fuzzer} -dict=${fuzzer}.dict ${fuzzer}.new ${fuzzer}.in -jobs=$jobs -workers=$workers
+else
+ $sudo ./${fuzzer} ${fuzzer}.new ${fuzzer}.in -jobs=$jobs -workers=$workers
+fi
+
+exit 0
--- /dev/null
+/*
+ * Copyright (C) 2017 Nikos Mavrogiannopoulos
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+#ifndef SRP_H
+# define SRP_H
+
+#define USERNAME "test"
+#define PASSWORD "test"
+
+#define SALT "\xeb\x0e\x6a\x5c\x02\x0d\x4b\xa9\x97\xb6\xbe\x73\x4a\x71\xc5\x00"
+#define SALT_SIZE 16
+
+#endif