From a17dbfd0c955d1a222db58028eef1716217374fc Mon Sep 17 00:00:00 2001 From: Huang Xin Date: Sat, 14 May 2022 02:31:47 -0700 Subject: [PATCH] 1. upgrade openssl to 1.11.g 2. add libarchive 3. portaudio change to yocto bb --- .../portaudio/portaudio_19.0.7.bb | 42 - .../libarchive/libarchive_3.6.1.bb | 66 + .../portaudio/portaudio_19.7.0.bb | 20 + .../recipes-connectivity/openssl/openssl.inc | 242 - .../openssl/openssl/0001-CVE-2017-3731.patch | 46 - ...e-linking-flags-from-LDFLAGS-env-var.patch | 43 - ...sysroot-and-debug-prefix-map-from-co.patch | 8 +- .../openssl/openssl/0002-CVE-2017-3731.patch | 53 - .../openssl/openssl/CVE-2016-7055.patch | 43 - .../openssl/openssl/Makefiles-ptest.patch | 77 - ...Use-SHA256-not-MD5-as-default-digest.patch | 69 - .../openssl/openssl/afalg.patch | 6 +- .../openssl/configure-musl-target.patch | 27 - .../openssl/openssl/configure-targets.patch | 37 - .../openssl/debian/c_rehash-compat.patch | 71 - .../openssl/openssl/debian/ca.patch | 22 - .../openssl/debian/debian-targets.patch | 73 - .../openssl/openssl/debian/man-dir.patch | 15 - .../openssl/openssl/debian/man-section.patch | 34 - .../openssl/openssl/debian/no-rpath.patch | 15 - .../openssl/openssl/debian/no-symbolic.patch | 15 - .../openssl/openssl/debian/pic.patch | 177 - .../openssl/debian/version-script.patch | 4663 ----------------- .../debian1.0.2/block_digicert_malaysia.patch | 29 - .../openssl/debian1.0.2/block_diginotar.patch | 68 - .../openssl/debian1.0.2/version-script.patch | 4656 ---------------- .../engines-install-in-libdir-ssl.patch | 64 - .../openssl/openssl/find.pl | 54 - .../openssl/fix-cipher-des-ede3-cfb1.patch | 21 - .../openssl/openssl/oe-ldflags.patch | 24 - .../openssl/openssl-1.0.2a-x32-asm.patch | 46 - ...ter-dereference-in-EVP_DigestInit_ex.patch | 23 - .../openssl/openssl/openssl-c_rehash.sh | 222 - .../openssl/openssl-fix-des.pod-error.patch | 19 - .../openssl-util-perlpath.pl-cwd.patch | 34 - .../openssl/openssl/openssl_fix_for_x32.patch | 39 - .../openssl/openssl/parallel.patch | 337 -- .../openssl/openssl/ptest-deps.patch | 34 - .../openssl/openssl/ptest_makefile_deps.patch | 248 - .../openssl/openssl/reproducible.patch | 32 + .../openssl/openssl/run-ptest | 12 +- .../openssl/openssl/shared-libs.patch | 41 - .../openssl/openssl_1.0.2j.bb | 61 - .../openssl/openssl_1.1.0h.bb | 172 - .../openssl/openssl_1.1.0i.bb | 172 - .../{openssl_1.1.1a.bb => openssl_1.1.1g.bb} | 40 +- src/apps/portaudio/include/pa_linux_alsa.h | 107 - src/apps/portaudio/include/portaudio.h | 1228 ----- src/apps/portaudio/lib64/libportaudio.so | Bin 590320 -> 0 bytes .../lib64/pkgconfig/portaudio-2.0.pc | 12 - 50 files changed, 160 insertions(+), 13499 deletions(-) delete mode 100644 meta/meta-mediatek-aud/recipes-apps/portaudio/portaudio_19.0.7.bb create mode 100644 meta/meta-mediatek-aud/recipes-support/libarchive/libarchive_3.6.1.bb create mode 100644 meta/meta-mediatek-aud/recipes-support/portaudio/portaudio_19.7.0.bb delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl.inc delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/0001-CVE-2017-3731.patch delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/0001-Take-linking-flags-from-LDFLAGS-env-var.patch delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/0002-CVE-2017-3731.patch delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/CVE-2016-7055.patch delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/Makefiles-ptest.patch delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/Use-SHA256-not-MD5-as-default-digest.patch delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/configure-musl-target.patch delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/configure-targets.patch delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/c_rehash-compat.patch delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/ca.patch delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/debian-targets.patch delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/man-dir.patch delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/man-section.patch delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/no-rpath.patch delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/no-symbolic.patch delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/pic.patch delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/version-script.patch delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian1.0.2/block_digicert_malaysia.patch delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian1.0.2/block_diginotar.patch delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian1.0.2/version-script.patch delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/engines-install-in-libdir-ssl.patch delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/find.pl delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/fix-cipher-des-ede3-cfb1.patch delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/oe-ldflags.patch delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/openssl-1.0.2a-x32-asm.patch delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/openssl-avoid-NULL-pointer-dereference-in-EVP_DigestInit_ex.patch delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/openssl-c_rehash.sh delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/openssl-fix-des.pod-error.patch delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/openssl-util-perlpath.pl-cwd.patch delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/openssl_fix_for_x32.patch delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/parallel.patch delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/ptest-deps.patch delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/ptest_makefile_deps.patch create mode 100644 meta/meta-mediatek/recipes-connectivity/openssl/openssl/reproducible.patch mode change 100755 => 100644 meta/meta-mediatek/recipes-connectivity/openssl/openssl/run-ptest delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl/shared-libs.patch delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl_1.0.2j.bb delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl_1.1.0h.bb delete mode 100755 meta/meta-mediatek/recipes-connectivity/openssl/openssl_1.1.0i.bb rename meta/meta-mediatek/recipes-connectivity/openssl/{openssl_1.1.1a.bb => openssl_1.1.1g.bb} (85%) delete mode 100644 src/apps/portaudio/include/pa_linux_alsa.h delete mode 100644 src/apps/portaudio/include/portaudio.h delete mode 100644 src/apps/portaudio/lib64/libportaudio.so delete mode 100644 src/apps/portaudio/lib64/pkgconfig/portaudio-2.0.pc diff --git a/meta/meta-mediatek-aud/recipes-apps/portaudio/portaudio_19.0.7.bb b/meta/meta-mediatek-aud/recipes-apps/portaudio/portaudio_19.0.7.bb deleted file mode 100644 index 29e5ab11f..000000000 --- a/meta/meta-mediatek-aud/recipes-apps/portaudio/portaudio_19.0.7.bb +++ /dev/null @@ -1,42 +0,0 @@ -SUMMARY = "PortAudio is a free, cross-platform, open-source, audio I/O library." -DESCRIPTION = "It lets you write simple audio programs in 'C' or C++ that will compile and run on many platforms including Windows, Macintosh OS X, and Unix (OSS/ALSA). " -HOMEPAGE = "http://www.portaudio.com/" -DEPENDS = "" -LICENSE = "GPLv2" - -inherit workonsrc -WORKONSRC = "${TOPDIR}/../src/apps/portaudio" - -COMPATIBLE_HOST = "aarch64-poky-linux" - -do_install() { - install -d ${D}${libdir} - install -d ${D}${libdir}/pkgconfig - install -d ${D}${includedir} - - #jemalloc - install -m 755 ${S}/lib64/libportaudio.so ${D}${libdir} - install -m 755 ${S}/lib64/pkgconfig/portaudio-2.0.pc ${D}${libdir}/pkgconfig - install -m 755 ${S}/include/pa_linux_alsa.h ${D}${includedir}/ - install -m 755 ${S}/include/portaudio.h ${D}${includedir}/ -} - -# The base package, this includes everything needed to actually run the application on the target system. -PACKAGES += "FILES-${PN}-lib" - -FILES_${PN}-lib = " \ - ${libdir}/lib*.so \ - ${includedir}/*" - -# Make sure our source directory (for the build) matches the directory structure in the tarball -PACKAGES = "${PN} FILES-${PN}-lib ${PN}-dev ${PN}-dbg ${PN}-staticdev" - -RDEPENDS_${PN}-staticdev = "" -RDEPENDS_${PN}-dev = "" -RDEPENDS_${PN}-dbg = "" - -INSANE_SKIP_${PN} = "ldflags" -INHIBIT_PACKAGE_STRIP = "1" -INHIBIT_SYSROOT_STRIP = "1" -SOLIBS = ".so" -FILES_SOLIBSDEV = "" \ No newline at end of file diff --git a/meta/meta-mediatek-aud/recipes-support/libarchive/libarchive_3.6.1.bb b/meta/meta-mediatek-aud/recipes-support/libarchive/libarchive_3.6.1.bb new file mode 100644 index 000000000..2c8f55c04 --- /dev/null +++ b/meta/meta-mediatek-aud/recipes-support/libarchive/libarchive_3.6.1.bb @@ -0,0 +1,66 @@ +SUMMARY = "Support for reading various archive formats" +DESCRIPTION = "C library and command-line tools for reading and writing tar, cpio, zip, ISO, and other archive formats" +HOMEPAGE = "http://www.libarchive.org/" +SECTION = "devel" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=d499814247adaee08d88080841cb5665" + +DEPENDS = "e2fsprogs-native" + +PACKAGECONFIG ?= "zlib bz2" + +PACKAGECONFIG_append_class-target = "\ + libxml2 \ + ${@bb.utils.contains('DISTRO_FEATURES', 'acl', 'acl', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'xattr', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'largefile', 'largefile', '', d)} \ +" + +PACKAGECONFIG_append_class-nativesdk = " largefile" + +PACKAGECONFIG[acl] = "--enable-acl,--disable-acl,acl," +PACKAGECONFIG[xattr] = "--enable-xattr,--disable-xattr,attr," +PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile,," +PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib," +PACKAGECONFIG[bz2] = "--with-bz2lib,--without-bz2lib,bzip2," +PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl," +PACKAGECONFIG[libxml2] = "--with-xml2,--without-xml2,libxml2," +PACKAGECONFIG[expat] = "--with-expat,--without-expat,expat," +PACKAGECONFIG[lzo] = "--with-lzo2,--without-lzo2,lzo," +PACKAGECONFIG[nettle] = "--with-nettle,--without-nettle,nettle," +PACKAGECONFIG[lz4] = "--with-lz4,--without-lz4,lz4," + +SRC_URI = "http://libarchive.org/downloads/libarchive-${PV}.tar.gz \ + " + +SRC_URI[md5sum] = "802a56ef9eaa0b8776296ba78a6d0c2c" +SRC_URI[sha256sum] = "c676146577d989189940f1959d9e3980d28513d74eedfbc6b7f15ea45fe54ee2" + +inherit autotools update-alternatives pkgconfig + +CPPFLAGS += "-I${WORKDIR}/extra-includes" + +do_configure[cleandirs] += "${WORKDIR}/extra-includes" +do_configure_prepend() { + # We just need the headers for some type constants, so no need to + # build all of e2fsprogs for the target + cp -R ${STAGING_INCDIR_NATIVE}/ext2fs ${WORKDIR}/extra-includes/ +} + +ALTERNATIVE_PRIORITY = "80" + +PACKAGES =+ "bsdtar" +FILES_bsdtar = "${bindir}/bsdtar" + +ALTERNATIVE_bsdtar = "tar" +ALTERNATIVE_LINK_NAME[tar] = "${base_bindir}/tar" +ALTERNATIVE_TARGET[tar] = "${bindir}/bsdtar" + +PACKAGES =+ "bsdcpio" +FILES_bsdcpio = "${bindir}/bsdcpio" + +ALTERNATIVE_bsdcpio = "cpio" +ALTERNATIVE_LINK_NAME[cpio] = "${base_bindir}/cpio" +ALTERNATIVE_TARGET[cpio] = "${bindir}/bsdcpio" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/meta-mediatek-aud/recipes-support/portaudio/portaudio_19.7.0.bb b/meta/meta-mediatek-aud/recipes-support/portaudio/portaudio_19.7.0.bb new file mode 100644 index 000000000..dc7890da6 --- /dev/null +++ b/meta/meta-mediatek-aud/recipes-support/portaudio/portaudio_19.7.0.bb @@ -0,0 +1,20 @@ +SUMMARY = "A portable audio library" +SECTION = "libs/multimedia" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=26107732c2ab637c5710446fcfaf02df" + +SRC_URI = "http://files.portaudio.com/archives/pa_stable_v190700_20210406.tgz" +SRC_URI[md5sum] = "ad319249932c6794b551d954b8844402" +SRC_URI[sha256sum] = "47efbf42c77c19a05d22e627d42873e991ec0c1357219c0d74ce6a2948cb2def" + +S = "${WORKDIR}/portaudio" + +inherit autotools pkgconfig + +PACKAGECONFIG ??= "alsa" +PACKAGECONFIG[alsa] = "--with-alsa, --without-alsa, alsa-lib," + +EXTRA_OECONF = "--without-jack" + +PACKAGES += "portaudio-examples" +FILES_portaudio-examples = "${bindir}" diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl.inc b/meta/meta-mediatek/recipes-connectivity/openssl/openssl.inc deleted file mode 100755 index f3a2c5abd..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl.inc +++ /dev/null @@ -1,242 +0,0 @@ -SUMMARY = "Secure Socket Layer" -DESCRIPTION = "Secure Socket Layer (SSL) binary and related cryptographic tools." -HOMEPAGE = "http://www.openssl.org/" -BUGTRACKER = "http://www.openssl.org/news/vulnerabilities.html" -SECTION = "libs/network" - -# "openssl | SSLeay" dual license -LICENSE = "openssl" -LIC_FILES_CHKSUM = "file://LICENSE;md5=f9a8f968107345e0b75aa8c2ecaa7ec8" - -DEPENDS = "makedepend-native hostperl-runtime-native" -DEPENDS_append_class-target = " openssl-native" - -SRC_URI = "http://www.openssl.org/source/openssl-${PV}.tar.gz \ - " -S = "${WORKDIR}/openssl-${PV}" - -PACKAGECONFIG[perl] = ",,," - -AR_append = " r" -TERMIO_libc-musl = "-DTERMIOS" -TERMIO ?= "-DTERMIO" -# Avoid binaries being marked as requiring an executable stack since it -# doesn't(which causes and this causes issues with SELinux -CFLAG = "${@base_conditional('SITEINFO_ENDIANNESS', 'le', '-DL_ENDIAN', '-DB_ENDIAN', d)} \ - ${TERMIO} ${CFLAGS} -Wall -Wa,--noexecstack" - -export DIRS = "crypto ssl apps" -export EX_LIBS = "-lgcc -ldl" -export AS = "${CC} -c" -EXTRA_OEMAKE = "-e MAKEFLAGS=" - -inherit pkgconfig siteinfo multilib_header ptest - -PACKAGES =+ "libcrypto libssl ${PN}-misc openssl-conf" -FILES_libcrypto = "${libdir}/libcrypto${SOLIBS}" -FILES_libssl = "${libdir}/libssl${SOLIBS}" -FILES_${PN} =+ " ${libdir}/ssl/*" -FILES_${PN}-misc = "${libdir}/ssl/misc" -RDEPENDS_${PN}-misc = "${@bb.utils.contains('PACKAGECONFIG', 'perl', 'perl', '', d)}" - -# Add the openssl.cnf file to the openssl-conf package. Make the libcrypto -# package RRECOMMENDS on this package. This will enable the configuration -# file to be installed for both the base openssl package and the libcrypto -# package since the base openssl package depends on the libcrypto package. -FILES_openssl-conf = "${sysconfdir}/ssl/openssl.cnf" -CONFFILES_openssl-conf = "${sysconfdir}/ssl/openssl.cnf" -RRECOMMENDS_libcrypto += "openssl-conf" -RDEPENDS_${PN}-ptest += "${PN}-misc make perl perl-module-filehandle bc" - -# Remove this to enable SSLv3. SSLv3 is defaulted to disabled due to the POODLE -# vulnerability -EXTRA_OECONF = " -no-ssl3" - -do_configure_prepend_darwin () { - sed -i -e '/version-script=openssl\.ld/d' Configure -} - -do_configure () { - cd util - perl perlpath.pl ${STAGING_BINDIR_NATIVE} - cd .. - ln -sf apps/openssl.pod crypto/crypto.pod ssl/ssl.pod doc/ - - os=${HOST_OS} - case $os in - linux-uclibc |\ - linux-uclibceabi |\ - linux-gnueabi |\ - linux-uclibcspe |\ - linux-gnuspe |\ - linux-musl*) - os=linux - ;; - *) - ;; - esac - target="$os-${HOST_ARCH}" - case $target in - linux-arm) - target=linux-armv4 - ;; - linux-armeb) - target=linux-elf-armeb - ;; - linux-aarch64*) - target=linux-generic64 - ;; - linux-sh3) - target=debian-sh3 - ;; - linux-sh4) - target=debian-sh4 - ;; - linux-i486) - target=debian-i386-i486 - ;; - linux-i586 | linux-viac3) - target=debian-i386-i586 - ;; - linux-i686) - target=debian-i386-i686/cmov - ;; - linux-gnux32-x86_64) - target=linux-x32 - ;; - linux-gnu64-x86_64) - target=linux-x86_64 - ;; - linux-mips) - target=debian-mips - ;; - linux-mipsel) - target=debian-mipsel - ;; - linux-*-mips64 | linux-mips64) - target=debian-mips64 - ;; - linux-*-mips64el | linux-mips64el) - target=debian-mips64el - ;; - linux-microblaze*|linux-nios2*) - target=linux-generic32 - ;; - linux-powerpc) - target=linux-ppc - ;; - linux-powerpc64) - target=linux-ppc64 - ;; - linux-supersparc) - target=linux-sparcv8 - ;; - linux-sparc) - target=linux-sparcv8 - ;; - darwin-i386) - target=darwin-i386-cc - ;; - esac - # inject machine-specific flags - sed -i -e "s|^\(\"$target\",\s*\"[^:]\+\):\([^:]\+\)|\1:${CFLAG}|g" Configure - useprefix=${prefix} - if [ "x$useprefix" = "x" ]; then - useprefix=/ - fi - perl ./Configure ${EXTRA_OECONF} shared --prefix=$useprefix --openssldir=${libdir}/ssl --libdir=`basename ${libdir}` $target -} - -do_compile_prepend_class-target () { - sed -i 's/\((OPENSSL=\)".*"/\1"openssl"/' Makefile -} - -do_compile () { - oe_runmake depend - oe_runmake -} - -do_compile_ptest () { - # build dependencies for test directory too - export DIRS="$DIRS test" - oe_runmake depend - oe_runmake buildtest -} - -do_install () { - # Create ${D}/${prefix} to fix parallel issues - mkdir -p ${D}/${prefix}/ - - oe_runmake INSTALL_PREFIX="${D}" MANDIR="${mandir}" install - - oe_libinstall -so libcrypto ${D}${libdir} - oe_libinstall -so libssl ${D}${libdir} - - install -d ${D}${includedir} - cp --dereference -R include/openssl ${D}${includedir} - - install -Dm 0755 ${WORKDIR}/openssl-c_rehash.sh ${D}${bindir}/c_rehash - sed -i -e 's,/etc/openssl,${sysconfdir}/ssl,g' ${D}${bindir}/c_rehash - - oe_multilib_header openssl/opensslconf.h - if [ "${@bb.utils.contains('PACKAGECONFIG', 'perl', 'perl', '', d)}" = "perl" ]; then - sed -i -e '1s,.*,#!${bindir}/env perl,' ${D}${libdir}/ssl/misc/CA.pl - sed -i -e '1s,.*,#!${bindir}/env perl,' ${D}${libdir}/ssl/misc/tsget - else - rm -f ${D}${libdir}/ssl/misc/CA.pl ${D}${libdir}/ssl/misc/tsget - fi - - # Create SSL structure - install -d ${D}${sysconfdir}/ssl/ - mv ${D}${libdir}/ssl/openssl.cnf \ - ${D}${libdir}/ssl/certs \ - ${D}${libdir}/ssl/private \ - \ - ${D}${sysconfdir}/ssl/ - ln -sf ${sysconfdir}/ssl/certs ${D}${libdir}/ssl/certs - ln -sf ${sysconfdir}/ssl/private ${D}${libdir}/ssl/private - ln -sf ${sysconfdir}/ssl/openssl.cnf ${D}${libdir}/ssl/openssl.cnf -} - -do_install_ptest () { - cp -r -L Makefile.org Makefile test ${D}${PTEST_PATH} - cp Configure config e_os.h ${D}${PTEST_PATH} - cp -r -L include ${D}${PTEST_PATH} - ln -sf ${libdir}/libcrypto.a ${D}${PTEST_PATH} - ln -sf ${libdir}/libssl.a ${D}${PTEST_PATH} - mkdir -p ${D}${PTEST_PATH}/crypto - cp crypto/constant_time_locl.h ${D}${PTEST_PATH}/crypto - cp -r certs ${D}${PTEST_PATH} - mkdir -p ${D}${PTEST_PATH}/apps - ln -sf ${libdir}/ssl/misc/CA.sh ${D}${PTEST_PATH}/apps - ln -sf ${sysconfdir}/ssl/openssl.cnf ${D}${PTEST_PATH}/apps - ln -sf ${bindir}/openssl ${D}${PTEST_PATH}/apps - cp apps/server.pem ${D}${PTEST_PATH}/apps - cp apps/server2.pem ${D}${PTEST_PATH}/apps - mkdir -p ${D}${PTEST_PATH}/util - install util/opensslwrap.sh ${D}${PTEST_PATH}/util - install util/shlib_wrap.sh ${D}${PTEST_PATH}/util - # Time stamps are relevant for "make alltests", otherwise - # make may try to recompile binaries. Not only must the - # binary files be newer than the sources, they also must - # be more recent than the header files in /usr/include. - # - # Using "cp -a" is not sufficient, because do_install - # does not preserve the original time stamps. - # - # So instead of using the original file stamps, we set - # the current time for all files. Binaries will get - # modified again later when stripping them, but that's okay. - touch ${D}${PTEST_PATH} - find ${D}${PTEST_PATH} -type f -print0 | xargs --verbose -0 touch -r ${D}${PTEST_PATH} -} - -do_install_append_class-native() { - create_wrapper ${D}${bindir}/openssl \ - OPENSSL_CONF=${libdir}/ssl/openssl.cnf \ - SSL_CERT_DIR=${libdir}/ssl/certs \ - SSL_CERT_FILE=${libdir}/ssl/cert.pem \ - OPENSSL_ENGINES=${libdir}/ssl/engines -} - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/0001-CVE-2017-3731.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/0001-CVE-2017-3731.patch deleted file mode 100755 index 04ef52682..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/0001-CVE-2017-3731.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 0cde9a9645c949fd0acf657dadc747676245cfaf Mon Sep 17 00:00:00 2001 -From: Alexandru Moise -Date: Tue, 7 Feb 2017 11:13:19 +0200 -Subject: [PATCH 1/2] crypto/evp: harden RC4_MD5 cipher. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Originally a crash in 32-bit build was reported CHACHA20-POLY1305 -cipher. The crash is triggered by truncated packet and is result -of excessive hashing to the edge of accessible memory (or bogus -MAC value is produced if x86 MD5 assembly module is involved). Since -hash operation is read-only it is not considered to be exploitable -beyond a DoS condition. - -Thanks to Robert Święcki for report. - -CVE-2017-3731 - -Backported from upstream commit: -8e20499629b6bcf868d0072c7011e590b5c2294d - -Upstream-Status: Backport - -Reviewed-by: Rich Salz -Signed-off-by: Alexandru Moise ---- - crypto/evp/e_rc4_hmac_md5.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/crypto/evp/e_rc4_hmac_md5.c b/crypto/evp/e_rc4_hmac_md5.c -index 5e92855..3293419 100644 ---- a/crypto/evp/e_rc4_hmac_md5.c -+++ b/crypto/evp/e_rc4_hmac_md5.c -@@ -269,6 +269,8 @@ static int rc4_hmac_md5_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, - len = p[arg - 2] << 8 | p[arg - 1]; - - if (!ctx->encrypt) { -+ if (len < MD5_DIGEST_LENGTH) -+ return -1; - len -= MD5_DIGEST_LENGTH; - p[arg - 2] = len >> 8; - p[arg - 1] = len; --- -2.10.2 - diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/0001-Take-linking-flags-from-LDFLAGS-env-var.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/0001-Take-linking-flags-from-LDFLAGS-env-var.patch deleted file mode 100755 index 6ce4e47d7..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/0001-Take-linking-flags-from-LDFLAGS-env-var.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 08face4353d80111973aba9c1304c92158cfad0e Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Tue, 28 Mar 2017 16:40:12 +0300 -Subject: [PATCH] Take linking flags from LDFLAGS env var - -This fixes "No GNU_HASH in the elf binary" issues. - -Upstream-Status: Inappropriate [oe-core specific] -Signed-off-by: Alexander Kanavin ---- - Configurations/unix-Makefile.tmpl | 2 +- - Configure | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl -index c029817..43b769b 100644 ---- a/Configurations/unix-Makefile.tmpl -+++ b/Configurations/unix-Makefile.tmpl -@@ -173,7 +173,7 @@ CROSS_COMPILE= {- $config{cross_compile_prefix} -} - CC= $(CROSS_COMPILE){- $target{cc} -} - CFLAGS={- our $cflags2 = join(" ",(map { "-D".$_} @{$target{defines}}, @{$config{defines}}),"-DOPENSSLDIR=\"\\\"\$(OPENSSLDIR)\\\"\"","-DENGINESDIR=\"\\\"\$(ENGINESDIR)\\\"\"") -} {- $target{cflags} -} {- $config{cflags} -} - CFLAGS_Q={- $cflags2 =~ s|([\\"])|\\$1|g; $cflags2 -} {- $config{cflags} -} --LDFLAGS= {- $target{lflags} -} -+LDFLAGS= {- $target{lflags}." ".$ENV{'LDFLAGS'} -} - PLIB_LDFLAGS= {- $target{plib_lflags} -} - EX_LIBS= {- $target{ex_libs} -} {- $config{ex_libs} -} - LIB_CFLAGS={- $target{shared_cflag} || "" -} -diff --git a/Configure b/Configure -index aee7cc3..274d236 100755 ---- a/Configure -+++ b/Configure -@@ -979,7 +979,7 @@ $config{build_file} = $target{build_file}; - $config{defines} = []; - $config{cflags} = ""; - $config{ex_libs} = ""; --$config{shared_ldflag} = ""; -+$config{shared_ldflag} = $ENV{'LDFLAGS'}; - - # Make sure build_scheme is consistent. - $target{build_scheme} = [ $target{build_scheme} ] --- -2.11.0 - diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch index 80b62ab18..949c78834 100644 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch +++ b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch @@ -20,6 +20,11 @@ https://patchwork.openembedded.org/patch/147229/ Upstream-Status: Inappropriate [OE specific] Signed-off-by: Martin Hundebøll + + +Update to fix buildpaths qa issue for '-fmacro-prefix-map'. + +Signed-off-by: Kai Kang --- Configurations/unix-Makefile.tmpl | 10 +++++++++- crypto/build.info | 2 +- @@ -29,7 +34,7 @@ diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tm index 16af4d2087..54c162784c 100644 --- a/Configurations/unix-Makefile.tmpl +++ b/Configurations/unix-Makefile.tmpl -@@ -317,13 +317,21 @@ BIN_LDFLAGS={- join(' ', $target{bin_lflags} || (), +@@ -317,13 +317,22 @@ BIN_LDFLAGS={- join(' ', $target{bin_lflags} || (), '$(CNF_LDFLAGS)', '$(LDFLAGS)') -} BIN_EX_LIBS=$(CNF_EX_LIBS) $(EX_LIBS) @@ -43,6 +48,7 @@ index 16af4d2087..54c162784c 100644 +CFLAGS_Q={- for (@{$config{CFLAGS}}) { + s|-fdebug-prefix-map=[^ ]+|-fdebug-prefix-map=|g; ++ s|-fmacro-prefix-map=[^ ]+|-fmacro-prefix-map=|g; + } + join(' ', @{$config{CFLAGS}}) -} + diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/0002-CVE-2017-3731.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/0002-CVE-2017-3731.patch deleted file mode 100755 index b56b2d5bd..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/0002-CVE-2017-3731.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 6427f1accc54b515bb899370f1a662bfcb1caa52 Mon Sep 17 00:00:00 2001 -From: Alexandru Moise -Date: Tue, 7 Feb 2017 11:16:13 +0200 -Subject: [PATCH 2/2] crypto/evp: harden AEAD ciphers. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Originally a crash in 32-bit build was reported CHACHA20-POLY1305 -cipher. The crash is triggered by truncated packet and is result -of excessive hashing to the edge of accessible memory. Since hash -operation is read-only it is not considered to be exploitable -beyond a DoS condition. Other ciphers were hardened. - -Thanks to Robert Święcki for report. - -CVE-2017-3731 - -Backported from upstream commit: -2198b3a55de681e1f3c23edb0586afe13f438051 - -Upstream-Status: Backport - -Reviewed-by: Rich Salz -Signed-off-by: Alexandru Moise ---- - crypto/evp/e_aes.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/crypto/evp/e_aes.c b/crypto/evp/e_aes.c -index 1734a82..16dcd10 100644 ---- a/crypto/evp/e_aes.c -+++ b/crypto/evp/e_aes.c -@@ -1235,10 +1235,15 @@ static int aes_gcm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr) - { - unsigned int len = c->buf[arg - 2] << 8 | c->buf[arg - 1]; - /* Correct length for explicit IV */ -+ if (len < EVP_GCM_TLS_EXPLICIT_IV_LEN) -+ return 0; - len -= EVP_GCM_TLS_EXPLICIT_IV_LEN; - /* If decrypting correct for tag too */ -- if (!c->encrypt) -+ if (!c->encrypt) { -+ if (len < EVP_GCM_TLS_TAG_LEN) -+ return 0; - len -= EVP_GCM_TLS_TAG_LEN; -+ } - c->buf[arg - 2] = len >> 8; - c->buf[arg - 1] = len & 0xff; - } --- -2.10.2 - diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/CVE-2016-7055.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/CVE-2016-7055.patch deleted file mode 100755 index 83a74cdac..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/CVE-2016-7055.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 57c4b9f6a2f800b41ce2836986fe33640f6c3f8a Mon Sep 17 00:00:00 2001 -From: Andy Polyakov -Date: Sun, 6 Nov 2016 18:33:17 +0100 -Subject: [PATCH] bn/asm/x86_64-mont.pl: fix for CVE-2016-7055 (Low severity). - -Reviewed-by: Rich Salz -(cherry picked from commit 2fac86d9abeaa643677d1ffd0a139239fdf9406a) - -Upstream-Status: Backport [https://github.com/openssl/openssl/commit/57c4b9f6a2f800b41ce2836986fe33640f6c3f8a] -CVE: CVE-2016-7055 -Signed-off-by: Yi Zhao ---- - crypto/bn/asm/x86_64-mont.pl | 5 ++--- - 1 file changed, 2 insertions(+), 3 deletions(-) - -diff --git a/crypto/bn/asm/x86_64-mont.pl b/crypto/bn/asm/x86_64-mont.pl -index 044fd7e..80492d8 100755 ---- a/crypto/bn/asm/x86_64-mont.pl -+++ b/crypto/bn/asm/x86_64-mont.pl -@@ -1148,18 +1148,17 @@ $code.=<<___; - mulx 2*8($aptr),%r15,%r13 # ... - adox -3*8($tptr),%r11 - adcx %r15,%r12 -- adox $zero,%r12 -+ adox -2*8($tptr),%r12 - adcx $zero,%r13 -+ adox $zero,%r13 - - mov $bptr,8(%rsp) # off-load &b[i] -- .byte 0x67 - mov $mi,%r15 - imulq 24(%rsp),$mi # "t[0]"*n0 - xor %ebp,%ebp # xor $zero,$zero # cf=0, of=0 - - mulx 3*8($aptr),%rax,%r14 - mov $mi,%rdx -- adox -2*8($tptr),%r12 - adcx %rax,%r13 - adox -1*8($tptr),%r13 - adcx $zero,%r14 --- -2.7.4 - diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/Makefiles-ptest.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/Makefiles-ptest.patch deleted file mode 100755 index 249446a5b..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/Makefiles-ptest.patch +++ /dev/null @@ -1,77 +0,0 @@ -Add 'buildtest' and 'runtest' targets to Makefile, to build and run tests -cross-compiled. - -Signed-off-by: Anders Roxell -Signed-off-by: Maxin B. John -Upstream-Status: Pending ---- -Index: openssl-1.0.2/Makefile.org -=================================================================== ---- openssl-1.0.2.orig/Makefile.org -+++ openssl-1.0.2/Makefile.org -@@ -451,8 +451,16 @@ rehash.time: certs apps - test: tests - - tests: rehash -+ $(MAKE) buildtest -+ $(MAKE) runtest -+ -+buildtest: -+ @(cd test && \ -+ $(CLEARENV) && $(MAKE) -e $(BUILDENV) TOP=.. TESTS='$(TESTS)' OPENSSL_DEBUG_MEMORY=on OPENSSL_CONF=../apps/openssl.cnf exe apps); -+ -+runtest: - @(cd test && echo "testing..." && \ -- $(CLEARENV) && $(MAKE) -e $(BUILDENV) TOP=.. TESTS='$(TESTS)' OPENSSL_DEBUG_MEMORY=on OPENSSL_CONF=../apps/openssl.cnf tests ); -+ $(CLEARENV) && $(MAKE) -e $(BUILDENV) TOP=.. TESTS='$(TESTS)' OPENSSL_DEBUG_MEMORY=on OPENSSL_CONF=../apps/openssl.cnf alltests ); - OPENSSL_CONF=apps/openssl.cnf util/opensslwrap.sh version -a - - report: -Index: openssl-1.0.2/test/Makefile -=================================================================== ---- openssl-1.0.2.orig/test/Makefile -+++ openssl-1.0.2/test/Makefile -@@ -137,7 +137,7 @@ tests: exe apps $(TESTS) - apps: - @(cd ..; $(MAKE) DIRS=apps all) - --alltests: \ -+all-tests= \ - test_des test_idea test_sha test_md4 test_md5 test_hmac \ - test_md2 test_mdc2 test_wp \ - test_rmd test_rc2 test_rc4 test_rc5 test_bf test_cast test_aes \ -@@ -148,6 +148,11 @@ alltests: \ - test_jpake test_srp test_cms test_ocsp test_v3name test_heartbeat \ - test_constant_time - -+alltests: -+ @(for i in $(all-tests); do \ -+ ( $(MAKE) $$i && echo "PASS: $$i" ) || echo "FAIL: $$i"; \ -+ done) -+ - test_evp: $(EVPTEST)$(EXE_EXT) evptests.txt - ../util/shlib_wrap.sh ./$(EVPTEST) evptests.txt - -@@ -213,7 +218,7 @@ test_x509: ../apps/openssl$(EXE_EXT) tx5 - echo test second x509v3 certificate - sh ./tx509 v3-cert2.pem 2>/dev/null - --test_rsa: $(RSATEST)$(EXE_EXT) ../apps/openssl$(EXE_EXT) trsa testrsa.pem -+test_rsa: ../apps/openssl$(EXE_EXT) trsa testrsa.pem - @sh ./trsa 2>/dev/null - ../util/shlib_wrap.sh ./$(RSATEST) - -@@ -313,11 +318,11 @@ test_tsa: ../apps/openssl$(EXE_EXT) test - sh ./testtsa; \ - fi - --test_ige: $(IGETEST)$(EXE_EXT) -+test_ige: - @echo "Test IGE mode" - ../util/shlib_wrap.sh ./$(IGETEST) - --test_jpake: $(JPAKETEST)$(EXE_EXT) -+test_jpake: - @echo "Test JPAKE" - ../util/shlib_wrap.sh ./$(JPAKETEST) - diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/Use-SHA256-not-MD5-as-default-digest.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/Use-SHA256-not-MD5-as-default-digest.patch deleted file mode 100755 index 58c9ee784..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/Use-SHA256-not-MD5-as-default-digest.patch +++ /dev/null @@ -1,69 +0,0 @@ -From d795f5f20a29adecf92c09459a3ee07ffac01a99 Mon Sep 17 00:00:00 2001 -From: Rich Salz -Date: Sat, 13 Jun 2015 17:03:39 -0400 -Subject: [PATCH] Use SHA256 not MD5 as default digest. - -Commit f8547f62c212837dbf44fb7e2755e5774a59a57b upstream. - -Upstream-Status: Backport -Backport from OpenSSL 2.0 to OpenSSL 1.0.2 -Commit f8547f62c212837dbf44fb7e2755e5774a59a57b - -CVE: CVE-2004-2761 - - The MD5 Message-Digest Algorithm is not collision resistant, - which makes it easier for context-dependent attackers to - conduct spoofing attacks, as demonstrated by attacks on the - use of MD5 in the signature algorithm of an X.509 certificate. - -Reviewed-by: Viktor Dukhovni -Signed-off-by: Zhang Xiao -Signed-off-by: T.O. Radzy Radzykewycz ---- - apps/ca.c | 2 +- - apps/dgst.c | 2 +- - apps/enc.c | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/apps/ca.c b/apps/ca.c -index 3b7336c..8f3a84b 100644 ---- a/apps/ca.c -+++ b/apps/ca.c -@@ -1612,7 +1612,7 @@ static int certify_cert(X509 **xret, char *infile, EVP_PKEY *pkey, X509 *x509, - } else - BIO_printf(bio_err, "Signature ok\n"); - -- if ((rreq = X509_to_X509_REQ(req, NULL, EVP_md5())) == NULL) -+ if ((rreq = X509_to_X509_REQ(req, NULL, NULL)) == NULL) - goto err; - - ok = do_body(xret, pkey, x509, dgst, sigopts, policy, db, serial, subj, -diff --git a/apps/dgst.c b/apps/dgst.c -index 95e5fa3..0d1529f 100644 ---- a/apps/dgst.c -+++ b/apps/dgst.c -@@ -442,7 +442,7 @@ int MAIN(int argc, char **argv) - goto end; - } - if (md == NULL) -- md = EVP_md5(); -+ md = EVP_sha256(); - if (!EVP_DigestInit_ex(mctx, md, impl)) { - BIO_printf(bio_err, "Error setting digest %s\n", pname); - ERR_print_errors(bio_err); -diff --git a/apps/enc.c b/apps/enc.c -index 7b7c70b..a7d944c 100644 ---- a/apps/enc.c -+++ b/apps/enc.c -@@ -344,7 +344,7 @@ int MAIN(int argc, char **argv) - } - - if (dgst == NULL) { -- dgst = EVP_md5(); -+ dgst = EVP_sha256(); - } - - if (bufsize != NULL) { --- -1.9.1 - diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/afalg.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/afalg.patch index 7c4b084f3..b7c0e9697 100644 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/afalg.patch +++ b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/afalg.patch @@ -18,14 +18,14 @@ index 3baa8ce..9ef52ed 100755 - ($mi2) = $mi2 =~ /(\d+)/; - my $ver = $ma*10000 + $mi1*100 + $mi2; - if ($ver < $minver) { -- $disabled{afalgeng} = "too-old-kernel"; +- disable('too-old-kernel', 'afalgeng'); - } else { - push @{$config{engdirs}}, "afalg"; - } - } else { -- $disabled{afalgeng} = "cross-compiling"; +- disable('cross-compiling', 'afalgeng'); - } + push @{$config{engdirs}}, "afalg"; } else { - $disabled{afalgeng} = "not-linux"; + disable('not-linux', 'afalgeng'); } diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/configure-musl-target.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/configure-musl-target.patch deleted file mode 100755 index 613dc7b71..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/configure-musl-target.patch +++ /dev/null @@ -1,27 +0,0 @@ -Add musl triplet support - -Upstream-Status: Pending -Signed-off-by: Khem Raj - -Index: openssl-1.0.2a/Configure -=================================================================== ---- openssl-1.0.2a.orig/Configure -+++ openssl-1.0.2a/Configure -@@ -431,7 +431,7 @@ my %table=( - # - # ./Configure linux-armv4 -march=armv6 -D__ARM_MAX_ARCH__=8 - # --"linux-armv4", "gcc: -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-armv4", "gcc: -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", - "linux-aarch64","gcc: -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${aarch64_asm}:linux64:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", - # Configure script adds minimally required -march for assembly support, - # if no -march was specified at command line. mips32 and mips64 below -@@ -504,6 +504,8 @@ my %table=( - "linux-gnueabi-armeb","$ENV{'CC'}:-DB_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", - "linux-uclibceabi-arm","$ENV{'CC'}:-DL_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", - "linux-uclibceabi-armeb","$ENV{'CC'}:-DB_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-musleabi-arm","$ENV{'CC'}:-DL_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-musleabi-armeb","$ENV{'CC'}:-DB_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", - - "linux-avr32","$ENV{'CC'}:-O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).", - diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/configure-targets.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/configure-targets.patch deleted file mode 100755 index 691e74afb..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/configure-targets.patch +++ /dev/null @@ -1,37 +0,0 @@ -Upstream-Status: Inappropriate [embedded specific] - -The number of colons are important :) - - ---- - Configure | 16 ++++++++++++++++ - 1 file changed, 16 insertions(+) - -Index: openssl-1.0.2a/Configure -=================================================================== ---- openssl-1.0.2a.orig/Configure -+++ openssl-1.0.2a/Configure -@@ -443,6 +443,23 @@ my %table=( - "linux-alpha-ccc","ccc:-fast -readonly_strings -DL_ENDIAN::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}", - "linux-alpha+bwx-ccc","ccc:-fast -readonly_strings -DL_ENDIAN::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}", - -+ -+# Linux on ARM -+"linux-elf-arm","$ENV{'CC'}:-DL_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-elf-armeb","$ENV{'CC'}:-DB_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-gnueabi-arm","$ENV{'CC'}:-DL_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-gnueabi-armeb","$ENV{'CC'}:-DB_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-uclibceabi-arm","$ENV{'CC'}:-DL_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-uclibceabi-armeb","$ENV{'CC'}:-DB_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+ -+"linux-avr32","$ENV{'CC'}:-O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).", -+ -+#### Linux on MIPS/MIPS64 -+"linux-mips","$ENV{'CC'}:-DB_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-mips64","$ENV{'CC'}:-DB_ENDIAN -mabi=64 -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-mips64el","$ENV{'CC'}:-DL_ENDIAN -mabi=64 -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-mipsel","$ENV{'CC'}:-DL_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+ - # Android: linux-* but without pointers to headers and libs. - "android","gcc:-mandroid -I\$(ANDROID_DEV)/include -B\$(ANDROID_DEV)/lib -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", - "android-x86","gcc:-mandroid -I\$(ANDROID_DEV)/include -B\$(ANDROID_DEV)/lib -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:".eval{my $asm=${x86_elf_asm};$asm=~s/:elf/:android/;$asm}.":dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/c_rehash-compat.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/c_rehash-compat.patch deleted file mode 100755 index 68e54d561..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/c_rehash-compat.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 83f318d68bbdab1ca898c94576a838cc97df4700 Mon Sep 17 00:00:00 2001 -From: Ludwig Nussel -Date: Wed, 21 Apr 2010 15:52:10 +0200 -Subject: [PATCH] also create old hash for compatibility - -Upstream-Status: Backport [debian] - -diff --git a/tools/c_rehash.in b/tools/c_rehash.in -index b086ff9..b777d79 100644 ---- a/tools/c_rehash.in -+++ b/tools/c_rehash.in -@@ -8,8 +8,6 @@ my $prefix; - - my $openssl = $ENV{OPENSSL} || "openssl"; - my $pwd; --my $x509hash = "-subject_hash"; --my $crlhash = "-hash"; - my $verbose = 0; - my $symlink_exists=eval {symlink("",""); 1}; - my $removelinks = 1; -@@ -18,10 +16,7 @@ my $removelinks = 1; - while ( $ARGV[0] =~ /^-/ ) { - my $flag = shift @ARGV; - last if ( $flag eq '--'); -- if ( $flag eq '-old') { -- $x509hash = "-subject_hash_old"; -- $crlhash = "-hash_old"; -- } elsif ( $flag eq '-h') { -+ if ( $flag eq '-h') { - help(); - } elsif ( $flag eq '-n' ) { - $removelinks = 0; -@@ -113,7 +108,9 @@ sub hash_dir { - next; - } - link_hash_cert($fname) if($cert); -+ link_hash_cert_old($fname) if($cert); - link_hash_crl($fname) if($crl); -+ link_hash_crl_old($fname) if($crl); - } - } - -@@ -146,6 +143,7 @@ sub check_file { - - sub link_hash_cert { - my $fname = $_[0]; -+ my $x509hash = $_[1] || '-subject_hash'; - $fname =~ s/'/'\\''/g; - my ($hash, $fprint) = `"$openssl" x509 $x509hash -fingerprint -noout -in "$fname"`; - chomp $hash; -@@ -176,11 +174,21 @@ sub link_hash_cert { - $hashlist{$hash} = $fprint; - } - -+sub link_hash_cert_old { -+ link_hash_cert($_[0], '-subject_hash_old'); -+} -+ -+sub link_hash_crl_old { -+ link_hash_crl($_[0], '-hash_old'); -+} -+ -+ - # Same as above except for a CRL. CRL links are of the form .r - - sub link_hash_crl { - my $fname = $_[0]; -+ my $crlhash = $_[1] || "-hash"; - $fname =~ s/'/'\\''/g; - my ($hash, $fprint) = `"$openssl" crl $crlhash -fingerprint -noout -in '$fname'`; - chomp $hash; diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/ca.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/ca.patch deleted file mode 100755 index fb745e439..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/ca.patch +++ /dev/null @@ -1,22 +0,0 @@ -Upstream-Status: Backport [debian] - -Index: openssl-0.9.8m/apps/CA.pl.in -=================================================================== ---- openssl-0.9.8m.orig/apps/CA.pl.in 2006-04-28 00:28:51.000000000 +0000 -+++ openssl-0.9.8m/apps/CA.pl.in 2010-02-27 00:36:51.000000000 +0000 -@@ -65,6 +65,7 @@ - foreach (@ARGV) { - if ( /^(-\?|-h|-help)$/ ) { - print STDERR "usage: CA -newcert|-newreq|-newreq-nodes|-newca|-sign|-signcert|-verify\n"; -+ print STDERR "usage: CA -signcert certfile keyfile|-newcert|-newreq|-newca|-sign|-verify\n"; - exit 0; - } elsif (/^-newcert$/) { - # create a certificate -@@ -165,6 +166,7 @@ - } else { - print STDERR "Unknown arg $_\n"; - print STDERR "usage: CA -newcert|-newreq|-newreq-nodes|-newca|-sign|-verify\n"; -+ print STDERR "usage: CA -signcert certfile keyfile|-newcert|-newreq|-newca|-sign|-verify\n"; - exit 1; - } - } diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/debian-targets.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/debian-targets.patch deleted file mode 100755 index 39d432818..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/debian-targets.patch +++ /dev/null @@ -1,73 +0,0 @@ -Upstream-Status: Backport [debian] - -Index: openssl-1.0.2/Configure -=================================================================== ---- openssl-1.0.2.orig/Configure -+++ openssl-1.0.2/Configure -@@ -107,6 +107,10 @@ my $gcc_devteam_warn = "-Wall -pedantic - - my $clang_disabled_warnings = "-Wno-language-extension-token -Wno-extended-offsetof -Wno-padded -Wno-shorten-64-to-32 -Wno-format-nonliteral -Wno-missing-noreturn -Wno-unused-parameter -Wno-sign-conversion -Wno-unreachable-code -Wno-conversion -Wno-documentation -Wno-missing-variable-declarations -Wno-cast-align -Wno-incompatible-pointer-types-discards-qualifiers -Wno-missing-variable-declarations -Wno-missing-field-initializers -Wno-unused-macros -Wno-disabled-macro-expansion -Wno-conditional-uninitialized -Wno-switch-enum"; - -+# There are no separate CFLAGS/CPPFLAGS/LDFLAGS, set everything in CFLAGS -+my $debian_cflags = `dpkg-buildflags --get CFLAGS` . `dpkg-buildflags --get CPPFLAGS` . `dpkg-buildflags --get LDFLAGS` . "-Wa,--noexecstack -Wall"; -+$debian_cflags =~ s/\n/ /g; -+ - my $strict_warnings = 0; - - my $x86_gcc_des="DES_PTR DES_RISC1 DES_UNROLL"; -@@ -343,6 +347,55 @@ my %table=( - "osf1-alpha-cc", "cc:-std1 -tune host -O4 -readonly_strings::(unknown):::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${alpha_asm}:dlfcn:alpha-osf1-shared:::.so", - "tru64-alpha-cc", "cc:-std1 -tune host -fast -readonly_strings::-pthread:::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${alpha_asm}:dlfcn:alpha-osf1-shared::-msym:.so", - -+# Debian GNU/* (various architectures) -+"debian-alpha","gcc:-DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-alpha-ev4","gcc:-DTERMIO ${debian_cflags} -mcpu=ev4::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-alpha-ev5","gcc:-DTERMIO ${debian_cflags} -mcpu=ev5::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-arm64","gcc:-DL_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-armel","gcc:-DL_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-armhf","gcc:-DL_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-amd64", "gcc:-m64 -DL_ENDIAN -DTERMIO ${debian_cflags} -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::", -+"debian-avr32", "gcc:-DB_ENDIAN -DTERMIO ${debian_cflags} -fomit-frame-pointer::-D_REENTRANT::-ldl:BN_LLONG_BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-kfreebsd-amd64","gcc:-m64 -DL_ENDIAN -DTERMIOS ${debian_cflags} -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-kfreebsd-i386","gcc:-DL_ENDIAN -DTERMIOS ${debian_cflags} -march=i486::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-hppa","gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG MD2_CHAR RC4_INDEX:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-hurd-i386","gcc:-DL_ENDIAN -DTERMIOS -O3 -Wa,--noexecstack -g -mtune=i486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-ia64","gcc:-DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-i386","gcc:-DL_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-i386-i486","gcc:-DL_ENDIAN -DTERMIO ${debian_cflags} -march=i486::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-i386-i586","gcc:-DL_ENDIAN -DTERMIO ${debian_cflags} -march=i586::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-i386-i686/cmov","gcc:-DL_ENDIAN -DTERMIO ${debian_cflags} -march=i686::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-m68k","gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG MD2_CHAR RC4_INDEX:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-mips", "gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-mipsel", "gcc:-DL_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-mipsn32", "mips64-linux-gnuabin32-gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-mipsn32el", "mips64el-linux-gnuabin32-gcc:-DL_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-mips64", "mips64-linux-gnuabi64-gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-mips64el", "mips64el-linux-gnuabi64-gcc:-DL_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-netbsd-i386", "gcc:-DL_ENDIAN -DTERMIOS ${debian_cflags} -m486::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-netbsd-m68k", "gcc:-DB_ENDIAN -DTERMIOS ${debian_cflags}::(unknown):::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-netbsd-sparc", "gcc:-DB_ENDIAN -DTERMIOS ${debian_cflags} -mv8::(unknown):::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-openbsd-alpha","gcc:-DTERMIOS ${debian_cflags}::(unknown):::SIXTY_FOUR_BIT_LONG DES_INT DES_PTR DES_RISC2:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-openbsd-i386", "gcc:-DL_ENDIAN -DTERMIOS ${debian_cflags} -m486::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_asm}:a.out:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-openbsd-mips","gcc:-DL_ENDIAN ${debian_cflags}::(unknown)::BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC2 DES_PTR BF_PTR:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-or1k", "gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-powerpc","gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc32_asm}:linux32:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-powerpcspe","gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc32_asm}:linux32:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-ppc64","gcc:-m64 -DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc64_asm}:linux64:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-ppc64el","gcc:-m64 -DL_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc64_asm}:linux64le:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-s390","gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-s390x","gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-sh3", "gcc:-DL_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-sh4", "gcc:-DL_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-sh3eb", "gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-sh4eb", "gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-m32r","gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-sparc","gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-sparc-v8","gcc:-DB_ENDIAN -DTERMIO ${debian_cflags} -mcpu=v8 -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-sparc-v9","gcc:-DB_ENDIAN -DTERMIO ${debian_cflags} -mcpu=v9 -Wa,-Av8plus -DULTRASPARC -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-sparc64","gcc:-m64 -DB_ENDIAN -DTERMIO ${debian_cflags} -DULTRASPARC -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-x32","gcc:-mx32 -DL_ENDIAN -DTERMIO ${debian_cflags} -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-mx32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::x32", -+ - #### - #### Variety of LINUX:-) - #### diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/man-dir.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/man-dir.patch deleted file mode 100755 index 4085e3b1d..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/man-dir.patch +++ /dev/null @@ -1,15 +0,0 @@ -Upstream-Status: Backport [debian] - -Index: openssl-1.0.0c/Makefile.org -=================================================================== ---- openssl-1.0.0c.orig/Makefile.org 2010-12-12 16:11:27.000000000 +0100 -+++ openssl-1.0.0c/Makefile.org 2010-12-12 16:11:37.000000000 +0100 -@@ -131,7 +131,7 @@ - - MAKEFILE= Makefile - --MANDIR=$(OPENSSLDIR)/man -+MANDIR=/usr/share/man - MAN1=1 - MAN3=3 - MANSUFFIX= diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/man-section.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/man-section.patch deleted file mode 100755 index 21c1d1a4e..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/man-section.patch +++ /dev/null @@ -1,34 +0,0 @@ -Upstream-Status: Backport [debian] - -Index: openssl-1.0.0c/Makefile.org -=================================================================== ---- openssl-1.0.0c.orig/Makefile.org 2010-12-12 16:11:37.000000000 +0100 -+++ openssl-1.0.0c/Makefile.org 2010-12-12 16:13:28.000000000 +0100 -@@ -160,7 +160,8 @@ - MANDIR=/usr/share/man - MAN1=1 - MAN3=3 --MANSUFFIX= -+MANSUFFIX=ssl -+MANSECTION=SSL - HTMLSUFFIX=html - HTMLDIR=$(OPENSSLDIR)/html - SHELL=/bin/sh -@@ -651,7 +652,7 @@ - echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \ - (cd `$(PERL) util/dirname.pl $$i`; \ - sh -c "$$pod2man \ -- --section=$$sec --center=OpenSSL \ -+ --section=$${sec}$(MANSECTION) --center=OpenSSL \ - --release=$(VERSION) `basename $$i`") \ - > $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \ - $(PERL) util/extract-names.pl < $$i | \ -@@ -668,7 +669,7 @@ - echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \ - (cd `$(PERL) util/dirname.pl $$i`; \ - sh -c "$$pod2man \ -- --section=$$sec --center=OpenSSL \ -+ --section=$${sec}$(MANSECTION) --center=OpenSSL \ - --release=$(VERSION) `basename $$i`") \ - > $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \ - $(PERL) util/extract-names.pl < $$i | \ diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/no-rpath.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/no-rpath.patch deleted file mode 100755 index 1ccb3b86e..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/no-rpath.patch +++ /dev/null @@ -1,15 +0,0 @@ -Upstream-Status: Backport [debian] - -Index: openssl-1.0.0c/Makefile.shared -=================================================================== ---- openssl-1.0.0c.orig/Makefile.shared 2010-08-21 13:36:49.000000000 +0200 -+++ openssl-1.0.0c/Makefile.shared 2010-12-12 16:13:36.000000000 +0100 -@@ -153,7 +153,7 @@ - NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \ - SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-soname=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX" - --DO_GNU_APP=LDFLAGS="$(CFLAGS) -Wl,-rpath,$(LIBRPATH)" -+DO_GNU_APP=LDFLAGS="$(CFLAGS)" - - #This is rather special. It's a special target with which one can link - #applications without bothering with any features that have anything to diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/no-symbolic.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/no-symbolic.patch deleted file mode 100755 index cc4408ab7..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/no-symbolic.patch +++ /dev/null @@ -1,15 +0,0 @@ -Upstream-Status: Backport [debian] - -Index: openssl-1.0.0c/Makefile.shared -=================================================================== ---- openssl-1.0.0c.orig/Makefile.shared 2010-12-12 16:13:36.000000000 +0100 -+++ openssl-1.0.0c/Makefile.shared 2010-12-12 16:13:44.000000000 +0100 -@@ -151,7 +151,7 @@ - SHLIB_SUFFIX=; \ - ALLSYMSFLAGS='-Wl,--whole-archive'; \ - NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \ -- SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-soname=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX" -+ SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-soname=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX" - - DO_GNU_APP=LDFLAGS="$(CFLAGS)" - diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/pic.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/pic.patch deleted file mode 100755 index bfda3888b..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/pic.patch +++ /dev/null @@ -1,177 +0,0 @@ -Upstream-Status: Backport [debian] - -Index: openssl-1.0.1c/crypto/des/asm/desboth.pl -=================================================================== ---- openssl-1.0.1c.orig/crypto/des/asm/desboth.pl 2001-10-24 23:20:56.000000000 +0200 -+++ openssl-1.0.1c/crypto/des/asm/desboth.pl 2012-07-29 14:15:26.000000000 +0200 -@@ -16,6 +16,11 @@ - - &push("edi"); - -+ &call (&label("pic_point0")); -+ &set_label("pic_point0"); -+ &blindpop("ebp"); -+ &add ("ebp", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point0") . "]"); -+ - &comment(""); - &comment("Load the data words"); - &mov($L,&DWP(0,"ebx","",0)); -@@ -47,15 +52,21 @@ - &mov(&swtmp(2), (DWC(($enc)?"1":"0"))); - &mov(&swtmp(1), "eax"); - &mov(&swtmp(0), "ebx"); -- &call("DES_encrypt2"); -+ &exch("ebx", "ebp"); -+ &call("DES_encrypt2\@PLT"); -+ &exch("ebx", "ebp"); - &mov(&swtmp(2), (DWC(($enc)?"0":"1"))); - &mov(&swtmp(1), "edi"); - &mov(&swtmp(0), "ebx"); -- &call("DES_encrypt2"); -+ &exch("ebx", "ebp"); -+ &call("DES_encrypt2\@PLT"); -+ &exch("ebx", "ebp"); - &mov(&swtmp(2), (DWC(($enc)?"1":"0"))); - &mov(&swtmp(1), "esi"); - &mov(&swtmp(0), "ebx"); -- &call("DES_encrypt2"); -+ &exch("ebx", "ebp"); -+ &call("DES_encrypt2\@PLT"); -+ &exch("ebx", "ebp"); - - &stack_pop(3); - &mov($L,&DWP(0,"ebx","",0)); -Index: openssl-1.0.1c/crypto/perlasm/cbc.pl -=================================================================== ---- openssl-1.0.1c.orig/crypto/perlasm/cbc.pl 2011-07-13 08:22:46.000000000 +0200 -+++ openssl-1.0.1c/crypto/perlasm/cbc.pl 2012-07-29 14:15:26.000000000 +0200 -@@ -122,7 +122,11 @@ - &mov(&DWP($data_off,"esp","",0), "eax"); # put in array for call - &mov(&DWP($data_off+4,"esp","",0), "ebx"); # - -- &call($enc_func); -+ &call (&label("pic_point0")); -+ &set_label("pic_point0"); -+ &blindpop("ebx"); -+ &add ("ebx", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point0") . "]"); -+ &call("$enc_func\@PLT"); - - &mov("eax", &DWP($data_off,"esp","",0)); - &mov("ebx", &DWP($data_off+4,"esp","",0)); -@@ -185,7 +189,11 @@ - &mov(&DWP($data_off,"esp","",0), "eax"); # put in array for call - &mov(&DWP($data_off+4,"esp","",0), "ebx"); # - -- &call($enc_func); -+ &call (&label("pic_point1")); -+ &set_label("pic_point1"); -+ &blindpop("ebx"); -+ &add ("ebx", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point1") . "]"); -+ &call("$enc_func\@PLT"); - - &mov("eax", &DWP($data_off,"esp","",0)); - &mov("ebx", &DWP($data_off+4,"esp","",0)); -@@ -218,7 +226,11 @@ - &mov(&DWP($data_off,"esp","",0), "eax"); # put back - &mov(&DWP($data_off+4,"esp","",0), "ebx"); # - -- &call($dec_func); -+ &call (&label("pic_point2")); -+ &set_label("pic_point2"); -+ &blindpop("ebx"); -+ &add ("ebx", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point2") . "]"); -+ &call("$dec_func\@PLT"); - - &mov("eax", &DWP($data_off,"esp","",0)); # get return - &mov("ebx", &DWP($data_off+4,"esp","",0)); # -@@ -261,7 +273,11 @@ - &mov(&DWP($data_off,"esp","",0), "eax"); # put back - &mov(&DWP($data_off+4,"esp","",0), "ebx"); # - -- &call($dec_func); -+ &call (&label("pic_point3")); -+ &set_label("pic_point3"); -+ &blindpop("ebx"); -+ &add ("ebx", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point3") . "]"); -+ &call("$dec_func\@PLT"); - - &mov("eax", &DWP($data_off,"esp","",0)); # get return - &mov("ebx", &DWP($data_off+4,"esp","",0)); # -Index: openssl-1.0.1c/crypto/perlasm/x86gas.pl -=================================================================== ---- openssl-1.0.1c.orig/crypto/perlasm/x86gas.pl 2011-12-09 20:16:35.000000000 +0100 -+++ openssl-1.0.1c/crypto/perlasm/x86gas.pl 2012-07-29 14:15:26.000000000 +0200 -@@ -161,6 +161,7 @@ - if ($::macosx) { push (@out,"$tmp,2\n"); } - elsif ($::elf) { push (@out,"$tmp,4\n"); } - else { push (@out,"$tmp\n"); } -+ if ($::elf) { push (@out,".hidden\tOPENSSL_ia32cap_P\n"); } - } - push(@out,$initseg) if ($initseg); - } -@@ -218,8 +219,23 @@ - elsif ($::elf) - { $initseg.=<<___; - .section .init -+___ -+ if ($::pic) -+ { $initseg.=<<___; -+ pushl %ebx -+ call .pic_point0 -+.pic_point0: -+ popl %ebx -+ addl \$_GLOBAL_OFFSET_TABLE_+[.-.pic_point0],%ebx -+ call $f\@PLT -+ popl %ebx -+___ -+ } -+ else -+ { $initseg.=<<___; - call $f - ___ -+ } - } - elsif ($::coff) - { $initseg.=<<___; # applies to both Cygwin and Mingw -Index: openssl-1.0.1c/crypto/x86cpuid.pl -=================================================================== ---- openssl-1.0.1c.orig/crypto/x86cpuid.pl 2012-02-28 15:20:34.000000000 +0100 -+++ openssl-1.0.1c/crypto/x86cpuid.pl 2012-07-29 14:15:26.000000000 +0200 -@@ -8,6 +8,8 @@ - - for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); } - -+push(@out, ".hidden OPENSSL_ia32cap_P\n"); -+ - &function_begin("OPENSSL_ia32_cpuid"); - &xor ("edx","edx"); - &pushf (); -@@ -139,9 +141,7 @@ - &set_label("nocpuid"); - &function_end("OPENSSL_ia32_cpuid"); - --&external_label("OPENSSL_ia32cap_P"); -- --&function_begin_B("OPENSSL_rdtsc","EXTRN\t_OPENSSL_ia32cap_P:DWORD"); -+&function_begin_B("OPENSSL_rdtsc"); - &xor ("eax","eax"); - &xor ("edx","edx"); - &picmeup("ecx","OPENSSL_ia32cap_P"); -@@ -155,7 +155,7 @@ - # This works in Ring 0 only [read DJGPP+MS-DOS+privileged DPMI host], - # but it's safe to call it on any [supported] 32-bit platform... - # Just check for [non-]zero return value... --&function_begin_B("OPENSSL_instrument_halt","EXTRN\t_OPENSSL_ia32cap_P:DWORD"); -+&function_begin_B("OPENSSL_instrument_halt"); - &picmeup("ecx","OPENSSL_ia32cap_P"); - &bt (&DWP(0,"ecx"),4); - &jnc (&label("nohalt")); # no TSC -@@ -222,7 +222,7 @@ - &ret (); - &function_end_B("OPENSSL_far_spin"); - --&function_begin_B("OPENSSL_wipe_cpu","EXTRN\t_OPENSSL_ia32cap_P:DWORD"); -+&function_begin_B("OPENSSL_wipe_cpu"); - &xor ("eax","eax"); - &xor ("edx","edx"); - &picmeup("ecx","OPENSSL_ia32cap_P"); diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/version-script.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/version-script.patch deleted file mode 100755 index a24918000..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian/version-script.patch +++ /dev/null @@ -1,4663 +0,0 @@ -Index: openssl-1.0.2~beta1.obsolete.0.0498436515490575/Configure -=================================================================== ---- openssl-1.0.2~beta1.obsolete.0.0498436515490575.orig/Configure 2014-02-24 21:02:30.000000000 +0100 -+++ openssl-1.0.2~beta1.obsolete.0.0498436515490575/Configure 2014-02-24 21:02:30.000000000 +0100 -@@ -1651,6 +1651,8 @@ - } - } - -+$shared_ldflag .= " -Wl,--version-script=openssl.ld"; -+ - open(IN,'$Makefile.new") || die "unable to create $Makefile.new:$!\n"; -Index: openssl-1.0.2~beta1.obsolete.0.0498436515490575/openssl.ld -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ openssl-1.0.2~beta1.obsolete.0.0498436515490575/openssl.ld 2014-02-24 22:19:08.601827266 +0100 -@@ -0,0 +1,4615 @@ -+OPENSSL_1.0.0 { -+ global: -+ BIO_f_ssl; -+ BIO_new_buffer_ssl_connect; -+ BIO_new_ssl; -+ BIO_new_ssl_connect; -+ BIO_proxy_ssl_copy_session_id; -+ BIO_ssl_copy_session_id; -+ BIO_ssl_shutdown; -+ d2i_SSL_SESSION; -+ DTLSv1_client_method; -+ DTLSv1_method; -+ DTLSv1_server_method; -+ ERR_load_SSL_strings; -+ i2d_SSL_SESSION; -+ kssl_build_principal_2; -+ kssl_cget_tkt; -+ kssl_check_authent; -+ kssl_ctx_free; -+ kssl_ctx_new; -+ kssl_ctx_setkey; -+ kssl_ctx_setprinc; -+ kssl_ctx_setstring; -+ kssl_ctx_show; -+ kssl_err_set; -+ kssl_krb5_free_data_contents; -+ kssl_sget_tkt; -+ kssl_skip_confound; -+ kssl_validate_times; -+ PEM_read_bio_SSL_SESSION; -+ PEM_read_SSL_SESSION; -+ PEM_write_bio_SSL_SESSION; -+ PEM_write_SSL_SESSION; -+ SSL_accept; -+ SSL_add_client_CA; -+ SSL_add_dir_cert_subjects_to_stack; -+ SSL_add_dir_cert_subjs_to_stk; -+ SSL_add_file_cert_subjects_to_stack; -+ SSL_add_file_cert_subjs_to_stk; -+ SSL_alert_desc_string; -+ SSL_alert_desc_string_long; -+ SSL_alert_type_string; -+ SSL_alert_type_string_long; -+ SSL_callback_ctrl; -+ SSL_check_private_key; -+ SSL_CIPHER_description; -+ SSL_CIPHER_get_bits; -+ SSL_CIPHER_get_name; -+ SSL_CIPHER_get_version; -+ SSL_clear; -+ SSL_COMP_add_compression_method; -+ SSL_COMP_get_compression_methods; -+ SSL_COMP_get_compress_methods; -+ SSL_COMP_get_name; -+ SSL_connect; -+ SSL_copy_session_id; -+ SSL_ctrl; -+ SSL_CTX_add_client_CA; -+ SSL_CTX_add_session; -+ SSL_CTX_callback_ctrl; -+ SSL_CTX_check_private_key; -+ SSL_CTX_ctrl; -+ SSL_CTX_flush_sessions; -+ SSL_CTX_free; -+ SSL_CTX_get_cert_store; -+ SSL_CTX_get_client_CA_list; -+ SSL_CTX_get_client_cert_cb; -+ SSL_CTX_get_ex_data; -+ SSL_CTX_get_ex_new_index; -+ SSL_CTX_get_info_callback; -+ SSL_CTX_get_quiet_shutdown; -+ SSL_CTX_get_timeout; -+ SSL_CTX_get_verify_callback; -+ SSL_CTX_get_verify_depth; -+ SSL_CTX_get_verify_mode; -+ SSL_CTX_load_verify_locations; -+ SSL_CTX_new; -+ SSL_CTX_remove_session; -+ SSL_CTX_sess_get_get_cb; -+ SSL_CTX_sess_get_new_cb; -+ SSL_CTX_sess_get_remove_cb; -+ SSL_CTX_sessions; -+ SSL_CTX_sess_set_get_cb; -+ SSL_CTX_sess_set_new_cb; -+ SSL_CTX_sess_set_remove_cb; -+ SSL_CTX_set1_param; -+ SSL_CTX_set_cert_store; -+ SSL_CTX_set_cert_verify_callback; -+ SSL_CTX_set_cert_verify_cb; -+ SSL_CTX_set_cipher_list; -+ SSL_CTX_set_client_CA_list; -+ SSL_CTX_set_client_cert_cb; -+ SSL_CTX_set_client_cert_engine; -+ SSL_CTX_set_cookie_generate_cb; -+ SSL_CTX_set_cookie_verify_cb; -+ SSL_CTX_set_default_passwd_cb; -+ SSL_CTX_set_default_passwd_cb_userdata; -+ SSL_CTX_set_default_verify_paths; -+ SSL_CTX_set_def_passwd_cb_ud; -+ SSL_CTX_set_def_verify_paths; -+ SSL_CTX_set_ex_data; -+ SSL_CTX_set_generate_session_id; -+ SSL_CTX_set_info_callback; -+ SSL_CTX_set_msg_callback; -+ SSL_CTX_set_psk_client_callback; -+ SSL_CTX_set_psk_server_callback; -+ SSL_CTX_set_purpose; -+ SSL_CTX_set_quiet_shutdown; -+ SSL_CTX_set_session_id_context; -+ SSL_CTX_set_ssl_version; -+ SSL_CTX_set_timeout; -+ SSL_CTX_set_tmp_dh_callback; -+ SSL_CTX_set_tmp_ecdh_callback; -+ SSL_CTX_set_tmp_rsa_callback; -+ SSL_CTX_set_trust; -+ SSL_CTX_set_verify; -+ SSL_CTX_set_verify_depth; -+ SSL_CTX_use_cert_chain_file; -+ SSL_CTX_use_certificate; -+ SSL_CTX_use_certificate_ASN1; -+ SSL_CTX_use_certificate_chain_file; -+ SSL_CTX_use_certificate_file; -+ SSL_CTX_use_PrivateKey; -+ SSL_CTX_use_PrivateKey_ASN1; -+ SSL_CTX_use_PrivateKey_file; -+ SSL_CTX_use_psk_identity_hint; -+ SSL_CTX_use_RSAPrivateKey; -+ SSL_CTX_use_RSAPrivateKey_ASN1; -+ SSL_CTX_use_RSAPrivateKey_file; -+ SSL_do_handshake; -+ SSL_dup; -+ SSL_dup_CA_list; -+ SSLeay_add_ssl_algorithms; -+ SSL_free; -+ SSL_get1_session; -+ SSL_get_certificate; -+ SSL_get_cipher_list; -+ SSL_get_ciphers; -+ SSL_get_client_CA_list; -+ SSL_get_current_cipher; -+ SSL_get_current_compression; -+ SSL_get_current_expansion; -+ SSL_get_default_timeout; -+ SSL_get_error; -+ SSL_get_ex_data; -+ SSL_get_ex_data_X509_STORE_CTX_idx; -+ SSL_get_ex_d_X509_STORE_CTX_idx; -+ SSL_get_ex_new_index; -+ SSL_get_fd; -+ SSL_get_finished; -+ SSL_get_info_callback; -+ SSL_get_peer_cert_chain; -+ SSL_get_peer_certificate; -+ SSL_get_peer_finished; -+ SSL_get_privatekey; -+ SSL_get_psk_identity; -+ SSL_get_psk_identity_hint; -+ SSL_get_quiet_shutdown; -+ SSL_get_rbio; -+ SSL_get_read_ahead; -+ SSL_get_rfd; -+ SSL_get_servername; -+ SSL_get_servername_type; -+ SSL_get_session; -+ SSL_get_shared_ciphers; -+ SSL_get_shutdown; -+ SSL_get_SSL_CTX; -+ SSL_get_ssl_method; -+ SSL_get_verify_callback; -+ SSL_get_verify_depth; -+ SSL_get_verify_mode; -+ SSL_get_verify_result; -+ SSL_get_version; -+ SSL_get_wbio; -+ SSL_get_wfd; -+ SSL_has_matching_session_id; -+ SSL_library_init; -+ SSL_load_client_CA_file; -+ SSL_load_error_strings; -+ SSL_new; -+ SSL_peek; -+ SSL_pending; -+ SSL_read; -+ SSL_renegotiate; -+ SSL_renegotiate_pending; -+ SSL_rstate_string; -+ SSL_rstate_string_long; -+ SSL_SESSION_cmp; -+ SSL_SESSION_free; -+ SSL_SESSION_get_ex_data; -+ SSL_SESSION_get_ex_new_index; -+ SSL_SESSION_get_id; -+ SSL_SESSION_get_time; -+ SSL_SESSION_get_timeout; -+ SSL_SESSION_hash; -+ SSL_SESSION_new; -+ SSL_SESSION_print; -+ SSL_SESSION_print_fp; -+ SSL_SESSION_set_ex_data; -+ SSL_SESSION_set_time; -+ SSL_SESSION_set_timeout; -+ SSL_set1_param; -+ SSL_set_accept_state; -+ SSL_set_bio; -+ SSL_set_cipher_list; -+ SSL_set_client_CA_list; -+ SSL_set_connect_state; -+ SSL_set_ex_data; -+ SSL_set_fd; -+ SSL_set_generate_session_id; -+ SSL_set_info_callback; -+ SSL_set_msg_callback; -+ SSL_set_psk_client_callback; -+ SSL_set_psk_server_callback; -+ SSL_set_purpose; -+ SSL_set_quiet_shutdown; -+ SSL_set_read_ahead; -+ SSL_set_rfd; -+ SSL_set_session; -+ SSL_set_session_id_context; -+ SSL_set_session_secret_cb; -+ SSL_set_session_ticket_ext; -+ SSL_set_session_ticket_ext_cb; -+ SSL_set_shutdown; -+ SSL_set_SSL_CTX; -+ SSL_set_ssl_method; -+ SSL_set_tmp_dh_callback; -+ SSL_set_tmp_ecdh_callback; -+ SSL_set_tmp_rsa_callback; -+ SSL_set_trust; -+ SSL_set_verify; -+ SSL_set_verify_depth; -+ SSL_set_verify_result; -+ SSL_set_wfd; -+ SSL_shutdown; -+ SSL_state; -+ SSL_state_string; -+ SSL_state_string_long; -+ SSL_use_certificate; -+ SSL_use_certificate_ASN1; -+ SSL_use_certificate_file; -+ SSL_use_PrivateKey; -+ SSL_use_PrivateKey_ASN1; -+ SSL_use_PrivateKey_file; -+ SSL_use_psk_identity_hint; -+ SSL_use_RSAPrivateKey; -+ SSL_use_RSAPrivateKey_ASN1; -+ SSL_use_RSAPrivateKey_file; -+ SSLv23_client_method; -+ SSLv23_method; -+ SSLv23_server_method; -+ SSLv2_client_method; -+ SSLv2_method; -+ SSLv2_server_method; -+ SSLv3_client_method; -+ SSLv3_method; -+ SSLv3_server_method; -+ SSL_version; -+ SSL_want; -+ SSL_write; -+ TLSv1_client_method; -+ TLSv1_method; -+ TLSv1_server_method; -+ -+ -+ SSLeay; -+ SSLeay_version; -+ ASN1_BIT_STRING_asn1_meth; -+ ASN1_HEADER_free; -+ ASN1_HEADER_new; -+ ASN1_IA5STRING_asn1_meth; -+ ASN1_INTEGER_get; -+ ASN1_INTEGER_set; -+ ASN1_INTEGER_to_BN; -+ ASN1_OBJECT_create; -+ ASN1_OBJECT_free; -+ ASN1_OBJECT_new; -+ ASN1_PRINTABLE_type; -+ ASN1_STRING_cmp; -+ ASN1_STRING_dup; -+ ASN1_STRING_free; -+ ASN1_STRING_new; -+ ASN1_STRING_print; -+ ASN1_STRING_set; -+ ASN1_STRING_type_new; -+ ASN1_TYPE_free; -+ ASN1_TYPE_new; -+ ASN1_UNIVERSALSTRING_to_string; -+ ASN1_UTCTIME_check; -+ ASN1_UTCTIME_print; -+ ASN1_UTCTIME_set; -+ ASN1_check_infinite_end; -+ ASN1_d2i_bio; -+ ASN1_d2i_fp; -+ ASN1_digest; -+ ASN1_dup; -+ ASN1_get_object; -+ ASN1_i2d_bio; -+ ASN1_i2d_fp; -+ ASN1_object_size; -+ ASN1_parse; -+ ASN1_put_object; -+ ASN1_sign; -+ ASN1_verify; -+ BF_cbc_encrypt; -+ BF_cfb64_encrypt; -+ BF_ecb_encrypt; -+ BF_encrypt; -+ BF_ofb64_encrypt; -+ BF_options; -+ BF_set_key; -+ BIO_CONNECT_free; -+ BIO_CONNECT_new; -+ BIO_accept; -+ BIO_ctrl; -+ BIO_int_ctrl; -+ BIO_debug_callback; -+ BIO_dump; -+ BIO_dup_chain; -+ BIO_f_base64; -+ BIO_f_buffer; -+ BIO_f_cipher; -+ BIO_f_md; -+ BIO_f_null; -+ BIO_f_proxy_server; -+ BIO_fd_non_fatal_error; -+ BIO_fd_should_retry; -+ BIO_find_type; -+ BIO_free; -+ BIO_free_all; -+ BIO_get_accept_socket; -+ BIO_get_filter_bio; -+ BIO_get_host_ip; -+ BIO_get_port; -+ BIO_get_retry_BIO; -+ BIO_get_retry_reason; -+ BIO_gethostbyname; -+ BIO_gets; -+ BIO_new; -+ BIO_new_accept; -+ BIO_new_connect; -+ BIO_new_fd; -+ BIO_new_file; -+ BIO_new_fp; -+ BIO_new_socket; -+ BIO_pop; -+ BIO_printf; -+ BIO_push; -+ BIO_puts; -+ BIO_read; -+ BIO_s_accept; -+ BIO_s_connect; -+ BIO_s_fd; -+ BIO_s_file; -+ BIO_s_mem; -+ BIO_s_null; -+ BIO_s_proxy_client; -+ BIO_s_socket; -+ BIO_set; -+ BIO_set_cipher; -+ BIO_set_tcp_ndelay; -+ BIO_sock_cleanup; -+ BIO_sock_error; -+ BIO_sock_init; -+ BIO_sock_non_fatal_error; -+ BIO_sock_should_retry; -+ BIO_socket_ioctl; -+ BIO_write; -+ BN_CTX_free; -+ BN_CTX_new; -+ BN_MONT_CTX_free; -+ BN_MONT_CTX_new; -+ BN_MONT_CTX_set; -+ BN_add; -+ BN_add_word; -+ BN_hex2bn; -+ BN_bin2bn; -+ BN_bn2hex; -+ BN_bn2bin; -+ BN_clear; -+ BN_clear_bit; -+ BN_clear_free; -+ BN_cmp; -+ BN_copy; -+ BN_div; -+ BN_div_word; -+ BN_dup; -+ BN_free; -+ BN_from_montgomery; -+ BN_gcd; -+ BN_generate_prime; -+ BN_get_word; -+ BN_is_bit_set; -+ BN_is_prime; -+ BN_lshift; -+ BN_lshift1; -+ BN_mask_bits; -+ BN_mod; -+ BN_mod_exp; -+ BN_mod_exp_mont; -+ BN_mod_exp_simple; -+ BN_mod_inverse; -+ BN_mod_mul; -+ BN_mod_mul_montgomery; -+ BN_mod_word; -+ BN_mul; -+ BN_new; -+ BN_num_bits; -+ BN_num_bits_word; -+ BN_options; -+ BN_print; -+ BN_print_fp; -+ BN_rand; -+ BN_reciprocal; -+ BN_rshift; -+ BN_rshift1; -+ BN_set_bit; -+ BN_set_word; -+ BN_sqr; -+ BN_sub; -+ BN_to_ASN1_INTEGER; -+ BN_ucmp; -+ BN_value_one; -+ BUF_MEM_free; -+ BUF_MEM_grow; -+ BUF_MEM_new; -+ BUF_strdup; -+ CONF_free; -+ CONF_get_number; -+ CONF_get_section; -+ CONF_get_string; -+ CONF_load; -+ CRYPTO_add_lock; -+ CRYPTO_dbg_free; -+ CRYPTO_dbg_malloc; -+ CRYPTO_dbg_realloc; -+ CRYPTO_dbg_remalloc; -+ CRYPTO_free; -+ CRYPTO_get_add_lock_callback; -+ CRYPTO_get_id_callback; -+ CRYPTO_get_lock_name; -+ CRYPTO_get_locking_callback; -+ CRYPTO_get_mem_functions; -+ CRYPTO_lock; -+ CRYPTO_malloc; -+ CRYPTO_mem_ctrl; -+ CRYPTO_mem_leaks; -+ CRYPTO_mem_leaks_cb; -+ CRYPTO_mem_leaks_fp; -+ CRYPTO_realloc; -+ CRYPTO_remalloc; -+ CRYPTO_set_add_lock_callback; -+ CRYPTO_set_id_callback; -+ CRYPTO_set_locking_callback; -+ CRYPTO_set_mem_functions; -+ CRYPTO_thread_id; -+ DH_check; -+ DH_compute_key; -+ DH_free; -+ DH_generate_key; -+ DH_generate_parameters; -+ DH_new; -+ DH_size; -+ DHparams_print; -+ DHparams_print_fp; -+ DSA_free; -+ DSA_generate_key; -+ DSA_generate_parameters; -+ DSA_is_prime; -+ DSA_new; -+ DSA_print; -+ DSA_print_fp; -+ DSA_sign; -+ DSA_sign_setup; -+ DSA_size; -+ DSA_verify; -+ DSAparams_print; -+ DSAparams_print_fp; -+ ERR_clear_error; -+ ERR_error_string; -+ ERR_free_strings; -+ ERR_func_error_string; -+ ERR_get_err_state_table; -+ ERR_get_error; -+ ERR_get_error_line; -+ ERR_get_state; -+ ERR_get_string_table; -+ ERR_lib_error_string; -+ ERR_load_ASN1_strings; -+ ERR_load_BIO_strings; -+ ERR_load_BN_strings; -+ ERR_load_BUF_strings; -+ ERR_load_CONF_strings; -+ ERR_load_DH_strings; -+ ERR_load_DSA_strings; -+ ERR_load_ERR_strings; -+ ERR_load_EVP_strings; -+ ERR_load_OBJ_strings; -+ ERR_load_PEM_strings; -+ ERR_load_PROXY_strings; -+ ERR_load_RSA_strings; -+ ERR_load_X509_strings; -+ ERR_load_crypto_strings; -+ ERR_load_strings; -+ ERR_peek_error; -+ ERR_peek_error_line; -+ ERR_print_errors; -+ ERR_print_errors_fp; -+ ERR_put_error; -+ ERR_reason_error_string; -+ ERR_remove_state; -+ EVP_BytesToKey; -+ EVP_CIPHER_CTX_cleanup; -+ EVP_CipherFinal; -+ EVP_CipherInit; -+ EVP_CipherUpdate; -+ EVP_DecodeBlock; -+ EVP_DecodeFinal; -+ EVP_DecodeInit; -+ EVP_DecodeUpdate; -+ EVP_DecryptFinal; -+ EVP_DecryptInit; -+ EVP_DecryptUpdate; -+ EVP_DigestFinal; -+ EVP_DigestInit; -+ EVP_DigestUpdate; -+ EVP_EncodeBlock; -+ EVP_EncodeFinal; -+ EVP_EncodeInit; -+ EVP_EncodeUpdate; -+ EVP_EncryptFinal; -+ EVP_EncryptInit; -+ EVP_EncryptUpdate; -+ EVP_OpenFinal; -+ EVP_OpenInit; -+ EVP_PKEY_assign; -+ EVP_PKEY_copy_parameters; -+ EVP_PKEY_free; -+ EVP_PKEY_missing_parameters; -+ EVP_PKEY_new; -+ EVP_PKEY_save_parameters; -+ EVP_PKEY_size; -+ EVP_PKEY_type; -+ EVP_SealFinal; -+ EVP_SealInit; -+ EVP_SignFinal; -+ EVP_VerifyFinal; -+ EVP_add_alias; -+ EVP_add_cipher; -+ EVP_add_digest; -+ EVP_bf_cbc; -+ EVP_bf_cfb64; -+ EVP_bf_ecb; -+ EVP_bf_ofb; -+ EVP_cleanup; -+ EVP_des_cbc; -+ EVP_des_cfb64; -+ EVP_des_ecb; -+ EVP_des_ede; -+ EVP_des_ede3; -+ EVP_des_ede3_cbc; -+ EVP_des_ede3_cfb64; -+ EVP_des_ede3_ofb; -+ EVP_des_ede_cbc; -+ EVP_des_ede_cfb64; -+ EVP_des_ede_ofb; -+ EVP_des_ofb; -+ EVP_desx_cbc; -+ EVP_dss; -+ EVP_dss1; -+ EVP_enc_null; -+ EVP_get_cipherbyname; -+ EVP_get_digestbyname; -+ EVP_get_pw_prompt; -+ EVP_idea_cbc; -+ EVP_idea_cfb64; -+ EVP_idea_ecb; -+ EVP_idea_ofb; -+ EVP_md2; -+ EVP_md5; -+ EVP_md_null; -+ EVP_rc2_cbc; -+ EVP_rc2_cfb64; -+ EVP_rc2_ecb; -+ EVP_rc2_ofb; -+ EVP_rc4; -+ EVP_read_pw_string; -+ EVP_set_pw_prompt; -+ EVP_sha; -+ EVP_sha1; -+ MD2; -+ MD2_Final; -+ MD2_Init; -+ MD2_Update; -+ MD2_options; -+ MD5; -+ MD5_Final; -+ MD5_Init; -+ MD5_Update; -+ MDC2; -+ MDC2_Final; -+ MDC2_Init; -+ MDC2_Update; -+ NETSCAPE_SPKAC_free; -+ NETSCAPE_SPKAC_new; -+ NETSCAPE_SPKI_free; -+ NETSCAPE_SPKI_new; -+ NETSCAPE_SPKI_sign; -+ NETSCAPE_SPKI_verify; -+ OBJ_add_object; -+ OBJ_bsearch; -+ OBJ_cleanup; -+ OBJ_cmp; -+ OBJ_create; -+ OBJ_dup; -+ OBJ_ln2nid; -+ OBJ_new_nid; -+ OBJ_nid2ln; -+ OBJ_nid2obj; -+ OBJ_nid2sn; -+ OBJ_obj2nid; -+ OBJ_sn2nid; -+ OBJ_txt2nid; -+ PEM_ASN1_read; -+ PEM_ASN1_read_bio; -+ PEM_ASN1_write; -+ PEM_ASN1_write_bio; -+ PEM_SealFinal; -+ PEM_SealInit; -+ PEM_SealUpdate; -+ PEM_SignFinal; -+ PEM_SignInit; -+ PEM_SignUpdate; -+ PEM_X509_INFO_read; -+ PEM_X509_INFO_read_bio; -+ PEM_X509_INFO_write_bio; -+ PEM_dek_info; -+ PEM_do_header; -+ PEM_get_EVP_CIPHER_INFO; -+ PEM_proc_type; -+ PEM_read; -+ PEM_read_DHparams; -+ PEM_read_DSAPrivateKey; -+ PEM_read_DSAparams; -+ PEM_read_PKCS7; -+ PEM_read_PrivateKey; -+ PEM_read_RSAPrivateKey; -+ PEM_read_X509; -+ PEM_read_X509_CRL; -+ PEM_read_X509_REQ; -+ PEM_read_bio; -+ PEM_read_bio_DHparams; -+ PEM_read_bio_DSAPrivateKey; -+ PEM_read_bio_DSAparams; -+ PEM_read_bio_PKCS7; -+ PEM_read_bio_PrivateKey; -+ PEM_read_bio_RSAPrivateKey; -+ PEM_read_bio_X509; -+ PEM_read_bio_X509_CRL; -+ PEM_read_bio_X509_REQ; -+ PEM_write; -+ PEM_write_DHparams; -+ PEM_write_DSAPrivateKey; -+ PEM_write_DSAparams; -+ PEM_write_PKCS7; -+ PEM_write_PrivateKey; -+ PEM_write_RSAPrivateKey; -+ PEM_write_X509; -+ PEM_write_X509_CRL; -+ PEM_write_X509_REQ; -+ PEM_write_bio; -+ PEM_write_bio_DHparams; -+ PEM_write_bio_DSAPrivateKey; -+ PEM_write_bio_DSAparams; -+ PEM_write_bio_PKCS7; -+ PEM_write_bio_PrivateKey; -+ PEM_write_bio_RSAPrivateKey; -+ PEM_write_bio_X509; -+ PEM_write_bio_X509_CRL; -+ PEM_write_bio_X509_REQ; -+ PKCS7_DIGEST_free; -+ PKCS7_DIGEST_new; -+ PKCS7_ENCRYPT_free; -+ PKCS7_ENCRYPT_new; -+ PKCS7_ENC_CONTENT_free; -+ PKCS7_ENC_CONTENT_new; -+ PKCS7_ENVELOPE_free; -+ PKCS7_ENVELOPE_new; -+ PKCS7_ISSUER_AND_SERIAL_digest; -+ PKCS7_ISSUER_AND_SERIAL_free; -+ PKCS7_ISSUER_AND_SERIAL_new; -+ PKCS7_RECIP_INFO_free; -+ PKCS7_RECIP_INFO_new; -+ PKCS7_SIGNED_free; -+ PKCS7_SIGNED_new; -+ PKCS7_SIGNER_INFO_free; -+ PKCS7_SIGNER_INFO_new; -+ PKCS7_SIGN_ENVELOPE_free; -+ PKCS7_SIGN_ENVELOPE_new; -+ PKCS7_dup; -+ PKCS7_free; -+ PKCS7_new; -+ PROXY_ENTRY_add_noproxy; -+ PROXY_ENTRY_clear_noproxy; -+ PROXY_ENTRY_free; -+ PROXY_ENTRY_get_noproxy; -+ PROXY_ENTRY_new; -+ PROXY_ENTRY_set_server; -+ PROXY_add_noproxy; -+ PROXY_add_server; -+ PROXY_check_by_host; -+ PROXY_check_url; -+ PROXY_clear_noproxy; -+ PROXY_free; -+ PROXY_get_noproxy; -+ PROXY_get_proxies; -+ PROXY_get_proxy_entry; -+ PROXY_load_conf; -+ PROXY_new; -+ PROXY_print; -+ RAND_bytes; -+ RAND_cleanup; -+ RAND_file_name; -+ RAND_load_file; -+ RAND_screen; -+ RAND_seed; -+ RAND_write_file; -+ RC2_cbc_encrypt; -+ RC2_cfb64_encrypt; -+ RC2_ecb_encrypt; -+ RC2_encrypt; -+ RC2_ofb64_encrypt; -+ RC2_set_key; -+ RC4; -+ RC4_options; -+ RC4_set_key; -+ RSAPrivateKey_asn1_meth; -+ RSAPrivateKey_dup; -+ RSAPublicKey_dup; -+ RSA_PKCS1_SSLeay; -+ RSA_free; -+ RSA_generate_key; -+ RSA_new; -+ RSA_new_method; -+ RSA_print; -+ RSA_print_fp; -+ RSA_private_decrypt; -+ RSA_private_encrypt; -+ RSA_public_decrypt; -+ RSA_public_encrypt; -+ RSA_set_default_method; -+ RSA_sign; -+ RSA_sign_ASN1_OCTET_STRING; -+ RSA_size; -+ RSA_verify; -+ RSA_verify_ASN1_OCTET_STRING; -+ SHA; -+ SHA1; -+ SHA1_Final; -+ SHA1_Init; -+ SHA1_Update; -+ SHA_Final; -+ SHA_Init; -+ SHA_Update; -+ OpenSSL_add_all_algorithms; -+ OpenSSL_add_all_ciphers; -+ OpenSSL_add_all_digests; -+ TXT_DB_create_index; -+ TXT_DB_free; -+ TXT_DB_get_by_index; -+ TXT_DB_insert; -+ TXT_DB_read; -+ TXT_DB_write; -+ X509_ALGOR_free; -+ X509_ALGOR_new; -+ X509_ATTRIBUTE_free; -+ X509_ATTRIBUTE_new; -+ X509_CINF_free; -+ X509_CINF_new; -+ X509_CRL_INFO_free; -+ X509_CRL_INFO_new; -+ X509_CRL_add_ext; -+ X509_CRL_cmp; -+ X509_CRL_delete_ext; -+ X509_CRL_dup; -+ X509_CRL_free; -+ X509_CRL_get_ext; -+ X509_CRL_get_ext_by_NID; -+ X509_CRL_get_ext_by_OBJ; -+ X509_CRL_get_ext_by_critical; -+ X509_CRL_get_ext_count; -+ X509_CRL_new; -+ X509_CRL_sign; -+ X509_CRL_verify; -+ X509_EXTENSION_create_by_NID; -+ X509_EXTENSION_create_by_OBJ; -+ X509_EXTENSION_dup; -+ X509_EXTENSION_free; -+ X509_EXTENSION_get_critical; -+ X509_EXTENSION_get_data; -+ X509_EXTENSION_get_object; -+ X509_EXTENSION_new; -+ X509_EXTENSION_set_critical; -+ X509_EXTENSION_set_data; -+ X509_EXTENSION_set_object; -+ X509_INFO_free; -+ X509_INFO_new; -+ X509_LOOKUP_by_alias; -+ X509_LOOKUP_by_fingerprint; -+ X509_LOOKUP_by_issuer_serial; -+ X509_LOOKUP_by_subject; -+ X509_LOOKUP_ctrl; -+ X509_LOOKUP_file; -+ X509_LOOKUP_free; -+ X509_LOOKUP_hash_dir; -+ X509_LOOKUP_init; -+ X509_LOOKUP_new; -+ X509_LOOKUP_shutdown; -+ X509_NAME_ENTRY_create_by_NID; -+ X509_NAME_ENTRY_create_by_OBJ; -+ X509_NAME_ENTRY_dup; -+ X509_NAME_ENTRY_free; -+ X509_NAME_ENTRY_get_data; -+ X509_NAME_ENTRY_get_object; -+ X509_NAME_ENTRY_new; -+ X509_NAME_ENTRY_set_data; -+ X509_NAME_ENTRY_set_object; -+ X509_NAME_add_entry; -+ X509_NAME_cmp; -+ X509_NAME_delete_entry; -+ X509_NAME_digest; -+ X509_NAME_dup; -+ X509_NAME_entry_count; -+ X509_NAME_free; -+ X509_NAME_get_entry; -+ X509_NAME_get_index_by_NID; -+ X509_NAME_get_index_by_OBJ; -+ X509_NAME_get_text_by_NID; -+ X509_NAME_get_text_by_OBJ; -+ X509_NAME_hash; -+ X509_NAME_new; -+ X509_NAME_oneline; -+ X509_NAME_print; -+ X509_NAME_set; -+ X509_OBJECT_free_contents; -+ X509_OBJECT_retrieve_by_subject; -+ X509_OBJECT_up_ref_count; -+ X509_PKEY_free; -+ X509_PKEY_new; -+ X509_PUBKEY_free; -+ X509_PUBKEY_get; -+ X509_PUBKEY_new; -+ X509_PUBKEY_set; -+ X509_REQ_INFO_free; -+ X509_REQ_INFO_new; -+ X509_REQ_dup; -+ X509_REQ_free; -+ X509_REQ_get_pubkey; -+ X509_REQ_new; -+ X509_REQ_print; -+ X509_REQ_print_fp; -+ X509_REQ_set_pubkey; -+ X509_REQ_set_subject_name; -+ X509_REQ_set_version; -+ X509_REQ_sign; -+ X509_REQ_to_X509; -+ X509_REQ_verify; -+ X509_REVOKED_add_ext; -+ X509_REVOKED_delete_ext; -+ X509_REVOKED_free; -+ X509_REVOKED_get_ext; -+ X509_REVOKED_get_ext_by_NID; -+ X509_REVOKED_get_ext_by_OBJ; -+ X509_REVOKED_get_ext_by_critical; -+ X509_REVOKED_get_ext_by_critic; -+ X509_REVOKED_get_ext_count; -+ X509_REVOKED_new; -+ X509_SIG_free; -+ X509_SIG_new; -+ X509_STORE_CTX_cleanup; -+ X509_STORE_CTX_init; -+ X509_STORE_add_cert; -+ X509_STORE_add_lookup; -+ X509_STORE_free; -+ X509_STORE_get_by_subject; -+ X509_STORE_load_locations; -+ X509_STORE_new; -+ X509_STORE_set_default_paths; -+ X509_VAL_free; -+ X509_VAL_new; -+ X509_add_ext; -+ X509_asn1_meth; -+ X509_certificate_type; -+ X509_check_private_key; -+ X509_cmp_current_time; -+ X509_delete_ext; -+ X509_digest; -+ X509_dup; -+ X509_free; -+ X509_get_default_cert_area; -+ X509_get_default_cert_dir; -+ X509_get_default_cert_dir_env; -+ X509_get_default_cert_file; -+ X509_get_default_cert_file_env; -+ X509_get_default_private_dir; -+ X509_get_ext; -+ X509_get_ext_by_NID; -+ X509_get_ext_by_OBJ; -+ X509_get_ext_by_critical; -+ X509_get_ext_count; -+ X509_get_issuer_name; -+ X509_get_pubkey; -+ X509_get_pubkey_parameters; -+ X509_get_serialNumber; -+ X509_get_subject_name; -+ X509_gmtime_adj; -+ X509_issuer_and_serial_cmp; -+ X509_issuer_and_serial_hash; -+ X509_issuer_name_cmp; -+ X509_issuer_name_hash; -+ X509_load_cert_file; -+ X509_new; -+ X509_print; -+ X509_print_fp; -+ X509_set_issuer_name; -+ X509_set_notAfter; -+ X509_set_notBefore; -+ X509_set_pubkey; -+ X509_set_serialNumber; -+ X509_set_subject_name; -+ X509_set_version; -+ X509_sign; -+ X509_subject_name_cmp; -+ X509_subject_name_hash; -+ X509_to_X509_REQ; -+ X509_verify; -+ X509_verify_cert; -+ X509_verify_cert_error_string; -+ X509v3_add_ext; -+ X509v3_add_extension; -+ X509v3_add_netscape_extensions; -+ X509v3_add_standard_extensions; -+ X509v3_cleanup_extensions; -+ X509v3_data_type_by_NID; -+ X509v3_data_type_by_OBJ; -+ X509v3_delete_ext; -+ X509v3_get_ext; -+ X509v3_get_ext_by_NID; -+ X509v3_get_ext_by_OBJ; -+ X509v3_get_ext_by_critical; -+ X509v3_get_ext_count; -+ X509v3_pack_string; -+ X509v3_pack_type_by_NID; -+ X509v3_pack_type_by_OBJ; -+ X509v3_unpack_string; -+ _des_crypt; -+ a2d_ASN1_OBJECT; -+ a2i_ASN1_INTEGER; -+ a2i_ASN1_STRING; -+ asn1_Finish; -+ asn1_GetSequence; -+ bn_div_words; -+ bn_expand2; -+ bn_mul_add_words; -+ bn_mul_words; -+ BN_uadd; -+ BN_usub; -+ bn_sqr_words; -+ _ossl_old_crypt; -+ d2i_ASN1_BIT_STRING; -+ d2i_ASN1_BOOLEAN; -+ d2i_ASN1_HEADER; -+ d2i_ASN1_IA5STRING; -+ d2i_ASN1_INTEGER; -+ d2i_ASN1_OBJECT; -+ d2i_ASN1_OCTET_STRING; -+ d2i_ASN1_PRINTABLE; -+ d2i_ASN1_PRINTABLESTRING; -+ d2i_ASN1_SET; -+ d2i_ASN1_T61STRING; -+ d2i_ASN1_TYPE; -+ d2i_ASN1_UTCTIME; -+ d2i_ASN1_bytes; -+ d2i_ASN1_type_bytes; -+ d2i_DHparams; -+ d2i_DSAPrivateKey; -+ d2i_DSAPrivateKey_bio; -+ d2i_DSAPrivateKey_fp; -+ d2i_DSAPublicKey; -+ d2i_DSAparams; -+ d2i_NETSCAPE_SPKAC; -+ d2i_NETSCAPE_SPKI; -+ d2i_Netscape_RSA; -+ d2i_PKCS7; -+ d2i_PKCS7_DIGEST; -+ d2i_PKCS7_ENCRYPT; -+ d2i_PKCS7_ENC_CONTENT; -+ d2i_PKCS7_ENVELOPE; -+ d2i_PKCS7_ISSUER_AND_SERIAL; -+ d2i_PKCS7_RECIP_INFO; -+ d2i_PKCS7_SIGNED; -+ d2i_PKCS7_SIGNER_INFO; -+ d2i_PKCS7_SIGN_ENVELOPE; -+ d2i_PKCS7_bio; -+ d2i_PKCS7_fp; -+ d2i_PrivateKey; -+ d2i_PublicKey; -+ d2i_RSAPrivateKey; -+ d2i_RSAPrivateKey_bio; -+ d2i_RSAPrivateKey_fp; -+ d2i_RSAPublicKey; -+ d2i_X509; -+ d2i_X509_ALGOR; -+ d2i_X509_ATTRIBUTE; -+ d2i_X509_CINF; -+ d2i_X509_CRL; -+ d2i_X509_CRL_INFO; -+ d2i_X509_CRL_bio; -+ d2i_X509_CRL_fp; -+ d2i_X509_EXTENSION; -+ d2i_X509_NAME; -+ d2i_X509_NAME_ENTRY; -+ d2i_X509_PKEY; -+ d2i_X509_PUBKEY; -+ d2i_X509_REQ; -+ d2i_X509_REQ_INFO; -+ d2i_X509_REQ_bio; -+ d2i_X509_REQ_fp; -+ d2i_X509_REVOKED; -+ d2i_X509_SIG; -+ d2i_X509_VAL; -+ d2i_X509_bio; -+ d2i_X509_fp; -+ DES_cbc_cksum; -+ DES_cbc_encrypt; -+ DES_cblock_print_file; -+ DES_cfb64_encrypt; -+ DES_cfb_encrypt; -+ DES_decrypt3; -+ DES_ecb3_encrypt; -+ DES_ecb_encrypt; -+ DES_ede3_cbc_encrypt; -+ DES_ede3_cfb64_encrypt; -+ DES_ede3_ofb64_encrypt; -+ DES_enc_read; -+ DES_enc_write; -+ DES_encrypt1; -+ DES_encrypt2; -+ DES_encrypt3; -+ DES_fcrypt; -+ DES_is_weak_key; -+ DES_key_sched; -+ DES_ncbc_encrypt; -+ DES_ofb64_encrypt; -+ DES_ofb_encrypt; -+ DES_options; -+ DES_pcbc_encrypt; -+ DES_quad_cksum; -+ DES_random_key; -+ _ossl_old_des_random_seed; -+ _ossl_old_des_read_2passwords; -+ _ossl_old_des_read_password; -+ _ossl_old_des_read_pw; -+ _ossl_old_des_read_pw_string; -+ DES_set_key; -+ DES_set_odd_parity; -+ DES_string_to_2keys; -+ DES_string_to_key; -+ DES_xcbc_encrypt; -+ DES_xwhite_in2out; -+ fcrypt_body; -+ i2a_ASN1_INTEGER; -+ i2a_ASN1_OBJECT; -+ i2a_ASN1_STRING; -+ i2d_ASN1_BIT_STRING; -+ i2d_ASN1_BOOLEAN; -+ i2d_ASN1_HEADER; -+ i2d_ASN1_IA5STRING; -+ i2d_ASN1_INTEGER; -+ i2d_ASN1_OBJECT; -+ i2d_ASN1_OCTET_STRING; -+ i2d_ASN1_PRINTABLE; -+ i2d_ASN1_SET; -+ i2d_ASN1_TYPE; -+ i2d_ASN1_UTCTIME; -+ i2d_ASN1_bytes; -+ i2d_DHparams; -+ i2d_DSAPrivateKey; -+ i2d_DSAPrivateKey_bio; -+ i2d_DSAPrivateKey_fp; -+ i2d_DSAPublicKey; -+ i2d_DSAparams; -+ i2d_NETSCAPE_SPKAC; -+ i2d_NETSCAPE_SPKI; -+ i2d_Netscape_RSA; -+ i2d_PKCS7; -+ i2d_PKCS7_DIGEST; -+ i2d_PKCS7_ENCRYPT; -+ i2d_PKCS7_ENC_CONTENT; -+ i2d_PKCS7_ENVELOPE; -+ i2d_PKCS7_ISSUER_AND_SERIAL; -+ i2d_PKCS7_RECIP_INFO; -+ i2d_PKCS7_SIGNED; -+ i2d_PKCS7_SIGNER_INFO; -+ i2d_PKCS7_SIGN_ENVELOPE; -+ i2d_PKCS7_bio; -+ i2d_PKCS7_fp; -+ i2d_PrivateKey; -+ i2d_PublicKey; -+ i2d_RSAPrivateKey; -+ i2d_RSAPrivateKey_bio; -+ i2d_RSAPrivateKey_fp; -+ i2d_RSAPublicKey; -+ i2d_X509; -+ i2d_X509_ALGOR; -+ i2d_X509_ATTRIBUTE; -+ i2d_X509_CINF; -+ i2d_X509_CRL; -+ i2d_X509_CRL_INFO; -+ i2d_X509_CRL_bio; -+ i2d_X509_CRL_fp; -+ i2d_X509_EXTENSION; -+ i2d_X509_NAME; -+ i2d_X509_NAME_ENTRY; -+ i2d_X509_PKEY; -+ i2d_X509_PUBKEY; -+ i2d_X509_REQ; -+ i2d_X509_REQ_INFO; -+ i2d_X509_REQ_bio; -+ i2d_X509_REQ_fp; -+ i2d_X509_REVOKED; -+ i2d_X509_SIG; -+ i2d_X509_VAL; -+ i2d_X509_bio; -+ i2d_X509_fp; -+ idea_cbc_encrypt; -+ idea_cfb64_encrypt; -+ idea_ecb_encrypt; -+ idea_encrypt; -+ idea_ofb64_encrypt; -+ idea_options; -+ idea_set_decrypt_key; -+ idea_set_encrypt_key; -+ lh_delete; -+ lh_doall; -+ lh_doall_arg; -+ lh_free; -+ lh_insert; -+ lh_new; -+ lh_node_stats; -+ lh_node_stats_bio; -+ lh_node_usage_stats; -+ lh_node_usage_stats_bio; -+ lh_retrieve; -+ lh_stats; -+ lh_stats_bio; -+ lh_strhash; -+ sk_delete; -+ sk_delete_ptr; -+ sk_dup; -+ sk_find; -+ sk_free; -+ sk_insert; -+ sk_new; -+ sk_pop; -+ sk_pop_free; -+ sk_push; -+ sk_set_cmp_func; -+ sk_shift; -+ sk_unshift; -+ sk_zero; -+ BIO_f_nbio_test; -+ ASN1_TYPE_get; -+ ASN1_TYPE_set; -+ PKCS7_content_free; -+ ERR_load_PKCS7_strings; -+ X509_find_by_issuer_and_serial; -+ X509_find_by_subject; -+ PKCS7_ctrl; -+ PKCS7_set_type; -+ PKCS7_set_content; -+ PKCS7_SIGNER_INFO_set; -+ PKCS7_add_signer; -+ PKCS7_add_certificate; -+ PKCS7_add_crl; -+ PKCS7_content_new; -+ PKCS7_dataSign; -+ PKCS7_dataVerify; -+ PKCS7_dataInit; -+ PKCS7_add_signature; -+ PKCS7_cert_from_signer_info; -+ PKCS7_get_signer_info; -+ EVP_delete_alias; -+ EVP_mdc2; -+ PEM_read_bio_RSAPublicKey; -+ PEM_write_bio_RSAPublicKey; -+ d2i_RSAPublicKey_bio; -+ i2d_RSAPublicKey_bio; -+ PEM_read_RSAPublicKey; -+ PEM_write_RSAPublicKey; -+ d2i_RSAPublicKey_fp; -+ i2d_RSAPublicKey_fp; -+ BIO_copy_next_retry; -+ RSA_flags; -+ X509_STORE_add_crl; -+ X509_load_crl_file; -+ EVP_rc2_40_cbc; -+ EVP_rc4_40; -+ EVP_CIPHER_CTX_init; -+ HMAC; -+ HMAC_Init; -+ HMAC_Update; -+ HMAC_Final; -+ ERR_get_next_error_library; -+ EVP_PKEY_cmp_parameters; -+ HMAC_cleanup; -+ BIO_ptr_ctrl; -+ BIO_new_file_internal; -+ BIO_new_fp_internal; -+ BIO_s_file_internal; -+ BN_BLINDING_convert; -+ BN_BLINDING_invert; -+ BN_BLINDING_update; -+ RSA_blinding_on; -+ RSA_blinding_off; -+ i2t_ASN1_OBJECT; -+ BN_BLINDING_new; -+ BN_BLINDING_free; -+ EVP_cast5_cbc; -+ EVP_cast5_cfb64; -+ EVP_cast5_ecb; -+ EVP_cast5_ofb; -+ BF_decrypt; -+ CAST_set_key; -+ CAST_encrypt; -+ CAST_decrypt; -+ CAST_ecb_encrypt; -+ CAST_cbc_encrypt; -+ CAST_cfb64_encrypt; -+ CAST_ofb64_encrypt; -+ RC2_decrypt; -+ OBJ_create_objects; -+ BN_exp; -+ BN_mul_word; -+ BN_sub_word; -+ BN_dec2bn; -+ BN_bn2dec; -+ BIO_ghbn_ctrl; -+ CRYPTO_free_ex_data; -+ CRYPTO_get_ex_data; -+ CRYPTO_set_ex_data; -+ ERR_load_CRYPTO_strings; -+ ERR_load_CRYPTOlib_strings; -+ EVP_PKEY_bits; -+ MD5_Transform; -+ SHA1_Transform; -+ SHA_Transform; -+ X509_STORE_CTX_get_chain; -+ X509_STORE_CTX_get_current_cert; -+ X509_STORE_CTX_get_error; -+ X509_STORE_CTX_get_error_depth; -+ X509_STORE_CTX_get_ex_data; -+ X509_STORE_CTX_set_cert; -+ X509_STORE_CTX_set_chain; -+ X509_STORE_CTX_set_error; -+ X509_STORE_CTX_set_ex_data; -+ CRYPTO_dup_ex_data; -+ CRYPTO_get_new_lockid; -+ CRYPTO_new_ex_data; -+ RSA_set_ex_data; -+ RSA_get_ex_data; -+ RSA_get_ex_new_index; -+ RSA_padding_add_PKCS1_type_1; -+ RSA_padding_add_PKCS1_type_2; -+ RSA_padding_add_SSLv23; -+ RSA_padding_add_none; -+ RSA_padding_check_PKCS1_type_1; -+ RSA_padding_check_PKCS1_type_2; -+ RSA_padding_check_SSLv23; -+ RSA_padding_check_none; -+ bn_add_words; -+ d2i_Netscape_RSA_2; -+ CRYPTO_get_ex_new_index; -+ RIPEMD160_Init; -+ RIPEMD160_Update; -+ RIPEMD160_Final; -+ RIPEMD160; -+ RIPEMD160_Transform; -+ RC5_32_set_key; -+ RC5_32_ecb_encrypt; -+ RC5_32_encrypt; -+ RC5_32_decrypt; -+ RC5_32_cbc_encrypt; -+ RC5_32_cfb64_encrypt; -+ RC5_32_ofb64_encrypt; -+ BN_bn2mpi; -+ BN_mpi2bn; -+ ASN1_BIT_STRING_get_bit; -+ ASN1_BIT_STRING_set_bit; -+ BIO_get_ex_data; -+ BIO_get_ex_new_index; -+ BIO_set_ex_data; -+ X509v3_get_key_usage; -+ X509v3_set_key_usage; -+ a2i_X509v3_key_usage; -+ i2a_X509v3_key_usage; -+ EVP_PKEY_decrypt; -+ EVP_PKEY_encrypt; -+ PKCS7_RECIP_INFO_set; -+ PKCS7_add_recipient; -+ PKCS7_add_recipient_info; -+ PKCS7_set_cipher; -+ ASN1_TYPE_get_int_octetstring; -+ ASN1_TYPE_get_octetstring; -+ ASN1_TYPE_set_int_octetstring; -+ ASN1_TYPE_set_octetstring; -+ ASN1_UTCTIME_set_string; -+ ERR_add_error_data; -+ ERR_set_error_data; -+ EVP_CIPHER_asn1_to_param; -+ EVP_CIPHER_param_to_asn1; -+ EVP_CIPHER_get_asn1_iv; -+ EVP_CIPHER_set_asn1_iv; -+ EVP_rc5_32_12_16_cbc; -+ EVP_rc5_32_12_16_cfb64; -+ EVP_rc5_32_12_16_ecb; -+ EVP_rc5_32_12_16_ofb; -+ asn1_add_error; -+ d2i_ASN1_BMPSTRING; -+ i2d_ASN1_BMPSTRING; -+ BIO_f_ber; -+ BN_init; -+ COMP_CTX_new; -+ COMP_CTX_free; -+ COMP_CTX_compress_block; -+ COMP_CTX_expand_block; -+ X509_STORE_CTX_get_ex_new_index; -+ OBJ_NAME_add; -+ BIO_socket_nbio; -+ EVP_rc2_64_cbc; -+ OBJ_NAME_cleanup; -+ OBJ_NAME_get; -+ OBJ_NAME_init; -+ OBJ_NAME_new_index; -+ OBJ_NAME_remove; -+ BN_MONT_CTX_copy; -+ BIO_new_socks4a_connect; -+ BIO_s_socks4a_connect; -+ PROXY_set_connect_mode; -+ RAND_SSLeay; -+ RAND_set_rand_method; -+ RSA_memory_lock; -+ bn_sub_words; -+ bn_mul_normal; -+ bn_mul_comba8; -+ bn_mul_comba4; -+ bn_sqr_normal; -+ bn_sqr_comba8; -+ bn_sqr_comba4; -+ bn_cmp_words; -+ bn_mul_recursive; -+ bn_mul_part_recursive; -+ bn_sqr_recursive; -+ bn_mul_low_normal; -+ BN_RECP_CTX_init; -+ BN_RECP_CTX_new; -+ BN_RECP_CTX_free; -+ BN_RECP_CTX_set; -+ BN_mod_mul_reciprocal; -+ BN_mod_exp_recp; -+ BN_div_recp; -+ BN_CTX_init; -+ BN_MONT_CTX_init; -+ RAND_get_rand_method; -+ PKCS7_add_attribute; -+ PKCS7_add_signed_attribute; -+ PKCS7_digest_from_attributes; -+ PKCS7_get_attribute; -+ PKCS7_get_issuer_and_serial; -+ PKCS7_get_signed_attribute; -+ COMP_compress_block; -+ COMP_expand_block; -+ COMP_rle; -+ COMP_zlib; -+ ms_time_diff; -+ ms_time_new; -+ ms_time_free; -+ ms_time_cmp; -+ ms_time_get; -+ PKCS7_set_attributes; -+ PKCS7_set_signed_attributes; -+ X509_ATTRIBUTE_create; -+ X509_ATTRIBUTE_dup; -+ ASN1_GENERALIZEDTIME_check; -+ ASN1_GENERALIZEDTIME_print; -+ ASN1_GENERALIZEDTIME_set; -+ ASN1_GENERALIZEDTIME_set_string; -+ ASN1_TIME_print; -+ BASIC_CONSTRAINTS_free; -+ BASIC_CONSTRAINTS_new; -+ ERR_load_X509V3_strings; -+ NETSCAPE_CERT_SEQUENCE_free; -+ NETSCAPE_CERT_SEQUENCE_new; -+ OBJ_txt2obj; -+ PEM_read_NETSCAPE_CERT_SEQUENCE; -+ PEM_read_NS_CERT_SEQ; -+ PEM_read_bio_NETSCAPE_CERT_SEQUENCE; -+ PEM_read_bio_NS_CERT_SEQ; -+ PEM_write_NETSCAPE_CERT_SEQUENCE; -+ PEM_write_NS_CERT_SEQ; -+ PEM_write_bio_NETSCAPE_CERT_SEQUENCE; -+ PEM_write_bio_NS_CERT_SEQ; -+ X509V3_EXT_add; -+ X509V3_EXT_add_alias; -+ X509V3_EXT_add_conf; -+ X509V3_EXT_cleanup; -+ X509V3_EXT_conf; -+ X509V3_EXT_conf_nid; -+ X509V3_EXT_get; -+ X509V3_EXT_get_nid; -+ X509V3_EXT_print; -+ X509V3_EXT_print_fp; -+ X509V3_add_standard_extensions; -+ X509V3_add_value; -+ X509V3_add_value_bool; -+ X509V3_add_value_int; -+ X509V3_conf_free; -+ X509V3_get_value_bool; -+ X509V3_get_value_int; -+ X509V3_parse_list; -+ d2i_ASN1_GENERALIZEDTIME; -+ d2i_ASN1_TIME; -+ d2i_BASIC_CONSTRAINTS; -+ d2i_NETSCAPE_CERT_SEQUENCE; -+ d2i_ext_ku; -+ ext_ku_free; -+ ext_ku_new; -+ i2d_ASN1_GENERALIZEDTIME; -+ i2d_ASN1_TIME; -+ i2d_BASIC_CONSTRAINTS; -+ i2d_NETSCAPE_CERT_SEQUENCE; -+ i2d_ext_ku; -+ EVP_MD_CTX_copy; -+ i2d_ASN1_ENUMERATED; -+ d2i_ASN1_ENUMERATED; -+ ASN1_ENUMERATED_set; -+ ASN1_ENUMERATED_get; -+ BN_to_ASN1_ENUMERATED; -+ ASN1_ENUMERATED_to_BN; -+ i2a_ASN1_ENUMERATED; -+ a2i_ASN1_ENUMERATED; -+ i2d_GENERAL_NAME; -+ d2i_GENERAL_NAME; -+ GENERAL_NAME_new; -+ GENERAL_NAME_free; -+ GENERAL_NAMES_new; -+ GENERAL_NAMES_free; -+ d2i_GENERAL_NAMES; -+ i2d_GENERAL_NAMES; -+ i2v_GENERAL_NAMES; -+ i2s_ASN1_OCTET_STRING; -+ s2i_ASN1_OCTET_STRING; -+ X509V3_EXT_check_conf; -+ hex_to_string; -+ string_to_hex; -+ DES_ede3_cbcm_encrypt; -+ RSA_padding_add_PKCS1_OAEP; -+ RSA_padding_check_PKCS1_OAEP; -+ X509_CRL_print_fp; -+ X509_CRL_print; -+ i2v_GENERAL_NAME; -+ v2i_GENERAL_NAME; -+ i2d_PKEY_USAGE_PERIOD; -+ d2i_PKEY_USAGE_PERIOD; -+ PKEY_USAGE_PERIOD_new; -+ PKEY_USAGE_PERIOD_free; -+ v2i_GENERAL_NAMES; -+ i2s_ASN1_INTEGER; -+ X509V3_EXT_d2i; -+ name_cmp; -+ str_dup; -+ i2s_ASN1_ENUMERATED; -+ i2s_ASN1_ENUMERATED_TABLE; -+ BIO_s_log; -+ BIO_f_reliable; -+ PKCS7_dataFinal; -+ PKCS7_dataDecode; -+ X509V3_EXT_CRL_add_conf; -+ BN_set_params; -+ BN_get_params; -+ BIO_get_ex_num; -+ BIO_set_ex_free_func; -+ EVP_ripemd160; -+ ASN1_TIME_set; -+ i2d_AUTHORITY_KEYID; -+ d2i_AUTHORITY_KEYID; -+ AUTHORITY_KEYID_new; -+ AUTHORITY_KEYID_free; -+ ASN1_seq_unpack; -+ ASN1_seq_pack; -+ ASN1_unpack_string; -+ ASN1_pack_string; -+ PKCS12_pack_safebag; -+ PKCS12_MAKE_KEYBAG; -+ PKCS8_encrypt; -+ PKCS12_MAKE_SHKEYBAG; -+ PKCS12_pack_p7data; -+ PKCS12_pack_p7encdata; -+ PKCS12_add_localkeyid; -+ PKCS12_add_friendlyname_asc; -+ PKCS12_add_friendlyname_uni; -+ PKCS12_get_friendlyname; -+ PKCS12_pbe_crypt; -+ PKCS12_decrypt_d2i; -+ PKCS12_i2d_encrypt; -+ PKCS12_init; -+ PKCS12_key_gen_asc; -+ PKCS12_key_gen_uni; -+ PKCS12_gen_mac; -+ PKCS12_verify_mac; -+ PKCS12_set_mac; -+ PKCS12_setup_mac; -+ OPENSSL_asc2uni; -+ OPENSSL_uni2asc; -+ i2d_PKCS12_BAGS; -+ PKCS12_BAGS_new; -+ d2i_PKCS12_BAGS; -+ PKCS12_BAGS_free; -+ i2d_PKCS12; -+ d2i_PKCS12; -+ PKCS12_new; -+ PKCS12_free; -+ i2d_PKCS12_MAC_DATA; -+ PKCS12_MAC_DATA_new; -+ d2i_PKCS12_MAC_DATA; -+ PKCS12_MAC_DATA_free; -+ i2d_PKCS12_SAFEBAG; -+ PKCS12_SAFEBAG_new; -+ d2i_PKCS12_SAFEBAG; -+ PKCS12_SAFEBAG_free; -+ ERR_load_PKCS12_strings; -+ PKCS12_PBE_add; -+ PKCS8_add_keyusage; -+ PKCS12_get_attr_gen; -+ PKCS12_parse; -+ PKCS12_create; -+ i2d_PKCS12_bio; -+ i2d_PKCS12_fp; -+ d2i_PKCS12_bio; -+ d2i_PKCS12_fp; -+ i2d_PBEPARAM; -+ PBEPARAM_new; -+ d2i_PBEPARAM; -+ PBEPARAM_free; -+ i2d_PKCS8_PRIV_KEY_INFO; -+ PKCS8_PRIV_KEY_INFO_new; -+ d2i_PKCS8_PRIV_KEY_INFO; -+ PKCS8_PRIV_KEY_INFO_free; -+ EVP_PKCS82PKEY; -+ EVP_PKEY2PKCS8; -+ PKCS8_set_broken; -+ EVP_PBE_ALGOR_CipherInit; -+ EVP_PBE_alg_add; -+ PKCS5_pbe_set; -+ EVP_PBE_cleanup; -+ i2d_SXNET; -+ d2i_SXNET; -+ SXNET_new; -+ SXNET_free; -+ i2d_SXNETID; -+ d2i_SXNETID; -+ SXNETID_new; -+ SXNETID_free; -+ DSA_SIG_new; -+ DSA_SIG_free; -+ DSA_do_sign; -+ DSA_do_verify; -+ d2i_DSA_SIG; -+ i2d_DSA_SIG; -+ i2d_ASN1_VISIBLESTRING; -+ d2i_ASN1_VISIBLESTRING; -+ i2d_ASN1_UTF8STRING; -+ d2i_ASN1_UTF8STRING; -+ i2d_DIRECTORYSTRING; -+ d2i_DIRECTORYSTRING; -+ i2d_DISPLAYTEXT; -+ d2i_DISPLAYTEXT; -+ d2i_ASN1_SET_OF_X509; -+ i2d_ASN1_SET_OF_X509; -+ i2d_PBKDF2PARAM; -+ PBKDF2PARAM_new; -+ d2i_PBKDF2PARAM; -+ PBKDF2PARAM_free; -+ i2d_PBE2PARAM; -+ PBE2PARAM_new; -+ d2i_PBE2PARAM; -+ PBE2PARAM_free; -+ d2i_ASN1_SET_OF_GENERAL_NAME; -+ i2d_ASN1_SET_OF_GENERAL_NAME; -+ d2i_ASN1_SET_OF_SXNETID; -+ i2d_ASN1_SET_OF_SXNETID; -+ d2i_ASN1_SET_OF_POLICYQUALINFO; -+ i2d_ASN1_SET_OF_POLICYQUALINFO; -+ d2i_ASN1_SET_OF_POLICYINFO; -+ i2d_ASN1_SET_OF_POLICYINFO; -+ SXNET_add_id_asc; -+ SXNET_add_id_ulong; -+ SXNET_add_id_INTEGER; -+ SXNET_get_id_asc; -+ SXNET_get_id_ulong; -+ SXNET_get_id_INTEGER; -+ X509V3_set_conf_lhash; -+ i2d_CERTIFICATEPOLICIES; -+ CERTIFICATEPOLICIES_new; -+ CERTIFICATEPOLICIES_free; -+ d2i_CERTIFICATEPOLICIES; -+ i2d_POLICYINFO; -+ POLICYINFO_new; -+ d2i_POLICYINFO; -+ POLICYINFO_free; -+ i2d_POLICYQUALINFO; -+ POLICYQUALINFO_new; -+ d2i_POLICYQUALINFO; -+ POLICYQUALINFO_free; -+ i2d_USERNOTICE; -+ USERNOTICE_new; -+ d2i_USERNOTICE; -+ USERNOTICE_free; -+ i2d_NOTICEREF; -+ NOTICEREF_new; -+ d2i_NOTICEREF; -+ NOTICEREF_free; -+ X509V3_get_string; -+ X509V3_get_section; -+ X509V3_string_free; -+ X509V3_section_free; -+ X509V3_set_ctx; -+ s2i_ASN1_INTEGER; -+ CRYPTO_set_locked_mem_functions; -+ CRYPTO_get_locked_mem_functions; -+ CRYPTO_malloc_locked; -+ CRYPTO_free_locked; -+ BN_mod_exp2_mont; -+ ERR_get_error_line_data; -+ ERR_peek_error_line_data; -+ PKCS12_PBE_keyivgen; -+ X509_ALGOR_dup; -+ d2i_ASN1_SET_OF_DIST_POINT; -+ i2d_ASN1_SET_OF_DIST_POINT; -+ i2d_CRL_DIST_POINTS; -+ CRL_DIST_POINTS_new; -+ CRL_DIST_POINTS_free; -+ d2i_CRL_DIST_POINTS; -+ i2d_DIST_POINT; -+ DIST_POINT_new; -+ d2i_DIST_POINT; -+ DIST_POINT_free; -+ i2d_DIST_POINT_NAME; -+ DIST_POINT_NAME_new; -+ DIST_POINT_NAME_free; -+ d2i_DIST_POINT_NAME; -+ X509V3_add_value_uchar; -+ d2i_ASN1_SET_OF_X509_ATTRIBUTE; -+ i2d_ASN1_SET_OF_ASN1_TYPE; -+ d2i_ASN1_SET_OF_X509_EXTENSION; -+ d2i_ASN1_SET_OF_X509_NAME_ENTRY; -+ d2i_ASN1_SET_OF_ASN1_TYPE; -+ i2d_ASN1_SET_OF_X509_ATTRIBUTE; -+ i2d_ASN1_SET_OF_X509_EXTENSION; -+ i2d_ASN1_SET_OF_X509_NAME_ENTRY; -+ X509V3_EXT_i2d; -+ X509V3_EXT_val_prn; -+ X509V3_EXT_add_list; -+ EVP_CIPHER_type; -+ EVP_PBE_CipherInit; -+ X509V3_add_value_bool_nf; -+ d2i_ASN1_UINTEGER; -+ sk_value; -+ sk_num; -+ sk_set; -+ i2d_ASN1_SET_OF_X509_REVOKED; -+ sk_sort; -+ d2i_ASN1_SET_OF_X509_REVOKED; -+ i2d_ASN1_SET_OF_X509_ALGOR; -+ i2d_ASN1_SET_OF_X509_CRL; -+ d2i_ASN1_SET_OF_X509_ALGOR; -+ d2i_ASN1_SET_OF_X509_CRL; -+ i2d_ASN1_SET_OF_PKCS7_SIGNER_INFO; -+ i2d_ASN1_SET_OF_PKCS7_RECIP_INFO; -+ d2i_ASN1_SET_OF_PKCS7_SIGNER_INFO; -+ d2i_ASN1_SET_OF_PKCS7_RECIP_INFO; -+ PKCS5_PBE_add; -+ PEM_write_bio_PKCS8; -+ i2d_PKCS8_fp; -+ PEM_read_bio_PKCS8_PRIV_KEY_INFO; -+ PEM_read_bio_P8_PRIV_KEY_INFO; -+ d2i_PKCS8_bio; -+ d2i_PKCS8_PRIV_KEY_INFO_fp; -+ PEM_write_bio_PKCS8_PRIV_KEY_INFO; -+ PEM_write_bio_P8_PRIV_KEY_INFO; -+ PEM_read_PKCS8; -+ d2i_PKCS8_PRIV_KEY_INFO_bio; -+ d2i_PKCS8_fp; -+ PEM_write_PKCS8; -+ PEM_read_PKCS8_PRIV_KEY_INFO; -+ PEM_read_P8_PRIV_KEY_INFO; -+ PEM_read_bio_PKCS8; -+ PEM_write_PKCS8_PRIV_KEY_INFO; -+ PEM_write_P8_PRIV_KEY_INFO; -+ PKCS5_PBE_keyivgen; -+ i2d_PKCS8_bio; -+ i2d_PKCS8_PRIV_KEY_INFO_fp; -+ i2d_PKCS8_PRIV_KEY_INFO_bio; -+ BIO_s_bio; -+ PKCS5_pbe2_set; -+ PKCS5_PBKDF2_HMAC_SHA1; -+ PKCS5_v2_PBE_keyivgen; -+ PEM_write_bio_PKCS8PrivateKey; -+ PEM_write_PKCS8PrivateKey; -+ BIO_ctrl_get_read_request; -+ BIO_ctrl_pending; -+ BIO_ctrl_wpending; -+ BIO_new_bio_pair; -+ BIO_ctrl_get_write_guarantee; -+ CRYPTO_num_locks; -+ CONF_load_bio; -+ CONF_load_fp; -+ i2d_ASN1_SET_OF_ASN1_OBJECT; -+ d2i_ASN1_SET_OF_ASN1_OBJECT; -+ PKCS7_signatureVerify; -+ RSA_set_method; -+ RSA_get_method; -+ RSA_get_default_method; -+ RSA_check_key; -+ OBJ_obj2txt; -+ DSA_dup_DH; -+ X509_REQ_get_extensions; -+ X509_REQ_set_extension_nids; -+ BIO_nwrite; -+ X509_REQ_extension_nid; -+ BIO_nread; -+ X509_REQ_get_extension_nids; -+ BIO_nwrite0; -+ X509_REQ_add_extensions_nid; -+ BIO_nread0; -+ X509_REQ_add_extensions; -+ BIO_new_mem_buf; -+ DH_set_ex_data; -+ DH_set_method; -+ DSA_OpenSSL; -+ DH_get_ex_data; -+ DH_get_ex_new_index; -+ DSA_new_method; -+ DH_new_method; -+ DH_OpenSSL; -+ DSA_get_ex_new_index; -+ DH_get_default_method; -+ DSA_set_ex_data; -+ DH_set_default_method; -+ DSA_get_ex_data; -+ X509V3_EXT_REQ_add_conf; -+ NETSCAPE_SPKI_print; -+ NETSCAPE_SPKI_set_pubkey; -+ NETSCAPE_SPKI_b64_encode; -+ NETSCAPE_SPKI_get_pubkey; -+ NETSCAPE_SPKI_b64_decode; -+ UTF8_putc; -+ UTF8_getc; -+ RSA_null_method; -+ ASN1_tag2str; -+ BIO_ctrl_reset_read_request; -+ DISPLAYTEXT_new; -+ ASN1_GENERALIZEDTIME_free; -+ X509_REVOKED_get_ext_d2i; -+ X509_set_ex_data; -+ X509_reject_set_bit_asc; -+ X509_NAME_add_entry_by_txt; -+ X509_NAME_add_entry_by_NID; -+ X509_PURPOSE_get0; -+ PEM_read_X509_AUX; -+ d2i_AUTHORITY_INFO_ACCESS; -+ PEM_write_PUBKEY; -+ ACCESS_DESCRIPTION_new; -+ X509_CERT_AUX_free; -+ d2i_ACCESS_DESCRIPTION; -+ X509_trust_clear; -+ X509_TRUST_add; -+ ASN1_VISIBLESTRING_new; -+ X509_alias_set1; -+ ASN1_PRINTABLESTRING_free; -+ EVP_PKEY_get1_DSA; -+ ASN1_BMPSTRING_new; -+ ASN1_mbstring_copy; -+ ASN1_UTF8STRING_new; -+ DSA_get_default_method; -+ i2d_ASN1_SET_OF_ACCESS_DESCRIPTION; -+ ASN1_T61STRING_free; -+ DSA_set_method; -+ X509_get_ex_data; -+ ASN1_STRING_type; -+ X509_PURPOSE_get_by_sname; -+ ASN1_TIME_free; -+ ASN1_OCTET_STRING_cmp; -+ ASN1_BIT_STRING_new; -+ X509_get_ext_d2i; -+ PEM_read_bio_X509_AUX; -+ ASN1_STRING_set_default_mask_asc; -+ ASN1_STRING_set_def_mask_asc; -+ PEM_write_bio_RSA_PUBKEY; -+ ASN1_INTEGER_cmp; -+ d2i_RSA_PUBKEY_fp; -+ X509_trust_set_bit_asc; -+ PEM_write_bio_DSA_PUBKEY; -+ X509_STORE_CTX_free; -+ EVP_PKEY_set1_DSA; -+ i2d_DSA_PUBKEY_fp; -+ X509_load_cert_crl_file; -+ ASN1_TIME_new; -+ i2d_RSA_PUBKEY; -+ X509_STORE_CTX_purpose_inherit; -+ PEM_read_RSA_PUBKEY; -+ d2i_X509_AUX; -+ i2d_DSA_PUBKEY; -+ X509_CERT_AUX_print; -+ PEM_read_DSA_PUBKEY; -+ i2d_RSA_PUBKEY_bio; -+ ASN1_BIT_STRING_num_asc; -+ i2d_PUBKEY; -+ ASN1_UTCTIME_free; -+ DSA_set_default_method; -+ X509_PURPOSE_get_by_id; -+ ACCESS_DESCRIPTION_free; -+ PEM_read_bio_PUBKEY; -+ ASN1_STRING_set_by_NID; -+ X509_PURPOSE_get_id; -+ DISPLAYTEXT_free; -+ OTHERNAME_new; -+ X509_CERT_AUX_new; -+ X509_TRUST_cleanup; -+ X509_NAME_add_entry_by_OBJ; -+ X509_CRL_get_ext_d2i; -+ X509_PURPOSE_get0_name; -+ PEM_read_PUBKEY; -+ i2d_DSA_PUBKEY_bio; -+ i2d_OTHERNAME; -+ ASN1_OCTET_STRING_free; -+ ASN1_BIT_STRING_set_asc; -+ X509_get_ex_new_index; -+ ASN1_STRING_TABLE_cleanup; -+ X509_TRUST_get_by_id; -+ X509_PURPOSE_get_trust; -+ ASN1_STRING_length; -+ d2i_ASN1_SET_OF_ACCESS_DESCRIPTION; -+ ASN1_PRINTABLESTRING_new; -+ X509V3_get_d2i; -+ ASN1_ENUMERATED_free; -+ i2d_X509_CERT_AUX; -+ X509_STORE_CTX_set_trust; -+ ASN1_STRING_set_default_mask; -+ X509_STORE_CTX_new; -+ EVP_PKEY_get1_RSA; -+ DIRECTORYSTRING_free; -+ PEM_write_X509_AUX; -+ ASN1_OCTET_STRING_set; -+ d2i_DSA_PUBKEY_fp; -+ d2i_RSA_PUBKEY; -+ X509_TRUST_get0_name; -+ X509_TRUST_get0; -+ AUTHORITY_INFO_ACCESS_free; -+ ASN1_IA5STRING_new; -+ d2i_DSA_PUBKEY; -+ X509_check_purpose; -+ ASN1_ENUMERATED_new; -+ d2i_RSA_PUBKEY_bio; -+ d2i_PUBKEY; -+ X509_TRUST_get_trust; -+ X509_TRUST_get_flags; -+ ASN1_BMPSTRING_free; -+ ASN1_T61STRING_new; -+ ASN1_UTCTIME_new; -+ i2d_AUTHORITY_INFO_ACCESS; -+ EVP_PKEY_set1_RSA; -+ X509_STORE_CTX_set_purpose; -+ ASN1_IA5STRING_free; -+ PEM_write_bio_X509_AUX; -+ X509_PURPOSE_get_count; -+ CRYPTO_add_info; -+ X509_NAME_ENTRY_create_by_txt; -+ ASN1_STRING_get_default_mask; -+ X509_alias_get0; -+ ASN1_STRING_data; -+ i2d_ACCESS_DESCRIPTION; -+ X509_trust_set_bit; -+ ASN1_BIT_STRING_free; -+ PEM_read_bio_RSA_PUBKEY; -+ X509_add1_reject_object; -+ X509_check_trust; -+ PEM_read_bio_DSA_PUBKEY; -+ X509_PURPOSE_add; -+ ASN1_STRING_TABLE_get; -+ ASN1_UTF8STRING_free; -+ d2i_DSA_PUBKEY_bio; -+ PEM_write_RSA_PUBKEY; -+ d2i_OTHERNAME; -+ X509_reject_set_bit; -+ PEM_write_DSA_PUBKEY; -+ X509_PURPOSE_get0_sname; -+ EVP_PKEY_set1_DH; -+ ASN1_OCTET_STRING_dup; -+ ASN1_BIT_STRING_set; -+ X509_TRUST_get_count; -+ ASN1_INTEGER_free; -+ OTHERNAME_free; -+ i2d_RSA_PUBKEY_fp; -+ ASN1_INTEGER_dup; -+ d2i_X509_CERT_AUX; -+ PEM_write_bio_PUBKEY; -+ ASN1_VISIBLESTRING_free; -+ X509_PURPOSE_cleanup; -+ ASN1_mbstring_ncopy; -+ ASN1_GENERALIZEDTIME_new; -+ EVP_PKEY_get1_DH; -+ ASN1_OCTET_STRING_new; -+ ASN1_INTEGER_new; -+ i2d_X509_AUX; -+ ASN1_BIT_STRING_name_print; -+ X509_cmp; -+ ASN1_STRING_length_set; -+ DIRECTORYSTRING_new; -+ X509_add1_trust_object; -+ PKCS12_newpass; -+ SMIME_write_PKCS7; -+ SMIME_read_PKCS7; -+ DES_set_key_checked; -+ PKCS7_verify; -+ PKCS7_encrypt; -+ DES_set_key_unchecked; -+ SMIME_crlf_copy; -+ i2d_ASN1_PRINTABLESTRING; -+ PKCS7_get0_signers; -+ PKCS7_decrypt; -+ SMIME_text; -+ PKCS7_simple_smimecap; -+ PKCS7_get_smimecap; -+ PKCS7_sign; -+ PKCS7_add_attrib_smimecap; -+ CRYPTO_dbg_set_options; -+ CRYPTO_remove_all_info; -+ CRYPTO_get_mem_debug_functions; -+ CRYPTO_is_mem_check_on; -+ CRYPTO_set_mem_debug_functions; -+ CRYPTO_pop_info; -+ CRYPTO_push_info_; -+ CRYPTO_set_mem_debug_options; -+ PEM_write_PKCS8PrivateKey_nid; -+ PEM_write_bio_PKCS8PrivateKey_nid; -+ PEM_write_bio_PKCS8PrivKey_nid; -+ d2i_PKCS8PrivateKey_bio; -+ ASN1_NULL_free; -+ d2i_ASN1_NULL; -+ ASN1_NULL_new; -+ i2d_PKCS8PrivateKey_bio; -+ i2d_PKCS8PrivateKey_fp; -+ i2d_ASN1_NULL; -+ i2d_PKCS8PrivateKey_nid_fp; -+ d2i_PKCS8PrivateKey_fp; -+ i2d_PKCS8PrivateKey_nid_bio; -+ i2d_PKCS8PrivateKeyInfo_fp; -+ i2d_PKCS8PrivateKeyInfo_bio; -+ PEM_cb; -+ i2d_PrivateKey_fp; -+ d2i_PrivateKey_bio; -+ d2i_PrivateKey_fp; -+ i2d_PrivateKey_bio; -+ X509_reject_clear; -+ X509_TRUST_set_default; -+ d2i_AutoPrivateKey; -+ X509_ATTRIBUTE_get0_type; -+ X509_ATTRIBUTE_set1_data; -+ X509at_get_attr; -+ X509at_get_attr_count; -+ X509_ATTRIBUTE_create_by_NID; -+ X509_ATTRIBUTE_set1_object; -+ X509_ATTRIBUTE_count; -+ X509_ATTRIBUTE_create_by_OBJ; -+ X509_ATTRIBUTE_get0_object; -+ X509at_get_attr_by_NID; -+ X509at_add1_attr; -+ X509_ATTRIBUTE_get0_data; -+ X509at_delete_attr; -+ X509at_get_attr_by_OBJ; -+ RAND_add; -+ BIO_number_written; -+ BIO_number_read; -+ X509_STORE_CTX_get1_chain; -+ ERR_load_RAND_strings; -+ RAND_pseudo_bytes; -+ X509_REQ_get_attr_by_NID; -+ X509_REQ_get_attr; -+ X509_REQ_add1_attr_by_NID; -+ X509_REQ_get_attr_by_OBJ; -+ X509at_add1_attr_by_NID; -+ X509_REQ_add1_attr_by_OBJ; -+ X509_REQ_get_attr_count; -+ X509_REQ_add1_attr; -+ X509_REQ_delete_attr; -+ X509at_add1_attr_by_OBJ; -+ X509_REQ_add1_attr_by_txt; -+ X509_ATTRIBUTE_create_by_txt; -+ X509at_add1_attr_by_txt; -+ BN_pseudo_rand; -+ BN_is_prime_fasttest; -+ BN_CTX_end; -+ BN_CTX_start; -+ BN_CTX_get; -+ EVP_PKEY2PKCS8_broken; -+ ASN1_STRING_TABLE_add; -+ CRYPTO_dbg_get_options; -+ AUTHORITY_INFO_ACCESS_new; -+ CRYPTO_get_mem_debug_options; -+ DES_crypt; -+ PEM_write_bio_X509_REQ_NEW; -+ PEM_write_X509_REQ_NEW; -+ BIO_callback_ctrl; -+ RAND_egd; -+ RAND_status; -+ bn_dump1; -+ DES_check_key_parity; -+ lh_num_items; -+ RAND_event; -+ DSO_new; -+ DSO_new_method; -+ DSO_free; -+ DSO_flags; -+ DSO_up; -+ DSO_set_default_method; -+ DSO_get_default_method; -+ DSO_get_method; -+ DSO_set_method; -+ DSO_load; -+ DSO_bind_var; -+ DSO_METHOD_null; -+ DSO_METHOD_openssl; -+ DSO_METHOD_dlfcn; -+ DSO_METHOD_win32; -+ ERR_load_DSO_strings; -+ DSO_METHOD_dl; -+ NCONF_load; -+ NCONF_load_fp; -+ NCONF_new; -+ NCONF_get_string; -+ NCONF_free; -+ NCONF_get_number; -+ CONF_dump_fp; -+ NCONF_load_bio; -+ NCONF_dump_fp; -+ NCONF_get_section; -+ NCONF_dump_bio; -+ CONF_dump_bio; -+ NCONF_free_data; -+ CONF_set_default_method; -+ ERR_error_string_n; -+ BIO_snprintf; -+ DSO_ctrl; -+ i2d_ASN1_SET_OF_ASN1_INTEGER; -+ i2d_ASN1_SET_OF_PKCS12_SAFEBAG; -+ i2d_ASN1_SET_OF_PKCS7; -+ BIO_vfree; -+ d2i_ASN1_SET_OF_ASN1_INTEGER; -+ d2i_ASN1_SET_OF_PKCS12_SAFEBAG; -+ ASN1_UTCTIME_get; -+ X509_REQ_digest; -+ X509_CRL_digest; -+ d2i_ASN1_SET_OF_PKCS7; -+ EVP_CIPHER_CTX_set_key_length; -+ EVP_CIPHER_CTX_ctrl; -+ BN_mod_exp_mont_word; -+ RAND_egd_bytes; -+ X509_REQ_get1_email; -+ X509_get1_email; -+ X509_email_free; -+ i2d_RSA_NET; -+ d2i_RSA_NET_2; -+ d2i_RSA_NET; -+ DSO_bind_func; -+ CRYPTO_get_new_dynlockid; -+ sk_new_null; -+ CRYPTO_set_dynlock_destroy_callback; -+ CRYPTO_set_dynlock_destroy_cb; -+ CRYPTO_destroy_dynlockid; -+ CRYPTO_set_dynlock_size; -+ CRYPTO_set_dynlock_create_callback; -+ CRYPTO_set_dynlock_create_cb; -+ CRYPTO_set_dynlock_lock_callback; -+ CRYPTO_set_dynlock_lock_cb; -+ CRYPTO_get_dynlock_lock_callback; -+ CRYPTO_get_dynlock_lock_cb; -+ CRYPTO_get_dynlock_destroy_callback; -+ CRYPTO_get_dynlock_destroy_cb; -+ CRYPTO_get_dynlock_value; -+ CRYPTO_get_dynlock_create_callback; -+ CRYPTO_get_dynlock_create_cb; -+ c2i_ASN1_BIT_STRING; -+ i2c_ASN1_BIT_STRING; -+ RAND_poll; -+ c2i_ASN1_INTEGER; -+ i2c_ASN1_INTEGER; -+ BIO_dump_indent; -+ ASN1_parse_dump; -+ c2i_ASN1_OBJECT; -+ X509_NAME_print_ex_fp; -+ ASN1_STRING_print_ex_fp; -+ X509_NAME_print_ex; -+ ASN1_STRING_print_ex; -+ MD4; -+ MD4_Transform; -+ MD4_Final; -+ MD4_Update; -+ MD4_Init; -+ EVP_md4; -+ i2d_PUBKEY_bio; -+ i2d_PUBKEY_fp; -+ d2i_PUBKEY_bio; -+ ASN1_STRING_to_UTF8; -+ BIO_vprintf; -+ BIO_vsnprintf; -+ d2i_PUBKEY_fp; -+ X509_cmp_time; -+ X509_STORE_CTX_set_time; -+ X509_STORE_CTX_get1_issuer; -+ X509_OBJECT_retrieve_match; -+ X509_OBJECT_idx_by_subject; -+ X509_STORE_CTX_set_flags; -+ X509_STORE_CTX_trusted_stack; -+ X509_time_adj; -+ X509_check_issued; -+ ASN1_UTCTIME_cmp_time_t; -+ DES_set_weak_key_flag; -+ DES_check_key; -+ DES_rw_mode; -+ RSA_PKCS1_RSAref; -+ X509_keyid_set1; -+ BIO_next; -+ DSO_METHOD_vms; -+ BIO_f_linebuffer; -+ BN_bntest_rand; -+ OPENSSL_issetugid; -+ BN_rand_range; -+ ERR_load_ENGINE_strings; -+ ENGINE_set_DSA; -+ ENGINE_get_finish_function; -+ ENGINE_get_default_RSA; -+ ENGINE_get_BN_mod_exp; -+ DSA_get_default_openssl_method; -+ ENGINE_set_DH; -+ ENGINE_set_def_BN_mod_exp_crt; -+ ENGINE_set_default_BN_mod_exp_crt; -+ ENGINE_init; -+ DH_get_default_openssl_method; -+ RSA_set_default_openssl_method; -+ ENGINE_finish; -+ ENGINE_load_public_key; -+ ENGINE_get_DH; -+ ENGINE_ctrl; -+ ENGINE_get_init_function; -+ ENGINE_set_init_function; -+ ENGINE_set_default_DSA; -+ ENGINE_get_name; -+ ENGINE_get_last; -+ ENGINE_get_prev; -+ ENGINE_get_default_DH; -+ ENGINE_get_RSA; -+ ENGINE_set_default; -+ ENGINE_get_RAND; -+ ENGINE_get_first; -+ ENGINE_by_id; -+ ENGINE_set_finish_function; -+ ENGINE_get_def_BN_mod_exp_crt; -+ ENGINE_get_default_BN_mod_exp_crt; -+ RSA_get_default_openssl_method; -+ ENGINE_set_RSA; -+ ENGINE_load_private_key; -+ ENGINE_set_default_RAND; -+ ENGINE_set_BN_mod_exp; -+ ENGINE_remove; -+ ENGINE_free; -+ ENGINE_get_BN_mod_exp_crt; -+ ENGINE_get_next; -+ ENGINE_set_name; -+ ENGINE_get_default_DSA; -+ ENGINE_set_default_BN_mod_exp; -+ ENGINE_set_default_RSA; -+ ENGINE_get_default_RAND; -+ ENGINE_get_default_BN_mod_exp; -+ ENGINE_set_RAND; -+ ENGINE_set_id; -+ ENGINE_set_BN_mod_exp_crt; -+ ENGINE_set_default_DH; -+ ENGINE_new; -+ ENGINE_get_id; -+ DSA_set_default_openssl_method; -+ ENGINE_add; -+ DH_set_default_openssl_method; -+ ENGINE_get_DSA; -+ ENGINE_get_ctrl_function; -+ ENGINE_set_ctrl_function; -+ BN_pseudo_rand_range; -+ X509_STORE_CTX_set_verify_cb; -+ ERR_load_COMP_strings; -+ PKCS12_item_decrypt_d2i; -+ ASN1_UTF8STRING_it; -+ ENGINE_unregister_ciphers; -+ ENGINE_get_ciphers; -+ d2i_OCSP_BASICRESP; -+ KRB5_CHECKSUM_it; -+ EC_POINT_add; -+ ASN1_item_ex_i2d; -+ OCSP_CERTID_it; -+ d2i_OCSP_RESPBYTES; -+ X509V3_add1_i2d; -+ PKCS7_ENVELOPE_it; -+ UI_add_input_boolean; -+ ENGINE_unregister_RSA; -+ X509V3_EXT_nconf; -+ ASN1_GENERALSTRING_free; -+ d2i_OCSP_CERTSTATUS; -+ X509_REVOKED_set_serialNumber; -+ X509_print_ex; -+ OCSP_ONEREQ_get1_ext_d2i; -+ ENGINE_register_all_RAND; -+ ENGINE_load_dynamic; -+ PBKDF2PARAM_it; -+ EXTENDED_KEY_USAGE_new; -+ EC_GROUP_clear_free; -+ OCSP_sendreq_bio; -+ ASN1_item_digest; -+ OCSP_BASICRESP_delete_ext; -+ OCSP_SIGNATURE_it; -+ X509_CRL_it; -+ OCSP_BASICRESP_add_ext; -+ KRB5_ENCKEY_it; -+ UI_method_set_closer; -+ X509_STORE_set_purpose; -+ i2d_ASN1_GENERALSTRING; -+ OCSP_response_status; -+ i2d_OCSP_SERVICELOC; -+ ENGINE_get_digest_engine; -+ EC_GROUP_set_curve_GFp; -+ OCSP_REQUEST_get_ext_by_OBJ; -+ _ossl_old_des_random_key; -+ ASN1_T61STRING_it; -+ EC_GROUP_method_of; -+ i2d_KRB5_APREQ; -+ _ossl_old_des_encrypt; -+ ASN1_PRINTABLE_new; -+ HMAC_Init_ex; -+ d2i_KRB5_AUTHENT; -+ OCSP_archive_cutoff_new; -+ EC_POINT_set_Jprojective_coordinates_GFp; -+ EC_POINT_set_Jproj_coords_GFp; -+ _ossl_old_des_is_weak_key; -+ OCSP_BASICRESP_get_ext_by_OBJ; -+ EC_POINT_oct2point; -+ OCSP_SINGLERESP_get_ext_count; -+ UI_ctrl; -+ _shadow_DES_rw_mode; -+ asn1_do_adb; -+ ASN1_template_i2d; -+ ENGINE_register_DH; -+ UI_construct_prompt; -+ X509_STORE_set_trust; -+ UI_dup_input_string; -+ d2i_KRB5_APREQ; -+ EVP_MD_CTX_copy_ex; -+ OCSP_request_is_signed; -+ i2d_OCSP_REQINFO; -+ KRB5_ENCKEY_free; -+ OCSP_resp_get0; -+ GENERAL_NAME_it; -+ ASN1_GENERALIZEDTIME_it; -+ X509_STORE_set_flags; -+ EC_POINT_set_compressed_coordinates_GFp; -+ EC_POINT_set_compr_coords_GFp; -+ OCSP_response_status_str; -+ d2i_OCSP_REVOKEDINFO; -+ OCSP_basic_add1_cert; -+ ERR_get_implementation; -+ EVP_CipherFinal_ex; -+ OCSP_CERTSTATUS_new; -+ CRYPTO_cleanup_all_ex_data; -+ OCSP_resp_find; -+ BN_nnmod; -+ X509_CRL_sort; -+ X509_REVOKED_set_revocationDate; -+ ENGINE_register_RAND; -+ OCSP_SERVICELOC_new; -+ EC_POINT_set_affine_coordinates_GFp; -+ EC_POINT_set_affine_coords_GFp; -+ _ossl_old_des_options; -+ SXNET_it; -+ UI_dup_input_boolean; -+ PKCS12_add_CSPName_asc; -+ EC_POINT_is_at_infinity; -+ ENGINE_load_cryptodev; -+ DSO_convert_filename; -+ POLICYQUALINFO_it; -+ ENGINE_register_ciphers; -+ BN_mod_lshift_quick; -+ DSO_set_filename; -+ ASN1_item_free; -+ KRB5_TKTBODY_free; -+ AUTHORITY_KEYID_it; -+ KRB5_APREQBODY_new; -+ X509V3_EXT_REQ_add_nconf; -+ ENGINE_ctrl_cmd_string; -+ i2d_OCSP_RESPDATA; -+ EVP_MD_CTX_init; -+ EXTENDED_KEY_USAGE_free; -+ PKCS7_ATTR_SIGN_it; -+ UI_add_error_string; -+ KRB5_CHECKSUM_free; -+ OCSP_REQUEST_get_ext; -+ ENGINE_load_ubsec; -+ ENGINE_register_all_digests; -+ PKEY_USAGE_PERIOD_it; -+ PKCS12_unpack_authsafes; -+ ASN1_item_unpack; -+ NETSCAPE_SPKAC_it; -+ X509_REVOKED_it; -+ ASN1_STRING_encode; -+ EVP_aes_128_ecb; -+ KRB5_AUTHENT_free; -+ OCSP_BASICRESP_get_ext_by_critical; -+ OCSP_BASICRESP_get_ext_by_crit; -+ OCSP_cert_status_str; -+ d2i_OCSP_REQUEST; -+ UI_dup_info_string; -+ _ossl_old_des_xwhite_in2out; -+ PKCS12_it; -+ OCSP_SINGLERESP_get_ext_by_critical; -+ OCSP_SINGLERESP_get_ext_by_crit; -+ OCSP_CERTSTATUS_free; -+ _ossl_old_des_crypt; -+ ASN1_item_i2d; -+ EVP_DecryptFinal_ex; -+ ENGINE_load_openssl; -+ ENGINE_get_cmd_defns; -+ ENGINE_set_load_privkey_function; -+ ENGINE_set_load_privkey_fn; -+ EVP_EncryptFinal_ex; -+ ENGINE_set_default_digests; -+ X509_get0_pubkey_bitstr; -+ asn1_ex_i2c; -+ ENGINE_register_RSA; -+ ENGINE_unregister_DSA; -+ _ossl_old_des_key_sched; -+ X509_EXTENSION_it; -+ i2d_KRB5_AUTHENT; -+ SXNETID_it; -+ d2i_OCSP_SINGLERESP; -+ EDIPARTYNAME_new; -+ PKCS12_certbag2x509; -+ _ossl_old_des_ofb64_encrypt; -+ d2i_EXTENDED_KEY_USAGE; -+ ERR_print_errors_cb; -+ ENGINE_set_ciphers; -+ d2i_KRB5_APREQBODY; -+ UI_method_get_flusher; -+ X509_PUBKEY_it; -+ _ossl_old_des_enc_read; -+ PKCS7_ENCRYPT_it; -+ i2d_OCSP_RESPONSE; -+ EC_GROUP_get_cofactor; -+ PKCS12_unpack_p7data; -+ d2i_KRB5_AUTHDATA; -+ OCSP_copy_nonce; -+ KRB5_AUTHDATA_new; -+ OCSP_RESPDATA_new; -+ EC_GFp_mont_method; -+ OCSP_REVOKEDINFO_free; -+ UI_get_ex_data; -+ KRB5_APREQBODY_free; -+ EC_GROUP_get0_generator; -+ UI_get_default_method; -+ X509V3_set_nconf; -+ PKCS12_item_i2d_encrypt; -+ X509_add1_ext_i2d; -+ PKCS7_SIGNER_INFO_it; -+ KRB5_PRINCNAME_new; -+ PKCS12_SAFEBAG_it; -+ EC_GROUP_get_order; -+ d2i_OCSP_RESPID; -+ OCSP_request_verify; -+ NCONF_get_number_e; -+ _ossl_old_des_decrypt3; -+ X509_signature_print; -+ OCSP_SINGLERESP_free; -+ ENGINE_load_builtin_engines; -+ i2d_OCSP_ONEREQ; -+ OCSP_REQUEST_add_ext; -+ OCSP_RESPBYTES_new; -+ EVP_MD_CTX_create; -+ OCSP_resp_find_status; -+ X509_ALGOR_it; -+ ASN1_TIME_it; -+ OCSP_request_set1_name; -+ OCSP_ONEREQ_get_ext_count; -+ UI_get0_result; -+ PKCS12_AUTHSAFES_it; -+ EVP_aes_256_ecb; -+ PKCS12_pack_authsafes; -+ ASN1_IA5STRING_it; -+ UI_get_input_flags; -+ EC_GROUP_set_generator; -+ _ossl_old_des_string_to_2keys; -+ OCSP_CERTID_free; -+ X509_CERT_AUX_it; -+ CERTIFICATEPOLICIES_it; -+ _ossl_old_des_ede3_cbc_encrypt; -+ RAND_set_rand_engine; -+ DSO_get_loaded_filename; -+ X509_ATTRIBUTE_it; -+ OCSP_ONEREQ_get_ext_by_NID; -+ PKCS12_decrypt_skey; -+ KRB5_AUTHENT_it; -+ UI_dup_error_string; -+ RSAPublicKey_it; -+ i2d_OCSP_REQUEST; -+ PKCS12_x509crl2certbag; -+ OCSP_SERVICELOC_it; -+ ASN1_item_sign; -+ X509_CRL_set_issuer_name; -+ OBJ_NAME_do_all_sorted; -+ i2d_OCSP_BASICRESP; -+ i2d_OCSP_RESPBYTES; -+ PKCS12_unpack_p7encdata; -+ HMAC_CTX_init; -+ ENGINE_get_digest; -+ OCSP_RESPONSE_print; -+ KRB5_TKTBODY_it; -+ ACCESS_DESCRIPTION_it; -+ PKCS7_ISSUER_AND_SERIAL_it; -+ PBE2PARAM_it; -+ PKCS12_certbag2x509crl; -+ PKCS7_SIGNED_it; -+ ENGINE_get_cipher; -+ i2d_OCSP_CRLID; -+ OCSP_SINGLERESP_new; -+ ENGINE_cmd_is_executable; -+ RSA_up_ref; -+ ASN1_GENERALSTRING_it; -+ ENGINE_register_DSA; -+ X509V3_EXT_add_nconf_sk; -+ ENGINE_set_load_pubkey_function; -+ PKCS8_decrypt; -+ PEM_bytes_read_bio; -+ DIRECTORYSTRING_it; -+ d2i_OCSP_CRLID; -+ EC_POINT_is_on_curve; -+ CRYPTO_set_locked_mem_ex_functions; -+ CRYPTO_set_locked_mem_ex_funcs; -+ d2i_KRB5_CHECKSUM; -+ ASN1_item_dup; -+ X509_it; -+ BN_mod_add; -+ KRB5_AUTHDATA_free; -+ _ossl_old_des_cbc_cksum; -+ ASN1_item_verify; -+ CRYPTO_set_mem_ex_functions; -+ EC_POINT_get_Jprojective_coordinates_GFp; -+ EC_POINT_get_Jproj_coords_GFp; -+ ZLONG_it; -+ CRYPTO_get_locked_mem_ex_functions; -+ CRYPTO_get_locked_mem_ex_funcs; -+ ASN1_TIME_check; -+ UI_get0_user_data; -+ HMAC_CTX_cleanup; -+ DSA_up_ref; -+ _ossl_old_des_ede3_cfb64_encrypt; -+ _ossl_odes_ede3_cfb64_encrypt; -+ ASN1_BMPSTRING_it; -+ ASN1_tag2bit; -+ UI_method_set_flusher; -+ X509_ocspid_print; -+ KRB5_ENCDATA_it; -+ ENGINE_get_load_pubkey_function; -+ UI_add_user_data; -+ OCSP_REQUEST_delete_ext; -+ UI_get_method; -+ OCSP_ONEREQ_free; -+ ASN1_PRINTABLESTRING_it; -+ X509_CRL_set_nextUpdate; -+ OCSP_REQUEST_it; -+ OCSP_BASICRESP_it; -+ AES_ecb_encrypt; -+ BN_mod_sqr; -+ NETSCAPE_CERT_SEQUENCE_it; -+ GENERAL_NAMES_it; -+ AUTHORITY_INFO_ACCESS_it; -+ ASN1_FBOOLEAN_it; -+ UI_set_ex_data; -+ _ossl_old_des_string_to_key; -+ ENGINE_register_all_RSA; -+ d2i_KRB5_PRINCNAME; -+ OCSP_RESPBYTES_it; -+ X509_CINF_it; -+ ENGINE_unregister_digests; -+ d2i_EDIPARTYNAME; -+ d2i_OCSP_SERVICELOC; -+ ENGINE_get_digests; -+ _ossl_old_des_set_odd_parity; -+ OCSP_RESPDATA_free; -+ d2i_KRB5_TICKET; -+ OTHERNAME_it; -+ EVP_MD_CTX_cleanup; -+ d2i_ASN1_GENERALSTRING; -+ X509_CRL_set_version; -+ BN_mod_sub; -+ OCSP_SINGLERESP_get_ext_by_NID; -+ ENGINE_get_ex_new_index; -+ OCSP_REQUEST_free; -+ OCSP_REQUEST_add1_ext_i2d; -+ X509_VAL_it; -+ EC_POINTs_make_affine; -+ EC_POINT_mul; -+ X509V3_EXT_add_nconf; -+ X509_TRUST_set; -+ X509_CRL_add1_ext_i2d; -+ _ossl_old_des_fcrypt; -+ DISPLAYTEXT_it; -+ X509_CRL_set_lastUpdate; -+ OCSP_BASICRESP_free; -+ OCSP_BASICRESP_add1_ext_i2d; -+ d2i_KRB5_AUTHENTBODY; -+ CRYPTO_set_ex_data_implementation; -+ CRYPTO_set_ex_data_impl; -+ KRB5_ENCDATA_new; -+ DSO_up_ref; -+ OCSP_crl_reason_str; -+ UI_get0_result_string; -+ ASN1_GENERALSTRING_new; -+ X509_SIG_it; -+ ERR_set_implementation; -+ ERR_load_EC_strings; -+ UI_get0_action_string; -+ OCSP_ONEREQ_get_ext; -+ EC_POINT_method_of; -+ i2d_KRB5_APREQBODY; -+ _ossl_old_des_ecb3_encrypt; -+ CRYPTO_get_mem_ex_functions; -+ ENGINE_get_ex_data; -+ UI_destroy_method; -+ ASN1_item_i2d_bio; -+ OCSP_ONEREQ_get_ext_by_OBJ; -+ ASN1_primitive_new; -+ ASN1_PRINTABLE_it; -+ EVP_aes_192_ecb; -+ OCSP_SIGNATURE_new; -+ LONG_it; -+ ASN1_VISIBLESTRING_it; -+ OCSP_SINGLERESP_add1_ext_i2d; -+ d2i_OCSP_CERTID; -+ ASN1_item_d2i_fp; -+ CRL_DIST_POINTS_it; -+ GENERAL_NAME_print; -+ OCSP_SINGLERESP_delete_ext; -+ PKCS12_SAFEBAGS_it; -+ d2i_OCSP_SIGNATURE; -+ OCSP_request_add1_nonce; -+ ENGINE_set_cmd_defns; -+ OCSP_SERVICELOC_free; -+ EC_GROUP_free; -+ ASN1_BIT_STRING_it; -+ X509_REQ_it; -+ _ossl_old_des_cbc_encrypt; -+ ERR_unload_strings; -+ PKCS7_SIGN_ENVELOPE_it; -+ EDIPARTYNAME_free; -+ OCSP_REQINFO_free; -+ EC_GROUP_new_curve_GFp; -+ OCSP_REQUEST_get1_ext_d2i; -+ PKCS12_item_pack_safebag; -+ asn1_ex_c2i; -+ ENGINE_register_digests; -+ i2d_OCSP_REVOKEDINFO; -+ asn1_enc_restore; -+ UI_free; -+ UI_new_method; -+ EVP_EncryptInit_ex; -+ X509_pubkey_digest; -+ EC_POINT_invert; -+ OCSP_basic_sign; -+ i2d_OCSP_RESPID; -+ OCSP_check_nonce; -+ ENGINE_ctrl_cmd; -+ d2i_KRB5_ENCKEY; -+ OCSP_parse_url; -+ OCSP_SINGLERESP_get_ext; -+ OCSP_CRLID_free; -+ OCSP_BASICRESP_get1_ext_d2i; -+ RSAPrivateKey_it; -+ ENGINE_register_all_DH; -+ i2d_EDIPARTYNAME; -+ EC_POINT_get_affine_coordinates_GFp; -+ EC_POINT_get_affine_coords_GFp; -+ OCSP_CRLID_new; -+ ENGINE_get_flags; -+ OCSP_ONEREQ_it; -+ UI_process; -+ ASN1_INTEGER_it; -+ EVP_CipherInit_ex; -+ UI_get_string_type; -+ ENGINE_unregister_DH; -+ ENGINE_register_all_DSA; -+ OCSP_ONEREQ_get_ext_by_critical; -+ bn_dup_expand; -+ OCSP_cert_id_new; -+ BASIC_CONSTRAINTS_it; -+ BN_mod_add_quick; -+ EC_POINT_new; -+ EVP_MD_CTX_destroy; -+ OCSP_RESPBYTES_free; -+ EVP_aes_128_cbc; -+ OCSP_SINGLERESP_get1_ext_d2i; -+ EC_POINT_free; -+ DH_up_ref; -+ X509_NAME_ENTRY_it; -+ UI_get_ex_new_index; -+ BN_mod_sub_quick; -+ OCSP_ONEREQ_add_ext; -+ OCSP_request_sign; -+ EVP_DigestFinal_ex; -+ ENGINE_set_digests; -+ OCSP_id_issuer_cmp; -+ OBJ_NAME_do_all; -+ EC_POINTs_mul; -+ ENGINE_register_complete; -+ X509V3_EXT_nconf_nid; -+ ASN1_SEQUENCE_it; -+ UI_set_default_method; -+ RAND_query_egd_bytes; -+ UI_method_get_writer; -+ UI_OpenSSL; -+ PEM_def_callback; -+ ENGINE_cleanup; -+ DIST_POINT_it; -+ OCSP_SINGLERESP_it; -+ d2i_KRB5_TKTBODY; -+ EC_POINT_cmp; -+ OCSP_REVOKEDINFO_new; -+ i2d_OCSP_CERTSTATUS; -+ OCSP_basic_add1_nonce; -+ ASN1_item_ex_d2i; -+ BN_mod_lshift1_quick; -+ UI_set_method; -+ OCSP_id_get0_info; -+ BN_mod_sqrt; -+ EC_GROUP_copy; -+ KRB5_ENCDATA_free; -+ _ossl_old_des_cfb_encrypt; -+ OCSP_SINGLERESP_get_ext_by_OBJ; -+ OCSP_cert_to_id; -+ OCSP_RESPID_new; -+ OCSP_RESPDATA_it; -+ d2i_OCSP_RESPDATA; -+ ENGINE_register_all_complete; -+ OCSP_check_validity; -+ PKCS12_BAGS_it; -+ OCSP_url_svcloc_new; -+ ASN1_template_free; -+ OCSP_SINGLERESP_add_ext; -+ KRB5_AUTHENTBODY_it; -+ X509_supported_extension; -+ i2d_KRB5_AUTHDATA; -+ UI_method_get_opener; -+ ENGINE_set_ex_data; -+ OCSP_REQUEST_print; -+ CBIGNUM_it; -+ KRB5_TICKET_new; -+ KRB5_APREQ_new; -+ EC_GROUP_get_curve_GFp; -+ KRB5_ENCKEY_new; -+ ASN1_template_d2i; -+ _ossl_old_des_quad_cksum; -+ OCSP_single_get0_status; -+ BN_swap; -+ POLICYINFO_it; -+ ENGINE_set_destroy_function; -+ asn1_enc_free; -+ OCSP_RESPID_it; -+ EC_GROUP_new; -+ EVP_aes_256_cbc; -+ i2d_KRB5_PRINCNAME; -+ _ossl_old_des_encrypt2; -+ _ossl_old_des_encrypt3; -+ PKCS8_PRIV_KEY_INFO_it; -+ OCSP_REQINFO_it; -+ PBEPARAM_it; -+ KRB5_AUTHENTBODY_new; -+ X509_CRL_add0_revoked; -+ EDIPARTYNAME_it; -+ NETSCAPE_SPKI_it; -+ UI_get0_test_string; -+ ENGINE_get_cipher_engine; -+ ENGINE_register_all_ciphers; -+ EC_POINT_copy; -+ BN_kronecker; -+ _ossl_old_des_ede3_ofb64_encrypt; -+ _ossl_odes_ede3_ofb64_encrypt; -+ UI_method_get_reader; -+ OCSP_BASICRESP_get_ext_count; -+ ASN1_ENUMERATED_it; -+ UI_set_result; -+ i2d_KRB5_TICKET; -+ X509_print_ex_fp; -+ EVP_CIPHER_CTX_set_padding; -+ d2i_OCSP_RESPONSE; -+ ASN1_UTCTIME_it; -+ _ossl_old_des_enc_write; -+ OCSP_RESPONSE_new; -+ AES_set_encrypt_key; -+ OCSP_resp_count; -+ KRB5_CHECKSUM_new; -+ ENGINE_load_cswift; -+ OCSP_onereq_get0_id; -+ ENGINE_set_default_ciphers; -+ NOTICEREF_it; -+ X509V3_EXT_CRL_add_nconf; -+ OCSP_REVOKEDINFO_it; -+ AES_encrypt; -+ OCSP_REQUEST_new; -+ ASN1_ANY_it; -+ CRYPTO_ex_data_new_class; -+ _ossl_old_des_ncbc_encrypt; -+ i2d_KRB5_TKTBODY; -+ EC_POINT_clear_free; -+ AES_decrypt; -+ asn1_enc_init; -+ UI_get_result_maxsize; -+ OCSP_CERTID_new; -+ ENGINE_unregister_RAND; -+ UI_method_get_closer; -+ d2i_KRB5_ENCDATA; -+ OCSP_request_onereq_count; -+ OCSP_basic_verify; -+ KRB5_AUTHENTBODY_free; -+ ASN1_item_d2i; -+ ASN1_primitive_free; -+ i2d_EXTENDED_KEY_USAGE; -+ i2d_OCSP_SIGNATURE; -+ asn1_enc_save; -+ ENGINE_load_nuron; -+ _ossl_old_des_pcbc_encrypt; -+ PKCS12_MAC_DATA_it; -+ OCSP_accept_responses_new; -+ asn1_do_lock; -+ PKCS7_ATTR_VERIFY_it; -+ KRB5_APREQBODY_it; -+ i2d_OCSP_SINGLERESP; -+ ASN1_item_ex_new; -+ UI_add_verify_string; -+ _ossl_old_des_set_key; -+ KRB5_PRINCNAME_it; -+ EVP_DecryptInit_ex; -+ i2d_OCSP_CERTID; -+ ASN1_item_d2i_bio; -+ EC_POINT_dbl; -+ asn1_get_choice_selector; -+ i2d_KRB5_CHECKSUM; -+ ENGINE_set_table_flags; -+ AES_options; -+ ENGINE_load_chil; -+ OCSP_id_cmp; -+ OCSP_BASICRESP_new; -+ OCSP_REQUEST_get_ext_by_NID; -+ KRB5_APREQ_it; -+ ENGINE_get_destroy_function; -+ CONF_set_nconf; -+ ASN1_PRINTABLE_free; -+ OCSP_BASICRESP_get_ext_by_NID; -+ DIST_POINT_NAME_it; -+ X509V3_extensions_print; -+ _ossl_old_des_cfb64_encrypt; -+ X509_REVOKED_add1_ext_i2d; -+ _ossl_old_des_ofb_encrypt; -+ KRB5_TKTBODY_new; -+ ASN1_OCTET_STRING_it; -+ ERR_load_UI_strings; -+ i2d_KRB5_ENCKEY; -+ ASN1_template_new; -+ OCSP_SIGNATURE_free; -+ ASN1_item_i2d_fp; -+ KRB5_PRINCNAME_free; -+ PKCS7_RECIP_INFO_it; -+ EXTENDED_KEY_USAGE_it; -+ EC_GFp_simple_method; -+ EC_GROUP_precompute_mult; -+ OCSP_request_onereq_get0; -+ UI_method_set_writer; -+ KRB5_AUTHENT_new; -+ X509_CRL_INFO_it; -+ DSO_set_name_converter; -+ AES_set_decrypt_key; -+ PKCS7_DIGEST_it; -+ PKCS12_x5092certbag; -+ EVP_DigestInit_ex; -+ i2a_ACCESS_DESCRIPTION; -+ OCSP_RESPONSE_it; -+ PKCS7_ENC_CONTENT_it; -+ OCSP_request_add0_id; -+ EC_POINT_make_affine; -+ DSO_get_filename; -+ OCSP_CERTSTATUS_it; -+ OCSP_request_add1_cert; -+ UI_get0_output_string; -+ UI_dup_verify_string; -+ BN_mod_lshift; -+ KRB5_AUTHDATA_it; -+ asn1_set_choice_selector; -+ OCSP_basic_add1_status; -+ OCSP_RESPID_free; -+ asn1_get_field_ptr; -+ UI_add_input_string; -+ OCSP_CRLID_it; -+ i2d_KRB5_AUTHENTBODY; -+ OCSP_REQUEST_get_ext_count; -+ ENGINE_load_atalla; -+ X509_NAME_it; -+ USERNOTICE_it; -+ OCSP_REQINFO_new; -+ OCSP_BASICRESP_get_ext; -+ CRYPTO_get_ex_data_implementation; -+ CRYPTO_get_ex_data_impl; -+ ASN1_item_pack; -+ i2d_KRB5_ENCDATA; -+ X509_PURPOSE_set; -+ X509_REQ_INFO_it; -+ UI_method_set_opener; -+ ASN1_item_ex_free; -+ ASN1_BOOLEAN_it; -+ ENGINE_get_table_flags; -+ UI_create_method; -+ OCSP_ONEREQ_add1_ext_i2d; -+ _shadow_DES_check_key; -+ d2i_OCSP_REQINFO; -+ UI_add_info_string; -+ UI_get_result_minsize; -+ ASN1_NULL_it; -+ BN_mod_lshift1; -+ d2i_OCSP_ONEREQ; -+ OCSP_ONEREQ_new; -+ KRB5_TICKET_it; -+ EVP_aes_192_cbc; -+ KRB5_TICKET_free; -+ UI_new; -+ OCSP_response_create; -+ _ossl_old_des_xcbc_encrypt; -+ PKCS7_it; -+ OCSP_REQUEST_get_ext_by_critical; -+ OCSP_REQUEST_get_ext_by_crit; -+ ENGINE_set_flags; -+ _ossl_old_des_ecb_encrypt; -+ OCSP_response_get1_basic; -+ EVP_Digest; -+ OCSP_ONEREQ_delete_ext; -+ ASN1_TBOOLEAN_it; -+ ASN1_item_new; -+ ASN1_TIME_to_generalizedtime; -+ BIGNUM_it; -+ AES_cbc_encrypt; -+ ENGINE_get_load_privkey_function; -+ ENGINE_get_load_privkey_fn; -+ OCSP_RESPONSE_free; -+ UI_method_set_reader; -+ i2d_ASN1_T61STRING; -+ EC_POINT_set_to_infinity; -+ ERR_load_OCSP_strings; -+ EC_POINT_point2oct; -+ KRB5_APREQ_free; -+ ASN1_OBJECT_it; -+ OCSP_crlID_new; -+ OCSP_crlID2_new; -+ CONF_modules_load_file; -+ CONF_imodule_set_usr_data; -+ ENGINE_set_default_string; -+ CONF_module_get_usr_data; -+ ASN1_add_oid_module; -+ CONF_modules_finish; -+ OPENSSL_config; -+ CONF_modules_unload; -+ CONF_imodule_get_value; -+ CONF_module_set_usr_data; -+ CONF_parse_list; -+ CONF_module_add; -+ CONF_get1_default_config_file; -+ CONF_imodule_get_flags; -+ CONF_imodule_get_module; -+ CONF_modules_load; -+ CONF_imodule_get_name; -+ ERR_peek_top_error; -+ CONF_imodule_get_usr_data; -+ CONF_imodule_set_flags; -+ ENGINE_add_conf_module; -+ ERR_peek_last_error_line; -+ ERR_peek_last_error_line_data; -+ ERR_peek_last_error; -+ DES_read_2passwords; -+ DES_read_password; -+ UI_UTIL_read_pw; -+ UI_UTIL_read_pw_string; -+ ENGINE_load_aep; -+ ENGINE_load_sureware; -+ OPENSSL_add_all_algorithms_noconf; -+ OPENSSL_add_all_algo_noconf; -+ OPENSSL_add_all_algorithms_conf; -+ OPENSSL_add_all_algo_conf; -+ OPENSSL_load_builtin_modules; -+ AES_ofb128_encrypt; -+ AES_ctr128_encrypt; -+ AES_cfb128_encrypt; -+ ENGINE_load_4758cca; -+ _ossl_096_des_random_seed; -+ EVP_aes_256_ofb; -+ EVP_aes_192_ofb; -+ EVP_aes_128_cfb128; -+ EVP_aes_256_cfb128; -+ EVP_aes_128_ofb; -+ EVP_aes_192_cfb128; -+ CONF_modules_free; -+ NCONF_default; -+ OPENSSL_no_config; -+ NCONF_WIN32; -+ ASN1_UNIVERSALSTRING_new; -+ EVP_des_ede_ecb; -+ i2d_ASN1_UNIVERSALSTRING; -+ ASN1_UNIVERSALSTRING_free; -+ ASN1_UNIVERSALSTRING_it; -+ d2i_ASN1_UNIVERSALSTRING; -+ EVP_des_ede3_ecb; -+ X509_REQ_print_ex; -+ ENGINE_up_ref; -+ BUF_MEM_grow_clean; -+ CRYPTO_realloc_clean; -+ BUF_strlcat; -+ BIO_indent; -+ BUF_strlcpy; -+ OpenSSLDie; -+ OPENSSL_cleanse; -+ ENGINE_setup_bsd_cryptodev; -+ ERR_release_err_state_table; -+ EVP_aes_128_cfb8; -+ FIPS_corrupt_rsa; -+ FIPS_selftest_des; -+ EVP_aes_128_cfb1; -+ EVP_aes_192_cfb8; -+ FIPS_mode_set; -+ FIPS_selftest_dsa; -+ EVP_aes_256_cfb8; -+ FIPS_allow_md5; -+ DES_ede3_cfb_encrypt; -+ EVP_des_ede3_cfb8; -+ FIPS_rand_seeded; -+ AES_cfbr_encrypt_block; -+ AES_cfb8_encrypt; -+ FIPS_rand_seed; -+ FIPS_corrupt_des; -+ EVP_aes_192_cfb1; -+ FIPS_selftest_aes; -+ FIPS_set_prng_key; -+ EVP_des_cfb8; -+ FIPS_corrupt_dsa; -+ FIPS_test_mode; -+ FIPS_rand_method; -+ EVP_aes_256_cfb1; -+ ERR_load_FIPS_strings; -+ FIPS_corrupt_aes; -+ FIPS_selftest_sha1; -+ FIPS_selftest_rsa; -+ FIPS_corrupt_sha1; -+ EVP_des_cfb1; -+ FIPS_dsa_check; -+ AES_cfb1_encrypt; -+ EVP_des_ede3_cfb1; -+ FIPS_rand_check; -+ FIPS_md5_allowed; -+ FIPS_mode; -+ FIPS_selftest_failed; -+ sk_is_sorted; -+ X509_check_ca; -+ HMAC_CTX_set_flags; -+ d2i_PROXY_CERT_INFO_EXTENSION; -+ PROXY_POLICY_it; -+ i2d_PROXY_POLICY; -+ i2d_PROXY_CERT_INFO_EXTENSION; -+ d2i_PROXY_POLICY; -+ PROXY_CERT_INFO_EXTENSION_new; -+ PROXY_CERT_INFO_EXTENSION_free; -+ PROXY_CERT_INFO_EXTENSION_it; -+ PROXY_POLICY_free; -+ PROXY_POLICY_new; -+ BN_MONT_CTX_set_locked; -+ FIPS_selftest_rng; -+ EVP_sha384; -+ EVP_sha512; -+ EVP_sha224; -+ EVP_sha256; -+ FIPS_selftest_hmac; -+ FIPS_corrupt_rng; -+ BN_mod_exp_mont_consttime; -+ RSA_X931_hash_id; -+ RSA_padding_check_X931; -+ RSA_verify_PKCS1_PSS; -+ RSA_padding_add_X931; -+ RSA_padding_add_PKCS1_PSS; -+ PKCS1_MGF1; -+ BN_X931_generate_Xpq; -+ RSA_X931_generate_key; -+ BN_X931_derive_prime; -+ BN_X931_generate_prime; -+ RSA_X931_derive; -+ BIO_new_dgram; -+ BN_get0_nist_prime_384; -+ ERR_set_mark; -+ X509_STORE_CTX_set0_crls; -+ ENGINE_set_STORE; -+ ENGINE_register_ECDSA; -+ STORE_meth_set_list_start_fn; -+ STORE_method_set_list_start_function; -+ BN_BLINDING_invert_ex; -+ NAME_CONSTRAINTS_free; -+ STORE_ATTR_INFO_set_number; -+ BN_BLINDING_get_thread_id; -+ X509_STORE_CTX_set0_param; -+ POLICY_MAPPING_it; -+ STORE_parse_attrs_start; -+ POLICY_CONSTRAINTS_free; -+ EVP_PKEY_add1_attr_by_NID; -+ BN_nist_mod_192; -+ EC_GROUP_get_trinomial_basis; -+ STORE_set_method; -+ GENERAL_SUBTREE_free; -+ NAME_CONSTRAINTS_it; -+ ECDH_get_default_method; -+ PKCS12_add_safe; -+ EC_KEY_new_by_curve_name; -+ STORE_meth_get_update_store_fn; -+ STORE_method_get_update_store_function; -+ ENGINE_register_ECDH; -+ SHA512_Update; -+ i2d_ECPrivateKey; -+ BN_get0_nist_prime_192; -+ STORE_modify_certificate; -+ EC_POINT_set_affine_coordinates_GF2m; -+ EC_POINT_set_affine_coords_GF2m; -+ BN_GF2m_mod_exp_arr; -+ STORE_ATTR_INFO_modify_number; -+ X509_keyid_get0; -+ ENGINE_load_gmp; -+ pitem_new; -+ BN_GF2m_mod_mul_arr; -+ STORE_list_public_key_endp; -+ o2i_ECPublicKey; -+ EC_KEY_copy; -+ BIO_dump_fp; -+ X509_policy_node_get0_parent; -+ EC_GROUP_check_discriminant; -+ i2o_ECPublicKey; -+ EC_KEY_precompute_mult; -+ a2i_IPADDRESS; -+ STORE_meth_set_initialise_fn; -+ STORE_method_set_initialise_function; -+ X509_STORE_CTX_set_depth; -+ X509_VERIFY_PARAM_inherit; -+ EC_POINT_point2bn; -+ STORE_ATTR_INFO_set_dn; -+ X509_policy_tree_get0_policies; -+ EC_GROUP_new_curve_GF2m; -+ STORE_destroy_method; -+ ENGINE_unregister_STORE; -+ EVP_PKEY_get1_EC_KEY; -+ STORE_ATTR_INFO_get0_number; -+ ENGINE_get_default_ECDH; -+ EC_KEY_get_conv_form; -+ ASN1_OCTET_STRING_NDEF_it; -+ STORE_delete_public_key; -+ STORE_get_public_key; -+ STORE_modify_arbitrary; -+ ENGINE_get_static_state; -+ pqueue_iterator; -+ ECDSA_SIG_new; -+ OPENSSL_DIR_end; -+ BN_GF2m_mod_sqr; -+ EC_POINT_bn2point; -+ X509_VERIFY_PARAM_set_depth; -+ EC_KEY_set_asn1_flag; -+ STORE_get_method; -+ EC_KEY_get_key_method_data; -+ ECDSA_sign_ex; -+ STORE_parse_attrs_end; -+ EC_GROUP_get_point_conversion_form; -+ EC_GROUP_get_point_conv_form; -+ STORE_method_set_store_function; -+ STORE_ATTR_INFO_in; -+ PEM_read_bio_ECPKParameters; -+ EC_GROUP_get_pentanomial_basis; -+ EVP_PKEY_add1_attr_by_txt; -+ BN_BLINDING_set_flags; -+ X509_VERIFY_PARAM_set1_policies; -+ X509_VERIFY_PARAM_set1_name; -+ X509_VERIFY_PARAM_set_purpose; -+ STORE_get_number; -+ ECDSA_sign_setup; -+ BN_GF2m_mod_solve_quad_arr; -+ EC_KEY_up_ref; -+ POLICY_MAPPING_free; -+ BN_GF2m_mod_div; -+ X509_VERIFY_PARAM_set_flags; -+ EC_KEY_free; -+ STORE_meth_set_list_next_fn; -+ STORE_method_set_list_next_function; -+ PEM_write_bio_ECPrivateKey; -+ d2i_EC_PUBKEY; -+ STORE_meth_get_generate_fn; -+ STORE_method_get_generate_function; -+ STORE_meth_set_list_end_fn; -+ STORE_method_set_list_end_function; -+ pqueue_print; -+ EC_GROUP_have_precompute_mult; -+ EC_KEY_print_fp; -+ BN_GF2m_mod_arr; -+ PEM_write_bio_X509_CERT_PAIR; -+ EVP_PKEY_cmp; -+ X509_policy_level_node_count; -+ STORE_new_engine; -+ STORE_list_public_key_start; -+ X509_VERIFY_PARAM_new; -+ ECDH_get_ex_data; -+ EVP_PKEY_get_attr; -+ ECDSA_do_sign; -+ ENGINE_unregister_ECDH; -+ ECDH_OpenSSL; -+ EC_KEY_set_conv_form; -+ EC_POINT_dup; -+ GENERAL_SUBTREE_new; -+ STORE_list_crl_endp; -+ EC_get_builtin_curves; -+ X509_policy_node_get0_qualifiers; -+ X509_pcy_node_get0_qualifiers; -+ STORE_list_crl_end; -+ EVP_PKEY_set1_EC_KEY; -+ BN_GF2m_mod_sqrt_arr; -+ i2d_ECPrivateKey_bio; -+ ECPKParameters_print_fp; -+ pqueue_find; -+ ECDSA_SIG_free; -+ PEM_write_bio_ECPKParameters; -+ STORE_method_set_ctrl_function; -+ STORE_list_public_key_end; -+ EC_KEY_set_private_key; -+ pqueue_peek; -+ STORE_get_arbitrary; -+ STORE_store_crl; -+ X509_policy_node_get0_policy; -+ PKCS12_add_safes; -+ BN_BLINDING_convert_ex; -+ X509_policy_tree_free; -+ OPENSSL_ia32cap_loc; -+ BN_GF2m_poly2arr; -+ STORE_ctrl; -+ STORE_ATTR_INFO_compare; -+ BN_get0_nist_prime_224; -+ i2d_ECParameters; -+ i2d_ECPKParameters; -+ BN_GENCB_call; -+ d2i_ECPKParameters; -+ STORE_meth_set_generate_fn; -+ STORE_method_set_generate_function; -+ ENGINE_set_ECDH; -+ NAME_CONSTRAINTS_new; -+ SHA256_Init; -+ EC_KEY_get0_public_key; -+ PEM_write_bio_EC_PUBKEY; -+ STORE_ATTR_INFO_set_cstr; -+ STORE_list_crl_next; -+ STORE_ATTR_INFO_in_range; -+ ECParameters_print; -+ STORE_meth_set_delete_fn; -+ STORE_method_set_delete_function; -+ STORE_list_certificate_next; -+ ASN1_generate_nconf; -+ BUF_memdup; -+ BN_GF2m_mod_mul; -+ STORE_meth_get_list_next_fn; -+ STORE_method_get_list_next_function; -+ STORE_ATTR_INFO_get0_dn; -+ STORE_list_private_key_next; -+ EC_GROUP_set_seed; -+ X509_VERIFY_PARAM_set_trust; -+ STORE_ATTR_INFO_free; -+ STORE_get_private_key; -+ EVP_PKEY_get_attr_count; -+ STORE_ATTR_INFO_new; -+ EC_GROUP_get_curve_GF2m; -+ STORE_meth_set_revoke_fn; -+ STORE_method_set_revoke_function; -+ STORE_store_number; -+ BN_is_prime_ex; -+ STORE_revoke_public_key; -+ X509_STORE_CTX_get0_param; -+ STORE_delete_arbitrary; -+ PEM_read_X509_CERT_PAIR; -+ X509_STORE_set_depth; -+ ECDSA_get_ex_data; -+ SHA224; -+ BIO_dump_indent_fp; -+ EC_KEY_set_group; -+ BUF_strndup; -+ STORE_list_certificate_start; -+ BN_GF2m_mod; -+ X509_REQ_check_private_key; -+ EC_GROUP_get_seed_len; -+ ERR_load_STORE_strings; -+ PEM_read_bio_EC_PUBKEY; -+ STORE_list_private_key_end; -+ i2d_EC_PUBKEY; -+ ECDSA_get_default_method; -+ ASN1_put_eoc; -+ X509_STORE_CTX_get_explicit_policy; -+ X509_STORE_CTX_get_expl_policy; -+ X509_VERIFY_PARAM_table_cleanup; -+ STORE_modify_private_key; -+ X509_VERIFY_PARAM_free; -+ EC_METHOD_get_field_type; -+ EC_GFp_nist_method; -+ STORE_meth_set_modify_fn; -+ STORE_method_set_modify_function; -+ STORE_parse_attrs_next; -+ ENGINE_load_padlock; -+ EC_GROUP_set_curve_name; -+ X509_CERT_PAIR_it; -+ STORE_meth_get_revoke_fn; -+ STORE_method_get_revoke_function; -+ STORE_method_set_get_function; -+ STORE_modify_number; -+ STORE_method_get_store_function; -+ STORE_store_private_key; -+ BN_GF2m_mod_sqr_arr; -+ RSA_setup_blinding; -+ BIO_s_datagram; -+ STORE_Memory; -+ sk_find_ex; -+ EC_GROUP_set_curve_GF2m; -+ ENGINE_set_default_ECDSA; -+ POLICY_CONSTRAINTS_new; -+ BN_GF2m_mod_sqrt; -+ ECDH_set_default_method; -+ EC_KEY_generate_key; -+ SHA384_Update; -+ BN_GF2m_arr2poly; -+ STORE_method_get_get_function; -+ STORE_meth_set_cleanup_fn; -+ STORE_method_set_cleanup_function; -+ EC_GROUP_check; -+ d2i_ECPrivateKey_bio; -+ EC_KEY_insert_key_method_data; -+ STORE_meth_get_lock_store_fn; -+ STORE_method_get_lock_store_function; -+ X509_VERIFY_PARAM_get_depth; -+ SHA224_Final; -+ STORE_meth_set_update_store_fn; -+ STORE_method_set_update_store_function; -+ SHA224_Update; -+ d2i_ECPrivateKey; -+ ASN1_item_ndef_i2d; -+ STORE_delete_private_key; -+ ERR_pop_to_mark; -+ ENGINE_register_all_STORE; -+ X509_policy_level_get0_node; -+ i2d_PKCS7_NDEF; -+ EC_GROUP_get_degree; -+ ASN1_generate_v3; -+ STORE_ATTR_INFO_modify_cstr; -+ X509_policy_tree_level_count; -+ BN_GF2m_add; -+ EC_KEY_get0_group; -+ STORE_generate_crl; -+ STORE_store_public_key; -+ X509_CERT_PAIR_free; -+ STORE_revoke_private_key; -+ BN_nist_mod_224; -+ SHA512_Final; -+ STORE_ATTR_INFO_modify_dn; -+ STORE_meth_get_initialise_fn; -+ STORE_method_get_initialise_function; -+ STORE_delete_number; -+ i2d_EC_PUBKEY_bio; -+ BIO_dgram_non_fatal_error; -+ EC_GROUP_get_asn1_flag; -+ STORE_ATTR_INFO_in_ex; -+ STORE_list_crl_start; -+ ECDH_get_ex_new_index; -+ STORE_meth_get_modify_fn; -+ STORE_method_get_modify_function; -+ v2i_ASN1_BIT_STRING; -+ STORE_store_certificate; -+ OBJ_bsearch_ex; -+ X509_STORE_CTX_set_default; -+ STORE_ATTR_INFO_set_sha1str; -+ BN_GF2m_mod_inv; -+ BN_GF2m_mod_exp; -+ STORE_modify_public_key; -+ STORE_meth_get_list_start_fn; -+ STORE_method_get_list_start_function; -+ EC_GROUP_get0_seed; -+ STORE_store_arbitrary; -+ STORE_meth_set_unlock_store_fn; -+ STORE_method_set_unlock_store_function; -+ BN_GF2m_mod_div_arr; -+ ENGINE_set_ECDSA; -+ STORE_create_method; -+ ECPKParameters_print; -+ EC_KEY_get0_private_key; -+ PEM_write_EC_PUBKEY; -+ X509_VERIFY_PARAM_set1; -+ ECDH_set_method; -+ v2i_GENERAL_NAME_ex; -+ ECDH_set_ex_data; -+ STORE_generate_key; -+ BN_nist_mod_521; -+ X509_policy_tree_get0_level; -+ EC_GROUP_set_point_conversion_form; -+ EC_GROUP_set_point_conv_form; -+ PEM_read_EC_PUBKEY; -+ i2d_ECDSA_SIG; -+ ECDSA_OpenSSL; -+ STORE_delete_crl; -+ EC_KEY_get_enc_flags; -+ ASN1_const_check_infinite_end; -+ EVP_PKEY_delete_attr; -+ ECDSA_set_default_method; -+ EC_POINT_set_compressed_coordinates_GF2m; -+ EC_POINT_set_compr_coords_GF2m; -+ EC_GROUP_cmp; -+ STORE_revoke_certificate; -+ BN_get0_nist_prime_256; -+ STORE_meth_get_delete_fn; -+ STORE_method_get_delete_function; -+ SHA224_Init; -+ PEM_read_ECPrivateKey; -+ SHA512_Init; -+ STORE_parse_attrs_endp; -+ BN_set_negative; -+ ERR_load_ECDSA_strings; -+ EC_GROUP_get_basis_type; -+ STORE_list_public_key_next; -+ i2v_ASN1_BIT_STRING; -+ STORE_OBJECT_free; -+ BN_nist_mod_384; -+ i2d_X509_CERT_PAIR; -+ PEM_write_ECPKParameters; -+ ECDH_compute_key; -+ STORE_ATTR_INFO_get0_sha1str; -+ ENGINE_register_all_ECDH; -+ pqueue_pop; -+ STORE_ATTR_INFO_get0_cstr; -+ POLICY_CONSTRAINTS_it; -+ STORE_get_ex_new_index; -+ EVP_PKEY_get_attr_by_OBJ; -+ X509_VERIFY_PARAM_add0_policy; -+ BN_GF2m_mod_solve_quad; -+ SHA256; -+ i2d_ECPrivateKey_fp; -+ X509_policy_tree_get0_user_policies; -+ X509_pcy_tree_get0_usr_policies; -+ OPENSSL_DIR_read; -+ ENGINE_register_all_ECDSA; -+ X509_VERIFY_PARAM_lookup; -+ EC_POINT_get_affine_coordinates_GF2m; -+ EC_POINT_get_affine_coords_GF2m; -+ EC_GROUP_dup; -+ ENGINE_get_default_ECDSA; -+ EC_KEY_new; -+ SHA256_Transform; -+ EC_KEY_set_enc_flags; -+ ECDSA_verify; -+ EC_POINT_point2hex; -+ ENGINE_get_STORE; -+ SHA512; -+ STORE_get_certificate; -+ ECDSA_do_sign_ex; -+ ECDSA_do_verify; -+ d2i_ECPrivateKey_fp; -+ STORE_delete_certificate; -+ SHA512_Transform; -+ X509_STORE_set1_param; -+ STORE_method_get_ctrl_function; -+ STORE_free; -+ PEM_write_ECPrivateKey; -+ STORE_meth_get_unlock_store_fn; -+ STORE_method_get_unlock_store_function; -+ STORE_get_ex_data; -+ EC_KEY_set_public_key; -+ PEM_read_ECPKParameters; -+ X509_CERT_PAIR_new; -+ ENGINE_register_STORE; -+ RSA_generate_key_ex; -+ DSA_generate_parameters_ex; -+ ECParameters_print_fp; -+ X509V3_NAME_from_section; -+ EVP_PKEY_add1_attr; -+ STORE_modify_crl; -+ STORE_list_private_key_start; -+ POLICY_MAPPINGS_it; -+ GENERAL_SUBTREE_it; -+ EC_GROUP_get_curve_name; -+ PEM_write_X509_CERT_PAIR; -+ BIO_dump_indent_cb; -+ d2i_X509_CERT_PAIR; -+ STORE_list_private_key_endp; -+ asn1_const_Finish; -+ i2d_EC_PUBKEY_fp; -+ BN_nist_mod_256; -+ X509_VERIFY_PARAM_add0_table; -+ pqueue_free; -+ BN_BLINDING_create_param; -+ ECDSA_size; -+ d2i_EC_PUBKEY_bio; -+ BN_get0_nist_prime_521; -+ STORE_ATTR_INFO_modify_sha1str; -+ BN_generate_prime_ex; -+ EC_GROUP_new_by_curve_name; -+ SHA256_Final; -+ DH_generate_parameters_ex; -+ PEM_read_bio_ECPrivateKey; -+ STORE_meth_get_cleanup_fn; -+ STORE_method_get_cleanup_function; -+ ENGINE_get_ECDH; -+ d2i_ECDSA_SIG; -+ BN_is_prime_fasttest_ex; -+ ECDSA_sign; -+ X509_policy_check; -+ EVP_PKEY_get_attr_by_NID; -+ STORE_set_ex_data; -+ ENGINE_get_ECDSA; -+ EVP_ecdsa; -+ BN_BLINDING_get_flags; -+ PKCS12_add_cert; -+ STORE_OBJECT_new; -+ ERR_load_ECDH_strings; -+ EC_KEY_dup; -+ EVP_CIPHER_CTX_rand_key; -+ ECDSA_set_method; -+ a2i_IPADDRESS_NC; -+ d2i_ECParameters; -+ STORE_list_certificate_end; -+ STORE_get_crl; -+ X509_POLICY_NODE_print; -+ SHA384_Init; -+ EC_GF2m_simple_method; -+ ECDSA_set_ex_data; -+ SHA384_Final; -+ PKCS7_set_digest; -+ EC_KEY_print; -+ STORE_meth_set_lock_store_fn; -+ STORE_method_set_lock_store_function; -+ ECDSA_get_ex_new_index; -+ SHA384; -+ POLICY_MAPPING_new; -+ STORE_list_certificate_endp; -+ X509_STORE_CTX_get0_policy_tree; -+ EC_GROUP_set_asn1_flag; -+ EC_KEY_check_key; -+ d2i_EC_PUBKEY_fp; -+ PKCS7_set0_type_other; -+ PEM_read_bio_X509_CERT_PAIR; -+ pqueue_next; -+ STORE_meth_get_list_end_fn; -+ STORE_method_get_list_end_function; -+ EVP_PKEY_add1_attr_by_OBJ; -+ X509_VERIFY_PARAM_set_time; -+ pqueue_new; -+ ENGINE_set_default_ECDH; -+ STORE_new_method; -+ PKCS12_add_key; -+ DSO_merge; -+ EC_POINT_hex2point; -+ BIO_dump_cb; -+ SHA256_Update; -+ pqueue_insert; -+ pitem_free; -+ BN_GF2m_mod_inv_arr; -+ ENGINE_unregister_ECDSA; -+ BN_BLINDING_set_thread_id; -+ get_rfc3526_prime_8192; -+ X509_VERIFY_PARAM_clear_flags; -+ get_rfc2409_prime_1024; -+ DH_check_pub_key; -+ get_rfc3526_prime_2048; -+ get_rfc3526_prime_6144; -+ get_rfc3526_prime_1536; -+ get_rfc3526_prime_3072; -+ get_rfc3526_prime_4096; -+ get_rfc2409_prime_768; -+ X509_VERIFY_PARAM_get_flags; -+ EVP_CIPHER_CTX_new; -+ EVP_CIPHER_CTX_free; -+ Camellia_cbc_encrypt; -+ Camellia_cfb128_encrypt; -+ Camellia_cfb1_encrypt; -+ Camellia_cfb8_encrypt; -+ Camellia_ctr128_encrypt; -+ Camellia_cfbr_encrypt_block; -+ Camellia_decrypt; -+ Camellia_ecb_encrypt; -+ Camellia_encrypt; -+ Camellia_ofb128_encrypt; -+ Camellia_set_key; -+ EVP_camellia_128_cbc; -+ EVP_camellia_128_cfb128; -+ EVP_camellia_128_cfb1; -+ EVP_camellia_128_cfb8; -+ EVP_camellia_128_ecb; -+ EVP_camellia_128_ofb; -+ EVP_camellia_192_cbc; -+ EVP_camellia_192_cfb128; -+ EVP_camellia_192_cfb1; -+ EVP_camellia_192_cfb8; -+ EVP_camellia_192_ecb; -+ EVP_camellia_192_ofb; -+ EVP_camellia_256_cbc; -+ EVP_camellia_256_cfb128; -+ EVP_camellia_256_cfb1; -+ EVP_camellia_256_cfb8; -+ EVP_camellia_256_ecb; -+ EVP_camellia_256_ofb; -+ a2i_ipadd; -+ ASIdentifiers_free; -+ i2d_ASIdOrRange; -+ EVP_CIPHER_block_size; -+ v3_asid_is_canonical; -+ IPAddressChoice_free; -+ EVP_CIPHER_CTX_set_app_data; -+ BIO_set_callback_arg; -+ v3_addr_add_prefix; -+ IPAddressOrRange_it; -+ BIO_set_flags; -+ ASIdentifiers_it; -+ v3_addr_get_range; -+ BIO_method_type; -+ v3_addr_inherits; -+ IPAddressChoice_it; -+ AES_ige_encrypt; -+ v3_addr_add_range; -+ EVP_CIPHER_CTX_nid; -+ d2i_ASRange; -+ v3_addr_add_inherit; -+ v3_asid_add_id_or_range; -+ v3_addr_validate_resource_set; -+ EVP_CIPHER_iv_length; -+ EVP_MD_type; -+ v3_asid_canonize; -+ IPAddressRange_free; -+ v3_asid_add_inherit; -+ EVP_CIPHER_CTX_key_length; -+ IPAddressRange_new; -+ ASIdOrRange_new; -+ EVP_MD_size; -+ EVP_MD_CTX_test_flags; -+ BIO_clear_flags; -+ i2d_ASRange; -+ IPAddressRange_it; -+ IPAddressChoice_new; -+ ASIdentifierChoice_new; -+ ASRange_free; -+ EVP_MD_pkey_type; -+ EVP_MD_CTX_clear_flags; -+ IPAddressFamily_free; -+ i2d_IPAddressFamily; -+ IPAddressOrRange_new; -+ EVP_CIPHER_flags; -+ v3_asid_validate_resource_set; -+ d2i_IPAddressRange; -+ AES_bi_ige_encrypt; -+ BIO_get_callback; -+ IPAddressOrRange_free; -+ v3_addr_subset; -+ d2i_IPAddressFamily; -+ v3_asid_subset; -+ BIO_test_flags; -+ i2d_ASIdentifierChoice; -+ ASRange_it; -+ d2i_ASIdentifiers; -+ ASRange_new; -+ d2i_IPAddressChoice; -+ v3_addr_get_afi; -+ EVP_CIPHER_key_length; -+ EVP_Cipher; -+ i2d_IPAddressOrRange; -+ ASIdOrRange_it; -+ EVP_CIPHER_nid; -+ i2d_IPAddressChoice; -+ EVP_CIPHER_CTX_block_size; -+ ASIdentifiers_new; -+ v3_addr_validate_path; -+ IPAddressFamily_new; -+ EVP_MD_CTX_set_flags; -+ v3_addr_is_canonical; -+ i2d_IPAddressRange; -+ IPAddressFamily_it; -+ v3_asid_inherits; -+ EVP_CIPHER_CTX_cipher; -+ EVP_CIPHER_CTX_get_app_data; -+ EVP_MD_block_size; -+ EVP_CIPHER_CTX_flags; -+ v3_asid_validate_path; -+ d2i_IPAddressOrRange; -+ v3_addr_canonize; -+ ASIdentifierChoice_it; -+ EVP_MD_CTX_md; -+ d2i_ASIdentifierChoice; -+ BIO_method_name; -+ EVP_CIPHER_CTX_iv_length; -+ ASIdOrRange_free; -+ ASIdentifierChoice_free; -+ BIO_get_callback_arg; -+ BIO_set_callback; -+ d2i_ASIdOrRange; -+ i2d_ASIdentifiers; -+ SEED_decrypt; -+ SEED_encrypt; -+ SEED_cbc_encrypt; -+ EVP_seed_ofb; -+ SEED_cfb128_encrypt; -+ SEED_ofb128_encrypt; -+ EVP_seed_cbc; -+ SEED_ecb_encrypt; -+ EVP_seed_ecb; -+ SEED_set_key; -+ EVP_seed_cfb128; -+ X509_EXTENSIONS_it; -+ X509_get1_ocsp; -+ OCSP_REQ_CTX_free; -+ i2d_X509_EXTENSIONS; -+ OCSP_sendreq_nbio; -+ OCSP_sendreq_new; -+ d2i_X509_EXTENSIONS; -+ X509_ALGORS_it; -+ X509_ALGOR_get0; -+ X509_ALGOR_set0; -+ AES_unwrap_key; -+ AES_wrap_key; -+ X509at_get0_data_by_OBJ; -+ ASN1_TYPE_set1; -+ ASN1_STRING_set0; -+ i2d_X509_ALGORS; -+ BIO_f_zlib; -+ COMP_zlib_cleanup; -+ d2i_X509_ALGORS; -+ CMS_ReceiptRequest_free; -+ PEM_write_CMS; -+ CMS_add0_CertificateChoices; -+ CMS_unsigned_add1_attr_by_OBJ; -+ ERR_load_CMS_strings; -+ CMS_sign_receipt; -+ i2d_CMS_ContentInfo; -+ CMS_signed_delete_attr; -+ d2i_CMS_bio; -+ CMS_unsigned_get_attr_by_NID; -+ CMS_verify; -+ SMIME_read_CMS; -+ CMS_decrypt_set1_key; -+ CMS_SignerInfo_get0_algs; -+ CMS_add1_cert; -+ CMS_set_detached; -+ CMS_encrypt; -+ CMS_EnvelopedData_create; -+ CMS_uncompress; -+ CMS_add0_crl; -+ CMS_SignerInfo_verify_content; -+ CMS_unsigned_get0_data_by_OBJ; -+ PEM_write_bio_CMS; -+ CMS_unsigned_get_attr; -+ CMS_RecipientInfo_ktri_cert_cmp; -+ CMS_RecipientInfo_ktri_get0_algs; -+ CMS_RecipInfo_ktri_get0_algs; -+ CMS_ContentInfo_free; -+ CMS_final; -+ CMS_add_simple_smimecap; -+ CMS_SignerInfo_verify; -+ CMS_data; -+ CMS_ContentInfo_it; -+ d2i_CMS_ReceiptRequest; -+ CMS_compress; -+ CMS_digest_create; -+ CMS_SignerInfo_cert_cmp; -+ CMS_SignerInfo_sign; -+ CMS_data_create; -+ i2d_CMS_bio; -+ CMS_EncryptedData_set1_key; -+ CMS_decrypt; -+ int_smime_write_ASN1; -+ CMS_unsigned_delete_attr; -+ CMS_unsigned_get_attr_count; -+ CMS_add_smimecap; -+ PEM_read_CMS; -+ CMS_signed_get_attr_by_OBJ; -+ d2i_CMS_ContentInfo; -+ CMS_add_standard_smimecap; -+ CMS_ContentInfo_new; -+ CMS_RecipientInfo_type; -+ CMS_get0_type; -+ CMS_is_detached; -+ CMS_sign; -+ CMS_signed_add1_attr; -+ CMS_unsigned_get_attr_by_OBJ; -+ SMIME_write_CMS; -+ CMS_EncryptedData_decrypt; -+ CMS_get0_RecipientInfos; -+ CMS_add0_RevocationInfoChoice; -+ CMS_decrypt_set1_pkey; -+ CMS_SignerInfo_set1_signer_cert; -+ CMS_get0_signers; -+ CMS_ReceiptRequest_get0_values; -+ CMS_signed_get0_data_by_OBJ; -+ CMS_get0_SignerInfos; -+ CMS_add0_cert; -+ CMS_EncryptedData_encrypt; -+ CMS_digest_verify; -+ CMS_set1_signers_certs; -+ CMS_signed_get_attr; -+ CMS_RecipientInfo_set0_key; -+ CMS_SignedData_init; -+ CMS_RecipientInfo_kekri_get0_id; -+ CMS_verify_receipt; -+ CMS_ReceiptRequest_it; -+ PEM_read_bio_CMS; -+ CMS_get1_crls; -+ CMS_add0_recipient_key; -+ SMIME_read_ASN1; -+ CMS_ReceiptRequest_new; -+ CMS_get0_content; -+ CMS_get1_ReceiptRequest; -+ CMS_signed_add1_attr_by_OBJ; -+ CMS_RecipientInfo_kekri_id_cmp; -+ CMS_add1_ReceiptRequest; -+ CMS_SignerInfo_get0_signer_id; -+ CMS_unsigned_add1_attr_by_NID; -+ CMS_unsigned_add1_attr; -+ CMS_signed_get_attr_by_NID; -+ CMS_get1_certs; -+ CMS_signed_add1_attr_by_NID; -+ CMS_unsigned_add1_attr_by_txt; -+ CMS_dataFinal; -+ CMS_RecipientInfo_ktri_get0_signer_id; -+ CMS_RecipInfo_ktri_get0_sigr_id; -+ i2d_CMS_ReceiptRequest; -+ CMS_add1_recipient_cert; -+ CMS_dataInit; -+ CMS_signed_add1_attr_by_txt; -+ CMS_RecipientInfo_decrypt; -+ CMS_signed_get_attr_count; -+ CMS_get0_eContentType; -+ CMS_set1_eContentType; -+ CMS_ReceiptRequest_create0; -+ CMS_add1_signer; -+ CMS_RecipientInfo_set0_pkey; -+ ENGINE_set_load_ssl_client_cert_function; -+ ENGINE_set_ld_ssl_clnt_cert_fn; -+ ENGINE_get_ssl_client_cert_function; -+ ENGINE_get_ssl_client_cert_fn; -+ ENGINE_load_ssl_client_cert; -+ ENGINE_load_capi; -+ OPENSSL_isservice; -+ FIPS_dsa_sig_decode; -+ EVP_CIPHER_CTX_clear_flags; -+ FIPS_rand_status; -+ FIPS_rand_set_key; -+ CRYPTO_set_mem_info_functions; -+ RSA_X931_generate_key_ex; -+ int_ERR_set_state_func; -+ int_EVP_MD_set_engine_callbacks; -+ int_CRYPTO_set_do_dynlock_callback; -+ FIPS_rng_stick; -+ EVP_CIPHER_CTX_set_flags; -+ BN_X931_generate_prime_ex; -+ FIPS_selftest_check; -+ FIPS_rand_set_dt; -+ CRYPTO_dbg_pop_info; -+ FIPS_dsa_free; -+ RSA_X931_derive_ex; -+ FIPS_rsa_new; -+ FIPS_rand_bytes; -+ fips_cipher_test; -+ EVP_CIPHER_CTX_test_flags; -+ CRYPTO_malloc_debug_init; -+ CRYPTO_dbg_push_info; -+ FIPS_corrupt_rsa_keygen; -+ FIPS_dh_new; -+ FIPS_corrupt_dsa_keygen; -+ FIPS_dh_free; -+ fips_pkey_signature_test; -+ EVP_add_alg_module; -+ int_RAND_init_engine_callbacks; -+ int_EVP_CIPHER_set_engine_callbacks; -+ int_EVP_MD_init_engine_callbacks; -+ FIPS_rand_test_mode; -+ FIPS_rand_reset; -+ FIPS_dsa_new; -+ int_RAND_set_callbacks; -+ BN_X931_derive_prime_ex; -+ int_ERR_lib_init; -+ int_EVP_CIPHER_init_engine_callbacks; -+ FIPS_rsa_free; -+ FIPS_dsa_sig_encode; -+ CRYPTO_dbg_remove_all_info; -+ OPENSSL_init; -+ CRYPTO_strdup; -+ JPAKE_STEP3A_process; -+ JPAKE_STEP1_release; -+ JPAKE_get_shared_key; -+ JPAKE_STEP3B_init; -+ JPAKE_STEP1_generate; -+ JPAKE_STEP1_init; -+ JPAKE_STEP3B_process; -+ JPAKE_STEP2_generate; -+ JPAKE_CTX_new; -+ JPAKE_CTX_free; -+ JPAKE_STEP3B_release; -+ JPAKE_STEP3A_release; -+ JPAKE_STEP2_process; -+ JPAKE_STEP3B_generate; -+ JPAKE_STEP1_process; -+ JPAKE_STEP3A_generate; -+ JPAKE_STEP2_release; -+ JPAKE_STEP3A_init; -+ ERR_load_JPAKE_strings; -+ JPAKE_STEP2_init; -+ pqueue_size; -+ i2d_TS_ACCURACY; -+ i2d_TS_MSG_IMPRINT_fp; -+ i2d_TS_MSG_IMPRINT; -+ EVP_PKEY_print_public; -+ EVP_PKEY_CTX_new; -+ i2d_TS_TST_INFO; -+ EVP_PKEY_asn1_find; -+ DSO_METHOD_beos; -+ TS_CONF_load_cert; -+ TS_REQ_get_ext; -+ EVP_PKEY_sign_init; -+ ASN1_item_print; -+ TS_TST_INFO_set_nonce; -+ TS_RESP_dup; -+ ENGINE_register_pkey_meths; -+ EVP_PKEY_asn1_add0; -+ PKCS7_add0_attrib_signing_time; -+ i2d_TS_TST_INFO_fp; -+ BIO_asn1_get_prefix; -+ TS_TST_INFO_set_time; -+ EVP_PKEY_meth_set_decrypt; -+ EVP_PKEY_set_type_str; -+ EVP_PKEY_CTX_get_keygen_info; -+ TS_REQ_set_policy_id; -+ d2i_TS_RESP_fp; -+ ENGINE_get_pkey_asn1_meth_engine; -+ ENGINE_get_pkey_asn1_meth_eng; -+ WHIRLPOOL_Init; -+ TS_RESP_set_status_info; -+ EVP_PKEY_keygen; -+ EVP_DigestSignInit; -+ TS_ACCURACY_set_millis; -+ TS_REQ_dup; -+ GENERAL_NAME_dup; -+ ASN1_SEQUENCE_ANY_it; -+ WHIRLPOOL; -+ X509_STORE_get1_crls; -+ ENGINE_get_pkey_asn1_meth; -+ EVP_PKEY_asn1_new; -+ BIO_new_NDEF; -+ ENGINE_get_pkey_meth; -+ TS_MSG_IMPRINT_set_algo; -+ i2d_TS_TST_INFO_bio; -+ TS_TST_INFO_set_ordering; -+ TS_TST_INFO_get_ext_by_OBJ; -+ CRYPTO_THREADID_set_pointer; -+ TS_CONF_get_tsa_section; -+ SMIME_write_ASN1; -+ TS_RESP_CTX_set_signer_key; -+ EVP_PKEY_encrypt_old; -+ EVP_PKEY_encrypt_init; -+ CRYPTO_THREADID_cpy; -+ ASN1_PCTX_get_cert_flags; -+ i2d_ESS_SIGNING_CERT; -+ TS_CONF_load_key; -+ i2d_ASN1_SEQUENCE_ANY; -+ d2i_TS_MSG_IMPRINT_bio; -+ EVP_PKEY_asn1_set_public; -+ b2i_PublicKey_bio; -+ BIO_asn1_set_prefix; -+ EVP_PKEY_new_mac_key; -+ BIO_new_CMS; -+ CRYPTO_THREADID_cmp; -+ TS_REQ_ext_free; -+ EVP_PKEY_asn1_set_free; -+ EVP_PKEY_get0_asn1; -+ d2i_NETSCAPE_X509; -+ EVP_PKEY_verify_recover_init; -+ EVP_PKEY_CTX_set_data; -+ EVP_PKEY_keygen_init; -+ TS_RESP_CTX_set_status_info; -+ TS_MSG_IMPRINT_get_algo; -+ TS_REQ_print_bio; -+ EVP_PKEY_CTX_ctrl_str; -+ EVP_PKEY_get_default_digest_nid; -+ PEM_write_bio_PKCS7_stream; -+ TS_MSG_IMPRINT_print_bio; -+ BN_asc2bn; -+ TS_REQ_get_policy_id; -+ ENGINE_set_default_pkey_asn1_meths; -+ ENGINE_set_def_pkey_asn1_meths; -+ d2i_TS_ACCURACY; -+ DSO_global_lookup; -+ TS_CONF_set_tsa_name; -+ i2d_ASN1_SET_ANY; -+ ENGINE_load_gost; -+ WHIRLPOOL_BitUpdate; -+ ASN1_PCTX_get_flags; -+ TS_TST_INFO_get_ext_by_NID; -+ TS_RESP_new; -+ ESS_CERT_ID_dup; -+ TS_STATUS_INFO_dup; -+ TS_REQ_delete_ext; -+ EVP_DigestVerifyFinal; -+ EVP_PKEY_print_params; -+ i2d_CMS_bio_stream; -+ TS_REQ_get_msg_imprint; -+ OBJ_find_sigid_by_algs; -+ TS_TST_INFO_get_serial; -+ TS_REQ_get_nonce; -+ X509_PUBKEY_set0_param; -+ EVP_PKEY_CTX_set0_keygen_info; -+ DIST_POINT_set_dpname; -+ i2d_ISSUING_DIST_POINT; -+ ASN1_SET_ANY_it; -+ EVP_PKEY_CTX_get_data; -+ TS_STATUS_INFO_print_bio; -+ EVP_PKEY_derive_init; -+ d2i_TS_TST_INFO; -+ EVP_PKEY_asn1_add_alias; -+ d2i_TS_RESP_bio; -+ OTHERNAME_cmp; -+ GENERAL_NAME_set0_value; -+ PKCS7_RECIP_INFO_get0_alg; -+ TS_RESP_CTX_new; -+ TS_RESP_set_tst_info; -+ PKCS7_final; -+ EVP_PKEY_base_id; -+ TS_RESP_CTX_set_signer_cert; -+ TS_REQ_set_msg_imprint; -+ EVP_PKEY_CTX_ctrl; -+ TS_CONF_set_digests; -+ d2i_TS_MSG_IMPRINT; -+ EVP_PKEY_meth_set_ctrl; -+ TS_REQ_get_ext_by_NID; -+ PKCS5_pbe_set0_algor; -+ BN_BLINDING_thread_id; -+ TS_ACCURACY_new; -+ X509_CRL_METHOD_free; -+ ASN1_PCTX_get_nm_flags; -+ EVP_PKEY_meth_set_sign; -+ CRYPTO_THREADID_current; -+ EVP_PKEY_decrypt_init; -+ NETSCAPE_X509_free; -+ i2b_PVK_bio; -+ EVP_PKEY_print_private; -+ GENERAL_NAME_get0_value; -+ b2i_PVK_bio; -+ ASN1_UTCTIME_adj; -+ TS_TST_INFO_new; -+ EVP_MD_do_all_sorted; -+ TS_CONF_set_default_engine; -+ TS_ACCURACY_set_seconds; -+ TS_TST_INFO_get_time; -+ PKCS8_pkey_get0; -+ EVP_PKEY_asn1_get0; -+ OBJ_add_sigid; -+ PKCS7_SIGNER_INFO_sign; -+ EVP_PKEY_paramgen_init; -+ EVP_PKEY_sign; -+ OBJ_sigid_free; -+ EVP_PKEY_meth_set_init; -+ d2i_ESS_ISSUER_SERIAL; -+ ISSUING_DIST_POINT_new; -+ ASN1_TIME_adj; -+ TS_OBJ_print_bio; -+ EVP_PKEY_meth_set_verify_recover; -+ EVP_PKEY_meth_set_vrfy_recover; -+ TS_RESP_get_status_info; -+ CMS_stream; -+ EVP_PKEY_CTX_set_cb; -+ PKCS7_to_TS_TST_INFO; -+ ASN1_PCTX_get_oid_flags; -+ TS_TST_INFO_add_ext; -+ EVP_PKEY_meth_set_derive; -+ i2d_TS_RESP_fp; -+ i2d_TS_MSG_IMPRINT_bio; -+ TS_RESP_CTX_set_accuracy; -+ TS_REQ_set_nonce; -+ ESS_CERT_ID_new; -+ ENGINE_pkey_asn1_find_str; -+ TS_REQ_get_ext_count; -+ BUF_reverse; -+ TS_TST_INFO_print_bio; -+ d2i_ISSUING_DIST_POINT; -+ ENGINE_get_pkey_meths; -+ i2b_PrivateKey_bio; -+ i2d_TS_RESP; -+ b2i_PublicKey; -+ TS_VERIFY_CTX_cleanup; -+ TS_STATUS_INFO_free; -+ TS_RESP_verify_token; -+ OBJ_bsearch_ex_; -+ ASN1_bn_print; -+ EVP_PKEY_asn1_get_count; -+ ENGINE_register_pkey_asn1_meths; -+ ASN1_PCTX_set_nm_flags; -+ EVP_DigestVerifyInit; -+ ENGINE_set_default_pkey_meths; -+ TS_TST_INFO_get_policy_id; -+ TS_REQ_get_cert_req; -+ X509_CRL_set_meth_data; -+ PKCS8_pkey_set0; -+ ASN1_STRING_copy; -+ d2i_TS_TST_INFO_fp; -+ X509_CRL_match; -+ EVP_PKEY_asn1_set_private; -+ TS_TST_INFO_get_ext_d2i; -+ TS_RESP_CTX_add_policy; -+ d2i_TS_RESP; -+ TS_CONF_load_certs; -+ TS_TST_INFO_get_msg_imprint; -+ ERR_load_TS_strings; -+ TS_TST_INFO_get_version; -+ EVP_PKEY_CTX_dup; -+ EVP_PKEY_meth_set_verify; -+ i2b_PublicKey_bio; -+ TS_CONF_set_certs; -+ EVP_PKEY_asn1_get0_info; -+ TS_VERIFY_CTX_free; -+ TS_REQ_get_ext_by_critical; -+ TS_RESP_CTX_set_serial_cb; -+ X509_CRL_get_meth_data; -+ TS_RESP_CTX_set_time_cb; -+ TS_MSG_IMPRINT_get_msg; -+ TS_TST_INFO_ext_free; -+ TS_REQ_get_version; -+ TS_REQ_add_ext; -+ EVP_PKEY_CTX_set_app_data; -+ OBJ_bsearch_; -+ EVP_PKEY_meth_set_verifyctx; -+ i2d_PKCS7_bio_stream; -+ CRYPTO_THREADID_set_numeric; -+ PKCS7_sign_add_signer; -+ d2i_TS_TST_INFO_bio; -+ TS_TST_INFO_get_ordering; -+ TS_RESP_print_bio; -+ TS_TST_INFO_get_exts; -+ HMAC_CTX_copy; -+ PKCS5_pbe2_set_iv; -+ ENGINE_get_pkey_asn1_meths; -+ b2i_PrivateKey; -+ EVP_PKEY_CTX_get_app_data; -+ TS_REQ_set_cert_req; -+ CRYPTO_THREADID_set_callback; -+ TS_CONF_set_serial; -+ TS_TST_INFO_free; -+ d2i_TS_REQ_fp; -+ TS_RESP_verify_response; -+ i2d_ESS_ISSUER_SERIAL; -+ TS_ACCURACY_get_seconds; -+ EVP_CIPHER_do_all; -+ b2i_PrivateKey_bio; -+ OCSP_CERTID_dup; -+ X509_PUBKEY_get0_param; -+ TS_MSG_IMPRINT_dup; -+ PKCS7_print_ctx; -+ i2d_TS_REQ_bio; -+ EVP_whirlpool; -+ EVP_PKEY_asn1_set_param; -+ EVP_PKEY_meth_set_encrypt; -+ ASN1_PCTX_set_flags; -+ i2d_ESS_CERT_ID; -+ TS_VERIFY_CTX_new; -+ TS_RESP_CTX_set_extension_cb; -+ ENGINE_register_all_pkey_meths; -+ TS_RESP_CTX_set_status_info_cond; -+ TS_RESP_CTX_set_stat_info_cond; -+ EVP_PKEY_verify; -+ WHIRLPOOL_Final; -+ X509_CRL_METHOD_new; -+ EVP_DigestSignFinal; -+ TS_RESP_CTX_set_def_policy; -+ NETSCAPE_X509_it; -+ TS_RESP_create_response; -+ PKCS7_SIGNER_INFO_get0_algs; -+ TS_TST_INFO_get_nonce; -+ EVP_PKEY_decrypt_old; -+ TS_TST_INFO_set_policy_id; -+ TS_CONF_set_ess_cert_id_chain; -+ EVP_PKEY_CTX_get0_pkey; -+ d2i_TS_REQ; -+ EVP_PKEY_asn1_find_str; -+ BIO_f_asn1; -+ ESS_SIGNING_CERT_new; -+ EVP_PBE_find; -+ X509_CRL_get0_by_cert; -+ EVP_PKEY_derive; -+ i2d_TS_REQ; -+ TS_TST_INFO_delete_ext; -+ ESS_ISSUER_SERIAL_free; -+ ASN1_PCTX_set_str_flags; -+ ENGINE_get_pkey_asn1_meth_str; -+ TS_CONF_set_signer_key; -+ TS_ACCURACY_get_millis; -+ TS_RESP_get_token; -+ TS_ACCURACY_dup; -+ ENGINE_register_all_pkey_asn1_meths; -+ ENGINE_reg_all_pkey_asn1_meths; -+ X509_CRL_set_default_method; -+ CRYPTO_THREADID_hash; -+ CMS_ContentInfo_print_ctx; -+ TS_RESP_free; -+ ISSUING_DIST_POINT_free; -+ ESS_ISSUER_SERIAL_new; -+ CMS_add1_crl; -+ PKCS7_add1_attrib_digest; -+ TS_RESP_CTX_add_md; -+ TS_TST_INFO_dup; -+ ENGINE_set_pkey_asn1_meths; -+ PEM_write_bio_Parameters; -+ TS_TST_INFO_get_accuracy; -+ X509_CRL_get0_by_serial; -+ TS_TST_INFO_set_version; -+ TS_RESP_CTX_get_tst_info; -+ TS_RESP_verify_signature; -+ CRYPTO_THREADID_get_callback; -+ TS_TST_INFO_get_tsa; -+ TS_STATUS_INFO_new; -+ EVP_PKEY_CTX_get_cb; -+ TS_REQ_get_ext_d2i; -+ GENERAL_NAME_set0_othername; -+ TS_TST_INFO_get_ext_count; -+ TS_RESP_CTX_get_request; -+ i2d_NETSCAPE_X509; -+ ENGINE_get_pkey_meth_engine; -+ EVP_PKEY_meth_set_signctx; -+ EVP_PKEY_asn1_copy; -+ ASN1_TYPE_cmp; -+ EVP_CIPHER_do_all_sorted; -+ EVP_PKEY_CTX_free; -+ ISSUING_DIST_POINT_it; -+ d2i_TS_MSG_IMPRINT_fp; -+ X509_STORE_get1_certs; -+ EVP_PKEY_CTX_get_operation; -+ d2i_ESS_SIGNING_CERT; -+ TS_CONF_set_ordering; -+ EVP_PBE_alg_add_type; -+ TS_REQ_set_version; -+ EVP_PKEY_get0; -+ BIO_asn1_set_suffix; -+ i2d_TS_STATUS_INFO; -+ EVP_MD_do_all; -+ TS_TST_INFO_set_accuracy; -+ PKCS7_add_attrib_content_type; -+ ERR_remove_thread_state; -+ EVP_PKEY_meth_add0; -+ TS_TST_INFO_set_tsa; -+ EVP_PKEY_meth_new; -+ WHIRLPOOL_Update; -+ TS_CONF_set_accuracy; -+ ASN1_PCTX_set_oid_flags; -+ ESS_SIGNING_CERT_dup; -+ d2i_TS_REQ_bio; -+ X509_time_adj_ex; -+ TS_RESP_CTX_add_flags; -+ d2i_TS_STATUS_INFO; -+ TS_MSG_IMPRINT_set_msg; -+ BIO_asn1_get_suffix; -+ TS_REQ_free; -+ EVP_PKEY_meth_free; -+ TS_REQ_get_exts; -+ TS_RESP_CTX_set_clock_precision_digits; -+ TS_RESP_CTX_set_clk_prec_digits; -+ TS_RESP_CTX_add_failure_info; -+ i2d_TS_RESP_bio; -+ EVP_PKEY_CTX_get0_peerkey; -+ PEM_write_bio_CMS_stream; -+ TS_REQ_new; -+ TS_MSG_IMPRINT_new; -+ EVP_PKEY_meth_find; -+ EVP_PKEY_id; -+ TS_TST_INFO_set_serial; -+ a2i_GENERAL_NAME; -+ TS_CONF_set_crypto_device; -+ EVP_PKEY_verify_init; -+ TS_CONF_set_policies; -+ ASN1_PCTX_new; -+ ESS_CERT_ID_free; -+ ENGINE_unregister_pkey_meths; -+ TS_MSG_IMPRINT_free; -+ TS_VERIFY_CTX_init; -+ PKCS7_stream; -+ TS_RESP_CTX_set_certs; -+ TS_CONF_set_def_policy; -+ ASN1_GENERALIZEDTIME_adj; -+ NETSCAPE_X509_new; -+ TS_ACCURACY_free; -+ TS_RESP_get_tst_info; -+ EVP_PKEY_derive_set_peer; -+ PEM_read_bio_Parameters; -+ TS_CONF_set_clock_precision_digits; -+ TS_CONF_set_clk_prec_digits; -+ ESS_ISSUER_SERIAL_dup; -+ TS_ACCURACY_get_micros; -+ ASN1_PCTX_get_str_flags; -+ NAME_CONSTRAINTS_check; -+ ASN1_BIT_STRING_check; -+ X509_check_akid; -+ ENGINE_unregister_pkey_asn1_meths; -+ ENGINE_unreg_pkey_asn1_meths; -+ ASN1_PCTX_free; -+ PEM_write_bio_ASN1_stream; -+ i2d_ASN1_bio_stream; -+ TS_X509_ALGOR_print_bio; -+ EVP_PKEY_meth_set_cleanup; -+ EVP_PKEY_asn1_free; -+ ESS_SIGNING_CERT_free; -+ TS_TST_INFO_set_msg_imprint; -+ GENERAL_NAME_cmp; -+ d2i_ASN1_SET_ANY; -+ ENGINE_set_pkey_meths; -+ i2d_TS_REQ_fp; -+ d2i_ASN1_SEQUENCE_ANY; -+ GENERAL_NAME_get0_otherName; -+ d2i_ESS_CERT_ID; -+ OBJ_find_sigid_algs; -+ EVP_PKEY_meth_set_keygen; -+ PKCS5_PBKDF2_HMAC; -+ EVP_PKEY_paramgen; -+ EVP_PKEY_meth_set_paramgen; -+ BIO_new_PKCS7; -+ EVP_PKEY_verify_recover; -+ TS_ext_print_bio; -+ TS_ASN1_INTEGER_print_bio; -+ check_defer; -+ DSO_pathbyaddr; -+ EVP_PKEY_set_type; -+ TS_ACCURACY_set_micros; -+ TS_REQ_to_TS_VERIFY_CTX; -+ EVP_PKEY_meth_set_copy; -+ ASN1_PCTX_set_cert_flags; -+ TS_TST_INFO_get_ext; -+ EVP_PKEY_asn1_set_ctrl; -+ TS_TST_INFO_get_ext_by_critical; -+ EVP_PKEY_CTX_new_id; -+ TS_REQ_get_ext_by_OBJ; -+ TS_CONF_set_signer_cert; -+ X509_NAME_hash_old; -+ ASN1_TIME_set_string; -+ EVP_MD_flags; -+ TS_RESP_CTX_free; -+ DSAparams_dup; -+ DHparams_dup; -+ OCSP_REQ_CTX_add1_header; -+ OCSP_REQ_CTX_set1_req; -+ X509_STORE_set_verify_cb; -+ X509_STORE_CTX_get0_current_crl; -+ X509_STORE_CTX_get0_parent_ctx; -+ X509_STORE_CTX_get0_current_issuer; -+ X509_STORE_CTX_get0_cur_issuer; -+ X509_issuer_name_hash_old; -+ X509_subject_name_hash_old; -+ EVP_CIPHER_CTX_copy; -+ UI_method_get_prompt_constructor; -+ UI_method_get_prompt_constructr; -+ UI_method_set_prompt_constructor; -+ UI_method_set_prompt_constructr; -+ EVP_read_pw_string_min; -+ CRYPTO_cts128_encrypt; -+ CRYPTO_cts128_decrypt_block; -+ CRYPTO_cfb128_1_encrypt; -+ CRYPTO_cbc128_encrypt; -+ CRYPTO_ctr128_encrypt; -+ CRYPTO_ofb128_encrypt; -+ CRYPTO_cts128_decrypt; -+ CRYPTO_cts128_encrypt_block; -+ CRYPTO_cbc128_decrypt; -+ CRYPTO_cfb128_encrypt; -+ CRYPTO_cfb128_8_encrypt; -+ -+ local: -+ *; -+}; -+ -+ -+OPENSSL_1.0.1 { -+ global: -+ SSL_renegotiate_abbreviated; -+ TLSv1_1_method; -+ TLSv1_1_client_method; -+ TLSv1_1_server_method; -+ SSL_CTX_set_srp_client_pwd_callback; -+ SSL_CTX_set_srp_client_pwd_cb; -+ SSL_get_srp_g; -+ SSL_CTX_set_srp_username_callback; -+ SSL_CTX_set_srp_un_cb; -+ SSL_get_srp_userinfo; -+ SSL_set_srp_server_param; -+ SSL_set_srp_server_param_pw; -+ SSL_get_srp_N; -+ SSL_get_srp_username; -+ SSL_CTX_set_srp_password; -+ SSL_CTX_set_srp_strength; -+ SSL_CTX_set_srp_verify_param_callback; -+ SSL_CTX_set_srp_vfy_param_cb; -+ SSL_CTX_set_srp_cb_arg; -+ SSL_CTX_set_srp_username; -+ SSL_CTX_SRP_CTX_init; -+ SSL_SRP_CTX_init; -+ SRP_Calc_A_param; -+ SRP_generate_server_master_secret; -+ SRP_gen_server_master_secret; -+ SSL_CTX_SRP_CTX_free; -+ SRP_generate_client_master_secret; -+ SRP_gen_client_master_secret; -+ SSL_srp_server_param_with_username; -+ SSL_srp_server_param_with_un; -+ SSL_SRP_CTX_free; -+ SSL_set_debug; -+ SSL_SESSION_get0_peer; -+ TLSv1_2_client_method; -+ SSL_SESSION_set1_id_context; -+ TLSv1_2_server_method; -+ SSL_cache_hit; -+ SSL_get0_kssl_ctx; -+ SSL_set0_kssl_ctx; -+ SSL_set_state; -+ SSL_CIPHER_get_id; -+ TLSv1_2_method; -+ kssl_ctx_get0_client_princ; -+ SSL_export_keying_material; -+ SSL_set_tlsext_use_srtp; -+ SSL_CTX_set_next_protos_advertised_cb; -+ SSL_CTX_set_next_protos_adv_cb; -+ SSL_get0_next_proto_negotiated; -+ SSL_get_selected_srtp_profile; -+ SSL_CTX_set_tlsext_use_srtp; -+ SSL_select_next_proto; -+ SSL_get_srtp_profiles; -+ SSL_CTX_set_next_proto_select_cb; -+ SSL_CTX_set_next_proto_sel_cb; -+ SSL_SESSION_get_compress_id; -+ -+ SRP_VBASE_get_by_user; -+ SRP_Calc_server_key; -+ SRP_create_verifier; -+ SRP_create_verifier_BN; -+ SRP_Calc_u; -+ SRP_VBASE_free; -+ SRP_Calc_client_key; -+ SRP_get_default_gN; -+ SRP_Calc_x; -+ SRP_Calc_B; -+ SRP_VBASE_new; -+ SRP_check_known_gN_param; -+ SRP_Calc_A; -+ SRP_Verify_A_mod_N; -+ SRP_VBASE_init; -+ SRP_Verify_B_mod_N; -+ EC_KEY_set_public_key_affine_coordinates; -+ EC_KEY_set_pub_key_aff_coords; -+ EVP_aes_192_ctr; -+ EVP_PKEY_meth_get0_info; -+ EVP_PKEY_meth_copy; -+ ERR_add_error_vdata; -+ EVP_aes_128_ctr; -+ EVP_aes_256_ctr; -+ EC_GFp_nistp224_method; -+ EC_KEY_get_flags; -+ RSA_padding_add_PKCS1_PSS_mgf1; -+ EVP_aes_128_xts; -+ EVP_aes_256_xts; -+ EVP_aes_128_gcm; -+ EC_KEY_clear_flags; -+ EC_KEY_set_flags; -+ EVP_aes_256_ccm; -+ RSA_verify_PKCS1_PSS_mgf1; -+ EVP_aes_128_ccm; -+ EVP_aes_192_gcm; -+ X509_ALGOR_set_md; -+ RAND_init_fips; -+ EVP_aes_256_gcm; -+ EVP_aes_192_ccm; -+ CMAC_CTX_copy; -+ CMAC_CTX_free; -+ CMAC_CTX_get0_cipher_ctx; -+ CMAC_CTX_cleanup; -+ CMAC_Init; -+ CMAC_Update; -+ CMAC_resume; -+ CMAC_CTX_new; -+ CMAC_Final; -+ CRYPTO_ctr128_encrypt_ctr32; -+ CRYPTO_gcm128_release; -+ CRYPTO_ccm128_decrypt_ccm64; -+ CRYPTO_ccm128_encrypt; -+ CRYPTO_gcm128_encrypt; -+ CRYPTO_xts128_encrypt; -+ EVP_rc4_hmac_md5; -+ CRYPTO_nistcts128_decrypt_block; -+ CRYPTO_gcm128_setiv; -+ CRYPTO_nistcts128_encrypt; -+ EVP_aes_128_cbc_hmac_sha1; -+ CRYPTO_gcm128_tag; -+ CRYPTO_ccm128_encrypt_ccm64; -+ ENGINE_load_rdrand; -+ CRYPTO_ccm128_setiv; -+ CRYPTO_nistcts128_encrypt_block; -+ CRYPTO_gcm128_aad; -+ CRYPTO_ccm128_init; -+ CRYPTO_nistcts128_decrypt; -+ CRYPTO_gcm128_new; -+ CRYPTO_ccm128_tag; -+ CRYPTO_ccm128_decrypt; -+ CRYPTO_ccm128_aad; -+ CRYPTO_gcm128_init; -+ CRYPTO_gcm128_decrypt; -+ ENGINE_load_rsax; -+ CRYPTO_gcm128_decrypt_ctr32; -+ CRYPTO_gcm128_encrypt_ctr32; -+ CRYPTO_gcm128_finish; -+ EVP_aes_256_cbc_hmac_sha1; -+ PKCS5_pbkdf2_set; -+ CMS_add0_recipient_password; -+ CMS_decrypt_set1_password; -+ CMS_RecipientInfo_set0_password; -+ RAND_set_fips_drbg_type; -+ X509_REQ_sign_ctx; -+ RSA_PSS_PARAMS_new; -+ X509_CRL_sign_ctx; -+ X509_signature_dump; -+ d2i_RSA_PSS_PARAMS; -+ RSA_PSS_PARAMS_it; -+ RSA_PSS_PARAMS_free; -+ X509_sign_ctx; -+ i2d_RSA_PSS_PARAMS; -+ ASN1_item_sign_ctx; -+ EC_GFp_nistp521_method; -+ EC_GFp_nistp256_method; -+ OPENSSL_stderr; -+ OPENSSL_cpuid_setup; -+ OPENSSL_showfatal; -+ BIO_new_dgram_sctp; -+ BIO_dgram_sctp_msg_waiting; -+ BIO_dgram_sctp_wait_for_dry; -+ BIO_s_datagram_sctp; -+ BIO_dgram_is_sctp; -+ BIO_dgram_sctp_notification_cb; -+} OPENSSL_1.0.0; -+ -+OPENSSL_1.0.1d { -+ global: -+ CRYPTO_memcmp; -+} OPENSSL_1.0.1; -+ -+OPENSSL_1.0.2 { -+ global: -+ SSL_CTX_set_alpn_protos; -+ SSL_set_alpn_protos; -+ SSL_CTX_set_alpn_select_cb; -+ SSL_get0_alpn_selected; -+ SSL_CTX_set_custom_cli_ext; -+ SSL_CTX_set_custom_srv_ext; -+ SSL_CTX_set_srv_supp_data; -+ SSL_CTX_set_cli_supp_data; -+ SSL_set_cert_cb; -+ SSL_CTX_use_serverinfo; -+ SSL_CTX_use_serverinfo_file; -+ SSL_CTX_set_cert_cb; -+ SSL_CTX_get0_param; -+ SSL_get0_param; -+ SSL_certs_clear; -+ DTLSv1_2_method; -+ DTLSv1_2_server_method; -+ DTLSv1_2_client_method; -+ DTLS_method; -+ DTLS_server_method; -+ DTLS_client_method; -+ SSL_CTX_get_ssl_method; -+ SSL_CTX_get0_certificate; -+ SSL_CTX_get0_privatekey; -+ SSL_COMP_set0_compression_methods; -+ SSL_COMP_free_compression_methods; -+ SSL_CIPHER_find; -+ SSL_is_server; -+ SSL_CONF_CTX_new; -+ SSL_CONF_CTX_finish; -+ SSL_CONF_CTX_free; -+ SSL_CONF_CTX_set_flags; -+ SSL_CONF_CTX_clear_flags; -+ SSL_CONF_CTX_set1_prefix; -+ SSL_CONF_CTX_set_ssl; -+ SSL_CONF_CTX_set_ssl_ctx; -+ SSL_CONF_cmd; -+ SSL_CONF_cmd_argv; -+ SSL_CONF_cmd_value_type; -+ SSL_trace; -+ SSL_CIPHER_standard_name; -+ SSL_get_tlsa_record_byname; -+ ASN1_TIME_diff; -+ BIO_hex_string; -+ CMS_RecipientInfo_get0_pkey_ctx; -+ CMS_RecipientInfo_encrypt; -+ CMS_SignerInfo_get0_pkey_ctx; -+ CMS_SignerInfo_get0_md_ctx; -+ CMS_SignerInfo_get0_signature; -+ CMS_RecipientInfo_kari_get0_alg; -+ CMS_RecipientInfo_kari_get0_reks; -+ CMS_RecipientInfo_kari_get0_orig_id; -+ CMS_RecipientInfo_kari_orig_id_cmp; -+ CMS_RecipientEncryptedKey_get0_id; -+ CMS_RecipientEncryptedKey_cert_cmp; -+ CMS_RecipientInfo_kari_set0_pkey; -+ CMS_RecipientInfo_kari_get0_ctx; -+ CMS_RecipientInfo_kari_decrypt; -+ CMS_SharedInfo_encode; -+ DH_compute_key_padded; -+ d2i_DHxparams; -+ i2d_DHxparams; -+ DH_get_1024_160; -+ DH_get_2048_224; -+ DH_get_2048_256; -+ DH_KDF_X9_42; -+ ECDH_KDF_X9_62; -+ ECDSA_METHOD_new; -+ ECDSA_METHOD_free; -+ ECDSA_METHOD_set_app_data; -+ ECDSA_METHOD_get_app_data; -+ ECDSA_METHOD_set_sign; -+ ECDSA_METHOD_set_sign_setup; -+ ECDSA_METHOD_set_verify; -+ ECDSA_METHOD_set_flags; -+ ECDSA_METHOD_set_name; -+ EVP_des_ede3_wrap; -+ EVP_aes_128_wrap; -+ EVP_aes_192_wrap; -+ EVP_aes_256_wrap; -+ EVP_aes_128_cbc_hmac_sha256; -+ EVP_aes_256_cbc_hmac_sha256; -+ CRYPTO_128_wrap; -+ CRYPTO_128_unwrap; -+ OCSP_REQ_CTX_nbio; -+ OCSP_REQ_CTX_new; -+ OCSP_set_max_response_length; -+ OCSP_REQ_CTX_i2d; -+ OCSP_REQ_CTX_nbio_d2i; -+ OCSP_REQ_CTX_get0_mem_bio; -+ OCSP_REQ_CTX_http; -+ RSA_padding_add_PKCS1_OAEP_mgf1; -+ RSA_padding_check_PKCS1_OAEP_mgf1; -+ RSA_OAEP_PARAMS_free; -+ RSA_OAEP_PARAMS_it; -+ RSA_OAEP_PARAMS_new; -+ SSL_get_sigalgs; -+ SSL_get_shared_sigalgs; -+ SSL_check_chain; -+ X509_chain_up_ref; -+ X509_http_nbio; -+ X509_CRL_http_nbio; -+ X509_REVOKED_dup; -+ i2d_re_X509_tbs; -+ X509_get0_signature; -+ X509_get_signature_nid; -+ X509_CRL_diff; -+ X509_chain_check_suiteb; -+ X509_CRL_check_suiteb; -+ X509_check_host; -+ X509_check_email; -+ X509_check_ip; -+ X509_check_ip_asc; -+ X509_STORE_set_lookup_crls_cb; -+ X509_STORE_CTX_get0_store; -+ X509_VERIFY_PARAM_set1_host; -+ X509_VERIFY_PARAM_add1_host; -+ X509_VERIFY_PARAM_set_hostflags; -+ X509_VERIFY_PARAM_get0_peername; -+ X509_VERIFY_PARAM_set1_email; -+ X509_VERIFY_PARAM_set1_ip; -+ X509_VERIFY_PARAM_set1_ip_asc; -+ X509_VERIFY_PARAM_get0_name; -+ X509_VERIFY_PARAM_get_count; -+ X509_VERIFY_PARAM_get0; -+ X509V3_EXT_free; -+ EC_GROUP_get_mont_data; -+ EC_curve_nid2nist; -+ EC_curve_nist2nid; -+ PEM_write_bio_DHxparams; -+ PEM_write_DHxparams; -+ SSL_CTX_add_client_custom_ext; -+ SSL_CTX_add_server_custom_ext; -+ SSL_extension_supported; -+ BUF_strnlen; -+ sk_deep_copy; -+ SSL_test_functions; -+} OPENSSL_1.0.1d; -+ -Index: openssl-1.0.2~beta1.obsolete.0.0498436515490575/engines/openssl.ld -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ openssl-1.0.2~beta1.obsolete.0.0498436515490575/engines/openssl.ld 2014-02-24 21:02:30.000000000 +0100 -@@ -0,0 +1,10 @@ -+OPENSSL_1.0.0 { -+ global: -+ bind_engine; -+ v_check; -+ OPENSSL_init; -+ OPENSSL_finish; -+ local: -+ *; -+}; -+ -Index: openssl-1.0.2~beta1.obsolete.0.0498436515490575/engines/ccgost/openssl.ld -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ openssl-1.0.2~beta1.obsolete.0.0498436515490575/engines/ccgost/openssl.ld 2014-02-24 21:02:30.000000000 +0100 -@@ -0,0 +1,10 @@ -+OPENSSL_1.0.0 { -+ global: -+ bind_engine; -+ v_check; -+ OPENSSL_init; -+ OPENSSL_finish; -+ local: -+ *; -+}; -+ diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian1.0.2/block_digicert_malaysia.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian1.0.2/block_digicert_malaysia.patch deleted file mode 100755 index c43bcd1c7..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian1.0.2/block_digicert_malaysia.patch +++ /dev/null @@ -1,29 +0,0 @@ -From: Raphael Geissert -Description: make X509_verify_cert indicate that any certificate whose - name contains "Digicert Sdn. Bhd." (from Malaysia) is revoked. -Forwarded: not-needed -Origin: vendor -Last-Update: 2011-11-05 - -Upstream-Status: Backport [debian] - - -Index: openssl-1.0.2~beta1/crypto/x509/x509_vfy.c -=================================================================== ---- openssl-1.0.2~beta1.orig/crypto/x509/x509_vfy.c 2014-02-25 00:16:12.488028844 +0100 -+++ openssl-1.0.2~beta1/crypto/x509/x509_vfy.c 2014-02-25 00:16:12.484028929 +0100 -@@ -964,10 +964,11 @@ - for (i = sk_X509_num(ctx->chain) - 1; i >= 0; i--) - { - x = sk_X509_value(ctx->chain, i); -- /* Mark DigiNotar certificates as revoked, no matter -- * where in the chain they are. -+ /* Mark certificates containing the following names as -+ * revoked, no matter where in the chain they are. - */ -- if (x->name && strstr(x->name, "DigiNotar")) -+ if (x->name && (strstr(x->name, "DigiNotar") || -+ strstr(x->name, "Digicert Sdn. Bhd."))) - { - ctx->error = X509_V_ERR_CERT_REVOKED; - ctx->error_depth = i; diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian1.0.2/block_diginotar.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian1.0.2/block_diginotar.patch deleted file mode 100755 index d81e22cd8..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian1.0.2/block_diginotar.patch +++ /dev/null @@ -1,68 +0,0 @@ -From: Raphael Geissert -Description: make X509_verify_cert indicate that any certificate whose - name contains "DigiNotar" is revoked. -Forwarded: not-needed -Origin: vendor -Last-Update: 2011-09-08 -Bug: http://bugs.debian.org/639744 -Reviewed-by: Kurt Roeckx -Reviewed-by: Dr Stephen N Henson - -This is not meant as final patch. - -Upstream-Status: Backport [debian] - -Signed-off-by: Armin Kuster - -Index: openssl-1.0.2g/crypto/x509/x509_vfy.c -=================================================================== ---- openssl-1.0.2g.orig/crypto/x509/x509_vfy.c -+++ openssl-1.0.2g/crypto/x509/x509_vfy.c -@@ -119,6 +119,7 @@ static int check_trust(X509_STORE_CTX *c - static int check_revocation(X509_STORE_CTX *ctx); - static int check_cert(X509_STORE_CTX *ctx); - static int check_policy(X509_STORE_CTX *ctx); -+static int check_ca_blacklist(X509_STORE_CTX *ctx); - - static int get_crl_score(X509_STORE_CTX *ctx, X509 **pissuer, - unsigned int *preasons, X509_CRL *crl, X509 *x); -@@ -489,6 +490,9 @@ int X509_verify_cert(X509_STORE_CTX *ctx - if (!ok) - goto err; - -+ ok = check_ca_blacklist(ctx); -+ if(!ok) goto err; -+ - #ifndef OPENSSL_NO_RFC3779 - /* RFC 3779 path validation, now that CRL check has been done */ - ok = v3_asid_validate_path(ctx); -@@ -996,6 +1000,29 @@ static int check_crl_time(X509_STORE_CTX - return 1; - } - -+static int check_ca_blacklist(X509_STORE_CTX *ctx) -+ { -+ X509 *x; -+ int i; -+ /* Check all certificates against the blacklist */ -+ for (i = sk_X509_num(ctx->chain) - 1; i >= 0; i--) -+ { -+ x = sk_X509_value(ctx->chain, i); -+ /* Mark DigiNotar certificates as revoked, no matter -+ * where in the chain they are. -+ */ -+ if (x->name && strstr(x->name, "DigiNotar")) -+ { -+ ctx->error = X509_V_ERR_CERT_REVOKED; -+ ctx->error_depth = i; -+ ctx->current_cert = x; -+ if (!ctx->verify_cb(0,ctx)) -+ return 0; -+ } -+ } -+ return 1; -+ } -+ - static int get_crl_sk(X509_STORE_CTX *ctx, X509_CRL **pcrl, X509_CRL **pdcrl, - X509 **pissuer, int *pscore, unsigned int *preasons, - STACK_OF(X509_CRL) *crls) diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian1.0.2/version-script.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian1.0.2/version-script.patch deleted file mode 100755 index 29f11a288..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/debian1.0.2/version-script.patch +++ /dev/null @@ -1,4656 +0,0 @@ -Index: openssl-1.0.2~beta1.obsolete.0.0498436515490575/Configure -=================================================================== ---- openssl-1.0.2~beta1.obsolete.0.0498436515490575.orig/Configure 2014-02-24 21:02:30.000000000 +0100 -+++ openssl-1.0.2~beta1.obsolete.0.0498436515490575/Configure 2014-02-24 21:02:30.000000000 +0100 -@@ -1651,6 +1651,8 @@ - } - } - -+$shared_ldflag .= " -Wl,--version-script=openssl.ld"; -+ - open(IN,'$Makefile.new") || die "unable to create $Makefile.new:$!\n"; -Index: openssl-1.0.2~beta1.obsolete.0.0498436515490575/openssl.ld -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ openssl-1.0.2~beta1.obsolete.0.0498436515490575/openssl.ld 2014-02-24 22:19:08.601827266 +0100 -@@ -0,0 +1,4608 @@ -+OPENSSL_1.0.2d { -+ global: -+ BIO_f_ssl; -+ BIO_new_buffer_ssl_connect; -+ BIO_new_ssl; -+ BIO_new_ssl_connect; -+ BIO_proxy_ssl_copy_session_id; -+ BIO_ssl_copy_session_id; -+ BIO_ssl_shutdown; -+ d2i_SSL_SESSION; -+ DTLSv1_client_method; -+ DTLSv1_method; -+ DTLSv1_server_method; -+ ERR_load_SSL_strings; -+ i2d_SSL_SESSION; -+ kssl_build_principal_2; -+ kssl_cget_tkt; -+ kssl_check_authent; -+ kssl_ctx_free; -+ kssl_ctx_new; -+ kssl_ctx_setkey; -+ kssl_ctx_setprinc; -+ kssl_ctx_setstring; -+ kssl_ctx_show; -+ kssl_err_set; -+ kssl_krb5_free_data_contents; -+ kssl_sget_tkt; -+ kssl_skip_confound; -+ kssl_validate_times; -+ PEM_read_bio_SSL_SESSION; -+ PEM_read_SSL_SESSION; -+ PEM_write_bio_SSL_SESSION; -+ PEM_write_SSL_SESSION; -+ SSL_accept; -+ SSL_add_client_CA; -+ SSL_add_dir_cert_subjects_to_stack; -+ SSL_add_dir_cert_subjs_to_stk; -+ SSL_add_file_cert_subjects_to_stack; -+ SSL_add_file_cert_subjs_to_stk; -+ SSL_alert_desc_string; -+ SSL_alert_desc_string_long; -+ SSL_alert_type_string; -+ SSL_alert_type_string_long; -+ SSL_callback_ctrl; -+ SSL_check_private_key; -+ SSL_CIPHER_description; -+ SSL_CIPHER_get_bits; -+ SSL_CIPHER_get_name; -+ SSL_CIPHER_get_version; -+ SSL_clear; -+ SSL_COMP_add_compression_method; -+ SSL_COMP_get_compression_methods; -+ SSL_COMP_get_compress_methods; -+ SSL_COMP_get_name; -+ SSL_connect; -+ SSL_copy_session_id; -+ SSL_ctrl; -+ SSL_CTX_add_client_CA; -+ SSL_CTX_add_session; -+ SSL_CTX_callback_ctrl; -+ SSL_CTX_check_private_key; -+ SSL_CTX_ctrl; -+ SSL_CTX_flush_sessions; -+ SSL_CTX_free; -+ SSL_CTX_get_cert_store; -+ SSL_CTX_get_client_CA_list; -+ SSL_CTX_get_client_cert_cb; -+ SSL_CTX_get_ex_data; -+ SSL_CTX_get_ex_new_index; -+ SSL_CTX_get_info_callback; -+ SSL_CTX_get_quiet_shutdown; -+ SSL_CTX_get_timeout; -+ SSL_CTX_get_verify_callback; -+ SSL_CTX_get_verify_depth; -+ SSL_CTX_get_verify_mode; -+ SSL_CTX_load_verify_locations; -+ SSL_CTX_new; -+ SSL_CTX_remove_session; -+ SSL_CTX_sess_get_get_cb; -+ SSL_CTX_sess_get_new_cb; -+ SSL_CTX_sess_get_remove_cb; -+ SSL_CTX_sessions; -+ SSL_CTX_sess_set_get_cb; -+ SSL_CTX_sess_set_new_cb; -+ SSL_CTX_sess_set_remove_cb; -+ SSL_CTX_set1_param; -+ SSL_CTX_set_cert_store; -+ SSL_CTX_set_cert_verify_callback; -+ SSL_CTX_set_cert_verify_cb; -+ SSL_CTX_set_cipher_list; -+ SSL_CTX_set_client_CA_list; -+ SSL_CTX_set_client_cert_cb; -+ SSL_CTX_set_client_cert_engine; -+ SSL_CTX_set_cookie_generate_cb; -+ SSL_CTX_set_cookie_verify_cb; -+ SSL_CTX_set_default_passwd_cb; -+ SSL_CTX_set_default_passwd_cb_userdata; -+ SSL_CTX_set_default_verify_paths; -+ SSL_CTX_set_def_passwd_cb_ud; -+ SSL_CTX_set_def_verify_paths; -+ SSL_CTX_set_ex_data; -+ SSL_CTX_set_generate_session_id; -+ SSL_CTX_set_info_callback; -+ SSL_CTX_set_msg_callback; -+ SSL_CTX_set_psk_client_callback; -+ SSL_CTX_set_psk_server_callback; -+ SSL_CTX_set_purpose; -+ SSL_CTX_set_quiet_shutdown; -+ SSL_CTX_set_session_id_context; -+ SSL_CTX_set_ssl_version; -+ SSL_CTX_set_timeout; -+ SSL_CTX_set_tmp_dh_callback; -+ SSL_CTX_set_tmp_ecdh_callback; -+ SSL_CTX_set_tmp_rsa_callback; -+ SSL_CTX_set_trust; -+ SSL_CTX_set_verify; -+ SSL_CTX_set_verify_depth; -+ SSL_CTX_use_cert_chain_file; -+ SSL_CTX_use_certificate; -+ SSL_CTX_use_certificate_ASN1; -+ SSL_CTX_use_certificate_chain_file; -+ SSL_CTX_use_certificate_file; -+ SSL_CTX_use_PrivateKey; -+ SSL_CTX_use_PrivateKey_ASN1; -+ SSL_CTX_use_PrivateKey_file; -+ SSL_CTX_use_psk_identity_hint; -+ SSL_CTX_use_RSAPrivateKey; -+ SSL_CTX_use_RSAPrivateKey_ASN1; -+ SSL_CTX_use_RSAPrivateKey_file; -+ SSL_do_handshake; -+ SSL_dup; -+ SSL_dup_CA_list; -+ SSLeay_add_ssl_algorithms; -+ SSL_free; -+ SSL_get1_session; -+ SSL_get_certificate; -+ SSL_get_cipher_list; -+ SSL_get_ciphers; -+ SSL_get_client_CA_list; -+ SSL_get_current_cipher; -+ SSL_get_current_compression; -+ SSL_get_current_expansion; -+ SSL_get_default_timeout; -+ SSL_get_error; -+ SSL_get_ex_data; -+ SSL_get_ex_data_X509_STORE_CTX_idx; -+ SSL_get_ex_d_X509_STORE_CTX_idx; -+ SSL_get_ex_new_index; -+ SSL_get_fd; -+ SSL_get_finished; -+ SSL_get_info_callback; -+ SSL_get_peer_cert_chain; -+ SSL_get_peer_certificate; -+ SSL_get_peer_finished; -+ SSL_get_privatekey; -+ SSL_get_psk_identity; -+ SSL_get_psk_identity_hint; -+ SSL_get_quiet_shutdown; -+ SSL_get_rbio; -+ SSL_get_read_ahead; -+ SSL_get_rfd; -+ SSL_get_servername; -+ SSL_get_servername_type; -+ SSL_get_session; -+ SSL_get_shared_ciphers; -+ SSL_get_shutdown; -+ SSL_get_SSL_CTX; -+ SSL_get_ssl_method; -+ SSL_get_verify_callback; -+ SSL_get_verify_depth; -+ SSL_get_verify_mode; -+ SSL_get_verify_result; -+ SSL_get_version; -+ SSL_get_wbio; -+ SSL_get_wfd; -+ SSL_has_matching_session_id; -+ SSL_library_init; -+ SSL_load_client_CA_file; -+ SSL_load_error_strings; -+ SSL_new; -+ SSL_peek; -+ SSL_pending; -+ SSL_read; -+ SSL_renegotiate; -+ SSL_renegotiate_pending; -+ SSL_rstate_string; -+ SSL_rstate_string_long; -+ SSL_SESSION_cmp; -+ SSL_SESSION_free; -+ SSL_SESSION_get_ex_data; -+ SSL_SESSION_get_ex_new_index; -+ SSL_SESSION_get_id; -+ SSL_SESSION_get_time; -+ SSL_SESSION_get_timeout; -+ SSL_SESSION_hash; -+ SSL_SESSION_new; -+ SSL_SESSION_print; -+ SSL_SESSION_print_fp; -+ SSL_SESSION_set_ex_data; -+ SSL_SESSION_set_time; -+ SSL_SESSION_set_timeout; -+ SSL_set1_param; -+ SSL_set_accept_state; -+ SSL_set_bio; -+ SSL_set_cipher_list; -+ SSL_set_client_CA_list; -+ SSL_set_connect_state; -+ SSL_set_ex_data; -+ SSL_set_fd; -+ SSL_set_generate_session_id; -+ SSL_set_info_callback; -+ SSL_set_msg_callback; -+ SSL_set_psk_client_callback; -+ SSL_set_psk_server_callback; -+ SSL_set_purpose; -+ SSL_set_quiet_shutdown; -+ SSL_set_read_ahead; -+ SSL_set_rfd; -+ SSL_set_session; -+ SSL_set_session_id_context; -+ SSL_set_session_secret_cb; -+ SSL_set_session_ticket_ext; -+ SSL_set_session_ticket_ext_cb; -+ SSL_set_shutdown; -+ SSL_set_SSL_CTX; -+ SSL_set_ssl_method; -+ SSL_set_tmp_dh_callback; -+ SSL_set_tmp_ecdh_callback; -+ SSL_set_tmp_rsa_callback; -+ SSL_set_trust; -+ SSL_set_verify; -+ SSL_set_verify_depth; -+ SSL_set_verify_result; -+ SSL_set_wfd; -+ SSL_shutdown; -+ SSL_state; -+ SSL_state_string; -+ SSL_state_string_long; -+ SSL_use_certificate; -+ SSL_use_certificate_ASN1; -+ SSL_use_certificate_file; -+ SSL_use_PrivateKey; -+ SSL_use_PrivateKey_ASN1; -+ SSL_use_PrivateKey_file; -+ SSL_use_psk_identity_hint; -+ SSL_use_RSAPrivateKey; -+ SSL_use_RSAPrivateKey_ASN1; -+ SSL_use_RSAPrivateKey_file; -+ SSLv23_client_method; -+ SSLv23_method; -+ SSLv23_server_method; -+ SSLv2_client_method; -+ SSLv2_method; -+ SSLv2_server_method; -+ SSLv3_client_method; -+ SSLv3_method; -+ SSLv3_server_method; -+ SSL_version; -+ SSL_want; -+ SSL_write; -+ TLSv1_client_method; -+ TLSv1_method; -+ TLSv1_server_method; -+ -+ -+ SSLeay; -+ SSLeay_version; -+ ASN1_BIT_STRING_asn1_meth; -+ ASN1_HEADER_free; -+ ASN1_HEADER_new; -+ ASN1_IA5STRING_asn1_meth; -+ ASN1_INTEGER_get; -+ ASN1_INTEGER_set; -+ ASN1_INTEGER_to_BN; -+ ASN1_OBJECT_create; -+ ASN1_OBJECT_free; -+ ASN1_OBJECT_new; -+ ASN1_PRINTABLE_type; -+ ASN1_STRING_cmp; -+ ASN1_STRING_dup; -+ ASN1_STRING_free; -+ ASN1_STRING_new; -+ ASN1_STRING_print; -+ ASN1_STRING_set; -+ ASN1_STRING_type_new; -+ ASN1_TYPE_free; -+ ASN1_TYPE_new; -+ ASN1_UNIVERSALSTRING_to_string; -+ ASN1_UTCTIME_check; -+ ASN1_UTCTIME_print; -+ ASN1_UTCTIME_set; -+ ASN1_check_infinite_end; -+ ASN1_d2i_bio; -+ ASN1_d2i_fp; -+ ASN1_digest; -+ ASN1_dup; -+ ASN1_get_object; -+ ASN1_i2d_bio; -+ ASN1_i2d_fp; -+ ASN1_object_size; -+ ASN1_parse; -+ ASN1_put_object; -+ ASN1_sign; -+ ASN1_verify; -+ BF_cbc_encrypt; -+ BF_cfb64_encrypt; -+ BF_ecb_encrypt; -+ BF_encrypt; -+ BF_ofb64_encrypt; -+ BF_options; -+ BF_set_key; -+ BIO_CONNECT_free; -+ BIO_CONNECT_new; -+ BIO_accept; -+ BIO_ctrl; -+ BIO_int_ctrl; -+ BIO_debug_callback; -+ BIO_dump; -+ BIO_dup_chain; -+ BIO_f_base64; -+ BIO_f_buffer; -+ BIO_f_cipher; -+ BIO_f_md; -+ BIO_f_null; -+ BIO_f_proxy_server; -+ BIO_fd_non_fatal_error; -+ BIO_fd_should_retry; -+ BIO_find_type; -+ BIO_free; -+ BIO_free_all; -+ BIO_get_accept_socket; -+ BIO_get_filter_bio; -+ BIO_get_host_ip; -+ BIO_get_port; -+ BIO_get_retry_BIO; -+ BIO_get_retry_reason; -+ BIO_gethostbyname; -+ BIO_gets; -+ BIO_new; -+ BIO_new_accept; -+ BIO_new_connect; -+ BIO_new_fd; -+ BIO_new_file; -+ BIO_new_fp; -+ BIO_new_socket; -+ BIO_pop; -+ BIO_printf; -+ BIO_push; -+ BIO_puts; -+ BIO_read; -+ BIO_s_accept; -+ BIO_s_connect; -+ BIO_s_fd; -+ BIO_s_file; -+ BIO_s_mem; -+ BIO_s_null; -+ BIO_s_proxy_client; -+ BIO_s_socket; -+ BIO_set; -+ BIO_set_cipher; -+ BIO_set_tcp_ndelay; -+ BIO_sock_cleanup; -+ BIO_sock_error; -+ BIO_sock_init; -+ BIO_sock_non_fatal_error; -+ BIO_sock_should_retry; -+ BIO_socket_ioctl; -+ BIO_write; -+ BN_CTX_free; -+ BN_CTX_new; -+ BN_MONT_CTX_free; -+ BN_MONT_CTX_new; -+ BN_MONT_CTX_set; -+ BN_add; -+ BN_add_word; -+ BN_hex2bn; -+ BN_bin2bn; -+ BN_bn2hex; -+ BN_bn2bin; -+ BN_clear; -+ BN_clear_bit; -+ BN_clear_free; -+ BN_cmp; -+ BN_copy; -+ BN_div; -+ BN_div_word; -+ BN_dup; -+ BN_free; -+ BN_from_montgomery; -+ BN_gcd; -+ BN_generate_prime; -+ BN_get_word; -+ BN_is_bit_set; -+ BN_is_prime; -+ BN_lshift; -+ BN_lshift1; -+ BN_mask_bits; -+ BN_mod; -+ BN_mod_exp; -+ BN_mod_exp_mont; -+ BN_mod_exp_simple; -+ BN_mod_inverse; -+ BN_mod_mul; -+ BN_mod_mul_montgomery; -+ BN_mod_word; -+ BN_mul; -+ BN_new; -+ BN_num_bits; -+ BN_num_bits_word; -+ BN_options; -+ BN_print; -+ BN_print_fp; -+ BN_rand; -+ BN_reciprocal; -+ BN_rshift; -+ BN_rshift1; -+ BN_set_bit; -+ BN_set_word; -+ BN_sqr; -+ BN_sub; -+ BN_to_ASN1_INTEGER; -+ BN_ucmp; -+ BN_value_one; -+ BUF_MEM_free; -+ BUF_MEM_grow; -+ BUF_MEM_new; -+ BUF_strdup; -+ CONF_free; -+ CONF_get_number; -+ CONF_get_section; -+ CONF_get_string; -+ CONF_load; -+ CRYPTO_add_lock; -+ CRYPTO_dbg_free; -+ CRYPTO_dbg_malloc; -+ CRYPTO_dbg_realloc; -+ CRYPTO_dbg_remalloc; -+ CRYPTO_free; -+ CRYPTO_get_add_lock_callback; -+ CRYPTO_get_id_callback; -+ CRYPTO_get_lock_name; -+ CRYPTO_get_locking_callback; -+ CRYPTO_get_mem_functions; -+ CRYPTO_lock; -+ CRYPTO_malloc; -+ CRYPTO_mem_ctrl; -+ CRYPTO_mem_leaks; -+ CRYPTO_mem_leaks_cb; -+ CRYPTO_mem_leaks_fp; -+ CRYPTO_realloc; -+ CRYPTO_remalloc; -+ CRYPTO_set_add_lock_callback; -+ CRYPTO_set_id_callback; -+ CRYPTO_set_locking_callback; -+ CRYPTO_set_mem_functions; -+ CRYPTO_thread_id; -+ DH_check; -+ DH_compute_key; -+ DH_free; -+ DH_generate_key; -+ DH_generate_parameters; -+ DH_new; -+ DH_size; -+ DHparams_print; -+ DHparams_print_fp; -+ DSA_free; -+ DSA_generate_key; -+ DSA_generate_parameters; -+ DSA_is_prime; -+ DSA_new; -+ DSA_print; -+ DSA_print_fp; -+ DSA_sign; -+ DSA_sign_setup; -+ DSA_size; -+ DSA_verify; -+ DSAparams_print; -+ DSAparams_print_fp; -+ ERR_clear_error; -+ ERR_error_string; -+ ERR_free_strings; -+ ERR_func_error_string; -+ ERR_get_err_state_table; -+ ERR_get_error; -+ ERR_get_error_line; -+ ERR_get_state; -+ ERR_get_string_table; -+ ERR_lib_error_string; -+ ERR_load_ASN1_strings; -+ ERR_load_BIO_strings; -+ ERR_load_BN_strings; -+ ERR_load_BUF_strings; -+ ERR_load_CONF_strings; -+ ERR_load_DH_strings; -+ ERR_load_DSA_strings; -+ ERR_load_ERR_strings; -+ ERR_load_EVP_strings; -+ ERR_load_OBJ_strings; -+ ERR_load_PEM_strings; -+ ERR_load_PROXY_strings; -+ ERR_load_RSA_strings; -+ ERR_load_X509_strings; -+ ERR_load_crypto_strings; -+ ERR_load_strings; -+ ERR_peek_error; -+ ERR_peek_error_line; -+ ERR_print_errors; -+ ERR_print_errors_fp; -+ ERR_put_error; -+ ERR_reason_error_string; -+ ERR_remove_state; -+ EVP_BytesToKey; -+ EVP_CIPHER_CTX_cleanup; -+ EVP_CipherFinal; -+ EVP_CipherInit; -+ EVP_CipherUpdate; -+ EVP_DecodeBlock; -+ EVP_DecodeFinal; -+ EVP_DecodeInit; -+ EVP_DecodeUpdate; -+ EVP_DecryptFinal; -+ EVP_DecryptInit; -+ EVP_DecryptUpdate; -+ EVP_DigestFinal; -+ EVP_DigestInit; -+ EVP_DigestUpdate; -+ EVP_EncodeBlock; -+ EVP_EncodeFinal; -+ EVP_EncodeInit; -+ EVP_EncodeUpdate; -+ EVP_EncryptFinal; -+ EVP_EncryptInit; -+ EVP_EncryptUpdate; -+ EVP_OpenFinal; -+ EVP_OpenInit; -+ EVP_PKEY_assign; -+ EVP_PKEY_copy_parameters; -+ EVP_PKEY_free; -+ EVP_PKEY_missing_parameters; -+ EVP_PKEY_new; -+ EVP_PKEY_save_parameters; -+ EVP_PKEY_size; -+ EVP_PKEY_type; -+ EVP_SealFinal; -+ EVP_SealInit; -+ EVP_SignFinal; -+ EVP_VerifyFinal; -+ EVP_add_alias; -+ EVP_add_cipher; -+ EVP_add_digest; -+ EVP_bf_cbc; -+ EVP_bf_cfb64; -+ EVP_bf_ecb; -+ EVP_bf_ofb; -+ EVP_cleanup; -+ EVP_des_cbc; -+ EVP_des_cfb64; -+ EVP_des_ecb; -+ EVP_des_ede; -+ EVP_des_ede3; -+ EVP_des_ede3_cbc; -+ EVP_des_ede3_cfb64; -+ EVP_des_ede3_ofb; -+ EVP_des_ede_cbc; -+ EVP_des_ede_cfb64; -+ EVP_des_ede_ofb; -+ EVP_des_ofb; -+ EVP_desx_cbc; -+ EVP_dss; -+ EVP_dss1; -+ EVP_enc_null; -+ EVP_get_cipherbyname; -+ EVP_get_digestbyname; -+ EVP_get_pw_prompt; -+ EVP_idea_cbc; -+ EVP_idea_cfb64; -+ EVP_idea_ecb; -+ EVP_idea_ofb; -+ EVP_md2; -+ EVP_md5; -+ EVP_md_null; -+ EVP_rc2_cbc; -+ EVP_rc2_cfb64; -+ EVP_rc2_ecb; -+ EVP_rc2_ofb; -+ EVP_rc4; -+ EVP_read_pw_string; -+ EVP_set_pw_prompt; -+ EVP_sha; -+ EVP_sha1; -+ MD2; -+ MD2_Final; -+ MD2_Init; -+ MD2_Update; -+ MD2_options; -+ MD5; -+ MD5_Final; -+ MD5_Init; -+ MD5_Update; -+ MDC2; -+ MDC2_Final; -+ MDC2_Init; -+ MDC2_Update; -+ NETSCAPE_SPKAC_free; -+ NETSCAPE_SPKAC_new; -+ NETSCAPE_SPKI_free; -+ NETSCAPE_SPKI_new; -+ NETSCAPE_SPKI_sign; -+ NETSCAPE_SPKI_verify; -+ OBJ_add_object; -+ OBJ_bsearch; -+ OBJ_cleanup; -+ OBJ_cmp; -+ OBJ_create; -+ OBJ_dup; -+ OBJ_ln2nid; -+ OBJ_new_nid; -+ OBJ_nid2ln; -+ OBJ_nid2obj; -+ OBJ_nid2sn; -+ OBJ_obj2nid; -+ OBJ_sn2nid; -+ OBJ_txt2nid; -+ PEM_ASN1_read; -+ PEM_ASN1_read_bio; -+ PEM_ASN1_write; -+ PEM_ASN1_write_bio; -+ PEM_SealFinal; -+ PEM_SealInit; -+ PEM_SealUpdate; -+ PEM_SignFinal; -+ PEM_SignInit; -+ PEM_SignUpdate; -+ PEM_X509_INFO_read; -+ PEM_X509_INFO_read_bio; -+ PEM_X509_INFO_write_bio; -+ PEM_dek_info; -+ PEM_do_header; -+ PEM_get_EVP_CIPHER_INFO; -+ PEM_proc_type; -+ PEM_read; -+ PEM_read_DHparams; -+ PEM_read_DSAPrivateKey; -+ PEM_read_DSAparams; -+ PEM_read_PKCS7; -+ PEM_read_PrivateKey; -+ PEM_read_RSAPrivateKey; -+ PEM_read_X509; -+ PEM_read_X509_CRL; -+ PEM_read_X509_REQ; -+ PEM_read_bio; -+ PEM_read_bio_DHparams; -+ PEM_read_bio_DSAPrivateKey; -+ PEM_read_bio_DSAparams; -+ PEM_read_bio_PKCS7; -+ PEM_read_bio_PrivateKey; -+ PEM_read_bio_RSAPrivateKey; -+ PEM_read_bio_X509; -+ PEM_read_bio_X509_CRL; -+ PEM_read_bio_X509_REQ; -+ PEM_write; -+ PEM_write_DHparams; -+ PEM_write_DSAPrivateKey; -+ PEM_write_DSAparams; -+ PEM_write_PKCS7; -+ PEM_write_PrivateKey; -+ PEM_write_RSAPrivateKey; -+ PEM_write_X509; -+ PEM_write_X509_CRL; -+ PEM_write_X509_REQ; -+ PEM_write_bio; -+ PEM_write_bio_DHparams; -+ PEM_write_bio_DSAPrivateKey; -+ PEM_write_bio_DSAparams; -+ PEM_write_bio_PKCS7; -+ PEM_write_bio_PrivateKey; -+ PEM_write_bio_RSAPrivateKey; -+ PEM_write_bio_X509; -+ PEM_write_bio_X509_CRL; -+ PEM_write_bio_X509_REQ; -+ PKCS7_DIGEST_free; -+ PKCS7_DIGEST_new; -+ PKCS7_ENCRYPT_free; -+ PKCS7_ENCRYPT_new; -+ PKCS7_ENC_CONTENT_free; -+ PKCS7_ENC_CONTENT_new; -+ PKCS7_ENVELOPE_free; -+ PKCS7_ENVELOPE_new; -+ PKCS7_ISSUER_AND_SERIAL_digest; -+ PKCS7_ISSUER_AND_SERIAL_free; -+ PKCS7_ISSUER_AND_SERIAL_new; -+ PKCS7_RECIP_INFO_free; -+ PKCS7_RECIP_INFO_new; -+ PKCS7_SIGNED_free; -+ PKCS7_SIGNED_new; -+ PKCS7_SIGNER_INFO_free; -+ PKCS7_SIGNER_INFO_new; -+ PKCS7_SIGN_ENVELOPE_free; -+ PKCS7_SIGN_ENVELOPE_new; -+ PKCS7_dup; -+ PKCS7_free; -+ PKCS7_new; -+ PROXY_ENTRY_add_noproxy; -+ PROXY_ENTRY_clear_noproxy; -+ PROXY_ENTRY_free; -+ PROXY_ENTRY_get_noproxy; -+ PROXY_ENTRY_new; -+ PROXY_ENTRY_set_server; -+ PROXY_add_noproxy; -+ PROXY_add_server; -+ PROXY_check_by_host; -+ PROXY_check_url; -+ PROXY_clear_noproxy; -+ PROXY_free; -+ PROXY_get_noproxy; -+ PROXY_get_proxies; -+ PROXY_get_proxy_entry; -+ PROXY_load_conf; -+ PROXY_new; -+ PROXY_print; -+ RAND_bytes; -+ RAND_cleanup; -+ RAND_file_name; -+ RAND_load_file; -+ RAND_screen; -+ RAND_seed; -+ RAND_write_file; -+ RC2_cbc_encrypt; -+ RC2_cfb64_encrypt; -+ RC2_ecb_encrypt; -+ RC2_encrypt; -+ RC2_ofb64_encrypt; -+ RC2_set_key; -+ RC4; -+ RC4_options; -+ RC4_set_key; -+ RSAPrivateKey_asn1_meth; -+ RSAPrivateKey_dup; -+ RSAPublicKey_dup; -+ RSA_PKCS1_SSLeay; -+ RSA_free; -+ RSA_generate_key; -+ RSA_new; -+ RSA_new_method; -+ RSA_print; -+ RSA_print_fp; -+ RSA_private_decrypt; -+ RSA_private_encrypt; -+ RSA_public_decrypt; -+ RSA_public_encrypt; -+ RSA_set_default_method; -+ RSA_sign; -+ RSA_sign_ASN1_OCTET_STRING; -+ RSA_size; -+ RSA_verify; -+ RSA_verify_ASN1_OCTET_STRING; -+ SHA; -+ SHA1; -+ SHA1_Final; -+ SHA1_Init; -+ SHA1_Update; -+ SHA_Final; -+ SHA_Init; -+ SHA_Update; -+ OpenSSL_add_all_algorithms; -+ OpenSSL_add_all_ciphers; -+ OpenSSL_add_all_digests; -+ TXT_DB_create_index; -+ TXT_DB_free; -+ TXT_DB_get_by_index; -+ TXT_DB_insert; -+ TXT_DB_read; -+ TXT_DB_write; -+ X509_ALGOR_free; -+ X509_ALGOR_new; -+ X509_ATTRIBUTE_free; -+ X509_ATTRIBUTE_new; -+ X509_CINF_free; -+ X509_CINF_new; -+ X509_CRL_INFO_free; -+ X509_CRL_INFO_new; -+ X509_CRL_add_ext; -+ X509_CRL_cmp; -+ X509_CRL_delete_ext; -+ X509_CRL_dup; -+ X509_CRL_free; -+ X509_CRL_get_ext; -+ X509_CRL_get_ext_by_NID; -+ X509_CRL_get_ext_by_OBJ; -+ X509_CRL_get_ext_by_critical; -+ X509_CRL_get_ext_count; -+ X509_CRL_new; -+ X509_CRL_sign; -+ X509_CRL_verify; -+ X509_EXTENSION_create_by_NID; -+ X509_EXTENSION_create_by_OBJ; -+ X509_EXTENSION_dup; -+ X509_EXTENSION_free; -+ X509_EXTENSION_get_critical; -+ X509_EXTENSION_get_data; -+ X509_EXTENSION_get_object; -+ X509_EXTENSION_new; -+ X509_EXTENSION_set_critical; -+ X509_EXTENSION_set_data; -+ X509_EXTENSION_set_object; -+ X509_INFO_free; -+ X509_INFO_new; -+ X509_LOOKUP_by_alias; -+ X509_LOOKUP_by_fingerprint; -+ X509_LOOKUP_by_issuer_serial; -+ X509_LOOKUP_by_subject; -+ X509_LOOKUP_ctrl; -+ X509_LOOKUP_file; -+ X509_LOOKUP_free; -+ X509_LOOKUP_hash_dir; -+ X509_LOOKUP_init; -+ X509_LOOKUP_new; -+ X509_LOOKUP_shutdown; -+ X509_NAME_ENTRY_create_by_NID; -+ X509_NAME_ENTRY_create_by_OBJ; -+ X509_NAME_ENTRY_dup; -+ X509_NAME_ENTRY_free; -+ X509_NAME_ENTRY_get_data; -+ X509_NAME_ENTRY_get_object; -+ X509_NAME_ENTRY_new; -+ X509_NAME_ENTRY_set_data; -+ X509_NAME_ENTRY_set_object; -+ X509_NAME_add_entry; -+ X509_NAME_cmp; -+ X509_NAME_delete_entry; -+ X509_NAME_digest; -+ X509_NAME_dup; -+ X509_NAME_entry_count; -+ X509_NAME_free; -+ X509_NAME_get_entry; -+ X509_NAME_get_index_by_NID; -+ X509_NAME_get_index_by_OBJ; -+ X509_NAME_get_text_by_NID; -+ X509_NAME_get_text_by_OBJ; -+ X509_NAME_hash; -+ X509_NAME_new; -+ X509_NAME_oneline; -+ X509_NAME_print; -+ X509_NAME_set; -+ X509_OBJECT_free_contents; -+ X509_OBJECT_retrieve_by_subject; -+ X509_OBJECT_up_ref_count; -+ X509_PKEY_free; -+ X509_PKEY_new; -+ X509_PUBKEY_free; -+ X509_PUBKEY_get; -+ X509_PUBKEY_new; -+ X509_PUBKEY_set; -+ X509_REQ_INFO_free; -+ X509_REQ_INFO_new; -+ X509_REQ_dup; -+ X509_REQ_free; -+ X509_REQ_get_pubkey; -+ X509_REQ_new; -+ X509_REQ_print; -+ X509_REQ_print_fp; -+ X509_REQ_set_pubkey; -+ X509_REQ_set_subject_name; -+ X509_REQ_set_version; -+ X509_REQ_sign; -+ X509_REQ_to_X509; -+ X509_REQ_verify; -+ X509_REVOKED_add_ext; -+ X509_REVOKED_delete_ext; -+ X509_REVOKED_free; -+ X509_REVOKED_get_ext; -+ X509_REVOKED_get_ext_by_NID; -+ X509_REVOKED_get_ext_by_OBJ; -+ X509_REVOKED_get_ext_by_critical; -+ X509_REVOKED_get_ext_by_critic; -+ X509_REVOKED_get_ext_count; -+ X509_REVOKED_new; -+ X509_SIG_free; -+ X509_SIG_new; -+ X509_STORE_CTX_cleanup; -+ X509_STORE_CTX_init; -+ X509_STORE_add_cert; -+ X509_STORE_add_lookup; -+ X509_STORE_free; -+ X509_STORE_get_by_subject; -+ X509_STORE_load_locations; -+ X509_STORE_new; -+ X509_STORE_set_default_paths; -+ X509_VAL_free; -+ X509_VAL_new; -+ X509_add_ext; -+ X509_asn1_meth; -+ X509_certificate_type; -+ X509_check_private_key; -+ X509_cmp_current_time; -+ X509_delete_ext; -+ X509_digest; -+ X509_dup; -+ X509_free; -+ X509_get_default_cert_area; -+ X509_get_default_cert_dir; -+ X509_get_default_cert_dir_env; -+ X509_get_default_cert_file; -+ X509_get_default_cert_file_env; -+ X509_get_default_private_dir; -+ X509_get_ext; -+ X509_get_ext_by_NID; -+ X509_get_ext_by_OBJ; -+ X509_get_ext_by_critical; -+ X509_get_ext_count; -+ X509_get_issuer_name; -+ X509_get_pubkey; -+ X509_get_pubkey_parameters; -+ X509_get_serialNumber; -+ X509_get_subject_name; -+ X509_gmtime_adj; -+ X509_issuer_and_serial_cmp; -+ X509_issuer_and_serial_hash; -+ X509_issuer_name_cmp; -+ X509_issuer_name_hash; -+ X509_load_cert_file; -+ X509_new; -+ X509_print; -+ X509_print_fp; -+ X509_set_issuer_name; -+ X509_set_notAfter; -+ X509_set_notBefore; -+ X509_set_pubkey; -+ X509_set_serialNumber; -+ X509_set_subject_name; -+ X509_set_version; -+ X509_sign; -+ X509_subject_name_cmp; -+ X509_subject_name_hash; -+ X509_to_X509_REQ; -+ X509_verify; -+ X509_verify_cert; -+ X509_verify_cert_error_string; -+ X509v3_add_ext; -+ X509v3_add_extension; -+ X509v3_add_netscape_extensions; -+ X509v3_add_standard_extensions; -+ X509v3_cleanup_extensions; -+ X509v3_data_type_by_NID; -+ X509v3_data_type_by_OBJ; -+ X509v3_delete_ext; -+ X509v3_get_ext; -+ X509v3_get_ext_by_NID; -+ X509v3_get_ext_by_OBJ; -+ X509v3_get_ext_by_critical; -+ X509v3_get_ext_count; -+ X509v3_pack_string; -+ X509v3_pack_type_by_NID; -+ X509v3_pack_type_by_OBJ; -+ X509v3_unpack_string; -+ _des_crypt; -+ a2d_ASN1_OBJECT; -+ a2i_ASN1_INTEGER; -+ a2i_ASN1_STRING; -+ asn1_Finish; -+ asn1_GetSequence; -+ bn_div_words; -+ bn_expand2; -+ bn_mul_add_words; -+ bn_mul_words; -+ BN_uadd; -+ BN_usub; -+ bn_sqr_words; -+ _ossl_old_crypt; -+ d2i_ASN1_BIT_STRING; -+ d2i_ASN1_BOOLEAN; -+ d2i_ASN1_HEADER; -+ d2i_ASN1_IA5STRING; -+ d2i_ASN1_INTEGER; -+ d2i_ASN1_OBJECT; -+ d2i_ASN1_OCTET_STRING; -+ d2i_ASN1_PRINTABLE; -+ d2i_ASN1_PRINTABLESTRING; -+ d2i_ASN1_SET; -+ d2i_ASN1_T61STRING; -+ d2i_ASN1_TYPE; -+ d2i_ASN1_UTCTIME; -+ d2i_ASN1_bytes; -+ d2i_ASN1_type_bytes; -+ d2i_DHparams; -+ d2i_DSAPrivateKey; -+ d2i_DSAPrivateKey_bio; -+ d2i_DSAPrivateKey_fp; -+ d2i_DSAPublicKey; -+ d2i_DSAparams; -+ d2i_NETSCAPE_SPKAC; -+ d2i_NETSCAPE_SPKI; -+ d2i_Netscape_RSA; -+ d2i_PKCS7; -+ d2i_PKCS7_DIGEST; -+ d2i_PKCS7_ENCRYPT; -+ d2i_PKCS7_ENC_CONTENT; -+ d2i_PKCS7_ENVELOPE; -+ d2i_PKCS7_ISSUER_AND_SERIAL; -+ d2i_PKCS7_RECIP_INFO; -+ d2i_PKCS7_SIGNED; -+ d2i_PKCS7_SIGNER_INFO; -+ d2i_PKCS7_SIGN_ENVELOPE; -+ d2i_PKCS7_bio; -+ d2i_PKCS7_fp; -+ d2i_PrivateKey; -+ d2i_PublicKey; -+ d2i_RSAPrivateKey; -+ d2i_RSAPrivateKey_bio; -+ d2i_RSAPrivateKey_fp; -+ d2i_RSAPublicKey; -+ d2i_X509; -+ d2i_X509_ALGOR; -+ d2i_X509_ATTRIBUTE; -+ d2i_X509_CINF; -+ d2i_X509_CRL; -+ d2i_X509_CRL_INFO; -+ d2i_X509_CRL_bio; -+ d2i_X509_CRL_fp; -+ d2i_X509_EXTENSION; -+ d2i_X509_NAME; -+ d2i_X509_NAME_ENTRY; -+ d2i_X509_PKEY; -+ d2i_X509_PUBKEY; -+ d2i_X509_REQ; -+ d2i_X509_REQ_INFO; -+ d2i_X509_REQ_bio; -+ d2i_X509_REQ_fp; -+ d2i_X509_REVOKED; -+ d2i_X509_SIG; -+ d2i_X509_VAL; -+ d2i_X509_bio; -+ d2i_X509_fp; -+ DES_cbc_cksum; -+ DES_cbc_encrypt; -+ DES_cblock_print_file; -+ DES_cfb64_encrypt; -+ DES_cfb_encrypt; -+ DES_decrypt3; -+ DES_ecb3_encrypt; -+ DES_ecb_encrypt; -+ DES_ede3_cbc_encrypt; -+ DES_ede3_cfb64_encrypt; -+ DES_ede3_ofb64_encrypt; -+ DES_enc_read; -+ DES_enc_write; -+ DES_encrypt1; -+ DES_encrypt2; -+ DES_encrypt3; -+ DES_fcrypt; -+ DES_is_weak_key; -+ DES_key_sched; -+ DES_ncbc_encrypt; -+ DES_ofb64_encrypt; -+ DES_ofb_encrypt; -+ DES_options; -+ DES_pcbc_encrypt; -+ DES_quad_cksum; -+ DES_random_key; -+ _ossl_old_des_random_seed; -+ _ossl_old_des_read_2passwords; -+ _ossl_old_des_read_password; -+ _ossl_old_des_read_pw; -+ _ossl_old_des_read_pw_string; -+ DES_set_key; -+ DES_set_odd_parity; -+ DES_string_to_2keys; -+ DES_string_to_key; -+ DES_xcbc_encrypt; -+ DES_xwhite_in2out; -+ fcrypt_body; -+ i2a_ASN1_INTEGER; -+ i2a_ASN1_OBJECT; -+ i2a_ASN1_STRING; -+ i2d_ASN1_BIT_STRING; -+ i2d_ASN1_BOOLEAN; -+ i2d_ASN1_HEADER; -+ i2d_ASN1_IA5STRING; -+ i2d_ASN1_INTEGER; -+ i2d_ASN1_OBJECT; -+ i2d_ASN1_OCTET_STRING; -+ i2d_ASN1_PRINTABLE; -+ i2d_ASN1_SET; -+ i2d_ASN1_TYPE; -+ i2d_ASN1_UTCTIME; -+ i2d_ASN1_bytes; -+ i2d_DHparams; -+ i2d_DSAPrivateKey; -+ i2d_DSAPrivateKey_bio; -+ i2d_DSAPrivateKey_fp; -+ i2d_DSAPublicKey; -+ i2d_DSAparams; -+ i2d_NETSCAPE_SPKAC; -+ i2d_NETSCAPE_SPKI; -+ i2d_Netscape_RSA; -+ i2d_PKCS7; -+ i2d_PKCS7_DIGEST; -+ i2d_PKCS7_ENCRYPT; -+ i2d_PKCS7_ENC_CONTENT; -+ i2d_PKCS7_ENVELOPE; -+ i2d_PKCS7_ISSUER_AND_SERIAL; -+ i2d_PKCS7_RECIP_INFO; -+ i2d_PKCS7_SIGNED; -+ i2d_PKCS7_SIGNER_INFO; -+ i2d_PKCS7_SIGN_ENVELOPE; -+ i2d_PKCS7_bio; -+ i2d_PKCS7_fp; -+ i2d_PrivateKey; -+ i2d_PublicKey; -+ i2d_RSAPrivateKey; -+ i2d_RSAPrivateKey_bio; -+ i2d_RSAPrivateKey_fp; -+ i2d_RSAPublicKey; -+ i2d_X509; -+ i2d_X509_ALGOR; -+ i2d_X509_ATTRIBUTE; -+ i2d_X509_CINF; -+ i2d_X509_CRL; -+ i2d_X509_CRL_INFO; -+ i2d_X509_CRL_bio; -+ i2d_X509_CRL_fp; -+ i2d_X509_EXTENSION; -+ i2d_X509_NAME; -+ i2d_X509_NAME_ENTRY; -+ i2d_X509_PKEY; -+ i2d_X509_PUBKEY; -+ i2d_X509_REQ; -+ i2d_X509_REQ_INFO; -+ i2d_X509_REQ_bio; -+ i2d_X509_REQ_fp; -+ i2d_X509_REVOKED; -+ i2d_X509_SIG; -+ i2d_X509_VAL; -+ i2d_X509_bio; -+ i2d_X509_fp; -+ idea_cbc_encrypt; -+ idea_cfb64_encrypt; -+ idea_ecb_encrypt; -+ idea_encrypt; -+ idea_ofb64_encrypt; -+ idea_options; -+ idea_set_decrypt_key; -+ idea_set_encrypt_key; -+ lh_delete; -+ lh_doall; -+ lh_doall_arg; -+ lh_free; -+ lh_insert; -+ lh_new; -+ lh_node_stats; -+ lh_node_stats_bio; -+ lh_node_usage_stats; -+ lh_node_usage_stats_bio; -+ lh_retrieve; -+ lh_stats; -+ lh_stats_bio; -+ lh_strhash; -+ sk_delete; -+ sk_delete_ptr; -+ sk_dup; -+ sk_find; -+ sk_free; -+ sk_insert; -+ sk_new; -+ sk_pop; -+ sk_pop_free; -+ sk_push; -+ sk_set_cmp_func; -+ sk_shift; -+ sk_unshift; -+ sk_zero; -+ BIO_f_nbio_test; -+ ASN1_TYPE_get; -+ ASN1_TYPE_set; -+ PKCS7_content_free; -+ ERR_load_PKCS7_strings; -+ X509_find_by_issuer_and_serial; -+ X509_find_by_subject; -+ PKCS7_ctrl; -+ PKCS7_set_type; -+ PKCS7_set_content; -+ PKCS7_SIGNER_INFO_set; -+ PKCS7_add_signer; -+ PKCS7_add_certificate; -+ PKCS7_add_crl; -+ PKCS7_content_new; -+ PKCS7_dataSign; -+ PKCS7_dataVerify; -+ PKCS7_dataInit; -+ PKCS7_add_signature; -+ PKCS7_cert_from_signer_info; -+ PKCS7_get_signer_info; -+ EVP_delete_alias; -+ EVP_mdc2; -+ PEM_read_bio_RSAPublicKey; -+ PEM_write_bio_RSAPublicKey; -+ d2i_RSAPublicKey_bio; -+ i2d_RSAPublicKey_bio; -+ PEM_read_RSAPublicKey; -+ PEM_write_RSAPublicKey; -+ d2i_RSAPublicKey_fp; -+ i2d_RSAPublicKey_fp; -+ BIO_copy_next_retry; -+ RSA_flags; -+ X509_STORE_add_crl; -+ X509_load_crl_file; -+ EVP_rc2_40_cbc; -+ EVP_rc4_40; -+ EVP_CIPHER_CTX_init; -+ HMAC; -+ HMAC_Init; -+ HMAC_Update; -+ HMAC_Final; -+ ERR_get_next_error_library; -+ EVP_PKEY_cmp_parameters; -+ HMAC_cleanup; -+ BIO_ptr_ctrl; -+ BIO_new_file_internal; -+ BIO_new_fp_internal; -+ BIO_s_file_internal; -+ BN_BLINDING_convert; -+ BN_BLINDING_invert; -+ BN_BLINDING_update; -+ RSA_blinding_on; -+ RSA_blinding_off; -+ i2t_ASN1_OBJECT; -+ BN_BLINDING_new; -+ BN_BLINDING_free; -+ EVP_cast5_cbc; -+ EVP_cast5_cfb64; -+ EVP_cast5_ecb; -+ EVP_cast5_ofb; -+ BF_decrypt; -+ CAST_set_key; -+ CAST_encrypt; -+ CAST_decrypt; -+ CAST_ecb_encrypt; -+ CAST_cbc_encrypt; -+ CAST_cfb64_encrypt; -+ CAST_ofb64_encrypt; -+ RC2_decrypt; -+ OBJ_create_objects; -+ BN_exp; -+ BN_mul_word; -+ BN_sub_word; -+ BN_dec2bn; -+ BN_bn2dec; -+ BIO_ghbn_ctrl; -+ CRYPTO_free_ex_data; -+ CRYPTO_get_ex_data; -+ CRYPTO_set_ex_data; -+ ERR_load_CRYPTO_strings; -+ ERR_load_CRYPTOlib_strings; -+ EVP_PKEY_bits; -+ MD5_Transform; -+ SHA1_Transform; -+ SHA_Transform; -+ X509_STORE_CTX_get_chain; -+ X509_STORE_CTX_get_current_cert; -+ X509_STORE_CTX_get_error; -+ X509_STORE_CTX_get_error_depth; -+ X509_STORE_CTX_get_ex_data; -+ X509_STORE_CTX_set_cert; -+ X509_STORE_CTX_set_chain; -+ X509_STORE_CTX_set_error; -+ X509_STORE_CTX_set_ex_data; -+ CRYPTO_dup_ex_data; -+ CRYPTO_get_new_lockid; -+ CRYPTO_new_ex_data; -+ RSA_set_ex_data; -+ RSA_get_ex_data; -+ RSA_get_ex_new_index; -+ RSA_padding_add_PKCS1_type_1; -+ RSA_padding_add_PKCS1_type_2; -+ RSA_padding_add_SSLv23; -+ RSA_padding_add_none; -+ RSA_padding_check_PKCS1_type_1; -+ RSA_padding_check_PKCS1_type_2; -+ RSA_padding_check_SSLv23; -+ RSA_padding_check_none; -+ bn_add_words; -+ d2i_Netscape_RSA_2; -+ CRYPTO_get_ex_new_index; -+ RIPEMD160_Init; -+ RIPEMD160_Update; -+ RIPEMD160_Final; -+ RIPEMD160; -+ RIPEMD160_Transform; -+ RC5_32_set_key; -+ RC5_32_ecb_encrypt; -+ RC5_32_encrypt; -+ RC5_32_decrypt; -+ RC5_32_cbc_encrypt; -+ RC5_32_cfb64_encrypt; -+ RC5_32_ofb64_encrypt; -+ BN_bn2mpi; -+ BN_mpi2bn; -+ ASN1_BIT_STRING_get_bit; -+ ASN1_BIT_STRING_set_bit; -+ BIO_get_ex_data; -+ BIO_get_ex_new_index; -+ BIO_set_ex_data; -+ X509v3_get_key_usage; -+ X509v3_set_key_usage; -+ a2i_X509v3_key_usage; -+ i2a_X509v3_key_usage; -+ EVP_PKEY_decrypt; -+ EVP_PKEY_encrypt; -+ PKCS7_RECIP_INFO_set; -+ PKCS7_add_recipient; -+ PKCS7_add_recipient_info; -+ PKCS7_set_cipher; -+ ASN1_TYPE_get_int_octetstring; -+ ASN1_TYPE_get_octetstring; -+ ASN1_TYPE_set_int_octetstring; -+ ASN1_TYPE_set_octetstring; -+ ASN1_UTCTIME_set_string; -+ ERR_add_error_data; -+ ERR_set_error_data; -+ EVP_CIPHER_asn1_to_param; -+ EVP_CIPHER_param_to_asn1; -+ EVP_CIPHER_get_asn1_iv; -+ EVP_CIPHER_set_asn1_iv; -+ EVP_rc5_32_12_16_cbc; -+ EVP_rc5_32_12_16_cfb64; -+ EVP_rc5_32_12_16_ecb; -+ EVP_rc5_32_12_16_ofb; -+ asn1_add_error; -+ d2i_ASN1_BMPSTRING; -+ i2d_ASN1_BMPSTRING; -+ BIO_f_ber; -+ BN_init; -+ COMP_CTX_new; -+ COMP_CTX_free; -+ COMP_CTX_compress_block; -+ COMP_CTX_expand_block; -+ X509_STORE_CTX_get_ex_new_index; -+ OBJ_NAME_add; -+ BIO_socket_nbio; -+ EVP_rc2_64_cbc; -+ OBJ_NAME_cleanup; -+ OBJ_NAME_get; -+ OBJ_NAME_init; -+ OBJ_NAME_new_index; -+ OBJ_NAME_remove; -+ BN_MONT_CTX_copy; -+ BIO_new_socks4a_connect; -+ BIO_s_socks4a_connect; -+ PROXY_set_connect_mode; -+ RAND_SSLeay; -+ RAND_set_rand_method; -+ RSA_memory_lock; -+ bn_sub_words; -+ bn_mul_normal; -+ bn_mul_comba8; -+ bn_mul_comba4; -+ bn_sqr_normal; -+ bn_sqr_comba8; -+ bn_sqr_comba4; -+ bn_cmp_words; -+ bn_mul_recursive; -+ bn_mul_part_recursive; -+ bn_sqr_recursive; -+ bn_mul_low_normal; -+ BN_RECP_CTX_init; -+ BN_RECP_CTX_new; -+ BN_RECP_CTX_free; -+ BN_RECP_CTX_set; -+ BN_mod_mul_reciprocal; -+ BN_mod_exp_recp; -+ BN_div_recp; -+ BN_CTX_init; -+ BN_MONT_CTX_init; -+ RAND_get_rand_method; -+ PKCS7_add_attribute; -+ PKCS7_add_signed_attribute; -+ PKCS7_digest_from_attributes; -+ PKCS7_get_attribute; -+ PKCS7_get_issuer_and_serial; -+ PKCS7_get_signed_attribute; -+ COMP_compress_block; -+ COMP_expand_block; -+ COMP_rle; -+ COMP_zlib; -+ ms_time_diff; -+ ms_time_new; -+ ms_time_free; -+ ms_time_cmp; -+ ms_time_get; -+ PKCS7_set_attributes; -+ PKCS7_set_signed_attributes; -+ X509_ATTRIBUTE_create; -+ X509_ATTRIBUTE_dup; -+ ASN1_GENERALIZEDTIME_check; -+ ASN1_GENERALIZEDTIME_print; -+ ASN1_GENERALIZEDTIME_set; -+ ASN1_GENERALIZEDTIME_set_string; -+ ASN1_TIME_print; -+ BASIC_CONSTRAINTS_free; -+ BASIC_CONSTRAINTS_new; -+ ERR_load_X509V3_strings; -+ NETSCAPE_CERT_SEQUENCE_free; -+ NETSCAPE_CERT_SEQUENCE_new; -+ OBJ_txt2obj; -+ PEM_read_NETSCAPE_CERT_SEQUENCE; -+ PEM_read_NS_CERT_SEQ; -+ PEM_read_bio_NETSCAPE_CERT_SEQUENCE; -+ PEM_read_bio_NS_CERT_SEQ; -+ PEM_write_NETSCAPE_CERT_SEQUENCE; -+ PEM_write_NS_CERT_SEQ; -+ PEM_write_bio_NETSCAPE_CERT_SEQUENCE; -+ PEM_write_bio_NS_CERT_SEQ; -+ X509V3_EXT_add; -+ X509V3_EXT_add_alias; -+ X509V3_EXT_add_conf; -+ X509V3_EXT_cleanup; -+ X509V3_EXT_conf; -+ X509V3_EXT_conf_nid; -+ X509V3_EXT_get; -+ X509V3_EXT_get_nid; -+ X509V3_EXT_print; -+ X509V3_EXT_print_fp; -+ X509V3_add_standard_extensions; -+ X509V3_add_value; -+ X509V3_add_value_bool; -+ X509V3_add_value_int; -+ X509V3_conf_free; -+ X509V3_get_value_bool; -+ X509V3_get_value_int; -+ X509V3_parse_list; -+ d2i_ASN1_GENERALIZEDTIME; -+ d2i_ASN1_TIME; -+ d2i_BASIC_CONSTRAINTS; -+ d2i_NETSCAPE_CERT_SEQUENCE; -+ d2i_ext_ku; -+ ext_ku_free; -+ ext_ku_new; -+ i2d_ASN1_GENERALIZEDTIME; -+ i2d_ASN1_TIME; -+ i2d_BASIC_CONSTRAINTS; -+ i2d_NETSCAPE_CERT_SEQUENCE; -+ i2d_ext_ku; -+ EVP_MD_CTX_copy; -+ i2d_ASN1_ENUMERATED; -+ d2i_ASN1_ENUMERATED; -+ ASN1_ENUMERATED_set; -+ ASN1_ENUMERATED_get; -+ BN_to_ASN1_ENUMERATED; -+ ASN1_ENUMERATED_to_BN; -+ i2a_ASN1_ENUMERATED; -+ a2i_ASN1_ENUMERATED; -+ i2d_GENERAL_NAME; -+ d2i_GENERAL_NAME; -+ GENERAL_NAME_new; -+ GENERAL_NAME_free; -+ GENERAL_NAMES_new; -+ GENERAL_NAMES_free; -+ d2i_GENERAL_NAMES; -+ i2d_GENERAL_NAMES; -+ i2v_GENERAL_NAMES; -+ i2s_ASN1_OCTET_STRING; -+ s2i_ASN1_OCTET_STRING; -+ X509V3_EXT_check_conf; -+ hex_to_string; -+ string_to_hex; -+ DES_ede3_cbcm_encrypt; -+ RSA_padding_add_PKCS1_OAEP; -+ RSA_padding_check_PKCS1_OAEP; -+ X509_CRL_print_fp; -+ X509_CRL_print; -+ i2v_GENERAL_NAME; -+ v2i_GENERAL_NAME; -+ i2d_PKEY_USAGE_PERIOD; -+ d2i_PKEY_USAGE_PERIOD; -+ PKEY_USAGE_PERIOD_new; -+ PKEY_USAGE_PERIOD_free; -+ v2i_GENERAL_NAMES; -+ i2s_ASN1_INTEGER; -+ X509V3_EXT_d2i; -+ name_cmp; -+ str_dup; -+ i2s_ASN1_ENUMERATED; -+ i2s_ASN1_ENUMERATED_TABLE; -+ BIO_s_log; -+ BIO_f_reliable; -+ PKCS7_dataFinal; -+ PKCS7_dataDecode; -+ X509V3_EXT_CRL_add_conf; -+ BN_set_params; -+ BN_get_params; -+ BIO_get_ex_num; -+ BIO_set_ex_free_func; -+ EVP_ripemd160; -+ ASN1_TIME_set; -+ i2d_AUTHORITY_KEYID; -+ d2i_AUTHORITY_KEYID; -+ AUTHORITY_KEYID_new; -+ AUTHORITY_KEYID_free; -+ ASN1_seq_unpack; -+ ASN1_seq_pack; -+ ASN1_unpack_string; -+ ASN1_pack_string; -+ PKCS12_pack_safebag; -+ PKCS12_MAKE_KEYBAG; -+ PKCS8_encrypt; -+ PKCS12_MAKE_SHKEYBAG; -+ PKCS12_pack_p7data; -+ PKCS12_pack_p7encdata; -+ PKCS12_add_localkeyid; -+ PKCS12_add_friendlyname_asc; -+ PKCS12_add_friendlyname_uni; -+ PKCS12_get_friendlyname; -+ PKCS12_pbe_crypt; -+ PKCS12_decrypt_d2i; -+ PKCS12_i2d_encrypt; -+ PKCS12_init; -+ PKCS12_key_gen_asc; -+ PKCS12_key_gen_uni; -+ PKCS12_gen_mac; -+ PKCS12_verify_mac; -+ PKCS12_set_mac; -+ PKCS12_setup_mac; -+ OPENSSL_asc2uni; -+ OPENSSL_uni2asc; -+ i2d_PKCS12_BAGS; -+ PKCS12_BAGS_new; -+ d2i_PKCS12_BAGS; -+ PKCS12_BAGS_free; -+ i2d_PKCS12; -+ d2i_PKCS12; -+ PKCS12_new; -+ PKCS12_free; -+ i2d_PKCS12_MAC_DATA; -+ PKCS12_MAC_DATA_new; -+ d2i_PKCS12_MAC_DATA; -+ PKCS12_MAC_DATA_free; -+ i2d_PKCS12_SAFEBAG; -+ PKCS12_SAFEBAG_new; -+ d2i_PKCS12_SAFEBAG; -+ PKCS12_SAFEBAG_free; -+ ERR_load_PKCS12_strings; -+ PKCS12_PBE_add; -+ PKCS8_add_keyusage; -+ PKCS12_get_attr_gen; -+ PKCS12_parse; -+ PKCS12_create; -+ i2d_PKCS12_bio; -+ i2d_PKCS12_fp; -+ d2i_PKCS12_bio; -+ d2i_PKCS12_fp; -+ i2d_PBEPARAM; -+ PBEPARAM_new; -+ d2i_PBEPARAM; -+ PBEPARAM_free; -+ i2d_PKCS8_PRIV_KEY_INFO; -+ PKCS8_PRIV_KEY_INFO_new; -+ d2i_PKCS8_PRIV_KEY_INFO; -+ PKCS8_PRIV_KEY_INFO_free; -+ EVP_PKCS82PKEY; -+ EVP_PKEY2PKCS8; -+ PKCS8_set_broken; -+ EVP_PBE_ALGOR_CipherInit; -+ EVP_PBE_alg_add; -+ PKCS5_pbe_set; -+ EVP_PBE_cleanup; -+ i2d_SXNET; -+ d2i_SXNET; -+ SXNET_new; -+ SXNET_free; -+ i2d_SXNETID; -+ d2i_SXNETID; -+ SXNETID_new; -+ SXNETID_free; -+ DSA_SIG_new; -+ DSA_SIG_free; -+ DSA_do_sign; -+ DSA_do_verify; -+ d2i_DSA_SIG; -+ i2d_DSA_SIG; -+ i2d_ASN1_VISIBLESTRING; -+ d2i_ASN1_VISIBLESTRING; -+ i2d_ASN1_UTF8STRING; -+ d2i_ASN1_UTF8STRING; -+ i2d_DIRECTORYSTRING; -+ d2i_DIRECTORYSTRING; -+ i2d_DISPLAYTEXT; -+ d2i_DISPLAYTEXT; -+ d2i_ASN1_SET_OF_X509; -+ i2d_ASN1_SET_OF_X509; -+ i2d_PBKDF2PARAM; -+ PBKDF2PARAM_new; -+ d2i_PBKDF2PARAM; -+ PBKDF2PARAM_free; -+ i2d_PBE2PARAM; -+ PBE2PARAM_new; -+ d2i_PBE2PARAM; -+ PBE2PARAM_free; -+ d2i_ASN1_SET_OF_GENERAL_NAME; -+ i2d_ASN1_SET_OF_GENERAL_NAME; -+ d2i_ASN1_SET_OF_SXNETID; -+ i2d_ASN1_SET_OF_SXNETID; -+ d2i_ASN1_SET_OF_POLICYQUALINFO; -+ i2d_ASN1_SET_OF_POLICYQUALINFO; -+ d2i_ASN1_SET_OF_POLICYINFO; -+ i2d_ASN1_SET_OF_POLICYINFO; -+ SXNET_add_id_asc; -+ SXNET_add_id_ulong; -+ SXNET_add_id_INTEGER; -+ SXNET_get_id_asc; -+ SXNET_get_id_ulong; -+ SXNET_get_id_INTEGER; -+ X509V3_set_conf_lhash; -+ i2d_CERTIFICATEPOLICIES; -+ CERTIFICATEPOLICIES_new; -+ CERTIFICATEPOLICIES_free; -+ d2i_CERTIFICATEPOLICIES; -+ i2d_POLICYINFO; -+ POLICYINFO_new; -+ d2i_POLICYINFO; -+ POLICYINFO_free; -+ i2d_POLICYQUALINFO; -+ POLICYQUALINFO_new; -+ d2i_POLICYQUALINFO; -+ POLICYQUALINFO_free; -+ i2d_USERNOTICE; -+ USERNOTICE_new; -+ d2i_USERNOTICE; -+ USERNOTICE_free; -+ i2d_NOTICEREF; -+ NOTICEREF_new; -+ d2i_NOTICEREF; -+ NOTICEREF_free; -+ X509V3_get_string; -+ X509V3_get_section; -+ X509V3_string_free; -+ X509V3_section_free; -+ X509V3_set_ctx; -+ s2i_ASN1_INTEGER; -+ CRYPTO_set_locked_mem_functions; -+ CRYPTO_get_locked_mem_functions; -+ CRYPTO_malloc_locked; -+ CRYPTO_free_locked; -+ BN_mod_exp2_mont; -+ ERR_get_error_line_data; -+ ERR_peek_error_line_data; -+ PKCS12_PBE_keyivgen; -+ X509_ALGOR_dup; -+ d2i_ASN1_SET_OF_DIST_POINT; -+ i2d_ASN1_SET_OF_DIST_POINT; -+ i2d_CRL_DIST_POINTS; -+ CRL_DIST_POINTS_new; -+ CRL_DIST_POINTS_free; -+ d2i_CRL_DIST_POINTS; -+ i2d_DIST_POINT; -+ DIST_POINT_new; -+ d2i_DIST_POINT; -+ DIST_POINT_free; -+ i2d_DIST_POINT_NAME; -+ DIST_POINT_NAME_new; -+ DIST_POINT_NAME_free; -+ d2i_DIST_POINT_NAME; -+ X509V3_add_value_uchar; -+ d2i_ASN1_SET_OF_X509_ATTRIBUTE; -+ i2d_ASN1_SET_OF_ASN1_TYPE; -+ d2i_ASN1_SET_OF_X509_EXTENSION; -+ d2i_ASN1_SET_OF_X509_NAME_ENTRY; -+ d2i_ASN1_SET_OF_ASN1_TYPE; -+ i2d_ASN1_SET_OF_X509_ATTRIBUTE; -+ i2d_ASN1_SET_OF_X509_EXTENSION; -+ i2d_ASN1_SET_OF_X509_NAME_ENTRY; -+ X509V3_EXT_i2d; -+ X509V3_EXT_val_prn; -+ X509V3_EXT_add_list; -+ EVP_CIPHER_type; -+ EVP_PBE_CipherInit; -+ X509V3_add_value_bool_nf; -+ d2i_ASN1_UINTEGER; -+ sk_value; -+ sk_num; -+ sk_set; -+ i2d_ASN1_SET_OF_X509_REVOKED; -+ sk_sort; -+ d2i_ASN1_SET_OF_X509_REVOKED; -+ i2d_ASN1_SET_OF_X509_ALGOR; -+ i2d_ASN1_SET_OF_X509_CRL; -+ d2i_ASN1_SET_OF_X509_ALGOR; -+ d2i_ASN1_SET_OF_X509_CRL; -+ i2d_ASN1_SET_OF_PKCS7_SIGNER_INFO; -+ i2d_ASN1_SET_OF_PKCS7_RECIP_INFO; -+ d2i_ASN1_SET_OF_PKCS7_SIGNER_INFO; -+ d2i_ASN1_SET_OF_PKCS7_RECIP_INFO; -+ PKCS5_PBE_add; -+ PEM_write_bio_PKCS8; -+ i2d_PKCS8_fp; -+ PEM_read_bio_PKCS8_PRIV_KEY_INFO; -+ PEM_read_bio_P8_PRIV_KEY_INFO; -+ d2i_PKCS8_bio; -+ d2i_PKCS8_PRIV_KEY_INFO_fp; -+ PEM_write_bio_PKCS8_PRIV_KEY_INFO; -+ PEM_write_bio_P8_PRIV_KEY_INFO; -+ PEM_read_PKCS8; -+ d2i_PKCS8_PRIV_KEY_INFO_bio; -+ d2i_PKCS8_fp; -+ PEM_write_PKCS8; -+ PEM_read_PKCS8_PRIV_KEY_INFO; -+ PEM_read_P8_PRIV_KEY_INFO; -+ PEM_read_bio_PKCS8; -+ PEM_write_PKCS8_PRIV_KEY_INFO; -+ PEM_write_P8_PRIV_KEY_INFO; -+ PKCS5_PBE_keyivgen; -+ i2d_PKCS8_bio; -+ i2d_PKCS8_PRIV_KEY_INFO_fp; -+ i2d_PKCS8_PRIV_KEY_INFO_bio; -+ BIO_s_bio; -+ PKCS5_pbe2_set; -+ PKCS5_PBKDF2_HMAC_SHA1; -+ PKCS5_v2_PBE_keyivgen; -+ PEM_write_bio_PKCS8PrivateKey; -+ PEM_write_PKCS8PrivateKey; -+ BIO_ctrl_get_read_request; -+ BIO_ctrl_pending; -+ BIO_ctrl_wpending; -+ BIO_new_bio_pair; -+ BIO_ctrl_get_write_guarantee; -+ CRYPTO_num_locks; -+ CONF_load_bio; -+ CONF_load_fp; -+ i2d_ASN1_SET_OF_ASN1_OBJECT; -+ d2i_ASN1_SET_OF_ASN1_OBJECT; -+ PKCS7_signatureVerify; -+ RSA_set_method; -+ RSA_get_method; -+ RSA_get_default_method; -+ RSA_check_key; -+ OBJ_obj2txt; -+ DSA_dup_DH; -+ X509_REQ_get_extensions; -+ X509_REQ_set_extension_nids; -+ BIO_nwrite; -+ X509_REQ_extension_nid; -+ BIO_nread; -+ X509_REQ_get_extension_nids; -+ BIO_nwrite0; -+ X509_REQ_add_extensions_nid; -+ BIO_nread0; -+ X509_REQ_add_extensions; -+ BIO_new_mem_buf; -+ DH_set_ex_data; -+ DH_set_method; -+ DSA_OpenSSL; -+ DH_get_ex_data; -+ DH_get_ex_new_index; -+ DSA_new_method; -+ DH_new_method; -+ DH_OpenSSL; -+ DSA_get_ex_new_index; -+ DH_get_default_method; -+ DSA_set_ex_data; -+ DH_set_default_method; -+ DSA_get_ex_data; -+ X509V3_EXT_REQ_add_conf; -+ NETSCAPE_SPKI_print; -+ NETSCAPE_SPKI_set_pubkey; -+ NETSCAPE_SPKI_b64_encode; -+ NETSCAPE_SPKI_get_pubkey; -+ NETSCAPE_SPKI_b64_decode; -+ UTF8_putc; -+ UTF8_getc; -+ RSA_null_method; -+ ASN1_tag2str; -+ BIO_ctrl_reset_read_request; -+ DISPLAYTEXT_new; -+ ASN1_GENERALIZEDTIME_free; -+ X509_REVOKED_get_ext_d2i; -+ X509_set_ex_data; -+ X509_reject_set_bit_asc; -+ X509_NAME_add_entry_by_txt; -+ X509_NAME_add_entry_by_NID; -+ X509_PURPOSE_get0; -+ PEM_read_X509_AUX; -+ d2i_AUTHORITY_INFO_ACCESS; -+ PEM_write_PUBKEY; -+ ACCESS_DESCRIPTION_new; -+ X509_CERT_AUX_free; -+ d2i_ACCESS_DESCRIPTION; -+ X509_trust_clear; -+ X509_TRUST_add; -+ ASN1_VISIBLESTRING_new; -+ X509_alias_set1; -+ ASN1_PRINTABLESTRING_free; -+ EVP_PKEY_get1_DSA; -+ ASN1_BMPSTRING_new; -+ ASN1_mbstring_copy; -+ ASN1_UTF8STRING_new; -+ DSA_get_default_method; -+ i2d_ASN1_SET_OF_ACCESS_DESCRIPTION; -+ ASN1_T61STRING_free; -+ DSA_set_method; -+ X509_get_ex_data; -+ ASN1_STRING_type; -+ X509_PURPOSE_get_by_sname; -+ ASN1_TIME_free; -+ ASN1_OCTET_STRING_cmp; -+ ASN1_BIT_STRING_new; -+ X509_get_ext_d2i; -+ PEM_read_bio_X509_AUX; -+ ASN1_STRING_set_default_mask_asc; -+ ASN1_STRING_set_def_mask_asc; -+ PEM_write_bio_RSA_PUBKEY; -+ ASN1_INTEGER_cmp; -+ d2i_RSA_PUBKEY_fp; -+ X509_trust_set_bit_asc; -+ PEM_write_bio_DSA_PUBKEY; -+ X509_STORE_CTX_free; -+ EVP_PKEY_set1_DSA; -+ i2d_DSA_PUBKEY_fp; -+ X509_load_cert_crl_file; -+ ASN1_TIME_new; -+ i2d_RSA_PUBKEY; -+ X509_STORE_CTX_purpose_inherit; -+ PEM_read_RSA_PUBKEY; -+ d2i_X509_AUX; -+ i2d_DSA_PUBKEY; -+ X509_CERT_AUX_print; -+ PEM_read_DSA_PUBKEY; -+ i2d_RSA_PUBKEY_bio; -+ ASN1_BIT_STRING_num_asc; -+ i2d_PUBKEY; -+ ASN1_UTCTIME_free; -+ DSA_set_default_method; -+ X509_PURPOSE_get_by_id; -+ ACCESS_DESCRIPTION_free; -+ PEM_read_bio_PUBKEY; -+ ASN1_STRING_set_by_NID; -+ X509_PURPOSE_get_id; -+ DISPLAYTEXT_free; -+ OTHERNAME_new; -+ X509_CERT_AUX_new; -+ X509_TRUST_cleanup; -+ X509_NAME_add_entry_by_OBJ; -+ X509_CRL_get_ext_d2i; -+ X509_PURPOSE_get0_name; -+ PEM_read_PUBKEY; -+ i2d_DSA_PUBKEY_bio; -+ i2d_OTHERNAME; -+ ASN1_OCTET_STRING_free; -+ ASN1_BIT_STRING_set_asc; -+ X509_get_ex_new_index; -+ ASN1_STRING_TABLE_cleanup; -+ X509_TRUST_get_by_id; -+ X509_PURPOSE_get_trust; -+ ASN1_STRING_length; -+ d2i_ASN1_SET_OF_ACCESS_DESCRIPTION; -+ ASN1_PRINTABLESTRING_new; -+ X509V3_get_d2i; -+ ASN1_ENUMERATED_free; -+ i2d_X509_CERT_AUX; -+ X509_STORE_CTX_set_trust; -+ ASN1_STRING_set_default_mask; -+ X509_STORE_CTX_new; -+ EVP_PKEY_get1_RSA; -+ DIRECTORYSTRING_free; -+ PEM_write_X509_AUX; -+ ASN1_OCTET_STRING_set; -+ d2i_DSA_PUBKEY_fp; -+ d2i_RSA_PUBKEY; -+ X509_TRUST_get0_name; -+ X509_TRUST_get0; -+ AUTHORITY_INFO_ACCESS_free; -+ ASN1_IA5STRING_new; -+ d2i_DSA_PUBKEY; -+ X509_check_purpose; -+ ASN1_ENUMERATED_new; -+ d2i_RSA_PUBKEY_bio; -+ d2i_PUBKEY; -+ X509_TRUST_get_trust; -+ X509_TRUST_get_flags; -+ ASN1_BMPSTRING_free; -+ ASN1_T61STRING_new; -+ ASN1_UTCTIME_new; -+ i2d_AUTHORITY_INFO_ACCESS; -+ EVP_PKEY_set1_RSA; -+ X509_STORE_CTX_set_purpose; -+ ASN1_IA5STRING_free; -+ PEM_write_bio_X509_AUX; -+ X509_PURPOSE_get_count; -+ CRYPTO_add_info; -+ X509_NAME_ENTRY_create_by_txt; -+ ASN1_STRING_get_default_mask; -+ X509_alias_get0; -+ ASN1_STRING_data; -+ i2d_ACCESS_DESCRIPTION; -+ X509_trust_set_bit; -+ ASN1_BIT_STRING_free; -+ PEM_read_bio_RSA_PUBKEY; -+ X509_add1_reject_object; -+ X509_check_trust; -+ PEM_read_bio_DSA_PUBKEY; -+ X509_PURPOSE_add; -+ ASN1_STRING_TABLE_get; -+ ASN1_UTF8STRING_free; -+ d2i_DSA_PUBKEY_bio; -+ PEM_write_RSA_PUBKEY; -+ d2i_OTHERNAME; -+ X509_reject_set_bit; -+ PEM_write_DSA_PUBKEY; -+ X509_PURPOSE_get0_sname; -+ EVP_PKEY_set1_DH; -+ ASN1_OCTET_STRING_dup; -+ ASN1_BIT_STRING_set; -+ X509_TRUST_get_count; -+ ASN1_INTEGER_free; -+ OTHERNAME_free; -+ i2d_RSA_PUBKEY_fp; -+ ASN1_INTEGER_dup; -+ d2i_X509_CERT_AUX; -+ PEM_write_bio_PUBKEY; -+ ASN1_VISIBLESTRING_free; -+ X509_PURPOSE_cleanup; -+ ASN1_mbstring_ncopy; -+ ASN1_GENERALIZEDTIME_new; -+ EVP_PKEY_get1_DH; -+ ASN1_OCTET_STRING_new; -+ ASN1_INTEGER_new; -+ i2d_X509_AUX; -+ ASN1_BIT_STRING_name_print; -+ X509_cmp; -+ ASN1_STRING_length_set; -+ DIRECTORYSTRING_new; -+ X509_add1_trust_object; -+ PKCS12_newpass; -+ SMIME_write_PKCS7; -+ SMIME_read_PKCS7; -+ DES_set_key_checked; -+ PKCS7_verify; -+ PKCS7_encrypt; -+ DES_set_key_unchecked; -+ SMIME_crlf_copy; -+ i2d_ASN1_PRINTABLESTRING; -+ PKCS7_get0_signers; -+ PKCS7_decrypt; -+ SMIME_text; -+ PKCS7_simple_smimecap; -+ PKCS7_get_smimecap; -+ PKCS7_sign; -+ PKCS7_add_attrib_smimecap; -+ CRYPTO_dbg_set_options; -+ CRYPTO_remove_all_info; -+ CRYPTO_get_mem_debug_functions; -+ CRYPTO_is_mem_check_on; -+ CRYPTO_set_mem_debug_functions; -+ CRYPTO_pop_info; -+ CRYPTO_push_info_; -+ CRYPTO_set_mem_debug_options; -+ PEM_write_PKCS8PrivateKey_nid; -+ PEM_write_bio_PKCS8PrivateKey_nid; -+ PEM_write_bio_PKCS8PrivKey_nid; -+ d2i_PKCS8PrivateKey_bio; -+ ASN1_NULL_free; -+ d2i_ASN1_NULL; -+ ASN1_NULL_new; -+ i2d_PKCS8PrivateKey_bio; -+ i2d_PKCS8PrivateKey_fp; -+ i2d_ASN1_NULL; -+ i2d_PKCS8PrivateKey_nid_fp; -+ d2i_PKCS8PrivateKey_fp; -+ i2d_PKCS8PrivateKey_nid_bio; -+ i2d_PKCS8PrivateKeyInfo_fp; -+ i2d_PKCS8PrivateKeyInfo_bio; -+ PEM_cb; -+ i2d_PrivateKey_fp; -+ d2i_PrivateKey_bio; -+ d2i_PrivateKey_fp; -+ i2d_PrivateKey_bio; -+ X509_reject_clear; -+ X509_TRUST_set_default; -+ d2i_AutoPrivateKey; -+ X509_ATTRIBUTE_get0_type; -+ X509_ATTRIBUTE_set1_data; -+ X509at_get_attr; -+ X509at_get_attr_count; -+ X509_ATTRIBUTE_create_by_NID; -+ X509_ATTRIBUTE_set1_object; -+ X509_ATTRIBUTE_count; -+ X509_ATTRIBUTE_create_by_OBJ; -+ X509_ATTRIBUTE_get0_object; -+ X509at_get_attr_by_NID; -+ X509at_add1_attr; -+ X509_ATTRIBUTE_get0_data; -+ X509at_delete_attr; -+ X509at_get_attr_by_OBJ; -+ RAND_add; -+ BIO_number_written; -+ BIO_number_read; -+ X509_STORE_CTX_get1_chain; -+ ERR_load_RAND_strings; -+ RAND_pseudo_bytes; -+ X509_REQ_get_attr_by_NID; -+ X509_REQ_get_attr; -+ X509_REQ_add1_attr_by_NID; -+ X509_REQ_get_attr_by_OBJ; -+ X509at_add1_attr_by_NID; -+ X509_REQ_add1_attr_by_OBJ; -+ X509_REQ_get_attr_count; -+ X509_REQ_add1_attr; -+ X509_REQ_delete_attr; -+ X509at_add1_attr_by_OBJ; -+ X509_REQ_add1_attr_by_txt; -+ X509_ATTRIBUTE_create_by_txt; -+ X509at_add1_attr_by_txt; -+ BN_pseudo_rand; -+ BN_is_prime_fasttest; -+ BN_CTX_end; -+ BN_CTX_start; -+ BN_CTX_get; -+ EVP_PKEY2PKCS8_broken; -+ ASN1_STRING_TABLE_add; -+ CRYPTO_dbg_get_options; -+ AUTHORITY_INFO_ACCESS_new; -+ CRYPTO_get_mem_debug_options; -+ DES_crypt; -+ PEM_write_bio_X509_REQ_NEW; -+ PEM_write_X509_REQ_NEW; -+ BIO_callback_ctrl; -+ RAND_egd; -+ RAND_status; -+ bn_dump1; -+ DES_check_key_parity; -+ lh_num_items; -+ RAND_event; -+ DSO_new; -+ DSO_new_method; -+ DSO_free; -+ DSO_flags; -+ DSO_up; -+ DSO_set_default_method; -+ DSO_get_default_method; -+ DSO_get_method; -+ DSO_set_method; -+ DSO_load; -+ DSO_bind_var; -+ DSO_METHOD_null; -+ DSO_METHOD_openssl; -+ DSO_METHOD_dlfcn; -+ DSO_METHOD_win32; -+ ERR_load_DSO_strings; -+ DSO_METHOD_dl; -+ NCONF_load; -+ NCONF_load_fp; -+ NCONF_new; -+ NCONF_get_string; -+ NCONF_free; -+ NCONF_get_number; -+ CONF_dump_fp; -+ NCONF_load_bio; -+ NCONF_dump_fp; -+ NCONF_get_section; -+ NCONF_dump_bio; -+ CONF_dump_bio; -+ NCONF_free_data; -+ CONF_set_default_method; -+ ERR_error_string_n; -+ BIO_snprintf; -+ DSO_ctrl; -+ i2d_ASN1_SET_OF_ASN1_INTEGER; -+ i2d_ASN1_SET_OF_PKCS12_SAFEBAG; -+ i2d_ASN1_SET_OF_PKCS7; -+ BIO_vfree; -+ d2i_ASN1_SET_OF_ASN1_INTEGER; -+ d2i_ASN1_SET_OF_PKCS12_SAFEBAG; -+ ASN1_UTCTIME_get; -+ X509_REQ_digest; -+ X509_CRL_digest; -+ d2i_ASN1_SET_OF_PKCS7; -+ EVP_CIPHER_CTX_set_key_length; -+ EVP_CIPHER_CTX_ctrl; -+ BN_mod_exp_mont_word; -+ RAND_egd_bytes; -+ X509_REQ_get1_email; -+ X509_get1_email; -+ X509_email_free; -+ i2d_RSA_NET; -+ d2i_RSA_NET_2; -+ d2i_RSA_NET; -+ DSO_bind_func; -+ CRYPTO_get_new_dynlockid; -+ sk_new_null; -+ CRYPTO_set_dynlock_destroy_callback; -+ CRYPTO_set_dynlock_destroy_cb; -+ CRYPTO_destroy_dynlockid; -+ CRYPTO_set_dynlock_size; -+ CRYPTO_set_dynlock_create_callback; -+ CRYPTO_set_dynlock_create_cb; -+ CRYPTO_set_dynlock_lock_callback; -+ CRYPTO_set_dynlock_lock_cb; -+ CRYPTO_get_dynlock_lock_callback; -+ CRYPTO_get_dynlock_lock_cb; -+ CRYPTO_get_dynlock_destroy_callback; -+ CRYPTO_get_dynlock_destroy_cb; -+ CRYPTO_get_dynlock_value; -+ CRYPTO_get_dynlock_create_callback; -+ CRYPTO_get_dynlock_create_cb; -+ c2i_ASN1_BIT_STRING; -+ i2c_ASN1_BIT_STRING; -+ RAND_poll; -+ c2i_ASN1_INTEGER; -+ i2c_ASN1_INTEGER; -+ BIO_dump_indent; -+ ASN1_parse_dump; -+ c2i_ASN1_OBJECT; -+ X509_NAME_print_ex_fp; -+ ASN1_STRING_print_ex_fp; -+ X509_NAME_print_ex; -+ ASN1_STRING_print_ex; -+ MD4; -+ MD4_Transform; -+ MD4_Final; -+ MD4_Update; -+ MD4_Init; -+ EVP_md4; -+ i2d_PUBKEY_bio; -+ i2d_PUBKEY_fp; -+ d2i_PUBKEY_bio; -+ ASN1_STRING_to_UTF8; -+ BIO_vprintf; -+ BIO_vsnprintf; -+ d2i_PUBKEY_fp; -+ X509_cmp_time; -+ X509_STORE_CTX_set_time; -+ X509_STORE_CTX_get1_issuer; -+ X509_OBJECT_retrieve_match; -+ X509_OBJECT_idx_by_subject; -+ X509_STORE_CTX_set_flags; -+ X509_STORE_CTX_trusted_stack; -+ X509_time_adj; -+ X509_check_issued; -+ ASN1_UTCTIME_cmp_time_t; -+ DES_set_weak_key_flag; -+ DES_check_key; -+ DES_rw_mode; -+ RSA_PKCS1_RSAref; -+ X509_keyid_set1; -+ BIO_next; -+ DSO_METHOD_vms; -+ BIO_f_linebuffer; -+ BN_bntest_rand; -+ OPENSSL_issetugid; -+ BN_rand_range; -+ ERR_load_ENGINE_strings; -+ ENGINE_set_DSA; -+ ENGINE_get_finish_function; -+ ENGINE_get_default_RSA; -+ ENGINE_get_BN_mod_exp; -+ DSA_get_default_openssl_method; -+ ENGINE_set_DH; -+ ENGINE_set_def_BN_mod_exp_crt; -+ ENGINE_set_default_BN_mod_exp_crt; -+ ENGINE_init; -+ DH_get_default_openssl_method; -+ RSA_set_default_openssl_method; -+ ENGINE_finish; -+ ENGINE_load_public_key; -+ ENGINE_get_DH; -+ ENGINE_ctrl; -+ ENGINE_get_init_function; -+ ENGINE_set_init_function; -+ ENGINE_set_default_DSA; -+ ENGINE_get_name; -+ ENGINE_get_last; -+ ENGINE_get_prev; -+ ENGINE_get_default_DH; -+ ENGINE_get_RSA; -+ ENGINE_set_default; -+ ENGINE_get_RAND; -+ ENGINE_get_first; -+ ENGINE_by_id; -+ ENGINE_set_finish_function; -+ ENGINE_get_def_BN_mod_exp_crt; -+ ENGINE_get_default_BN_mod_exp_crt; -+ RSA_get_default_openssl_method; -+ ENGINE_set_RSA; -+ ENGINE_load_private_key; -+ ENGINE_set_default_RAND; -+ ENGINE_set_BN_mod_exp; -+ ENGINE_remove; -+ ENGINE_free; -+ ENGINE_get_BN_mod_exp_crt; -+ ENGINE_get_next; -+ ENGINE_set_name; -+ ENGINE_get_default_DSA; -+ ENGINE_set_default_BN_mod_exp; -+ ENGINE_set_default_RSA; -+ ENGINE_get_default_RAND; -+ ENGINE_get_default_BN_mod_exp; -+ ENGINE_set_RAND; -+ ENGINE_set_id; -+ ENGINE_set_BN_mod_exp_crt; -+ ENGINE_set_default_DH; -+ ENGINE_new; -+ ENGINE_get_id; -+ DSA_set_default_openssl_method; -+ ENGINE_add; -+ DH_set_default_openssl_method; -+ ENGINE_get_DSA; -+ ENGINE_get_ctrl_function; -+ ENGINE_set_ctrl_function; -+ BN_pseudo_rand_range; -+ X509_STORE_CTX_set_verify_cb; -+ ERR_load_COMP_strings; -+ PKCS12_item_decrypt_d2i; -+ ASN1_UTF8STRING_it; -+ ENGINE_unregister_ciphers; -+ ENGINE_get_ciphers; -+ d2i_OCSP_BASICRESP; -+ KRB5_CHECKSUM_it; -+ EC_POINT_add; -+ ASN1_item_ex_i2d; -+ OCSP_CERTID_it; -+ d2i_OCSP_RESPBYTES; -+ X509V3_add1_i2d; -+ PKCS7_ENVELOPE_it; -+ UI_add_input_boolean; -+ ENGINE_unregister_RSA; -+ X509V3_EXT_nconf; -+ ASN1_GENERALSTRING_free; -+ d2i_OCSP_CERTSTATUS; -+ X509_REVOKED_set_serialNumber; -+ X509_print_ex; -+ OCSP_ONEREQ_get1_ext_d2i; -+ ENGINE_register_all_RAND; -+ ENGINE_load_dynamic; -+ PBKDF2PARAM_it; -+ EXTENDED_KEY_USAGE_new; -+ EC_GROUP_clear_free; -+ OCSP_sendreq_bio; -+ ASN1_item_digest; -+ OCSP_BASICRESP_delete_ext; -+ OCSP_SIGNATURE_it; -+ X509_CRL_it; -+ OCSP_BASICRESP_add_ext; -+ KRB5_ENCKEY_it; -+ UI_method_set_closer; -+ X509_STORE_set_purpose; -+ i2d_ASN1_GENERALSTRING; -+ OCSP_response_status; -+ i2d_OCSP_SERVICELOC; -+ ENGINE_get_digest_engine; -+ EC_GROUP_set_curve_GFp; -+ OCSP_REQUEST_get_ext_by_OBJ; -+ _ossl_old_des_random_key; -+ ASN1_T61STRING_it; -+ EC_GROUP_method_of; -+ i2d_KRB5_APREQ; -+ _ossl_old_des_encrypt; -+ ASN1_PRINTABLE_new; -+ HMAC_Init_ex; -+ d2i_KRB5_AUTHENT; -+ OCSP_archive_cutoff_new; -+ EC_POINT_set_Jprojective_coordinates_GFp; -+ EC_POINT_set_Jproj_coords_GFp; -+ _ossl_old_des_is_weak_key; -+ OCSP_BASICRESP_get_ext_by_OBJ; -+ EC_POINT_oct2point; -+ OCSP_SINGLERESP_get_ext_count; -+ UI_ctrl; -+ _shadow_DES_rw_mode; -+ asn1_do_adb; -+ ASN1_template_i2d; -+ ENGINE_register_DH; -+ UI_construct_prompt; -+ X509_STORE_set_trust; -+ UI_dup_input_string; -+ d2i_KRB5_APREQ; -+ EVP_MD_CTX_copy_ex; -+ OCSP_request_is_signed; -+ i2d_OCSP_REQINFO; -+ KRB5_ENCKEY_free; -+ OCSP_resp_get0; -+ GENERAL_NAME_it; -+ ASN1_GENERALIZEDTIME_it; -+ X509_STORE_set_flags; -+ EC_POINT_set_compressed_coordinates_GFp; -+ EC_POINT_set_compr_coords_GFp; -+ OCSP_response_status_str; -+ d2i_OCSP_REVOKEDINFO; -+ OCSP_basic_add1_cert; -+ ERR_get_implementation; -+ EVP_CipherFinal_ex; -+ OCSP_CERTSTATUS_new; -+ CRYPTO_cleanup_all_ex_data; -+ OCSP_resp_find; -+ BN_nnmod; -+ X509_CRL_sort; -+ X509_REVOKED_set_revocationDate; -+ ENGINE_register_RAND; -+ OCSP_SERVICELOC_new; -+ EC_POINT_set_affine_coordinates_GFp; -+ EC_POINT_set_affine_coords_GFp; -+ _ossl_old_des_options; -+ SXNET_it; -+ UI_dup_input_boolean; -+ PKCS12_add_CSPName_asc; -+ EC_POINT_is_at_infinity; -+ ENGINE_load_cryptodev; -+ DSO_convert_filename; -+ POLICYQUALINFO_it; -+ ENGINE_register_ciphers; -+ BN_mod_lshift_quick; -+ DSO_set_filename; -+ ASN1_item_free; -+ KRB5_TKTBODY_free; -+ AUTHORITY_KEYID_it; -+ KRB5_APREQBODY_new; -+ X509V3_EXT_REQ_add_nconf; -+ ENGINE_ctrl_cmd_string; -+ i2d_OCSP_RESPDATA; -+ EVP_MD_CTX_init; -+ EXTENDED_KEY_USAGE_free; -+ PKCS7_ATTR_SIGN_it; -+ UI_add_error_string; -+ KRB5_CHECKSUM_free; -+ OCSP_REQUEST_get_ext; -+ ENGINE_load_ubsec; -+ ENGINE_register_all_digests; -+ PKEY_USAGE_PERIOD_it; -+ PKCS12_unpack_authsafes; -+ ASN1_item_unpack; -+ NETSCAPE_SPKAC_it; -+ X509_REVOKED_it; -+ ASN1_STRING_encode; -+ EVP_aes_128_ecb; -+ KRB5_AUTHENT_free; -+ OCSP_BASICRESP_get_ext_by_critical; -+ OCSP_BASICRESP_get_ext_by_crit; -+ OCSP_cert_status_str; -+ d2i_OCSP_REQUEST; -+ UI_dup_info_string; -+ _ossl_old_des_xwhite_in2out; -+ PKCS12_it; -+ OCSP_SINGLERESP_get_ext_by_critical; -+ OCSP_SINGLERESP_get_ext_by_crit; -+ OCSP_CERTSTATUS_free; -+ _ossl_old_des_crypt; -+ ASN1_item_i2d; -+ EVP_DecryptFinal_ex; -+ ENGINE_load_openssl; -+ ENGINE_get_cmd_defns; -+ ENGINE_set_load_privkey_function; -+ ENGINE_set_load_privkey_fn; -+ EVP_EncryptFinal_ex; -+ ENGINE_set_default_digests; -+ X509_get0_pubkey_bitstr; -+ asn1_ex_i2c; -+ ENGINE_register_RSA; -+ ENGINE_unregister_DSA; -+ _ossl_old_des_key_sched; -+ X509_EXTENSION_it; -+ i2d_KRB5_AUTHENT; -+ SXNETID_it; -+ d2i_OCSP_SINGLERESP; -+ EDIPARTYNAME_new; -+ PKCS12_certbag2x509; -+ _ossl_old_des_ofb64_encrypt; -+ d2i_EXTENDED_KEY_USAGE; -+ ERR_print_errors_cb; -+ ENGINE_set_ciphers; -+ d2i_KRB5_APREQBODY; -+ UI_method_get_flusher; -+ X509_PUBKEY_it; -+ _ossl_old_des_enc_read; -+ PKCS7_ENCRYPT_it; -+ i2d_OCSP_RESPONSE; -+ EC_GROUP_get_cofactor; -+ PKCS12_unpack_p7data; -+ d2i_KRB5_AUTHDATA; -+ OCSP_copy_nonce; -+ KRB5_AUTHDATA_new; -+ OCSP_RESPDATA_new; -+ EC_GFp_mont_method; -+ OCSP_REVOKEDINFO_free; -+ UI_get_ex_data; -+ KRB5_APREQBODY_free; -+ EC_GROUP_get0_generator; -+ UI_get_default_method; -+ X509V3_set_nconf; -+ PKCS12_item_i2d_encrypt; -+ X509_add1_ext_i2d; -+ PKCS7_SIGNER_INFO_it; -+ KRB5_PRINCNAME_new; -+ PKCS12_SAFEBAG_it; -+ EC_GROUP_get_order; -+ d2i_OCSP_RESPID; -+ OCSP_request_verify; -+ NCONF_get_number_e; -+ _ossl_old_des_decrypt3; -+ X509_signature_print; -+ OCSP_SINGLERESP_free; -+ ENGINE_load_builtin_engines; -+ i2d_OCSP_ONEREQ; -+ OCSP_REQUEST_add_ext; -+ OCSP_RESPBYTES_new; -+ EVP_MD_CTX_create; -+ OCSP_resp_find_status; -+ X509_ALGOR_it; -+ ASN1_TIME_it; -+ OCSP_request_set1_name; -+ OCSP_ONEREQ_get_ext_count; -+ UI_get0_result; -+ PKCS12_AUTHSAFES_it; -+ EVP_aes_256_ecb; -+ PKCS12_pack_authsafes; -+ ASN1_IA5STRING_it; -+ UI_get_input_flags; -+ EC_GROUP_set_generator; -+ _ossl_old_des_string_to_2keys; -+ OCSP_CERTID_free; -+ X509_CERT_AUX_it; -+ CERTIFICATEPOLICIES_it; -+ _ossl_old_des_ede3_cbc_encrypt; -+ RAND_set_rand_engine; -+ DSO_get_loaded_filename; -+ X509_ATTRIBUTE_it; -+ OCSP_ONEREQ_get_ext_by_NID; -+ PKCS12_decrypt_skey; -+ KRB5_AUTHENT_it; -+ UI_dup_error_string; -+ RSAPublicKey_it; -+ i2d_OCSP_REQUEST; -+ PKCS12_x509crl2certbag; -+ OCSP_SERVICELOC_it; -+ ASN1_item_sign; -+ X509_CRL_set_issuer_name; -+ OBJ_NAME_do_all_sorted; -+ i2d_OCSP_BASICRESP; -+ i2d_OCSP_RESPBYTES; -+ PKCS12_unpack_p7encdata; -+ HMAC_CTX_init; -+ ENGINE_get_digest; -+ OCSP_RESPONSE_print; -+ KRB5_TKTBODY_it; -+ ACCESS_DESCRIPTION_it; -+ PKCS7_ISSUER_AND_SERIAL_it; -+ PBE2PARAM_it; -+ PKCS12_certbag2x509crl; -+ PKCS7_SIGNED_it; -+ ENGINE_get_cipher; -+ i2d_OCSP_CRLID; -+ OCSP_SINGLERESP_new; -+ ENGINE_cmd_is_executable; -+ RSA_up_ref; -+ ASN1_GENERALSTRING_it; -+ ENGINE_register_DSA; -+ X509V3_EXT_add_nconf_sk; -+ ENGINE_set_load_pubkey_function; -+ PKCS8_decrypt; -+ PEM_bytes_read_bio; -+ DIRECTORYSTRING_it; -+ d2i_OCSP_CRLID; -+ EC_POINT_is_on_curve; -+ CRYPTO_set_locked_mem_ex_functions; -+ CRYPTO_set_locked_mem_ex_funcs; -+ d2i_KRB5_CHECKSUM; -+ ASN1_item_dup; -+ X509_it; -+ BN_mod_add; -+ KRB5_AUTHDATA_free; -+ _ossl_old_des_cbc_cksum; -+ ASN1_item_verify; -+ CRYPTO_set_mem_ex_functions; -+ EC_POINT_get_Jprojective_coordinates_GFp; -+ EC_POINT_get_Jproj_coords_GFp; -+ ZLONG_it; -+ CRYPTO_get_locked_mem_ex_functions; -+ CRYPTO_get_locked_mem_ex_funcs; -+ ASN1_TIME_check; -+ UI_get0_user_data; -+ HMAC_CTX_cleanup; -+ DSA_up_ref; -+ _ossl_old_des_ede3_cfb64_encrypt; -+ _ossl_odes_ede3_cfb64_encrypt; -+ ASN1_BMPSTRING_it; -+ ASN1_tag2bit; -+ UI_method_set_flusher; -+ X509_ocspid_print; -+ KRB5_ENCDATA_it; -+ ENGINE_get_load_pubkey_function; -+ UI_add_user_data; -+ OCSP_REQUEST_delete_ext; -+ UI_get_method; -+ OCSP_ONEREQ_free; -+ ASN1_PRINTABLESTRING_it; -+ X509_CRL_set_nextUpdate; -+ OCSP_REQUEST_it; -+ OCSP_BASICRESP_it; -+ AES_ecb_encrypt; -+ BN_mod_sqr; -+ NETSCAPE_CERT_SEQUENCE_it; -+ GENERAL_NAMES_it; -+ AUTHORITY_INFO_ACCESS_it; -+ ASN1_FBOOLEAN_it; -+ UI_set_ex_data; -+ _ossl_old_des_string_to_key; -+ ENGINE_register_all_RSA; -+ d2i_KRB5_PRINCNAME; -+ OCSP_RESPBYTES_it; -+ X509_CINF_it; -+ ENGINE_unregister_digests; -+ d2i_EDIPARTYNAME; -+ d2i_OCSP_SERVICELOC; -+ ENGINE_get_digests; -+ _ossl_old_des_set_odd_parity; -+ OCSP_RESPDATA_free; -+ d2i_KRB5_TICKET; -+ OTHERNAME_it; -+ EVP_MD_CTX_cleanup; -+ d2i_ASN1_GENERALSTRING; -+ X509_CRL_set_version; -+ BN_mod_sub; -+ OCSP_SINGLERESP_get_ext_by_NID; -+ ENGINE_get_ex_new_index; -+ OCSP_REQUEST_free; -+ OCSP_REQUEST_add1_ext_i2d; -+ X509_VAL_it; -+ EC_POINTs_make_affine; -+ EC_POINT_mul; -+ X509V3_EXT_add_nconf; -+ X509_TRUST_set; -+ X509_CRL_add1_ext_i2d; -+ _ossl_old_des_fcrypt; -+ DISPLAYTEXT_it; -+ X509_CRL_set_lastUpdate; -+ OCSP_BASICRESP_free; -+ OCSP_BASICRESP_add1_ext_i2d; -+ d2i_KRB5_AUTHENTBODY; -+ CRYPTO_set_ex_data_implementation; -+ CRYPTO_set_ex_data_impl; -+ KRB5_ENCDATA_new; -+ DSO_up_ref; -+ OCSP_crl_reason_str; -+ UI_get0_result_string; -+ ASN1_GENERALSTRING_new; -+ X509_SIG_it; -+ ERR_set_implementation; -+ ERR_load_EC_strings; -+ UI_get0_action_string; -+ OCSP_ONEREQ_get_ext; -+ EC_POINT_method_of; -+ i2d_KRB5_APREQBODY; -+ _ossl_old_des_ecb3_encrypt; -+ CRYPTO_get_mem_ex_functions; -+ ENGINE_get_ex_data; -+ UI_destroy_method; -+ ASN1_item_i2d_bio; -+ OCSP_ONEREQ_get_ext_by_OBJ; -+ ASN1_primitive_new; -+ ASN1_PRINTABLE_it; -+ EVP_aes_192_ecb; -+ OCSP_SIGNATURE_new; -+ LONG_it; -+ ASN1_VISIBLESTRING_it; -+ OCSP_SINGLERESP_add1_ext_i2d; -+ d2i_OCSP_CERTID; -+ ASN1_item_d2i_fp; -+ CRL_DIST_POINTS_it; -+ GENERAL_NAME_print; -+ OCSP_SINGLERESP_delete_ext; -+ PKCS12_SAFEBAGS_it; -+ d2i_OCSP_SIGNATURE; -+ OCSP_request_add1_nonce; -+ ENGINE_set_cmd_defns; -+ OCSP_SERVICELOC_free; -+ EC_GROUP_free; -+ ASN1_BIT_STRING_it; -+ X509_REQ_it; -+ _ossl_old_des_cbc_encrypt; -+ ERR_unload_strings; -+ PKCS7_SIGN_ENVELOPE_it; -+ EDIPARTYNAME_free; -+ OCSP_REQINFO_free; -+ EC_GROUP_new_curve_GFp; -+ OCSP_REQUEST_get1_ext_d2i; -+ PKCS12_item_pack_safebag; -+ asn1_ex_c2i; -+ ENGINE_register_digests; -+ i2d_OCSP_REVOKEDINFO; -+ asn1_enc_restore; -+ UI_free; -+ UI_new_method; -+ EVP_EncryptInit_ex; -+ X509_pubkey_digest; -+ EC_POINT_invert; -+ OCSP_basic_sign; -+ i2d_OCSP_RESPID; -+ OCSP_check_nonce; -+ ENGINE_ctrl_cmd; -+ d2i_KRB5_ENCKEY; -+ OCSP_parse_url; -+ OCSP_SINGLERESP_get_ext; -+ OCSP_CRLID_free; -+ OCSP_BASICRESP_get1_ext_d2i; -+ RSAPrivateKey_it; -+ ENGINE_register_all_DH; -+ i2d_EDIPARTYNAME; -+ EC_POINT_get_affine_coordinates_GFp; -+ EC_POINT_get_affine_coords_GFp; -+ OCSP_CRLID_new; -+ ENGINE_get_flags; -+ OCSP_ONEREQ_it; -+ UI_process; -+ ASN1_INTEGER_it; -+ EVP_CipherInit_ex; -+ UI_get_string_type; -+ ENGINE_unregister_DH; -+ ENGINE_register_all_DSA; -+ OCSP_ONEREQ_get_ext_by_critical; -+ bn_dup_expand; -+ OCSP_cert_id_new; -+ BASIC_CONSTRAINTS_it; -+ BN_mod_add_quick; -+ EC_POINT_new; -+ EVP_MD_CTX_destroy; -+ OCSP_RESPBYTES_free; -+ EVP_aes_128_cbc; -+ OCSP_SINGLERESP_get1_ext_d2i; -+ EC_POINT_free; -+ DH_up_ref; -+ X509_NAME_ENTRY_it; -+ UI_get_ex_new_index; -+ BN_mod_sub_quick; -+ OCSP_ONEREQ_add_ext; -+ OCSP_request_sign; -+ EVP_DigestFinal_ex; -+ ENGINE_set_digests; -+ OCSP_id_issuer_cmp; -+ OBJ_NAME_do_all; -+ EC_POINTs_mul; -+ ENGINE_register_complete; -+ X509V3_EXT_nconf_nid; -+ ASN1_SEQUENCE_it; -+ UI_set_default_method; -+ RAND_query_egd_bytes; -+ UI_method_get_writer; -+ UI_OpenSSL; -+ PEM_def_callback; -+ ENGINE_cleanup; -+ DIST_POINT_it; -+ OCSP_SINGLERESP_it; -+ d2i_KRB5_TKTBODY; -+ EC_POINT_cmp; -+ OCSP_REVOKEDINFO_new; -+ i2d_OCSP_CERTSTATUS; -+ OCSP_basic_add1_nonce; -+ ASN1_item_ex_d2i; -+ BN_mod_lshift1_quick; -+ UI_set_method; -+ OCSP_id_get0_info; -+ BN_mod_sqrt; -+ EC_GROUP_copy; -+ KRB5_ENCDATA_free; -+ _ossl_old_des_cfb_encrypt; -+ OCSP_SINGLERESP_get_ext_by_OBJ; -+ OCSP_cert_to_id; -+ OCSP_RESPID_new; -+ OCSP_RESPDATA_it; -+ d2i_OCSP_RESPDATA; -+ ENGINE_register_all_complete; -+ OCSP_check_validity; -+ PKCS12_BAGS_it; -+ OCSP_url_svcloc_new; -+ ASN1_template_free; -+ OCSP_SINGLERESP_add_ext; -+ KRB5_AUTHENTBODY_it; -+ X509_supported_extension; -+ i2d_KRB5_AUTHDATA; -+ UI_method_get_opener; -+ ENGINE_set_ex_data; -+ OCSP_REQUEST_print; -+ CBIGNUM_it; -+ KRB5_TICKET_new; -+ KRB5_APREQ_new; -+ EC_GROUP_get_curve_GFp; -+ KRB5_ENCKEY_new; -+ ASN1_template_d2i; -+ _ossl_old_des_quad_cksum; -+ OCSP_single_get0_status; -+ BN_swap; -+ POLICYINFO_it; -+ ENGINE_set_destroy_function; -+ asn1_enc_free; -+ OCSP_RESPID_it; -+ EC_GROUP_new; -+ EVP_aes_256_cbc; -+ i2d_KRB5_PRINCNAME; -+ _ossl_old_des_encrypt2; -+ _ossl_old_des_encrypt3; -+ PKCS8_PRIV_KEY_INFO_it; -+ OCSP_REQINFO_it; -+ PBEPARAM_it; -+ KRB5_AUTHENTBODY_new; -+ X509_CRL_add0_revoked; -+ EDIPARTYNAME_it; -+ NETSCAPE_SPKI_it; -+ UI_get0_test_string; -+ ENGINE_get_cipher_engine; -+ ENGINE_register_all_ciphers; -+ EC_POINT_copy; -+ BN_kronecker; -+ _ossl_old_des_ede3_ofb64_encrypt; -+ _ossl_odes_ede3_ofb64_encrypt; -+ UI_method_get_reader; -+ OCSP_BASICRESP_get_ext_count; -+ ASN1_ENUMERATED_it; -+ UI_set_result; -+ i2d_KRB5_TICKET; -+ X509_print_ex_fp; -+ EVP_CIPHER_CTX_set_padding; -+ d2i_OCSP_RESPONSE; -+ ASN1_UTCTIME_it; -+ _ossl_old_des_enc_write; -+ OCSP_RESPONSE_new; -+ AES_set_encrypt_key; -+ OCSP_resp_count; -+ KRB5_CHECKSUM_new; -+ ENGINE_load_cswift; -+ OCSP_onereq_get0_id; -+ ENGINE_set_default_ciphers; -+ NOTICEREF_it; -+ X509V3_EXT_CRL_add_nconf; -+ OCSP_REVOKEDINFO_it; -+ AES_encrypt; -+ OCSP_REQUEST_new; -+ ASN1_ANY_it; -+ CRYPTO_ex_data_new_class; -+ _ossl_old_des_ncbc_encrypt; -+ i2d_KRB5_TKTBODY; -+ EC_POINT_clear_free; -+ AES_decrypt; -+ asn1_enc_init; -+ UI_get_result_maxsize; -+ OCSP_CERTID_new; -+ ENGINE_unregister_RAND; -+ UI_method_get_closer; -+ d2i_KRB5_ENCDATA; -+ OCSP_request_onereq_count; -+ OCSP_basic_verify; -+ KRB5_AUTHENTBODY_free; -+ ASN1_item_d2i; -+ ASN1_primitive_free; -+ i2d_EXTENDED_KEY_USAGE; -+ i2d_OCSP_SIGNATURE; -+ asn1_enc_save; -+ ENGINE_load_nuron; -+ _ossl_old_des_pcbc_encrypt; -+ PKCS12_MAC_DATA_it; -+ OCSP_accept_responses_new; -+ asn1_do_lock; -+ PKCS7_ATTR_VERIFY_it; -+ KRB5_APREQBODY_it; -+ i2d_OCSP_SINGLERESP; -+ ASN1_item_ex_new; -+ UI_add_verify_string; -+ _ossl_old_des_set_key; -+ KRB5_PRINCNAME_it; -+ EVP_DecryptInit_ex; -+ i2d_OCSP_CERTID; -+ ASN1_item_d2i_bio; -+ EC_POINT_dbl; -+ asn1_get_choice_selector; -+ i2d_KRB5_CHECKSUM; -+ ENGINE_set_table_flags; -+ AES_options; -+ ENGINE_load_chil; -+ OCSP_id_cmp; -+ OCSP_BASICRESP_new; -+ OCSP_REQUEST_get_ext_by_NID; -+ KRB5_APREQ_it; -+ ENGINE_get_destroy_function; -+ CONF_set_nconf; -+ ASN1_PRINTABLE_free; -+ OCSP_BASICRESP_get_ext_by_NID; -+ DIST_POINT_NAME_it; -+ X509V3_extensions_print; -+ _ossl_old_des_cfb64_encrypt; -+ X509_REVOKED_add1_ext_i2d; -+ _ossl_old_des_ofb_encrypt; -+ KRB5_TKTBODY_new; -+ ASN1_OCTET_STRING_it; -+ ERR_load_UI_strings; -+ i2d_KRB5_ENCKEY; -+ ASN1_template_new; -+ OCSP_SIGNATURE_free; -+ ASN1_item_i2d_fp; -+ KRB5_PRINCNAME_free; -+ PKCS7_RECIP_INFO_it; -+ EXTENDED_KEY_USAGE_it; -+ EC_GFp_simple_method; -+ EC_GROUP_precompute_mult; -+ OCSP_request_onereq_get0; -+ UI_method_set_writer; -+ KRB5_AUTHENT_new; -+ X509_CRL_INFO_it; -+ DSO_set_name_converter; -+ AES_set_decrypt_key; -+ PKCS7_DIGEST_it; -+ PKCS12_x5092certbag; -+ EVP_DigestInit_ex; -+ i2a_ACCESS_DESCRIPTION; -+ OCSP_RESPONSE_it; -+ PKCS7_ENC_CONTENT_it; -+ OCSP_request_add0_id; -+ EC_POINT_make_affine; -+ DSO_get_filename; -+ OCSP_CERTSTATUS_it; -+ OCSP_request_add1_cert; -+ UI_get0_output_string; -+ UI_dup_verify_string; -+ BN_mod_lshift; -+ KRB5_AUTHDATA_it; -+ asn1_set_choice_selector; -+ OCSP_basic_add1_status; -+ OCSP_RESPID_free; -+ asn1_get_field_ptr; -+ UI_add_input_string; -+ OCSP_CRLID_it; -+ i2d_KRB5_AUTHENTBODY; -+ OCSP_REQUEST_get_ext_count; -+ ENGINE_load_atalla; -+ X509_NAME_it; -+ USERNOTICE_it; -+ OCSP_REQINFO_new; -+ OCSP_BASICRESP_get_ext; -+ CRYPTO_get_ex_data_implementation; -+ CRYPTO_get_ex_data_impl; -+ ASN1_item_pack; -+ i2d_KRB5_ENCDATA; -+ X509_PURPOSE_set; -+ X509_REQ_INFO_it; -+ UI_method_set_opener; -+ ASN1_item_ex_free; -+ ASN1_BOOLEAN_it; -+ ENGINE_get_table_flags; -+ UI_create_method; -+ OCSP_ONEREQ_add1_ext_i2d; -+ _shadow_DES_check_key; -+ d2i_OCSP_REQINFO; -+ UI_add_info_string; -+ UI_get_result_minsize; -+ ASN1_NULL_it; -+ BN_mod_lshift1; -+ d2i_OCSP_ONEREQ; -+ OCSP_ONEREQ_new; -+ KRB5_TICKET_it; -+ EVP_aes_192_cbc; -+ KRB5_TICKET_free; -+ UI_new; -+ OCSP_response_create; -+ _ossl_old_des_xcbc_encrypt; -+ PKCS7_it; -+ OCSP_REQUEST_get_ext_by_critical; -+ OCSP_REQUEST_get_ext_by_crit; -+ ENGINE_set_flags; -+ _ossl_old_des_ecb_encrypt; -+ OCSP_response_get1_basic; -+ EVP_Digest; -+ OCSP_ONEREQ_delete_ext; -+ ASN1_TBOOLEAN_it; -+ ASN1_item_new; -+ ASN1_TIME_to_generalizedtime; -+ BIGNUM_it; -+ AES_cbc_encrypt; -+ ENGINE_get_load_privkey_function; -+ ENGINE_get_load_privkey_fn; -+ OCSP_RESPONSE_free; -+ UI_method_set_reader; -+ i2d_ASN1_T61STRING; -+ EC_POINT_set_to_infinity; -+ ERR_load_OCSP_strings; -+ EC_POINT_point2oct; -+ KRB5_APREQ_free; -+ ASN1_OBJECT_it; -+ OCSP_crlID_new; -+ OCSP_crlID2_new; -+ CONF_modules_load_file; -+ CONF_imodule_set_usr_data; -+ ENGINE_set_default_string; -+ CONF_module_get_usr_data; -+ ASN1_add_oid_module; -+ CONF_modules_finish; -+ OPENSSL_config; -+ CONF_modules_unload; -+ CONF_imodule_get_value; -+ CONF_module_set_usr_data; -+ CONF_parse_list; -+ CONF_module_add; -+ CONF_get1_default_config_file; -+ CONF_imodule_get_flags; -+ CONF_imodule_get_module; -+ CONF_modules_load; -+ CONF_imodule_get_name; -+ ERR_peek_top_error; -+ CONF_imodule_get_usr_data; -+ CONF_imodule_set_flags; -+ ENGINE_add_conf_module; -+ ERR_peek_last_error_line; -+ ERR_peek_last_error_line_data; -+ ERR_peek_last_error; -+ DES_read_2passwords; -+ DES_read_password; -+ UI_UTIL_read_pw; -+ UI_UTIL_read_pw_string; -+ ENGINE_load_aep; -+ ENGINE_load_sureware; -+ OPENSSL_add_all_algorithms_noconf; -+ OPENSSL_add_all_algo_noconf; -+ OPENSSL_add_all_algorithms_conf; -+ OPENSSL_add_all_algo_conf; -+ OPENSSL_load_builtin_modules; -+ AES_ofb128_encrypt; -+ AES_ctr128_encrypt; -+ AES_cfb128_encrypt; -+ ENGINE_load_4758cca; -+ _ossl_096_des_random_seed; -+ EVP_aes_256_ofb; -+ EVP_aes_192_ofb; -+ EVP_aes_128_cfb128; -+ EVP_aes_256_cfb128; -+ EVP_aes_128_ofb; -+ EVP_aes_192_cfb128; -+ CONF_modules_free; -+ NCONF_default; -+ OPENSSL_no_config; -+ NCONF_WIN32; -+ ASN1_UNIVERSALSTRING_new; -+ EVP_des_ede_ecb; -+ i2d_ASN1_UNIVERSALSTRING; -+ ASN1_UNIVERSALSTRING_free; -+ ASN1_UNIVERSALSTRING_it; -+ d2i_ASN1_UNIVERSALSTRING; -+ EVP_des_ede3_ecb; -+ X509_REQ_print_ex; -+ ENGINE_up_ref; -+ BUF_MEM_grow_clean; -+ CRYPTO_realloc_clean; -+ BUF_strlcat; -+ BIO_indent; -+ BUF_strlcpy; -+ OpenSSLDie; -+ OPENSSL_cleanse; -+ ENGINE_setup_bsd_cryptodev; -+ ERR_release_err_state_table; -+ EVP_aes_128_cfb8; -+ FIPS_corrupt_rsa; -+ FIPS_selftest_des; -+ EVP_aes_128_cfb1; -+ EVP_aes_192_cfb8; -+ FIPS_mode_set; -+ FIPS_selftest_dsa; -+ EVP_aes_256_cfb8; -+ FIPS_allow_md5; -+ DES_ede3_cfb_encrypt; -+ EVP_des_ede3_cfb8; -+ FIPS_rand_seeded; -+ AES_cfbr_encrypt_block; -+ AES_cfb8_encrypt; -+ FIPS_rand_seed; -+ FIPS_corrupt_des; -+ EVP_aes_192_cfb1; -+ FIPS_selftest_aes; -+ FIPS_set_prng_key; -+ EVP_des_cfb8; -+ FIPS_corrupt_dsa; -+ FIPS_test_mode; -+ FIPS_rand_method; -+ EVP_aes_256_cfb1; -+ ERR_load_FIPS_strings; -+ FIPS_corrupt_aes; -+ FIPS_selftest_sha1; -+ FIPS_selftest_rsa; -+ FIPS_corrupt_sha1; -+ EVP_des_cfb1; -+ FIPS_dsa_check; -+ AES_cfb1_encrypt; -+ EVP_des_ede3_cfb1; -+ FIPS_rand_check; -+ FIPS_md5_allowed; -+ FIPS_mode; -+ FIPS_selftest_failed; -+ sk_is_sorted; -+ X509_check_ca; -+ HMAC_CTX_set_flags; -+ d2i_PROXY_CERT_INFO_EXTENSION; -+ PROXY_POLICY_it; -+ i2d_PROXY_POLICY; -+ i2d_PROXY_CERT_INFO_EXTENSION; -+ d2i_PROXY_POLICY; -+ PROXY_CERT_INFO_EXTENSION_new; -+ PROXY_CERT_INFO_EXTENSION_free; -+ PROXY_CERT_INFO_EXTENSION_it; -+ PROXY_POLICY_free; -+ PROXY_POLICY_new; -+ BN_MONT_CTX_set_locked; -+ FIPS_selftest_rng; -+ EVP_sha384; -+ EVP_sha512; -+ EVP_sha224; -+ EVP_sha256; -+ FIPS_selftest_hmac; -+ FIPS_corrupt_rng; -+ BN_mod_exp_mont_consttime; -+ RSA_X931_hash_id; -+ RSA_padding_check_X931; -+ RSA_verify_PKCS1_PSS; -+ RSA_padding_add_X931; -+ RSA_padding_add_PKCS1_PSS; -+ PKCS1_MGF1; -+ BN_X931_generate_Xpq; -+ RSA_X931_generate_key; -+ BN_X931_derive_prime; -+ BN_X931_generate_prime; -+ RSA_X931_derive; -+ BIO_new_dgram; -+ BN_get0_nist_prime_384; -+ ERR_set_mark; -+ X509_STORE_CTX_set0_crls; -+ ENGINE_set_STORE; -+ ENGINE_register_ECDSA; -+ STORE_meth_set_list_start_fn; -+ STORE_method_set_list_start_function; -+ BN_BLINDING_invert_ex; -+ NAME_CONSTRAINTS_free; -+ STORE_ATTR_INFO_set_number; -+ BN_BLINDING_get_thread_id; -+ X509_STORE_CTX_set0_param; -+ POLICY_MAPPING_it; -+ STORE_parse_attrs_start; -+ POLICY_CONSTRAINTS_free; -+ EVP_PKEY_add1_attr_by_NID; -+ BN_nist_mod_192; -+ EC_GROUP_get_trinomial_basis; -+ STORE_set_method; -+ GENERAL_SUBTREE_free; -+ NAME_CONSTRAINTS_it; -+ ECDH_get_default_method; -+ PKCS12_add_safe; -+ EC_KEY_new_by_curve_name; -+ STORE_meth_get_update_store_fn; -+ STORE_method_get_update_store_function; -+ ENGINE_register_ECDH; -+ SHA512_Update; -+ i2d_ECPrivateKey; -+ BN_get0_nist_prime_192; -+ STORE_modify_certificate; -+ EC_POINT_set_affine_coordinates_GF2m; -+ EC_POINT_set_affine_coords_GF2m; -+ BN_GF2m_mod_exp_arr; -+ STORE_ATTR_INFO_modify_number; -+ X509_keyid_get0; -+ ENGINE_load_gmp; -+ pitem_new; -+ BN_GF2m_mod_mul_arr; -+ STORE_list_public_key_endp; -+ o2i_ECPublicKey; -+ EC_KEY_copy; -+ BIO_dump_fp; -+ X509_policy_node_get0_parent; -+ EC_GROUP_check_discriminant; -+ i2o_ECPublicKey; -+ EC_KEY_precompute_mult; -+ a2i_IPADDRESS; -+ STORE_meth_set_initialise_fn; -+ STORE_method_set_initialise_function; -+ X509_STORE_CTX_set_depth; -+ X509_VERIFY_PARAM_inherit; -+ EC_POINT_point2bn; -+ STORE_ATTR_INFO_set_dn; -+ X509_policy_tree_get0_policies; -+ EC_GROUP_new_curve_GF2m; -+ STORE_destroy_method; -+ ENGINE_unregister_STORE; -+ EVP_PKEY_get1_EC_KEY; -+ STORE_ATTR_INFO_get0_number; -+ ENGINE_get_default_ECDH; -+ EC_KEY_get_conv_form; -+ ASN1_OCTET_STRING_NDEF_it; -+ STORE_delete_public_key; -+ STORE_get_public_key; -+ STORE_modify_arbitrary; -+ ENGINE_get_static_state; -+ pqueue_iterator; -+ ECDSA_SIG_new; -+ OPENSSL_DIR_end; -+ BN_GF2m_mod_sqr; -+ EC_POINT_bn2point; -+ X509_VERIFY_PARAM_set_depth; -+ EC_KEY_set_asn1_flag; -+ STORE_get_method; -+ EC_KEY_get_key_method_data; -+ ECDSA_sign_ex; -+ STORE_parse_attrs_end; -+ EC_GROUP_get_point_conversion_form; -+ EC_GROUP_get_point_conv_form; -+ STORE_method_set_store_function; -+ STORE_ATTR_INFO_in; -+ PEM_read_bio_ECPKParameters; -+ EC_GROUP_get_pentanomial_basis; -+ EVP_PKEY_add1_attr_by_txt; -+ BN_BLINDING_set_flags; -+ X509_VERIFY_PARAM_set1_policies; -+ X509_VERIFY_PARAM_set1_name; -+ X509_VERIFY_PARAM_set_purpose; -+ STORE_get_number; -+ ECDSA_sign_setup; -+ BN_GF2m_mod_solve_quad_arr; -+ EC_KEY_up_ref; -+ POLICY_MAPPING_free; -+ BN_GF2m_mod_div; -+ X509_VERIFY_PARAM_set_flags; -+ EC_KEY_free; -+ STORE_meth_set_list_next_fn; -+ STORE_method_set_list_next_function; -+ PEM_write_bio_ECPrivateKey; -+ d2i_EC_PUBKEY; -+ STORE_meth_get_generate_fn; -+ STORE_method_get_generate_function; -+ STORE_meth_set_list_end_fn; -+ STORE_method_set_list_end_function; -+ pqueue_print; -+ EC_GROUP_have_precompute_mult; -+ EC_KEY_print_fp; -+ BN_GF2m_mod_arr; -+ PEM_write_bio_X509_CERT_PAIR; -+ EVP_PKEY_cmp; -+ X509_policy_level_node_count; -+ STORE_new_engine; -+ STORE_list_public_key_start; -+ X509_VERIFY_PARAM_new; -+ ECDH_get_ex_data; -+ EVP_PKEY_get_attr; -+ ECDSA_do_sign; -+ ENGINE_unregister_ECDH; -+ ECDH_OpenSSL; -+ EC_KEY_set_conv_form; -+ EC_POINT_dup; -+ GENERAL_SUBTREE_new; -+ STORE_list_crl_endp; -+ EC_get_builtin_curves; -+ X509_policy_node_get0_qualifiers; -+ X509_pcy_node_get0_qualifiers; -+ STORE_list_crl_end; -+ EVP_PKEY_set1_EC_KEY; -+ BN_GF2m_mod_sqrt_arr; -+ i2d_ECPrivateKey_bio; -+ ECPKParameters_print_fp; -+ pqueue_find; -+ ECDSA_SIG_free; -+ PEM_write_bio_ECPKParameters; -+ STORE_method_set_ctrl_function; -+ STORE_list_public_key_end; -+ EC_KEY_set_private_key; -+ pqueue_peek; -+ STORE_get_arbitrary; -+ STORE_store_crl; -+ X509_policy_node_get0_policy; -+ PKCS12_add_safes; -+ BN_BLINDING_convert_ex; -+ X509_policy_tree_free; -+ OPENSSL_ia32cap_loc; -+ BN_GF2m_poly2arr; -+ STORE_ctrl; -+ STORE_ATTR_INFO_compare; -+ BN_get0_nist_prime_224; -+ i2d_ECParameters; -+ i2d_ECPKParameters; -+ BN_GENCB_call; -+ d2i_ECPKParameters; -+ STORE_meth_set_generate_fn; -+ STORE_method_set_generate_function; -+ ENGINE_set_ECDH; -+ NAME_CONSTRAINTS_new; -+ SHA256_Init; -+ EC_KEY_get0_public_key; -+ PEM_write_bio_EC_PUBKEY; -+ STORE_ATTR_INFO_set_cstr; -+ STORE_list_crl_next; -+ STORE_ATTR_INFO_in_range; -+ ECParameters_print; -+ STORE_meth_set_delete_fn; -+ STORE_method_set_delete_function; -+ STORE_list_certificate_next; -+ ASN1_generate_nconf; -+ BUF_memdup; -+ BN_GF2m_mod_mul; -+ STORE_meth_get_list_next_fn; -+ STORE_method_get_list_next_function; -+ STORE_ATTR_INFO_get0_dn; -+ STORE_list_private_key_next; -+ EC_GROUP_set_seed; -+ X509_VERIFY_PARAM_set_trust; -+ STORE_ATTR_INFO_free; -+ STORE_get_private_key; -+ EVP_PKEY_get_attr_count; -+ STORE_ATTR_INFO_new; -+ EC_GROUP_get_curve_GF2m; -+ STORE_meth_set_revoke_fn; -+ STORE_method_set_revoke_function; -+ STORE_store_number; -+ BN_is_prime_ex; -+ STORE_revoke_public_key; -+ X509_STORE_CTX_get0_param; -+ STORE_delete_arbitrary; -+ PEM_read_X509_CERT_PAIR; -+ X509_STORE_set_depth; -+ ECDSA_get_ex_data; -+ SHA224; -+ BIO_dump_indent_fp; -+ EC_KEY_set_group; -+ BUF_strndup; -+ STORE_list_certificate_start; -+ BN_GF2m_mod; -+ X509_REQ_check_private_key; -+ EC_GROUP_get_seed_len; -+ ERR_load_STORE_strings; -+ PEM_read_bio_EC_PUBKEY; -+ STORE_list_private_key_end; -+ i2d_EC_PUBKEY; -+ ECDSA_get_default_method; -+ ASN1_put_eoc; -+ X509_STORE_CTX_get_explicit_policy; -+ X509_STORE_CTX_get_expl_policy; -+ X509_VERIFY_PARAM_table_cleanup; -+ STORE_modify_private_key; -+ X509_VERIFY_PARAM_free; -+ EC_METHOD_get_field_type; -+ EC_GFp_nist_method; -+ STORE_meth_set_modify_fn; -+ STORE_method_set_modify_function; -+ STORE_parse_attrs_next; -+ ENGINE_load_padlock; -+ EC_GROUP_set_curve_name; -+ X509_CERT_PAIR_it; -+ STORE_meth_get_revoke_fn; -+ STORE_method_get_revoke_function; -+ STORE_method_set_get_function; -+ STORE_modify_number; -+ STORE_method_get_store_function; -+ STORE_store_private_key; -+ BN_GF2m_mod_sqr_arr; -+ RSA_setup_blinding; -+ BIO_s_datagram; -+ STORE_Memory; -+ sk_find_ex; -+ EC_GROUP_set_curve_GF2m; -+ ENGINE_set_default_ECDSA; -+ POLICY_CONSTRAINTS_new; -+ BN_GF2m_mod_sqrt; -+ ECDH_set_default_method; -+ EC_KEY_generate_key; -+ SHA384_Update; -+ BN_GF2m_arr2poly; -+ STORE_method_get_get_function; -+ STORE_meth_set_cleanup_fn; -+ STORE_method_set_cleanup_function; -+ EC_GROUP_check; -+ d2i_ECPrivateKey_bio; -+ EC_KEY_insert_key_method_data; -+ STORE_meth_get_lock_store_fn; -+ STORE_method_get_lock_store_function; -+ X509_VERIFY_PARAM_get_depth; -+ SHA224_Final; -+ STORE_meth_set_update_store_fn; -+ STORE_method_set_update_store_function; -+ SHA224_Update; -+ d2i_ECPrivateKey; -+ ASN1_item_ndef_i2d; -+ STORE_delete_private_key; -+ ERR_pop_to_mark; -+ ENGINE_register_all_STORE; -+ X509_policy_level_get0_node; -+ i2d_PKCS7_NDEF; -+ EC_GROUP_get_degree; -+ ASN1_generate_v3; -+ STORE_ATTR_INFO_modify_cstr; -+ X509_policy_tree_level_count; -+ BN_GF2m_add; -+ EC_KEY_get0_group; -+ STORE_generate_crl; -+ STORE_store_public_key; -+ X509_CERT_PAIR_free; -+ STORE_revoke_private_key; -+ BN_nist_mod_224; -+ SHA512_Final; -+ STORE_ATTR_INFO_modify_dn; -+ STORE_meth_get_initialise_fn; -+ STORE_method_get_initialise_function; -+ STORE_delete_number; -+ i2d_EC_PUBKEY_bio; -+ BIO_dgram_non_fatal_error; -+ EC_GROUP_get_asn1_flag; -+ STORE_ATTR_INFO_in_ex; -+ STORE_list_crl_start; -+ ECDH_get_ex_new_index; -+ STORE_meth_get_modify_fn; -+ STORE_method_get_modify_function; -+ v2i_ASN1_BIT_STRING; -+ STORE_store_certificate; -+ OBJ_bsearch_ex; -+ X509_STORE_CTX_set_default; -+ STORE_ATTR_INFO_set_sha1str; -+ BN_GF2m_mod_inv; -+ BN_GF2m_mod_exp; -+ STORE_modify_public_key; -+ STORE_meth_get_list_start_fn; -+ STORE_method_get_list_start_function; -+ EC_GROUP_get0_seed; -+ STORE_store_arbitrary; -+ STORE_meth_set_unlock_store_fn; -+ STORE_method_set_unlock_store_function; -+ BN_GF2m_mod_div_arr; -+ ENGINE_set_ECDSA; -+ STORE_create_method; -+ ECPKParameters_print; -+ EC_KEY_get0_private_key; -+ PEM_write_EC_PUBKEY; -+ X509_VERIFY_PARAM_set1; -+ ECDH_set_method; -+ v2i_GENERAL_NAME_ex; -+ ECDH_set_ex_data; -+ STORE_generate_key; -+ BN_nist_mod_521; -+ X509_policy_tree_get0_level; -+ EC_GROUP_set_point_conversion_form; -+ EC_GROUP_set_point_conv_form; -+ PEM_read_EC_PUBKEY; -+ i2d_ECDSA_SIG; -+ ECDSA_OpenSSL; -+ STORE_delete_crl; -+ EC_KEY_get_enc_flags; -+ ASN1_const_check_infinite_end; -+ EVP_PKEY_delete_attr; -+ ECDSA_set_default_method; -+ EC_POINT_set_compressed_coordinates_GF2m; -+ EC_POINT_set_compr_coords_GF2m; -+ EC_GROUP_cmp; -+ STORE_revoke_certificate; -+ BN_get0_nist_prime_256; -+ STORE_meth_get_delete_fn; -+ STORE_method_get_delete_function; -+ SHA224_Init; -+ PEM_read_ECPrivateKey; -+ SHA512_Init; -+ STORE_parse_attrs_endp; -+ BN_set_negative; -+ ERR_load_ECDSA_strings; -+ EC_GROUP_get_basis_type; -+ STORE_list_public_key_next; -+ i2v_ASN1_BIT_STRING; -+ STORE_OBJECT_free; -+ BN_nist_mod_384; -+ i2d_X509_CERT_PAIR; -+ PEM_write_ECPKParameters; -+ ECDH_compute_key; -+ STORE_ATTR_INFO_get0_sha1str; -+ ENGINE_register_all_ECDH; -+ pqueue_pop; -+ STORE_ATTR_INFO_get0_cstr; -+ POLICY_CONSTRAINTS_it; -+ STORE_get_ex_new_index; -+ EVP_PKEY_get_attr_by_OBJ; -+ X509_VERIFY_PARAM_add0_policy; -+ BN_GF2m_mod_solve_quad; -+ SHA256; -+ i2d_ECPrivateKey_fp; -+ X509_policy_tree_get0_user_policies; -+ X509_pcy_tree_get0_usr_policies; -+ OPENSSL_DIR_read; -+ ENGINE_register_all_ECDSA; -+ X509_VERIFY_PARAM_lookup; -+ EC_POINT_get_affine_coordinates_GF2m; -+ EC_POINT_get_affine_coords_GF2m; -+ EC_GROUP_dup; -+ ENGINE_get_default_ECDSA; -+ EC_KEY_new; -+ SHA256_Transform; -+ EC_KEY_set_enc_flags; -+ ECDSA_verify; -+ EC_POINT_point2hex; -+ ENGINE_get_STORE; -+ SHA512; -+ STORE_get_certificate; -+ ECDSA_do_sign_ex; -+ ECDSA_do_verify; -+ d2i_ECPrivateKey_fp; -+ STORE_delete_certificate; -+ SHA512_Transform; -+ X509_STORE_set1_param; -+ STORE_method_get_ctrl_function; -+ STORE_free; -+ PEM_write_ECPrivateKey; -+ STORE_meth_get_unlock_store_fn; -+ STORE_method_get_unlock_store_function; -+ STORE_get_ex_data; -+ EC_KEY_set_public_key; -+ PEM_read_ECPKParameters; -+ X509_CERT_PAIR_new; -+ ENGINE_register_STORE; -+ RSA_generate_key_ex; -+ DSA_generate_parameters_ex; -+ ECParameters_print_fp; -+ X509V3_NAME_from_section; -+ EVP_PKEY_add1_attr; -+ STORE_modify_crl; -+ STORE_list_private_key_start; -+ POLICY_MAPPINGS_it; -+ GENERAL_SUBTREE_it; -+ EC_GROUP_get_curve_name; -+ PEM_write_X509_CERT_PAIR; -+ BIO_dump_indent_cb; -+ d2i_X509_CERT_PAIR; -+ STORE_list_private_key_endp; -+ asn1_const_Finish; -+ i2d_EC_PUBKEY_fp; -+ BN_nist_mod_256; -+ X509_VERIFY_PARAM_add0_table; -+ pqueue_free; -+ BN_BLINDING_create_param; -+ ECDSA_size; -+ d2i_EC_PUBKEY_bio; -+ BN_get0_nist_prime_521; -+ STORE_ATTR_INFO_modify_sha1str; -+ BN_generate_prime_ex; -+ EC_GROUP_new_by_curve_name; -+ SHA256_Final; -+ DH_generate_parameters_ex; -+ PEM_read_bio_ECPrivateKey; -+ STORE_meth_get_cleanup_fn; -+ STORE_method_get_cleanup_function; -+ ENGINE_get_ECDH; -+ d2i_ECDSA_SIG; -+ BN_is_prime_fasttest_ex; -+ ECDSA_sign; -+ X509_policy_check; -+ EVP_PKEY_get_attr_by_NID; -+ STORE_set_ex_data; -+ ENGINE_get_ECDSA; -+ EVP_ecdsa; -+ BN_BLINDING_get_flags; -+ PKCS12_add_cert; -+ STORE_OBJECT_new; -+ ERR_load_ECDH_strings; -+ EC_KEY_dup; -+ EVP_CIPHER_CTX_rand_key; -+ ECDSA_set_method; -+ a2i_IPADDRESS_NC; -+ d2i_ECParameters; -+ STORE_list_certificate_end; -+ STORE_get_crl; -+ X509_POLICY_NODE_print; -+ SHA384_Init; -+ EC_GF2m_simple_method; -+ ECDSA_set_ex_data; -+ SHA384_Final; -+ PKCS7_set_digest; -+ EC_KEY_print; -+ STORE_meth_set_lock_store_fn; -+ STORE_method_set_lock_store_function; -+ ECDSA_get_ex_new_index; -+ SHA384; -+ POLICY_MAPPING_new; -+ STORE_list_certificate_endp; -+ X509_STORE_CTX_get0_policy_tree; -+ EC_GROUP_set_asn1_flag; -+ EC_KEY_check_key; -+ d2i_EC_PUBKEY_fp; -+ PKCS7_set0_type_other; -+ PEM_read_bio_X509_CERT_PAIR; -+ pqueue_next; -+ STORE_meth_get_list_end_fn; -+ STORE_method_get_list_end_function; -+ EVP_PKEY_add1_attr_by_OBJ; -+ X509_VERIFY_PARAM_set_time; -+ pqueue_new; -+ ENGINE_set_default_ECDH; -+ STORE_new_method; -+ PKCS12_add_key; -+ DSO_merge; -+ EC_POINT_hex2point; -+ BIO_dump_cb; -+ SHA256_Update; -+ pqueue_insert; -+ pitem_free; -+ BN_GF2m_mod_inv_arr; -+ ENGINE_unregister_ECDSA; -+ BN_BLINDING_set_thread_id; -+ get_rfc3526_prime_8192; -+ X509_VERIFY_PARAM_clear_flags; -+ get_rfc2409_prime_1024; -+ DH_check_pub_key; -+ get_rfc3526_prime_2048; -+ get_rfc3526_prime_6144; -+ get_rfc3526_prime_1536; -+ get_rfc3526_prime_3072; -+ get_rfc3526_prime_4096; -+ get_rfc2409_prime_768; -+ X509_VERIFY_PARAM_get_flags; -+ EVP_CIPHER_CTX_new; -+ EVP_CIPHER_CTX_free; -+ Camellia_cbc_encrypt; -+ Camellia_cfb128_encrypt; -+ Camellia_cfb1_encrypt; -+ Camellia_cfb8_encrypt; -+ Camellia_ctr128_encrypt; -+ Camellia_cfbr_encrypt_block; -+ Camellia_decrypt; -+ Camellia_ecb_encrypt; -+ Camellia_encrypt; -+ Camellia_ofb128_encrypt; -+ Camellia_set_key; -+ EVP_camellia_128_cbc; -+ EVP_camellia_128_cfb128; -+ EVP_camellia_128_cfb1; -+ EVP_camellia_128_cfb8; -+ EVP_camellia_128_ecb; -+ EVP_camellia_128_ofb; -+ EVP_camellia_192_cbc; -+ EVP_camellia_192_cfb128; -+ EVP_camellia_192_cfb1; -+ EVP_camellia_192_cfb8; -+ EVP_camellia_192_ecb; -+ EVP_camellia_192_ofb; -+ EVP_camellia_256_cbc; -+ EVP_camellia_256_cfb128; -+ EVP_camellia_256_cfb1; -+ EVP_camellia_256_cfb8; -+ EVP_camellia_256_ecb; -+ EVP_camellia_256_ofb; -+ a2i_ipadd; -+ ASIdentifiers_free; -+ i2d_ASIdOrRange; -+ EVP_CIPHER_block_size; -+ v3_asid_is_canonical; -+ IPAddressChoice_free; -+ EVP_CIPHER_CTX_set_app_data; -+ BIO_set_callback_arg; -+ v3_addr_add_prefix; -+ IPAddressOrRange_it; -+ BIO_set_flags; -+ ASIdentifiers_it; -+ v3_addr_get_range; -+ BIO_method_type; -+ v3_addr_inherits; -+ IPAddressChoice_it; -+ AES_ige_encrypt; -+ v3_addr_add_range; -+ EVP_CIPHER_CTX_nid; -+ d2i_ASRange; -+ v3_addr_add_inherit; -+ v3_asid_add_id_or_range; -+ v3_addr_validate_resource_set; -+ EVP_CIPHER_iv_length; -+ EVP_MD_type; -+ v3_asid_canonize; -+ IPAddressRange_free; -+ v3_asid_add_inherit; -+ EVP_CIPHER_CTX_key_length; -+ IPAddressRange_new; -+ ASIdOrRange_new; -+ EVP_MD_size; -+ EVP_MD_CTX_test_flags; -+ BIO_clear_flags; -+ i2d_ASRange; -+ IPAddressRange_it; -+ IPAddressChoice_new; -+ ASIdentifierChoice_new; -+ ASRange_free; -+ EVP_MD_pkey_type; -+ EVP_MD_CTX_clear_flags; -+ IPAddressFamily_free; -+ i2d_IPAddressFamily; -+ IPAddressOrRange_new; -+ EVP_CIPHER_flags; -+ v3_asid_validate_resource_set; -+ d2i_IPAddressRange; -+ AES_bi_ige_encrypt; -+ BIO_get_callback; -+ IPAddressOrRange_free; -+ v3_addr_subset; -+ d2i_IPAddressFamily; -+ v3_asid_subset; -+ BIO_test_flags; -+ i2d_ASIdentifierChoice; -+ ASRange_it; -+ d2i_ASIdentifiers; -+ ASRange_new; -+ d2i_IPAddressChoice; -+ v3_addr_get_afi; -+ EVP_CIPHER_key_length; -+ EVP_Cipher; -+ i2d_IPAddressOrRange; -+ ASIdOrRange_it; -+ EVP_CIPHER_nid; -+ i2d_IPAddressChoice; -+ EVP_CIPHER_CTX_block_size; -+ ASIdentifiers_new; -+ v3_addr_validate_path; -+ IPAddressFamily_new; -+ EVP_MD_CTX_set_flags; -+ v3_addr_is_canonical; -+ i2d_IPAddressRange; -+ IPAddressFamily_it; -+ v3_asid_inherits; -+ EVP_CIPHER_CTX_cipher; -+ EVP_CIPHER_CTX_get_app_data; -+ EVP_MD_block_size; -+ EVP_CIPHER_CTX_flags; -+ v3_asid_validate_path; -+ d2i_IPAddressOrRange; -+ v3_addr_canonize; -+ ASIdentifierChoice_it; -+ EVP_MD_CTX_md; -+ d2i_ASIdentifierChoice; -+ BIO_method_name; -+ EVP_CIPHER_CTX_iv_length; -+ ASIdOrRange_free; -+ ASIdentifierChoice_free; -+ BIO_get_callback_arg; -+ BIO_set_callback; -+ d2i_ASIdOrRange; -+ i2d_ASIdentifiers; -+ SEED_decrypt; -+ SEED_encrypt; -+ SEED_cbc_encrypt; -+ EVP_seed_ofb; -+ SEED_cfb128_encrypt; -+ SEED_ofb128_encrypt; -+ EVP_seed_cbc; -+ SEED_ecb_encrypt; -+ EVP_seed_ecb; -+ SEED_set_key; -+ EVP_seed_cfb128; -+ X509_EXTENSIONS_it; -+ X509_get1_ocsp; -+ OCSP_REQ_CTX_free; -+ i2d_X509_EXTENSIONS; -+ OCSP_sendreq_nbio; -+ OCSP_sendreq_new; -+ d2i_X509_EXTENSIONS; -+ X509_ALGORS_it; -+ X509_ALGOR_get0; -+ X509_ALGOR_set0; -+ AES_unwrap_key; -+ AES_wrap_key; -+ X509at_get0_data_by_OBJ; -+ ASN1_TYPE_set1; -+ ASN1_STRING_set0; -+ i2d_X509_ALGORS; -+ BIO_f_zlib; -+ COMP_zlib_cleanup; -+ d2i_X509_ALGORS; -+ CMS_ReceiptRequest_free; -+ PEM_write_CMS; -+ CMS_add0_CertificateChoices; -+ CMS_unsigned_add1_attr_by_OBJ; -+ ERR_load_CMS_strings; -+ CMS_sign_receipt; -+ i2d_CMS_ContentInfo; -+ CMS_signed_delete_attr; -+ d2i_CMS_bio; -+ CMS_unsigned_get_attr_by_NID; -+ CMS_verify; -+ SMIME_read_CMS; -+ CMS_decrypt_set1_key; -+ CMS_SignerInfo_get0_algs; -+ CMS_add1_cert; -+ CMS_set_detached; -+ CMS_encrypt; -+ CMS_EnvelopedData_create; -+ CMS_uncompress; -+ CMS_add0_crl; -+ CMS_SignerInfo_verify_content; -+ CMS_unsigned_get0_data_by_OBJ; -+ PEM_write_bio_CMS; -+ CMS_unsigned_get_attr; -+ CMS_RecipientInfo_ktri_cert_cmp; -+ CMS_RecipientInfo_ktri_get0_algs; -+ CMS_RecipInfo_ktri_get0_algs; -+ CMS_ContentInfo_free; -+ CMS_final; -+ CMS_add_simple_smimecap; -+ CMS_SignerInfo_verify; -+ CMS_data; -+ CMS_ContentInfo_it; -+ d2i_CMS_ReceiptRequest; -+ CMS_compress; -+ CMS_digest_create; -+ CMS_SignerInfo_cert_cmp; -+ CMS_SignerInfo_sign; -+ CMS_data_create; -+ i2d_CMS_bio; -+ CMS_EncryptedData_set1_key; -+ CMS_decrypt; -+ int_smime_write_ASN1; -+ CMS_unsigned_delete_attr; -+ CMS_unsigned_get_attr_count; -+ CMS_add_smimecap; -+ PEM_read_CMS; -+ CMS_signed_get_attr_by_OBJ; -+ d2i_CMS_ContentInfo; -+ CMS_add_standard_smimecap; -+ CMS_ContentInfo_new; -+ CMS_RecipientInfo_type; -+ CMS_get0_type; -+ CMS_is_detached; -+ CMS_sign; -+ CMS_signed_add1_attr; -+ CMS_unsigned_get_attr_by_OBJ; -+ SMIME_write_CMS; -+ CMS_EncryptedData_decrypt; -+ CMS_get0_RecipientInfos; -+ CMS_add0_RevocationInfoChoice; -+ CMS_decrypt_set1_pkey; -+ CMS_SignerInfo_set1_signer_cert; -+ CMS_get0_signers; -+ CMS_ReceiptRequest_get0_values; -+ CMS_signed_get0_data_by_OBJ; -+ CMS_get0_SignerInfos; -+ CMS_add0_cert; -+ CMS_EncryptedData_encrypt; -+ CMS_digest_verify; -+ CMS_set1_signers_certs; -+ CMS_signed_get_attr; -+ CMS_RecipientInfo_set0_key; -+ CMS_SignedData_init; -+ CMS_RecipientInfo_kekri_get0_id; -+ CMS_verify_receipt; -+ CMS_ReceiptRequest_it; -+ PEM_read_bio_CMS; -+ CMS_get1_crls; -+ CMS_add0_recipient_key; -+ SMIME_read_ASN1; -+ CMS_ReceiptRequest_new; -+ CMS_get0_content; -+ CMS_get1_ReceiptRequest; -+ CMS_signed_add1_attr_by_OBJ; -+ CMS_RecipientInfo_kekri_id_cmp; -+ CMS_add1_ReceiptRequest; -+ CMS_SignerInfo_get0_signer_id; -+ CMS_unsigned_add1_attr_by_NID; -+ CMS_unsigned_add1_attr; -+ CMS_signed_get_attr_by_NID; -+ CMS_get1_certs; -+ CMS_signed_add1_attr_by_NID; -+ CMS_unsigned_add1_attr_by_txt; -+ CMS_dataFinal; -+ CMS_RecipientInfo_ktri_get0_signer_id; -+ CMS_RecipInfo_ktri_get0_sigr_id; -+ i2d_CMS_ReceiptRequest; -+ CMS_add1_recipient_cert; -+ CMS_dataInit; -+ CMS_signed_add1_attr_by_txt; -+ CMS_RecipientInfo_decrypt; -+ CMS_signed_get_attr_count; -+ CMS_get0_eContentType; -+ CMS_set1_eContentType; -+ CMS_ReceiptRequest_create0; -+ CMS_add1_signer; -+ CMS_RecipientInfo_set0_pkey; -+ ENGINE_set_load_ssl_client_cert_function; -+ ENGINE_set_ld_ssl_clnt_cert_fn; -+ ENGINE_get_ssl_client_cert_function; -+ ENGINE_get_ssl_client_cert_fn; -+ ENGINE_load_ssl_client_cert; -+ ENGINE_load_capi; -+ OPENSSL_isservice; -+ FIPS_dsa_sig_decode; -+ EVP_CIPHER_CTX_clear_flags; -+ FIPS_rand_status; -+ FIPS_rand_set_key; -+ CRYPTO_set_mem_info_functions; -+ RSA_X931_generate_key_ex; -+ int_ERR_set_state_func; -+ int_EVP_MD_set_engine_callbacks; -+ int_CRYPTO_set_do_dynlock_callback; -+ FIPS_rng_stick; -+ EVP_CIPHER_CTX_set_flags; -+ BN_X931_generate_prime_ex; -+ FIPS_selftest_check; -+ FIPS_rand_set_dt; -+ CRYPTO_dbg_pop_info; -+ FIPS_dsa_free; -+ RSA_X931_derive_ex; -+ FIPS_rsa_new; -+ FIPS_rand_bytes; -+ fips_cipher_test; -+ EVP_CIPHER_CTX_test_flags; -+ CRYPTO_malloc_debug_init; -+ CRYPTO_dbg_push_info; -+ FIPS_corrupt_rsa_keygen; -+ FIPS_dh_new; -+ FIPS_corrupt_dsa_keygen; -+ FIPS_dh_free; -+ fips_pkey_signature_test; -+ EVP_add_alg_module; -+ int_RAND_init_engine_callbacks; -+ int_EVP_CIPHER_set_engine_callbacks; -+ int_EVP_MD_init_engine_callbacks; -+ FIPS_rand_test_mode; -+ FIPS_rand_reset; -+ FIPS_dsa_new; -+ int_RAND_set_callbacks; -+ BN_X931_derive_prime_ex; -+ int_ERR_lib_init; -+ int_EVP_CIPHER_init_engine_callbacks; -+ FIPS_rsa_free; -+ FIPS_dsa_sig_encode; -+ CRYPTO_dbg_remove_all_info; -+ OPENSSL_init; -+ CRYPTO_strdup; -+ JPAKE_STEP3A_process; -+ JPAKE_STEP1_release; -+ JPAKE_get_shared_key; -+ JPAKE_STEP3B_init; -+ JPAKE_STEP1_generate; -+ JPAKE_STEP1_init; -+ JPAKE_STEP3B_process; -+ JPAKE_STEP2_generate; -+ JPAKE_CTX_new; -+ JPAKE_CTX_free; -+ JPAKE_STEP3B_release; -+ JPAKE_STEP3A_release; -+ JPAKE_STEP2_process; -+ JPAKE_STEP3B_generate; -+ JPAKE_STEP1_process; -+ JPAKE_STEP3A_generate; -+ JPAKE_STEP2_release; -+ JPAKE_STEP3A_init; -+ ERR_load_JPAKE_strings; -+ JPAKE_STEP2_init; -+ pqueue_size; -+ i2d_TS_ACCURACY; -+ i2d_TS_MSG_IMPRINT_fp; -+ i2d_TS_MSG_IMPRINT; -+ EVP_PKEY_print_public; -+ EVP_PKEY_CTX_new; -+ i2d_TS_TST_INFO; -+ EVP_PKEY_asn1_find; -+ DSO_METHOD_beos; -+ TS_CONF_load_cert; -+ TS_REQ_get_ext; -+ EVP_PKEY_sign_init; -+ ASN1_item_print; -+ TS_TST_INFO_set_nonce; -+ TS_RESP_dup; -+ ENGINE_register_pkey_meths; -+ EVP_PKEY_asn1_add0; -+ PKCS7_add0_attrib_signing_time; -+ i2d_TS_TST_INFO_fp; -+ BIO_asn1_get_prefix; -+ TS_TST_INFO_set_time; -+ EVP_PKEY_meth_set_decrypt; -+ EVP_PKEY_set_type_str; -+ EVP_PKEY_CTX_get_keygen_info; -+ TS_REQ_set_policy_id; -+ d2i_TS_RESP_fp; -+ ENGINE_get_pkey_asn1_meth_engine; -+ ENGINE_get_pkey_asn1_meth_eng; -+ WHIRLPOOL_Init; -+ TS_RESP_set_status_info; -+ EVP_PKEY_keygen; -+ EVP_DigestSignInit; -+ TS_ACCURACY_set_millis; -+ TS_REQ_dup; -+ GENERAL_NAME_dup; -+ ASN1_SEQUENCE_ANY_it; -+ WHIRLPOOL; -+ X509_STORE_get1_crls; -+ ENGINE_get_pkey_asn1_meth; -+ EVP_PKEY_asn1_new; -+ BIO_new_NDEF; -+ ENGINE_get_pkey_meth; -+ TS_MSG_IMPRINT_set_algo; -+ i2d_TS_TST_INFO_bio; -+ TS_TST_INFO_set_ordering; -+ TS_TST_INFO_get_ext_by_OBJ; -+ CRYPTO_THREADID_set_pointer; -+ TS_CONF_get_tsa_section; -+ SMIME_write_ASN1; -+ TS_RESP_CTX_set_signer_key; -+ EVP_PKEY_encrypt_old; -+ EVP_PKEY_encrypt_init; -+ CRYPTO_THREADID_cpy; -+ ASN1_PCTX_get_cert_flags; -+ i2d_ESS_SIGNING_CERT; -+ TS_CONF_load_key; -+ i2d_ASN1_SEQUENCE_ANY; -+ d2i_TS_MSG_IMPRINT_bio; -+ EVP_PKEY_asn1_set_public; -+ b2i_PublicKey_bio; -+ BIO_asn1_set_prefix; -+ EVP_PKEY_new_mac_key; -+ BIO_new_CMS; -+ CRYPTO_THREADID_cmp; -+ TS_REQ_ext_free; -+ EVP_PKEY_asn1_set_free; -+ EVP_PKEY_get0_asn1; -+ d2i_NETSCAPE_X509; -+ EVP_PKEY_verify_recover_init; -+ EVP_PKEY_CTX_set_data; -+ EVP_PKEY_keygen_init; -+ TS_RESP_CTX_set_status_info; -+ TS_MSG_IMPRINT_get_algo; -+ TS_REQ_print_bio; -+ EVP_PKEY_CTX_ctrl_str; -+ EVP_PKEY_get_default_digest_nid; -+ PEM_write_bio_PKCS7_stream; -+ TS_MSG_IMPRINT_print_bio; -+ BN_asc2bn; -+ TS_REQ_get_policy_id; -+ ENGINE_set_default_pkey_asn1_meths; -+ ENGINE_set_def_pkey_asn1_meths; -+ d2i_TS_ACCURACY; -+ DSO_global_lookup; -+ TS_CONF_set_tsa_name; -+ i2d_ASN1_SET_ANY; -+ ENGINE_load_gost; -+ WHIRLPOOL_BitUpdate; -+ ASN1_PCTX_get_flags; -+ TS_TST_INFO_get_ext_by_NID; -+ TS_RESP_new; -+ ESS_CERT_ID_dup; -+ TS_STATUS_INFO_dup; -+ TS_REQ_delete_ext; -+ EVP_DigestVerifyFinal; -+ EVP_PKEY_print_params; -+ i2d_CMS_bio_stream; -+ TS_REQ_get_msg_imprint; -+ OBJ_find_sigid_by_algs; -+ TS_TST_INFO_get_serial; -+ TS_REQ_get_nonce; -+ X509_PUBKEY_set0_param; -+ EVP_PKEY_CTX_set0_keygen_info; -+ DIST_POINT_set_dpname; -+ i2d_ISSUING_DIST_POINT; -+ ASN1_SET_ANY_it; -+ EVP_PKEY_CTX_get_data; -+ TS_STATUS_INFO_print_bio; -+ EVP_PKEY_derive_init; -+ d2i_TS_TST_INFO; -+ EVP_PKEY_asn1_add_alias; -+ d2i_TS_RESP_bio; -+ OTHERNAME_cmp; -+ GENERAL_NAME_set0_value; -+ PKCS7_RECIP_INFO_get0_alg; -+ TS_RESP_CTX_new; -+ TS_RESP_set_tst_info; -+ PKCS7_final; -+ EVP_PKEY_base_id; -+ TS_RESP_CTX_set_signer_cert; -+ TS_REQ_set_msg_imprint; -+ EVP_PKEY_CTX_ctrl; -+ TS_CONF_set_digests; -+ d2i_TS_MSG_IMPRINT; -+ EVP_PKEY_meth_set_ctrl; -+ TS_REQ_get_ext_by_NID; -+ PKCS5_pbe_set0_algor; -+ BN_BLINDING_thread_id; -+ TS_ACCURACY_new; -+ X509_CRL_METHOD_free; -+ ASN1_PCTX_get_nm_flags; -+ EVP_PKEY_meth_set_sign; -+ CRYPTO_THREADID_current; -+ EVP_PKEY_decrypt_init; -+ NETSCAPE_X509_free; -+ i2b_PVK_bio; -+ EVP_PKEY_print_private; -+ GENERAL_NAME_get0_value; -+ b2i_PVK_bio; -+ ASN1_UTCTIME_adj; -+ TS_TST_INFO_new; -+ EVP_MD_do_all_sorted; -+ TS_CONF_set_default_engine; -+ TS_ACCURACY_set_seconds; -+ TS_TST_INFO_get_time; -+ PKCS8_pkey_get0; -+ EVP_PKEY_asn1_get0; -+ OBJ_add_sigid; -+ PKCS7_SIGNER_INFO_sign; -+ EVP_PKEY_paramgen_init; -+ EVP_PKEY_sign; -+ OBJ_sigid_free; -+ EVP_PKEY_meth_set_init; -+ d2i_ESS_ISSUER_SERIAL; -+ ISSUING_DIST_POINT_new; -+ ASN1_TIME_adj; -+ TS_OBJ_print_bio; -+ EVP_PKEY_meth_set_verify_recover; -+ EVP_PKEY_meth_set_vrfy_recover; -+ TS_RESP_get_status_info; -+ CMS_stream; -+ EVP_PKEY_CTX_set_cb; -+ PKCS7_to_TS_TST_INFO; -+ ASN1_PCTX_get_oid_flags; -+ TS_TST_INFO_add_ext; -+ EVP_PKEY_meth_set_derive; -+ i2d_TS_RESP_fp; -+ i2d_TS_MSG_IMPRINT_bio; -+ TS_RESP_CTX_set_accuracy; -+ TS_REQ_set_nonce; -+ ESS_CERT_ID_new; -+ ENGINE_pkey_asn1_find_str; -+ TS_REQ_get_ext_count; -+ BUF_reverse; -+ TS_TST_INFO_print_bio; -+ d2i_ISSUING_DIST_POINT; -+ ENGINE_get_pkey_meths; -+ i2b_PrivateKey_bio; -+ i2d_TS_RESP; -+ b2i_PublicKey; -+ TS_VERIFY_CTX_cleanup; -+ TS_STATUS_INFO_free; -+ TS_RESP_verify_token; -+ OBJ_bsearch_ex_; -+ ASN1_bn_print; -+ EVP_PKEY_asn1_get_count; -+ ENGINE_register_pkey_asn1_meths; -+ ASN1_PCTX_set_nm_flags; -+ EVP_DigestVerifyInit; -+ ENGINE_set_default_pkey_meths; -+ TS_TST_INFO_get_policy_id; -+ TS_REQ_get_cert_req; -+ X509_CRL_set_meth_data; -+ PKCS8_pkey_set0; -+ ASN1_STRING_copy; -+ d2i_TS_TST_INFO_fp; -+ X509_CRL_match; -+ EVP_PKEY_asn1_set_private; -+ TS_TST_INFO_get_ext_d2i; -+ TS_RESP_CTX_add_policy; -+ d2i_TS_RESP; -+ TS_CONF_load_certs; -+ TS_TST_INFO_get_msg_imprint; -+ ERR_load_TS_strings; -+ TS_TST_INFO_get_version; -+ EVP_PKEY_CTX_dup; -+ EVP_PKEY_meth_set_verify; -+ i2b_PublicKey_bio; -+ TS_CONF_set_certs; -+ EVP_PKEY_asn1_get0_info; -+ TS_VERIFY_CTX_free; -+ TS_REQ_get_ext_by_critical; -+ TS_RESP_CTX_set_serial_cb; -+ X509_CRL_get_meth_data; -+ TS_RESP_CTX_set_time_cb; -+ TS_MSG_IMPRINT_get_msg; -+ TS_TST_INFO_ext_free; -+ TS_REQ_get_version; -+ TS_REQ_add_ext; -+ EVP_PKEY_CTX_set_app_data; -+ OBJ_bsearch_; -+ EVP_PKEY_meth_set_verifyctx; -+ i2d_PKCS7_bio_stream; -+ CRYPTO_THREADID_set_numeric; -+ PKCS7_sign_add_signer; -+ d2i_TS_TST_INFO_bio; -+ TS_TST_INFO_get_ordering; -+ TS_RESP_print_bio; -+ TS_TST_INFO_get_exts; -+ HMAC_CTX_copy; -+ PKCS5_pbe2_set_iv; -+ ENGINE_get_pkey_asn1_meths; -+ b2i_PrivateKey; -+ EVP_PKEY_CTX_get_app_data; -+ TS_REQ_set_cert_req; -+ CRYPTO_THREADID_set_callback; -+ TS_CONF_set_serial; -+ TS_TST_INFO_free; -+ d2i_TS_REQ_fp; -+ TS_RESP_verify_response; -+ i2d_ESS_ISSUER_SERIAL; -+ TS_ACCURACY_get_seconds; -+ EVP_CIPHER_do_all; -+ b2i_PrivateKey_bio; -+ OCSP_CERTID_dup; -+ X509_PUBKEY_get0_param; -+ TS_MSG_IMPRINT_dup; -+ PKCS7_print_ctx; -+ i2d_TS_REQ_bio; -+ EVP_whirlpool; -+ EVP_PKEY_asn1_set_param; -+ EVP_PKEY_meth_set_encrypt; -+ ASN1_PCTX_set_flags; -+ i2d_ESS_CERT_ID; -+ TS_VERIFY_CTX_new; -+ TS_RESP_CTX_set_extension_cb; -+ ENGINE_register_all_pkey_meths; -+ TS_RESP_CTX_set_status_info_cond; -+ TS_RESP_CTX_set_stat_info_cond; -+ EVP_PKEY_verify; -+ WHIRLPOOL_Final; -+ X509_CRL_METHOD_new; -+ EVP_DigestSignFinal; -+ TS_RESP_CTX_set_def_policy; -+ NETSCAPE_X509_it; -+ TS_RESP_create_response; -+ PKCS7_SIGNER_INFO_get0_algs; -+ TS_TST_INFO_get_nonce; -+ EVP_PKEY_decrypt_old; -+ TS_TST_INFO_set_policy_id; -+ TS_CONF_set_ess_cert_id_chain; -+ EVP_PKEY_CTX_get0_pkey; -+ d2i_TS_REQ; -+ EVP_PKEY_asn1_find_str; -+ BIO_f_asn1; -+ ESS_SIGNING_CERT_new; -+ EVP_PBE_find; -+ X509_CRL_get0_by_cert; -+ EVP_PKEY_derive; -+ i2d_TS_REQ; -+ TS_TST_INFO_delete_ext; -+ ESS_ISSUER_SERIAL_free; -+ ASN1_PCTX_set_str_flags; -+ ENGINE_get_pkey_asn1_meth_str; -+ TS_CONF_set_signer_key; -+ TS_ACCURACY_get_millis; -+ TS_RESP_get_token; -+ TS_ACCURACY_dup; -+ ENGINE_register_all_pkey_asn1_meths; -+ ENGINE_reg_all_pkey_asn1_meths; -+ X509_CRL_set_default_method; -+ CRYPTO_THREADID_hash; -+ CMS_ContentInfo_print_ctx; -+ TS_RESP_free; -+ ISSUING_DIST_POINT_free; -+ ESS_ISSUER_SERIAL_new; -+ CMS_add1_crl; -+ PKCS7_add1_attrib_digest; -+ TS_RESP_CTX_add_md; -+ TS_TST_INFO_dup; -+ ENGINE_set_pkey_asn1_meths; -+ PEM_write_bio_Parameters; -+ TS_TST_INFO_get_accuracy; -+ X509_CRL_get0_by_serial; -+ TS_TST_INFO_set_version; -+ TS_RESP_CTX_get_tst_info; -+ TS_RESP_verify_signature; -+ CRYPTO_THREADID_get_callback; -+ TS_TST_INFO_get_tsa; -+ TS_STATUS_INFO_new; -+ EVP_PKEY_CTX_get_cb; -+ TS_REQ_get_ext_d2i; -+ GENERAL_NAME_set0_othername; -+ TS_TST_INFO_get_ext_count; -+ TS_RESP_CTX_get_request; -+ i2d_NETSCAPE_X509; -+ ENGINE_get_pkey_meth_engine; -+ EVP_PKEY_meth_set_signctx; -+ EVP_PKEY_asn1_copy; -+ ASN1_TYPE_cmp; -+ EVP_CIPHER_do_all_sorted; -+ EVP_PKEY_CTX_free; -+ ISSUING_DIST_POINT_it; -+ d2i_TS_MSG_IMPRINT_fp; -+ X509_STORE_get1_certs; -+ EVP_PKEY_CTX_get_operation; -+ d2i_ESS_SIGNING_CERT; -+ TS_CONF_set_ordering; -+ EVP_PBE_alg_add_type; -+ TS_REQ_set_version; -+ EVP_PKEY_get0; -+ BIO_asn1_set_suffix; -+ i2d_TS_STATUS_INFO; -+ EVP_MD_do_all; -+ TS_TST_INFO_set_accuracy; -+ PKCS7_add_attrib_content_type; -+ ERR_remove_thread_state; -+ EVP_PKEY_meth_add0; -+ TS_TST_INFO_set_tsa; -+ EVP_PKEY_meth_new; -+ WHIRLPOOL_Update; -+ TS_CONF_set_accuracy; -+ ASN1_PCTX_set_oid_flags; -+ ESS_SIGNING_CERT_dup; -+ d2i_TS_REQ_bio; -+ X509_time_adj_ex; -+ TS_RESP_CTX_add_flags; -+ d2i_TS_STATUS_INFO; -+ TS_MSG_IMPRINT_set_msg; -+ BIO_asn1_get_suffix; -+ TS_REQ_free; -+ EVP_PKEY_meth_free; -+ TS_REQ_get_exts; -+ TS_RESP_CTX_set_clock_precision_digits; -+ TS_RESP_CTX_set_clk_prec_digits; -+ TS_RESP_CTX_add_failure_info; -+ i2d_TS_RESP_bio; -+ EVP_PKEY_CTX_get0_peerkey; -+ PEM_write_bio_CMS_stream; -+ TS_REQ_new; -+ TS_MSG_IMPRINT_new; -+ EVP_PKEY_meth_find; -+ EVP_PKEY_id; -+ TS_TST_INFO_set_serial; -+ a2i_GENERAL_NAME; -+ TS_CONF_set_crypto_device; -+ EVP_PKEY_verify_init; -+ TS_CONF_set_policies; -+ ASN1_PCTX_new; -+ ESS_CERT_ID_free; -+ ENGINE_unregister_pkey_meths; -+ TS_MSG_IMPRINT_free; -+ TS_VERIFY_CTX_init; -+ PKCS7_stream; -+ TS_RESP_CTX_set_certs; -+ TS_CONF_set_def_policy; -+ ASN1_GENERALIZEDTIME_adj; -+ NETSCAPE_X509_new; -+ TS_ACCURACY_free; -+ TS_RESP_get_tst_info; -+ EVP_PKEY_derive_set_peer; -+ PEM_read_bio_Parameters; -+ TS_CONF_set_clock_precision_digits; -+ TS_CONF_set_clk_prec_digits; -+ ESS_ISSUER_SERIAL_dup; -+ TS_ACCURACY_get_micros; -+ ASN1_PCTX_get_str_flags; -+ NAME_CONSTRAINTS_check; -+ ASN1_BIT_STRING_check; -+ X509_check_akid; -+ ENGINE_unregister_pkey_asn1_meths; -+ ENGINE_unreg_pkey_asn1_meths; -+ ASN1_PCTX_free; -+ PEM_write_bio_ASN1_stream; -+ i2d_ASN1_bio_stream; -+ TS_X509_ALGOR_print_bio; -+ EVP_PKEY_meth_set_cleanup; -+ EVP_PKEY_asn1_free; -+ ESS_SIGNING_CERT_free; -+ TS_TST_INFO_set_msg_imprint; -+ GENERAL_NAME_cmp; -+ d2i_ASN1_SET_ANY; -+ ENGINE_set_pkey_meths; -+ i2d_TS_REQ_fp; -+ d2i_ASN1_SEQUENCE_ANY; -+ GENERAL_NAME_get0_otherName; -+ d2i_ESS_CERT_ID; -+ OBJ_find_sigid_algs; -+ EVP_PKEY_meth_set_keygen; -+ PKCS5_PBKDF2_HMAC; -+ EVP_PKEY_paramgen; -+ EVP_PKEY_meth_set_paramgen; -+ BIO_new_PKCS7; -+ EVP_PKEY_verify_recover; -+ TS_ext_print_bio; -+ TS_ASN1_INTEGER_print_bio; -+ check_defer; -+ DSO_pathbyaddr; -+ EVP_PKEY_set_type; -+ TS_ACCURACY_set_micros; -+ TS_REQ_to_TS_VERIFY_CTX; -+ EVP_PKEY_meth_set_copy; -+ ASN1_PCTX_set_cert_flags; -+ TS_TST_INFO_get_ext; -+ EVP_PKEY_asn1_set_ctrl; -+ TS_TST_INFO_get_ext_by_critical; -+ EVP_PKEY_CTX_new_id; -+ TS_REQ_get_ext_by_OBJ; -+ TS_CONF_set_signer_cert; -+ X509_NAME_hash_old; -+ ASN1_TIME_set_string; -+ EVP_MD_flags; -+ TS_RESP_CTX_free; -+ DSAparams_dup; -+ DHparams_dup; -+ OCSP_REQ_CTX_add1_header; -+ OCSP_REQ_CTX_set1_req; -+ X509_STORE_set_verify_cb; -+ X509_STORE_CTX_get0_current_crl; -+ X509_STORE_CTX_get0_parent_ctx; -+ X509_STORE_CTX_get0_current_issuer; -+ X509_STORE_CTX_get0_cur_issuer; -+ X509_issuer_name_hash_old; -+ X509_subject_name_hash_old; -+ EVP_CIPHER_CTX_copy; -+ UI_method_get_prompt_constructor; -+ UI_method_get_prompt_constructr; -+ UI_method_set_prompt_constructor; -+ UI_method_set_prompt_constructr; -+ EVP_read_pw_string_min; -+ CRYPTO_cts128_encrypt; -+ CRYPTO_cts128_decrypt_block; -+ CRYPTO_cfb128_1_encrypt; -+ CRYPTO_cbc128_encrypt; -+ CRYPTO_ctr128_encrypt; -+ CRYPTO_ofb128_encrypt; -+ CRYPTO_cts128_decrypt; -+ CRYPTO_cts128_encrypt_block; -+ CRYPTO_cbc128_decrypt; -+ CRYPTO_cfb128_encrypt; -+ CRYPTO_cfb128_8_encrypt; -+ SSL_renegotiate_abbreviated; -+ TLSv1_1_method; -+ TLSv1_1_client_method; -+ TLSv1_1_server_method; -+ SSL_CTX_set_srp_client_pwd_callback; -+ SSL_CTX_set_srp_client_pwd_cb; -+ SSL_get_srp_g; -+ SSL_CTX_set_srp_username_callback; -+ SSL_CTX_set_srp_un_cb; -+ SSL_get_srp_userinfo; -+ SSL_set_srp_server_param; -+ SSL_set_srp_server_param_pw; -+ SSL_get_srp_N; -+ SSL_get_srp_username; -+ SSL_CTX_set_srp_password; -+ SSL_CTX_set_srp_strength; -+ SSL_CTX_set_srp_verify_param_callback; -+ SSL_CTX_set_srp_vfy_param_cb; -+ SSL_CTX_set_srp_cb_arg; -+ SSL_CTX_set_srp_username; -+ SSL_CTX_SRP_CTX_init; -+ SSL_SRP_CTX_init; -+ SRP_Calc_A_param; -+ SRP_generate_server_master_secret; -+ SRP_gen_server_master_secret; -+ SSL_CTX_SRP_CTX_free; -+ SRP_generate_client_master_secret; -+ SRP_gen_client_master_secret; -+ SSL_srp_server_param_with_username; -+ SSL_srp_server_param_with_un; -+ SSL_SRP_CTX_free; -+ SSL_set_debug; -+ SSL_SESSION_get0_peer; -+ TLSv1_2_client_method; -+ SSL_SESSION_set1_id_context; -+ TLSv1_2_server_method; -+ SSL_cache_hit; -+ SSL_get0_kssl_ctx; -+ SSL_set0_kssl_ctx; -+ SSL_set_state; -+ SSL_CIPHER_get_id; -+ TLSv1_2_method; -+ kssl_ctx_get0_client_princ; -+ SSL_export_keying_material; -+ SSL_set_tlsext_use_srtp; -+ SSL_CTX_set_next_protos_advertised_cb; -+ SSL_CTX_set_next_protos_adv_cb; -+ SSL_get0_next_proto_negotiated; -+ SSL_get_selected_srtp_profile; -+ SSL_CTX_set_tlsext_use_srtp; -+ SSL_select_next_proto; -+ SSL_get_srtp_profiles; -+ SSL_CTX_set_next_proto_select_cb; -+ SSL_CTX_set_next_proto_sel_cb; -+ SSL_SESSION_get_compress_id; -+ -+ SRP_VBASE_get_by_user; -+ SRP_Calc_server_key; -+ SRP_create_verifier; -+ SRP_create_verifier_BN; -+ SRP_Calc_u; -+ SRP_VBASE_free; -+ SRP_Calc_client_key; -+ SRP_get_default_gN; -+ SRP_Calc_x; -+ SRP_Calc_B; -+ SRP_VBASE_new; -+ SRP_check_known_gN_param; -+ SRP_Calc_A; -+ SRP_Verify_A_mod_N; -+ SRP_VBASE_init; -+ SRP_Verify_B_mod_N; -+ EC_KEY_set_public_key_affine_coordinates; -+ EC_KEY_set_pub_key_aff_coords; -+ EVP_aes_192_ctr; -+ EVP_PKEY_meth_get0_info; -+ EVP_PKEY_meth_copy; -+ ERR_add_error_vdata; -+ EVP_aes_128_ctr; -+ EVP_aes_256_ctr; -+ EC_GFp_nistp224_method; -+ EC_KEY_get_flags; -+ RSA_padding_add_PKCS1_PSS_mgf1; -+ EVP_aes_128_xts; -+ EVP_aes_256_xts; -+ EVP_aes_128_gcm; -+ EC_KEY_clear_flags; -+ EC_KEY_set_flags; -+ EVP_aes_256_ccm; -+ RSA_verify_PKCS1_PSS_mgf1; -+ EVP_aes_128_ccm; -+ EVP_aes_192_gcm; -+ X509_ALGOR_set_md; -+ RAND_init_fips; -+ EVP_aes_256_gcm; -+ EVP_aes_192_ccm; -+ CMAC_CTX_copy; -+ CMAC_CTX_free; -+ CMAC_CTX_get0_cipher_ctx; -+ CMAC_CTX_cleanup; -+ CMAC_Init; -+ CMAC_Update; -+ CMAC_resume; -+ CMAC_CTX_new; -+ CMAC_Final; -+ CRYPTO_ctr128_encrypt_ctr32; -+ CRYPTO_gcm128_release; -+ CRYPTO_ccm128_decrypt_ccm64; -+ CRYPTO_ccm128_encrypt; -+ CRYPTO_gcm128_encrypt; -+ CRYPTO_xts128_encrypt; -+ EVP_rc4_hmac_md5; -+ CRYPTO_nistcts128_decrypt_block; -+ CRYPTO_gcm128_setiv; -+ CRYPTO_nistcts128_encrypt; -+ EVP_aes_128_cbc_hmac_sha1; -+ CRYPTO_gcm128_tag; -+ CRYPTO_ccm128_encrypt_ccm64; -+ ENGINE_load_rdrand; -+ CRYPTO_ccm128_setiv; -+ CRYPTO_nistcts128_encrypt_block; -+ CRYPTO_gcm128_aad; -+ CRYPTO_ccm128_init; -+ CRYPTO_nistcts128_decrypt; -+ CRYPTO_gcm128_new; -+ CRYPTO_ccm128_tag; -+ CRYPTO_ccm128_decrypt; -+ CRYPTO_ccm128_aad; -+ CRYPTO_gcm128_init; -+ CRYPTO_gcm128_decrypt; -+ ENGINE_load_rsax; -+ CRYPTO_gcm128_decrypt_ctr32; -+ CRYPTO_gcm128_encrypt_ctr32; -+ CRYPTO_gcm128_finish; -+ EVP_aes_256_cbc_hmac_sha1; -+ PKCS5_pbkdf2_set; -+ CMS_add0_recipient_password; -+ CMS_decrypt_set1_password; -+ CMS_RecipientInfo_set0_password; -+ RAND_set_fips_drbg_type; -+ X509_REQ_sign_ctx; -+ RSA_PSS_PARAMS_new; -+ X509_CRL_sign_ctx; -+ X509_signature_dump; -+ d2i_RSA_PSS_PARAMS; -+ RSA_PSS_PARAMS_it; -+ RSA_PSS_PARAMS_free; -+ X509_sign_ctx; -+ i2d_RSA_PSS_PARAMS; -+ ASN1_item_sign_ctx; -+ EC_GFp_nistp521_method; -+ EC_GFp_nistp256_method; -+ OPENSSL_stderr; -+ OPENSSL_cpuid_setup; -+ OPENSSL_showfatal; -+ BIO_new_dgram_sctp; -+ BIO_dgram_sctp_msg_waiting; -+ BIO_dgram_sctp_wait_for_dry; -+ BIO_s_datagram_sctp; -+ BIO_dgram_is_sctp; -+ BIO_dgram_sctp_notification_cb; -+ CRYPTO_memcmp; -+ SSL_CTX_set_alpn_protos; -+ SSL_set_alpn_protos; -+ SSL_CTX_set_alpn_select_cb; -+ SSL_get0_alpn_selected; -+ SSL_CTX_set_custom_cli_ext; -+ SSL_CTX_set_custom_srv_ext; -+ SSL_CTX_set_srv_supp_data; -+ SSL_CTX_set_cli_supp_data; -+ SSL_set_cert_cb; -+ SSL_CTX_use_serverinfo; -+ SSL_CTX_use_serverinfo_file; -+ SSL_CTX_set_cert_cb; -+ SSL_CTX_get0_param; -+ SSL_get0_param; -+ SSL_certs_clear; -+ DTLSv1_2_method; -+ DTLSv1_2_server_method; -+ DTLSv1_2_client_method; -+ DTLS_method; -+ DTLS_server_method; -+ DTLS_client_method; -+ SSL_CTX_get_ssl_method; -+ SSL_CTX_get0_certificate; -+ SSL_CTX_get0_privatekey; -+ SSL_COMP_set0_compression_methods; -+ SSL_COMP_free_compression_methods; -+ SSL_CIPHER_find; -+ SSL_is_server; -+ SSL_CONF_CTX_new; -+ SSL_CONF_CTX_finish; -+ SSL_CONF_CTX_free; -+ SSL_CONF_CTX_set_flags; -+ SSL_CONF_CTX_clear_flags; -+ SSL_CONF_CTX_set1_prefix; -+ SSL_CONF_CTX_set_ssl; -+ SSL_CONF_CTX_set_ssl_ctx; -+ SSL_CONF_cmd; -+ SSL_CONF_cmd_argv; -+ SSL_CONF_cmd_value_type; -+ SSL_trace; -+ SSL_CIPHER_standard_name; -+ SSL_get_tlsa_record_byname; -+ ASN1_TIME_diff; -+ BIO_hex_string; -+ CMS_RecipientInfo_get0_pkey_ctx; -+ CMS_RecipientInfo_encrypt; -+ CMS_SignerInfo_get0_pkey_ctx; -+ CMS_SignerInfo_get0_md_ctx; -+ CMS_SignerInfo_get0_signature; -+ CMS_RecipientInfo_kari_get0_alg; -+ CMS_RecipientInfo_kari_get0_reks; -+ CMS_RecipientInfo_kari_get0_orig_id; -+ CMS_RecipientInfo_kari_orig_id_cmp; -+ CMS_RecipientEncryptedKey_get0_id; -+ CMS_RecipientEncryptedKey_cert_cmp; -+ CMS_RecipientInfo_kari_set0_pkey; -+ CMS_RecipientInfo_kari_get0_ctx; -+ CMS_RecipientInfo_kari_decrypt; -+ CMS_SharedInfo_encode; -+ DH_compute_key_padded; -+ d2i_DHxparams; -+ i2d_DHxparams; -+ DH_get_1024_160; -+ DH_get_2048_224; -+ DH_get_2048_256; -+ DH_KDF_X9_42; -+ ECDH_KDF_X9_62; -+ ECDSA_METHOD_new; -+ ECDSA_METHOD_free; -+ ECDSA_METHOD_set_app_data; -+ ECDSA_METHOD_get_app_data; -+ ECDSA_METHOD_set_sign; -+ ECDSA_METHOD_set_sign_setup; -+ ECDSA_METHOD_set_verify; -+ ECDSA_METHOD_set_flags; -+ ECDSA_METHOD_set_name; -+ EVP_des_ede3_wrap; -+ EVP_aes_128_wrap; -+ EVP_aes_192_wrap; -+ EVP_aes_256_wrap; -+ EVP_aes_128_cbc_hmac_sha256; -+ EVP_aes_256_cbc_hmac_sha256; -+ CRYPTO_128_wrap; -+ CRYPTO_128_unwrap; -+ OCSP_REQ_CTX_nbio; -+ OCSP_REQ_CTX_new; -+ OCSP_set_max_response_length; -+ OCSP_REQ_CTX_i2d; -+ OCSP_REQ_CTX_nbio_d2i; -+ OCSP_REQ_CTX_get0_mem_bio; -+ OCSP_REQ_CTX_http; -+ RSA_padding_add_PKCS1_OAEP_mgf1; -+ RSA_padding_check_PKCS1_OAEP_mgf1; -+ RSA_OAEP_PARAMS_free; -+ RSA_OAEP_PARAMS_it; -+ RSA_OAEP_PARAMS_new; -+ SSL_get_sigalgs; -+ SSL_get_shared_sigalgs; -+ SSL_check_chain; -+ X509_chain_up_ref; -+ X509_http_nbio; -+ X509_CRL_http_nbio; -+ X509_REVOKED_dup; -+ i2d_re_X509_tbs; -+ X509_get0_signature; -+ X509_get_signature_nid; -+ X509_CRL_diff; -+ X509_chain_check_suiteb; -+ X509_CRL_check_suiteb; -+ X509_check_host; -+ X509_check_email; -+ X509_check_ip; -+ X509_check_ip_asc; -+ X509_STORE_set_lookup_crls_cb; -+ X509_STORE_CTX_get0_store; -+ X509_VERIFY_PARAM_set1_host; -+ X509_VERIFY_PARAM_add1_host; -+ X509_VERIFY_PARAM_set_hostflags; -+ X509_VERIFY_PARAM_get0_peername; -+ X509_VERIFY_PARAM_set1_email; -+ X509_VERIFY_PARAM_set1_ip; -+ X509_VERIFY_PARAM_set1_ip_asc; -+ X509_VERIFY_PARAM_get0_name; -+ X509_VERIFY_PARAM_get_count; -+ X509_VERIFY_PARAM_get0; -+ X509V3_EXT_free; -+ EC_GROUP_get_mont_data; -+ EC_curve_nid2nist; -+ EC_curve_nist2nid; -+ PEM_write_bio_DHxparams; -+ PEM_write_DHxparams; -+ SSL_CTX_add_client_custom_ext; -+ SSL_CTX_add_server_custom_ext; -+ SSL_extension_supported; -+ BUF_strnlen; -+ sk_deep_copy; -+ SSL_test_functions; -+ -+ local: -+ *; -+}; -+ -+OPENSSL_1.0.2g { -+ global: -+ SRP_VBASE_get1_by_user; -+ SRP_user_pwd_free; -+} OPENSSL_1.0.2d; -+ -Index: openssl-1.0.2~beta1.obsolete.0.0498436515490575/engines/openssl.ld -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ openssl-1.0.2~beta1.obsolete.0.0498436515490575/engines/openssl.ld 2014-02-24 21:02:30.000000000 +0100 -@@ -0,0 +1,10 @@ -+OPENSSL_1.0.2 { -+ global: -+ bind_engine; -+ v_check; -+ OPENSSL_init; -+ OPENSSL_finish; -+ local: -+ *; -+}; -+ -Index: openssl-1.0.2~beta1.obsolete.0.0498436515490575/engines/ccgost/openssl.ld -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ openssl-1.0.2~beta1.obsolete.0.0498436515490575/engines/ccgost/openssl.ld 2014-02-24 21:02:30.000000000 +0100 -@@ -0,0 +1,10 @@ -+OPENSSL_1.0.2 { -+ global: -+ bind_engine; -+ v_check; -+ OPENSSL_init; -+ OPENSSL_finish; -+ local: -+ *; -+}; -+ diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/engines-install-in-libdir-ssl.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/engines-install-in-libdir-ssl.patch deleted file mode 100755 index a5746483e..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/engines-install-in-libdir-ssl.patch +++ /dev/null @@ -1,64 +0,0 @@ -Upstream-Status: Inappropriate [configuration] - - -Index: openssl-1.0.2/engines/Makefile -=================================================================== ---- openssl-1.0.2.orig/engines/Makefile -+++ openssl-1.0.2/engines/Makefile -@@ -107,13 +107,13 @@ install: - @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile... - @if [ -n "$(SHARED_LIBS)" ]; then \ - set -e; \ -- $(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines; \ -+ $(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines; \ - for l in $(LIBNAMES); do \ - ( echo installing $$l; \ - pfx=lib; \ - if expr "$(PLATFORM)" : "Cygwin" >/dev/null; then \ - sfx=".so"; \ -- cp cyg$$l.dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \ -+ cp cyg$$l.dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$$pfx$$l$$sfx.new; \ - else \ - case "$(CFLAGS)" in \ - *DSO_BEOS*) sfx=".so";; \ -@@ -122,10 +122,10 @@ install: - *DSO_WIN32*) sfx="eay32.dll"; pfx=;; \ - *) sfx=".bad";; \ - esac; \ -- cp $$pfx$$l$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \ -+ cp $$pfx$$l$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$$pfx$$l$$sfx.new; \ - fi; \ -- chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \ -- mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx ); \ -+ chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$$pfx$$l$$sfx.new; \ -+ mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$$pfx$$l$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$$pfx$$l$$sfx ); \ - done; \ - fi - @target=install; $(RECURSIVE_MAKE) -Index: openssl-1.0.2/engines/ccgost/Makefile -=================================================================== ---- openssl-1.0.2.orig/engines/ccgost/Makefile -+++ openssl-1.0.2/engines/ccgost/Makefile -@@ -47,7 +47,7 @@ install: - pfx=lib; \ - if expr "$(PLATFORM)" : "Cygwin" >/dev/null; then \ - sfx=".so"; \ -- cp cyg$(LIBNAME).dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new; \ -+ cp cyg$(LIBNAME).dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$${pfx}$(LIBNAME)$$sfx.new; \ - else \ - case "$(CFLAGS)" in \ - *DSO_BEOS*) sfx=".so";; \ -@@ -56,10 +56,10 @@ install: - *DSO_WIN32*) sfx="eay32.dll"; pfx=;; \ - *) sfx=".bad";; \ - esac; \ -- cp $${pfx}$(LIBNAME)$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new; \ -+ cp $${pfx}$(LIBNAME)$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$${pfx}$(LIBNAME)$$sfx.new; \ - fi; \ -- chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new; \ -- mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx; \ -+ chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$${pfx}$(LIBNAME)$$sfx.new; \ -+ mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$${pfx}$(LIBNAME)$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$${pfx}$(LIBNAME)$$sfx; \ - fi - - links: diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/find.pl b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/find.pl deleted file mode 100755 index 8e1b42c88..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/find.pl +++ /dev/null @@ -1,54 +0,0 @@ -warn "Legacy library @{[(caller(0))[6]]} will be removed from the Perl core distribution in the next major release. Please install it from the CPAN distribution Perl4::CoreLibs. It is being used at @{[(caller)[1]]}, line @{[(caller)[2]]}.\n"; - -# This library is deprecated and unmaintained. It is included for -# compatibility with Perl 4 scripts which may use it, but it will be -# removed in a future version of Perl. Please use the File::Find module -# instead. - -# Usage: -# require "find.pl"; -# -# &find('/foo','/bar'); -# -# sub wanted { ... } -# where wanted does whatever you want. $dir contains the -# current directory name, and $_ the current filename within -# that directory. $name contains "$dir/$_". You are cd'ed -# to $dir when the function is called. The function may -# set $prune to prune the tree. -# -# For example, -# -# find / -name .nfs\* -mtime +7 -exec rm -f {} \; -o -fstype nfs -prune -# -# corresponds to this -# -# sub wanted { -# /^\.nfs.*$/ && -# (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_)) && -# int(-M _) > 7 && -# unlink($_) -# || -# ($nlink || (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_))) && -# $dev < 0 && -# ($prune = 1); -# } -# -# Set the variable $dont_use_nlink if you're using AFS, since AFS cheats. - -use File::Find (); - -*name = *File::Find::name; -*prune = *File::Find::prune; -*dir = *File::Find::dir; -*topdir = *File::Find::topdir; -*topdev = *File::Find::topdev; -*topino = *File::Find::topino; -*topmode = *File::Find::topmode; -*topnlink = *File::Find::topnlink; - -sub find { - &File::Find::find(\&wanted, @_); -} - -1; diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/fix-cipher-des-ede3-cfb1.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/fix-cipher-des-ede3-cfb1.patch deleted file mode 100755 index 2a318a458..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/fix-cipher-des-ede3-cfb1.patch +++ /dev/null @@ -1,21 +0,0 @@ -Upstream-Status: Submitted - -This patch adds the fix for one of the ciphers used in openssl, namely -the cipher des-ede3-cfb1. Complete bug log and patch is present here: -http://rt.openssl.org/Ticket/Display.html?id=2867 - -Signed-off-by: Muhammad Shakeel - -Index: openssl-1.0.2/crypto/evp/e_des3.c -=================================================================== ---- openssl-1.0.2.orig/crypto/evp/e_des3.c -+++ openssl-1.0.2/crypto/evp/e_des3.c -@@ -211,7 +211,7 @@ static int des_ede3_cfb1_cipher(EVP_CIPH - size_t n; - unsigned char c[1], d[1]; - -- for (n = 0; n < inl; ++n) { -+ for (n = 0; n * 8 < inl; ++n) { - c[0] = (in[n / 8] & (1 << (7 - n % 8))) ? 0x80 : 0; - DES_ede3_cfb_encrypt(c, d, 1, 1, - &data(ctx)->ks1, &data(ctx)->ks2, diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/oe-ldflags.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/oe-ldflags.patch deleted file mode 100755 index 292e13dc5..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/oe-ldflags.patch +++ /dev/null @@ -1,24 +0,0 @@ -Upstream-Status: Inappropriate [open-embedded] - -Index: openssl-1.0.0/Makefile.shared -=================================================================== ---- openssl-1.0.0.orig/Makefile.shared -+++ openssl-1.0.0/Makefile.shared -@@ -92,7 +92,7 @@ - LINK_APP= \ - ( $(SET_X); \ - LIBDEPS="$${LIBDEPS:-$(LIBDEPS)}"; \ -- LDCMD="$${LDCMD:-$(CC)}"; LDFLAGS="$${LDFLAGS:-$(CFLAGS)}"; \ -+ LDCMD="$${LDCMD:-$(CC)}"; LDFLAGS="$(OE_LDFLAGS) $${LDFLAGS:-$(CFLAGS)}"; \ - LIBPATH=`for x in $$LIBDEPS; do echo $$x; done | sed -e 's/^ *-L//;t' -e d | uniq`; \ - LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \ - LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \ -@@ -102,7 +102,7 @@ - ( $(SET_X); \ - LIBDEPS="$${LIBDEPS:-$(LIBDEPS)}"; \ - SHAREDCMD="$${SHAREDCMD:-$(CC)}"; \ -- SHAREDFLAGS="$${SHAREDFLAGS:-$(CFLAGS) $(SHARED_LDFLAGS)}"; \ -+ SHAREDFLAGS="$(OE_LDFLAGS) $${SHAREDFLAGS:-$(CFLAGS) $(SHARED_LDFLAGS)}"; \ - LIBPATH=`for x in $$LIBDEPS; do echo $$x; done | sed -e 's/^ *-L//;t' -e d | uniq`; \ - LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \ - LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \ diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/openssl-1.0.2a-x32-asm.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/openssl-1.0.2a-x32-asm.patch deleted file mode 100755 index 1e5bfa17d..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/openssl-1.0.2a-x32-asm.patch +++ /dev/null @@ -1,46 +0,0 @@ -https://rt.openssl.org/Ticket/Display.html?id=3759&user=guest&pass=guest - -From 6257d59b3a68d2feb9d64317a1c556dc3813ee61 Mon Sep 17 00:00:00 2001 -From: Mike Frysinger -Date: Sat, 21 Mar 2015 06:01:25 -0400 -Subject: [PATCH] crypto: use bigint in x86-64 perl - -Upstream-Status: Pending -Signed-off-by: Cristian Iorga - -When building on x32 systems where the default type is 32bit, make sure -we can transparently represent 64bit integers. Otherwise we end up with -build errors like: -/usr/bin/perl asm/ghash-x86_64.pl elf > ghash-x86_64.s -Integer overflow in hexadecimal number at asm/../../perlasm/x86_64-xlate.pl line 201, <> line 890. -... -ghash-x86_64.s: Assembler messages: -ghash-x86_64.s:890: Error: junk '.15473355479995e+19' after expression - -We don't enable this globally as there are some cases where we'd get -32bit values interpreted as unsigned when we need them as signed. - -Reported-by: Bertrand Jacquin -URL: https://bugs.gentoo.org/542618 ---- - crypto/perlasm/x86_64-xlate.pl | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/crypto/perlasm/x86_64-xlate.pl b/crypto/perlasm/x86_64-xlate.pl -index aae8288..0bf9774 100755 ---- a/crypto/perlasm/x86_64-xlate.pl -+++ b/crypto/perlasm/x86_64-xlate.pl -@@ -195,6 +195,10 @@ my %globals; - sub out { - my $self = shift; - -+ # When building on x32 ABIs, the expanded hex value might be too -+ # big to fit into 32bits. Enable transparent 64bit support here -+ # so we can safely print it out. -+ use bigint; - if ($gas) { - # Solaris /usr/ccs/bin/as can't handle multiplications - # in $self->{value} --- -2.3.3 - diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/openssl-avoid-NULL-pointer-dereference-in-EVP_DigestInit_ex.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/openssl-avoid-NULL-pointer-dereference-in-EVP_DigestInit_ex.patch deleted file mode 100755 index f736e5c09..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/openssl-avoid-NULL-pointer-dereference-in-EVP_DigestInit_ex.patch +++ /dev/null @@ -1,23 +0,0 @@ -openssl: avoid NULL pointer dereference in EVP_DigestInit_ex() - -We should avoid accessing the type pointer if it's NULL, -this could happen if ctx->digest is not NULL. - -Upstream-Status: Submitted -http://www.mail-archive.com/openssl-dev@openssl.org/msg32860.html - -Signed-off-by: Xufeng Zhang ---- -Index: openssl-1.0.2h/crypto/evp/digest.c -=================================================================== ---- openssl-1.0.2h.orig/crypto/evp/digest.c -+++ openssl-1.0.2h/crypto/evp/digest.c -@@ -211,7 +211,7 @@ int EVP_DigestInit_ex(EVP_MD_CTX *ctx, c - type = ctx->digest; - } - #endif -- if (ctx->digest != type) { -+ if (type && (ctx->digest != type)) { - if (ctx->digest && ctx->digest->ctx_size) { - OPENSSL_free(ctx->md_data); - ctx->md_data = NULL; diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/openssl-c_rehash.sh b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/openssl-c_rehash.sh deleted file mode 100755 index 6620fdcb5..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/openssl-c_rehash.sh +++ /dev/null @@ -1,222 +0,0 @@ -#!/bin/sh -# -# Ben Secrest -# -# sh c_rehash script, scan all files in a directory -# and add symbolic links to their hash values. -# -# based on the c_rehash perl script distributed with openssl -# -# LICENSE: See OpenSSL license -# ^^acceptable?^^ -# - -# default certificate location -DIR=/etc/openssl - -# for filetype bitfield -IS_CERT=$(( 1 << 0 )) -IS_CRL=$(( 1 << 1 )) - - -# check to see if a file is a certificate file or a CRL file -# arguments: -# 1. the filename to be scanned -# returns: -# bitfield of file type; uses ${IS_CERT} and ${IS_CRL} -# -check_file() -{ - local IS_TYPE=0 - - # make IFS a newline so we can process grep output line by line - local OLDIFS=${IFS} - IFS=$( printf "\n" ) - - # XXX: could be more efficient to have two 'grep -m' but is -m portable? - for LINE in $( grep '^-----BEGIN .*-----' ${1} ) - do - if echo ${LINE} \ - | grep -q -E '^-----BEGIN (X509 |TRUSTED )?CERTIFICATE-----' - then - IS_TYPE=$(( ${IS_TYPE} | ${IS_CERT} )) - - if [ $(( ${IS_TYPE} & ${IS_CRL} )) -ne 0 ] - then - break - fi - elif echo ${LINE} | grep -q '^-----BEGIN X509 CRL-----' - then - IS_TYPE=$(( ${IS_TYPE} | ${IS_CRL} )) - - if [ $(( ${IS_TYPE} & ${IS_CERT} )) -ne 0 ] - then - break - fi - fi - done - - # restore IFS - IFS=${OLDIFS} - - return ${IS_TYPE} -} - - -# -# use openssl to fingerprint a file -# arguments: -# 1. the filename to fingerprint -# 2. the method to use (x509, crl) -# returns: -# none -# assumptions: -# user will capture output from last stage of pipeline -# -fingerprint() -{ - ${SSL_CMD} ${2} -fingerprint -noout -in ${1} | sed 's/^.*=//' | tr -d ':' -} - - -# -# link_hash - create links to certificate files -# arguments: -# 1. the filename to create a link for -# 2. the type of certificate being linked (x509, crl) -# returns: -# 0 on success, 1 otherwise -# -link_hash() -{ - local FINGERPRINT=$( fingerprint ${1} ${2} ) - local HASH=$( ${SSL_CMD} ${2} -hash -noout -in ${1} ) - local SUFFIX=0 - local LINKFILE='' - local TAG='' - - if [ ${2} = "crl" ] - then - TAG='r' - fi - - LINKFILE=${HASH}.${TAG}${SUFFIX} - - while [ -f ${LINKFILE} ] - do - if [ ${FINGERPRINT} = $( fingerprint ${LINKFILE} ${2} ) ] - then - echo "NOTE: Skipping duplicate file ${1}" >&2 - return 1 - fi - - SUFFIX=$(( ${SUFFIX} + 1 )) - LINKFILE=${HASH}.${TAG}${SUFFIX} - done - - echo "${3} => ${LINKFILE}" - - # assume any system with a POSIX shell will either support symlinks or - # do something to handle this gracefully - ln -s ${3} ${LINKFILE} - - return 0 -} - - -# hash_dir create hash links in a given directory -hash_dir() -{ - echo "Doing ${1}" - - cd ${1} - - ls -1 * 2>/dev/null | while read FILE - do - if echo ${FILE} | grep -q -E '^[[:xdigit:]]{8}\.r?[[:digit:]]+$' \ - && [ -h "${FILE}" ] - then - rm ${FILE} - fi - done - - ls -1 *.pem *.cer *.crt *.crl 2>/dev/null | while read FILE - do - REAL_FILE=${FILE} - # if we run on build host then get to the real files in rootfs - if [ -n "${SYSROOT}" -a -h ${FILE} ] - then - FILE=$( readlink ${FILE} ) - # check the symlink is absolute (or dangling in other word) - if [ "x/" = "x$( echo ${FILE} | cut -c1 -)" ] - then - REAL_FILE=${SYSROOT}/${FILE} - fi - fi - - check_file ${REAL_FILE} - local FILE_TYPE=${?} - local TYPE_STR='' - - if [ $(( ${FILE_TYPE} & ${IS_CERT} )) -ne 0 ] - then - TYPE_STR='x509' - elif [ $(( ${FILE_TYPE} & ${IS_CRL} )) -ne 0 ] - then - TYPE_STR='crl' - else - echo "NOTE: ${FILE} does not contain a certificate or CRL: skipping" >&2 - continue - fi - - link_hash ${REAL_FILE} ${TYPE_STR} ${FILE} - done -} - - -# choose the name of an ssl application -if [ -n "${OPENSSL}" ] -then - SSL_CMD=$(which ${OPENSSL} 2>/dev/null) -else - SSL_CMD=/usr/bin/openssl - OPENSSL=${SSL_CMD} - export OPENSSL -fi - -# fix paths -PATH=${PATH}:${DIR}/bin -export PATH - -# confirm existance/executability of ssl command -if ! [ -x ${SSL_CMD} ] -then - echo "${0}: rehashing skipped ('openssl' program not available)" >&2 - exit 0 -fi - -# determine which directories to process -old_IFS=$IFS -if [ ${#} -gt 0 ] -then - IFS=':' - DIRLIST=${*} -elif [ -n "${SSL_CERT_DIR}" ] -then - DIRLIST=$SSL_CERT_DIR -else - DIRLIST=${DIR}/certs -fi - -IFS=':' - -# process directories -for CERT_DIR in ${DIRLIST} -do - if [ -d ${CERT_DIR} -a -w ${CERT_DIR} ] - then - IFS=$old_IFS - hash_dir ${CERT_DIR} - IFS=':' - fi -done diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/openssl-fix-des.pod-error.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/openssl-fix-des.pod-error.patch deleted file mode 100755 index de49729e5..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/openssl-fix-des.pod-error.patch +++ /dev/null @@ -1,19 +0,0 @@ -openssl: Fix pod2man des.pod error on Ubuntu 12.04 - -This is a formatting fix, '=back' is required before -'=head1' on Ubuntu 12.04. - -Upstream-Status: Pending -Signed-off-by: Baogen Shang -diff -urpN a_origin/des.pod b_modify/des.pod ---- a_origin/crypto/des/des.pod 2013-08-15 15:02:56.211674589 +0800 -+++ b_modify/crypto/des/des.pod 2013-08-15 15:04:14.439674580 +0800 -@@ -181,6 +181,8 @@ the uuencoded file to embed in the begin - output. If there is no name specified after the B<-u>, the name text.des - will be embedded in the header. - -+=back -+ - =head1 SEE ALSO - - ps(1), diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/openssl-util-perlpath.pl-cwd.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/openssl-util-perlpath.pl-cwd.patch deleted file mode 100755 index 065b9b122..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/openssl-util-perlpath.pl-cwd.patch +++ /dev/null @@ -1,34 +0,0 @@ -From e427748f3bb5d37e78dc8d70a558c373aa8ababb Mon Sep 17 00:00:00 2001 -From: Robert Yang -Date: Mon, 19 Sep 2016 22:06:28 -0700 -Subject: [PATCH] util/perlpath.pl: make it work when cwd is not in @INC - -Fixed when building on Debian-testing: -| Can't locate find.pl in @INC (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.22.2 /usr/local/share/perl/5.22.2 /usr/lib/x86_64-linux-gnu/perl5/5.22 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.22 /usr/share/perl/5.22 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at perlpath.pl line 7. - -The find.pl is added by oe-core, so once openssl/find.pl is removed, -then this patch can be dropped. - -Upstream-Status: Inappropriate [OE-Specific] - -Signed-off-by: Robert Yang ---- - util/perlpath.pl | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/util/perlpath.pl b/util/perlpath.pl -index a1f236b..5599892 100755 ---- a/util/perlpath.pl -+++ b/util/perlpath.pl -@@ -4,6 +4,8 @@ - # line in all scripts that rely on perl. - # - -+BEGIN { unshift @INC, "."; } -+ - require "find.pl"; - - $#ARGV == 0 || print STDERR "usage: perlpath newpath (eg /usr/bin)\n"; --- -2.9.0 - diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/openssl_fix_for_x32.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/openssl_fix_for_x32.patch deleted file mode 100755 index 0f08a642f..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/openssl_fix_for_x32.patch +++ /dev/null @@ -1,39 +0,0 @@ -Upstream-Status: Pending - -Received from H J Liu @ Intel -Make the assembly syntax compatible with x32 gcc. Othewise x32 gcc throws errors. -Signed-off-by: Nitin A Kamble 2011/07/13 - -ported the patch to the 1.0.0e version -Signed-off-by: Nitin A Kamble 2011/12/01 -Index: openssl-1.0.2/crypto/bn/bn.h -=================================================================== ---- openssl-1.0.2.orig/crypto/bn/bn.h -+++ openssl-1.0.2/crypto/bn/bn.h -@@ -173,6 +173,13 @@ extern "C" { - # endif - # endif - -+/* Address type. */ -+#ifdef _WIN64 -+#define BN_ADDR unsigned long long -+#else -+#define BN_ADDR unsigned long -+#endif -+ - /* - * assuming long is 64bit - this is the DEC Alpha unsigned long long is only - * 64 bits :-(, don't define BN_LLONG for the DEC Alpha -Index: openssl-1.0.2/crypto/bn/bn_exp.c -=================================================================== ---- openssl-1.0.2.orig/crypto/bn/bn_exp.c -+++ openssl-1.0.2/crypto/bn/bn_exp.c -@@ -638,7 +638,7 @@ static int MOD_EXP_CTIME_COPY_FROM_PREBU - * multiple. - */ - #define MOD_EXP_CTIME_ALIGN(x_) \ -- ((unsigned char*)(x_) + (MOD_EXP_CTIME_MIN_CACHE_LINE_WIDTH - (((size_t)(x_)) & (MOD_EXP_CTIME_MIN_CACHE_LINE_MASK)))) -+ ((unsigned char*)(x_) + (MOD_EXP_CTIME_MIN_CACHE_LINE_WIDTH - (((BN_ADDR)(x_)) & (MOD_EXP_CTIME_MIN_CACHE_LINE_MASK)))) - - /* - * This variant of BN_mod_exp_mont() uses fixed windows and the special diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/parallel.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/parallel.patch deleted file mode 100755 index f3f4c9988..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/parallel.patch +++ /dev/null @@ -1,337 +0,0 @@ -Fix the parallel races in the Makefiles. - -This patch was taken from the Gentoo packaging: -https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-libs/openssl/files/openssl-1.0.2g-parallel-build.patch - -Upstream-Status: Pending -Signed-off-by: Ross Burton - -Refreshed for 1.0.2i -Signed-off-by: Patrick Ohly - ---- openssl-1.0.2g/crypto/Makefile -+++ openssl-1.0.2g/crypto/Makefile -@@ -85,11 +85,11 @@ - @if [ -z "$(THIS)" ]; then $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; fi - - subdirs: -- @target=all; $(RECURSIVE_MAKE) -+ +@target=all; $(RECURSIVE_MAKE) - - files: - $(PERL) $(TOP)/util/files.pl "CPUID_OBJ=$(CPUID_OBJ)" Makefile >> $(TOP)/MINFO -- @target=files; $(RECURSIVE_MAKE) -+ +@target=files; $(RECURSIVE_MAKE) - - links: - @$(PERL) $(TOP)/util/mklink.pl ../include/openssl $(EXHEADER) -@@ -100,7 +100,7 @@ - # lib: $(LIB): are splitted to avoid end-less loop - lib: $(LIB) - @touch lib --$(LIB): $(LIBOBJ) -+$(LIB): $(LIBOBJ) | subdirs - $(AR) $(LIB) $(LIBOBJ) - test -z "$(FIPSLIBDIR)" || $(AR) $(LIB) $(FIPSLIBDIR)fipscanister.o - $(RANLIB) $(LIB) || echo Never mind. -@@ -111,7 +111,7 @@ - fi - - libs: -- @target=lib; $(RECURSIVE_MAKE) -+ +@target=lib; $(RECURSIVE_MAKE) - - install: - @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile... -@@ -120,7 +120,7 @@ - (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \ - chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \ - done; -- @target=install; $(RECURSIVE_MAKE) -+ +@target=install; $(RECURSIVE_MAKE) - - lint: - @target=lint; $(RECURSIVE_MAKE) ---- openssl-1.0.2g/engines/Makefile -+++ openssl-1.0.2g/engines/Makefile -@@ -72,7 +72,7 @@ - - all: lib subdirs - --lib: $(LIBOBJ) -+lib: $(LIBOBJ) | subdirs - @if [ -n "$(SHARED_LIBS)" ]; then \ - set -e; \ - for l in $(LIBNAMES); do \ -@@ -89,7 +89,7 @@ - - subdirs: - echo $(EDIRS) -- @target=all; $(RECURSIVE_MAKE) -+ +@target=all; $(RECURSIVE_MAKE) - - files: - $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO -@@ -128,7 +128,7 @@ - mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx ); \ - done; \ - fi -- @target=install; $(RECURSIVE_MAKE) -+ +@target=install; $(RECURSIVE_MAKE) - - tags: - ctags $(SRC) ---- openssl-1.0.2g/Makefile.org -+++ openssl-1.0.2g/Makefile.org -@@ -279,17 +279,17 @@ - build_libssl: build_ssl libssl.pc - - build_crypto: -- @dir=crypto; target=all; $(BUILD_ONE_CMD) -+ +@dir=crypto; target=all; $(BUILD_ONE_CMD) - build_ssl: build_crypto -- @dir=ssl; target=all; $(BUILD_ONE_CMD) -+ +@dir=ssl; target=all; $(BUILD_ONE_CMD) - build_engines: build_crypto -- @dir=engines; target=all; $(BUILD_ONE_CMD) -+ +@dir=engines; target=all; $(BUILD_ONE_CMD) - build_apps: build_libs -- @dir=apps; target=all; $(BUILD_ONE_CMD) -+ +@dir=apps; target=all; $(BUILD_ONE_CMD) - build_tests: build_libs -- @dir=test; target=all; $(BUILD_ONE_CMD) -+ +@dir=test; target=all; $(BUILD_ONE_CMD) - build_tools: build_libs -- @dir=tools; target=all; $(BUILD_ONE_CMD) -+ +@dir=tools; target=all; $(BUILD_ONE_CMD) - - all_testapps: build_libs build_testapps - build_testapps: -@@ -544,7 +544,7 @@ - (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \ - chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \ - done; -- @set -e; target=install; $(RECURSIVE_BUILD_CMD) -+ +@set -e; target=install; $(RECURSIVE_BUILD_CMD) - @set -e; liblist="$(LIBS)"; for i in $$liblist ;\ - do \ - if [ -f "$$i" ]; then \ ---- openssl-1.0.2g/Makefile.shared -+++ openssl-1.0.2g/Makefile.shared -@@ -105,6 +105,7 @@ - SHAREDFLAGS="$${SHAREDFLAGS:-$(CFLAGS) $(SHARED_LDFLAGS)}"; \ - LIBPATH=`for x in $$LIBDEPS; do echo $$x; done | sed -e 's/^ *-L//;t' -e d | uniq`; \ - LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \ -+ [ -e $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX ] && exit 0; \ - LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \ - $${SHAREDCMD} $${SHAREDFLAGS} \ - -o $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX \ -@@ -122,6 +123,7 @@ - done; \ - fi; \ - if [ -n "$$SHLIB_SOVER" ]; then \ -+ [ -e "$$SHLIB$$SHLIB_SUFFIX" ] || \ - ( $(SET_X); rm -f $$SHLIB$$SHLIB_SUFFIX; \ - ln -s $$prev $$SHLIB$$SHLIB_SUFFIX ); \ - fi; \ ---- openssl-1.0.2g/test/Makefile -+++ openssl-1.0.2g/test/Makefile -@@ -144,7 +144,7 @@ - tags: - ctags $(SRC) - --tests: exe apps $(TESTS) -+tests: exe $(TESTS) - - apps: - @(cd ..; $(MAKE) DIRS=apps all) -@@ -438,136 +438,136 @@ - link_app.$${shlib_target} - - $(RSATEST)$(EXE_EXT): $(RSATEST).o $(DLIBCRYPTO) -- @target=$(RSATEST); $(BUILD_CMD) -+ +@target=$(RSATEST); $(BUILD_CMD) - - $(BNTEST)$(EXE_EXT): $(BNTEST).o $(DLIBCRYPTO) -- @target=$(BNTEST); $(BUILD_CMD) -+ +@target=$(BNTEST); $(BUILD_CMD) - - $(ECTEST)$(EXE_EXT): $(ECTEST).o $(DLIBCRYPTO) -- @target=$(ECTEST); $(BUILD_CMD) -+ +@target=$(ECTEST); $(BUILD_CMD) - - $(EXPTEST)$(EXE_EXT): $(EXPTEST).o $(DLIBCRYPTO) -- @target=$(EXPTEST); $(BUILD_CMD) -+ +@target=$(EXPTEST); $(BUILD_CMD) - - $(IDEATEST)$(EXE_EXT): $(IDEATEST).o $(DLIBCRYPTO) -- @target=$(IDEATEST); $(BUILD_CMD) -+ +@target=$(IDEATEST); $(BUILD_CMD) - - $(MD2TEST)$(EXE_EXT): $(MD2TEST).o $(DLIBCRYPTO) -- @target=$(MD2TEST); $(BUILD_CMD) -+ +@target=$(MD2TEST); $(BUILD_CMD) - - $(SHATEST)$(EXE_EXT): $(SHATEST).o $(DLIBCRYPTO) -- @target=$(SHATEST); $(BUILD_CMD) -+ +@target=$(SHATEST); $(BUILD_CMD) - - $(SHA1TEST)$(EXE_EXT): $(SHA1TEST).o $(DLIBCRYPTO) -- @target=$(SHA1TEST); $(BUILD_CMD) -+ +@target=$(SHA1TEST); $(BUILD_CMD) - - $(SHA256TEST)$(EXE_EXT): $(SHA256TEST).o $(DLIBCRYPTO) -- @target=$(SHA256TEST); $(BUILD_CMD) -+ +@target=$(SHA256TEST); $(BUILD_CMD) - - $(SHA512TEST)$(EXE_EXT): $(SHA512TEST).o $(DLIBCRYPTO) -- @target=$(SHA512TEST); $(BUILD_CMD) -+ +@target=$(SHA512TEST); $(BUILD_CMD) - - $(RMDTEST)$(EXE_EXT): $(RMDTEST).o $(DLIBCRYPTO) -- @target=$(RMDTEST); $(BUILD_CMD) -+ +@target=$(RMDTEST); $(BUILD_CMD) - - $(MDC2TEST)$(EXE_EXT): $(MDC2TEST).o $(DLIBCRYPTO) -- @target=$(MDC2TEST); $(BUILD_CMD) -+ +@target=$(MDC2TEST); $(BUILD_CMD) - - $(MD4TEST)$(EXE_EXT): $(MD4TEST).o $(DLIBCRYPTO) -- @target=$(MD4TEST); $(BUILD_CMD) -+ +@target=$(MD4TEST); $(BUILD_CMD) - - $(MD5TEST)$(EXE_EXT): $(MD5TEST).o $(DLIBCRYPTO) -- @target=$(MD5TEST); $(BUILD_CMD) -+ +@target=$(MD5TEST); $(BUILD_CMD) - - $(HMACTEST)$(EXE_EXT): $(HMACTEST).o $(DLIBCRYPTO) -- @target=$(HMACTEST); $(BUILD_CMD) -+ +@target=$(HMACTEST); $(BUILD_CMD) - - $(WPTEST)$(EXE_EXT): $(WPTEST).o $(DLIBCRYPTO) -- @target=$(WPTEST); $(BUILD_CMD) -+ +@target=$(WPTEST); $(BUILD_CMD) - - $(RC2TEST)$(EXE_EXT): $(RC2TEST).o $(DLIBCRYPTO) -- @target=$(RC2TEST); $(BUILD_CMD) -+ +@target=$(RC2TEST); $(BUILD_CMD) - - $(BFTEST)$(EXE_EXT): $(BFTEST).o $(DLIBCRYPTO) -- @target=$(BFTEST); $(BUILD_CMD) -+ +@target=$(BFTEST); $(BUILD_CMD) - - $(CASTTEST)$(EXE_EXT): $(CASTTEST).o $(DLIBCRYPTO) -- @target=$(CASTTEST); $(BUILD_CMD) -+ +@target=$(CASTTEST); $(BUILD_CMD) - - $(RC4TEST)$(EXE_EXT): $(RC4TEST).o $(DLIBCRYPTO) -- @target=$(RC4TEST); $(BUILD_CMD) -+ +@target=$(RC4TEST); $(BUILD_CMD) - - $(RC5TEST)$(EXE_EXT): $(RC5TEST).o $(DLIBCRYPTO) -- @target=$(RC5TEST); $(BUILD_CMD) -+ +@target=$(RC5TEST); $(BUILD_CMD) - - $(DESTEST)$(EXE_EXT): $(DESTEST).o $(DLIBCRYPTO) -- @target=$(DESTEST); $(BUILD_CMD) -+ +@target=$(DESTEST); $(BUILD_CMD) - - $(RANDTEST)$(EXE_EXT): $(RANDTEST).o $(DLIBCRYPTO) -- @target=$(RANDTEST); $(BUILD_CMD) -+ +@target=$(RANDTEST); $(BUILD_CMD) - - $(DHTEST)$(EXE_EXT): $(DHTEST).o $(DLIBCRYPTO) -- @target=$(DHTEST); $(BUILD_CMD) -+ +@target=$(DHTEST); $(BUILD_CMD) - - $(DSATEST)$(EXE_EXT): $(DSATEST).o $(DLIBCRYPTO) -- @target=$(DSATEST); $(BUILD_CMD) -+ +@target=$(DSATEST); $(BUILD_CMD) - - $(METHTEST)$(EXE_EXT): $(METHTEST).o $(DLIBCRYPTO) -- @target=$(METHTEST); $(BUILD_CMD) -+ +@target=$(METHTEST); $(BUILD_CMD) - - $(SSLTEST)$(EXE_EXT): $(SSLTEST).o $(DLIBSSL) $(DLIBCRYPTO) -- @target=$(SSLTEST); $(FIPS_BUILD_CMD) -+ +@target=$(SSLTEST); $(FIPS_BUILD_CMD) - - $(ENGINETEST)$(EXE_EXT): $(ENGINETEST).o $(DLIBCRYPTO) -- @target=$(ENGINETEST); $(BUILD_CMD) -+ +@target=$(ENGINETEST); $(BUILD_CMD) - - $(EVPTEST)$(EXE_EXT): $(EVPTEST).o $(DLIBCRYPTO) -- @target=$(EVPTEST); $(BUILD_CMD) -+ +@target=$(EVPTEST); $(BUILD_CMD) - - $(EVPEXTRATEST)$(EXE_EXT): $(EVPEXTRATEST).o $(DLIBCRYPTO) -- @target=$(EVPEXTRATEST); $(BUILD_CMD) -+ +@target=$(EVPEXTRATEST); $(BUILD_CMD) - - $(ECDSATEST)$(EXE_EXT): $(ECDSATEST).o $(DLIBCRYPTO) -- @target=$(ECDSATEST); $(BUILD_CMD) -+ +@target=$(ECDSATEST); $(BUILD_CMD) - - $(ECDHTEST)$(EXE_EXT): $(ECDHTEST).o $(DLIBCRYPTO) -- @target=$(ECDHTEST); $(BUILD_CMD) -+ +@target=$(ECDHTEST); $(BUILD_CMD) - - $(IGETEST)$(EXE_EXT): $(IGETEST).o $(DLIBCRYPTO) -- @target=$(IGETEST); $(BUILD_CMD) -+ +@target=$(IGETEST); $(BUILD_CMD) - - $(JPAKETEST)$(EXE_EXT): $(JPAKETEST).o $(DLIBCRYPTO) -- @target=$(JPAKETEST); $(BUILD_CMD) -+ +@target=$(JPAKETEST); $(BUILD_CMD) - - $(ASN1TEST)$(EXE_EXT): $(ASN1TEST).o $(DLIBCRYPTO) -- @target=$(ASN1TEST); $(BUILD_CMD) -+ +@target=$(ASN1TEST); $(BUILD_CMD) - - $(SRPTEST)$(EXE_EXT): $(SRPTEST).o $(DLIBCRYPTO) -- @target=$(SRPTEST); $(BUILD_CMD) -+ +@target=$(SRPTEST); $(BUILD_CMD) - - $(V3NAMETEST)$(EXE_EXT): $(V3NAMETEST).o $(DLIBCRYPTO) -- @target=$(V3NAMETEST); $(BUILD_CMD) -+ +@target=$(V3NAMETEST); $(BUILD_CMD) - - $(HEARTBEATTEST)$(EXE_EXT): $(HEARTBEATTEST).o $(DLIBCRYPTO) -- @target=$(HEARTBEATTEST); $(BUILD_CMD_STATIC) -+ +@target=$(HEARTBEATTEST); $(BUILD_CMD_STATIC) - - $(CONSTTIMETEST)$(EXE_EXT): $(CONSTTIMETEST).o -- @target=$(CONSTTIMETEST) $(BUILD_CMD) -+ +@target=$(CONSTTIMETEST) $(BUILD_CMD) - - $(VERIFYEXTRATEST)$(EXE_EXT): $(VERIFYEXTRATEST).o -- @target=$(VERIFYEXTRATEST) $(BUILD_CMD) -+ +@target=$(VERIFYEXTRATEST) $(BUILD_CMD) - - $(CLIENTHELLOTEST)$(EXE_EXT): $(CLIENTHELLOTEST).o -- @target=$(CLIENTHELLOTEST) $(BUILD_CMD) -+ +@target=$(CLIENTHELLOTEST) $(BUILD_CMD) - - $(BADDTLSTEST)$(EXE_EXT): $(BADDTLSTEST).o -- @target=$(BADDTLSTEST) $(BUILD_CMD) -+ +@target=$(BADDTLSTEST) $(BUILD_CMD) - - $(SSLV2CONFTEST)$(EXE_EXT): $(SSLV2CONFTEST).o -- @target=$(SSLV2CONFTEST) $(BUILD_CMD) -+ +@target=$(SSLV2CONFTEST) $(BUILD_CMD) - - $(DTLSTEST)$(EXE_EXT): $(DTLSTEST).o ssltestlib.o $(DLIBSSL) $(DLIBCRYPTO) -- @target=$(DTLSTEST); exobj=ssltestlib.o; $(BUILD_CMD) -+ +@target=$(DTLSTEST); exobj=ssltestlib.o; $(BUILD_CMD) - - #$(AESTEST).o: $(AESTEST).c - # $(CC) -c $(CFLAGS) -DINTERMEDIATE_VALUE_KAT -DTRACE_KAT_MCT $(AESTEST).c -@@ -580,6 +580,6 @@ - # fi - - dummytest$(EXE_EXT): dummytest.o $(DLIBCRYPTO) -- @target=dummytest; $(BUILD_CMD) -+ +@target=dummytest; $(BUILD_CMD) - - # DO NOT DELETE THIS LINE -- make depend depends on it. - \ No newline at end of file diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/ptest-deps.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/ptest-deps.patch deleted file mode 100755 index ef6d17934..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/ptest-deps.patch +++ /dev/null @@ -1,34 +0,0 @@ -Remove Makefile dependencies for test targets - -These are probably here because the executables aren't always built for -other platforms (e.g. Windows); however we can safely assume they'll -always be there. None of the other test targets have such dependencies -and if we don't remove them, make tries to rebuild the executables and -fails during run-ptest. - -Upstream-Status: Inappropriate [config] - -Signed-off-by: Paul Eggleton - -Index: openssl-1.0.2/test/Makefile -=================================================================== ---- openssl-1.0.2.orig/test/Makefile -+++ openssl-1.0.2/test/Makefile -@@ -330,7 +330,7 @@ test_cms: ../apps/openssl$(EXE_EXT) cms- - @echo "CMS consistency test" - $(PERL) cms-test.pl - --test_srp: $(SRPTEST)$(EXE_EXT) -+test_srp: - @echo "Test SRP" - ../util/shlib_wrap.sh ./srptest - -@@ -342,7 +342,7 @@ test_v3name: $(V3NAMETEST)$(EXE_EXT) - @echo "Test X509v3_check_*" - ../util/shlib_wrap.sh ./$(V3NAMETEST) - --test_heartbeat: $(HEARTBEATTEST)$(EXE_EXT) -+test_heartbeat: - ../util/shlib_wrap.sh ./$(HEARTBEATTEST) - - test_constant_time: $(CONSTTIMETEST)$(EXE_EXT) diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/ptest_makefile_deps.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/ptest_makefile_deps.patch deleted file mode 100755 index 4202e61d1..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/ptest_makefile_deps.patch +++ /dev/null @@ -1,248 +0,0 @@ -Additional Makefile dependencies removal for test targets - -Removing the dependency check for test targets as these tests are -causing a number of failures and "noise" during ptest execution. - -Upstream-Status: Inappropriate [config] - -Signed-off-by: Maxin B. John - -diff -Naur openssl-1.0.2d-orig/test/Makefile openssl-1.0.2d/test/Makefile ---- openssl-1.0.2d-orig/test/Makefile 2015-09-28 12:50:41.530022979 +0300 -+++ openssl-1.0.2d/test/Makefile 2015-09-28 12:57:45.930717240 +0300 -@@ -155,67 +155,67 @@ - ( $(MAKE) $$i && echo "PASS: $$i" ) || echo "FAIL: $$i"; \ - done) - --test_evp: $(EVPTEST)$(EXE_EXT) evptests.txt -+test_evp: - ../util/shlib_wrap.sh ./$(EVPTEST) evptests.txt - --test_evp_extra: $(EVPEXTRATEST)$(EXE_EXT) -+test_evp_extra: - ../util/shlib_wrap.sh ./$(EVPEXTRATEST) - --test_des: $(DESTEST)$(EXE_EXT) -+test_des: - ../util/shlib_wrap.sh ./$(DESTEST) - --test_idea: $(IDEATEST)$(EXE_EXT) -+test_idea: - ../util/shlib_wrap.sh ./$(IDEATEST) - --test_sha: $(SHATEST)$(EXE_EXT) $(SHA1TEST)$(EXE_EXT) $(SHA256TEST)$(EXE_EXT) $(SHA512TEST)$(EXE_EXT) -+test_sha: - ../util/shlib_wrap.sh ./$(SHATEST) - ../util/shlib_wrap.sh ./$(SHA1TEST) - ../util/shlib_wrap.sh ./$(SHA256TEST) - ../util/shlib_wrap.sh ./$(SHA512TEST) - --test_mdc2: $(MDC2TEST)$(EXE_EXT) -+test_mdc2: - ../util/shlib_wrap.sh ./$(MDC2TEST) - --test_md5: $(MD5TEST)$(EXE_EXT) -+test_md5: - ../util/shlib_wrap.sh ./$(MD5TEST) - --test_md4: $(MD4TEST)$(EXE_EXT) -+test_md4: - ../util/shlib_wrap.sh ./$(MD4TEST) - --test_hmac: $(HMACTEST)$(EXE_EXT) -+test_hmac: - ../util/shlib_wrap.sh ./$(HMACTEST) - --test_wp: $(WPTEST)$(EXE_EXT) -+test_wp: - ../util/shlib_wrap.sh ./$(WPTEST) - --test_md2: $(MD2TEST)$(EXE_EXT) -+test_md2: - ../util/shlib_wrap.sh ./$(MD2TEST) - --test_rmd: $(RMDTEST)$(EXE_EXT) -+test_rmd: - ../util/shlib_wrap.sh ./$(RMDTEST) - --test_bf: $(BFTEST)$(EXE_EXT) -+test_bf: - ../util/shlib_wrap.sh ./$(BFTEST) - --test_cast: $(CASTTEST)$(EXE_EXT) -+test_cast: - ../util/shlib_wrap.sh ./$(CASTTEST) - --test_rc2: $(RC2TEST)$(EXE_EXT) -+test_rc2: - ../util/shlib_wrap.sh ./$(RC2TEST) - --test_rc4: $(RC4TEST)$(EXE_EXT) -+test_rc4: - ../util/shlib_wrap.sh ./$(RC4TEST) - --test_rc5: $(RC5TEST)$(EXE_EXT) -+test_rc5: - ../util/shlib_wrap.sh ./$(RC5TEST) - --test_rand: $(RANDTEST)$(EXE_EXT) -+test_rand: - ../util/shlib_wrap.sh ./$(RANDTEST) - --test_enc: ../apps/openssl$(EXE_EXT) testenc -+test_enc: - @sh ./testenc - --test_x509: ../apps/openssl$(EXE_EXT) tx509 testx509.pem v3-cert1.pem v3-cert2.pem -+test_x509: - echo test normal x509v1 certificate - sh ./tx509 2>/dev/null - echo test first x509v3 certificate -@@ -223,25 +223,25 @@ - echo test second x509v3 certificate - sh ./tx509 v3-cert2.pem 2>/dev/null - --test_rsa: ../apps/openssl$(EXE_EXT) trsa testrsa.pem -+test_rsa: - @sh ./trsa 2>/dev/null - ../util/shlib_wrap.sh ./$(RSATEST) - --test_crl: ../apps/openssl$(EXE_EXT) tcrl testcrl.pem -+test_crl: - @sh ./tcrl 2>/dev/null - --test_sid: ../apps/openssl$(EXE_EXT) tsid testsid.pem -+test_sid: - @sh ./tsid 2>/dev/null - --test_req: ../apps/openssl$(EXE_EXT) treq testreq.pem testreq2.pem -+test_req: - @sh ./treq 2>/dev/null - @sh ./treq testreq2.pem 2>/dev/null - --test_pkcs7: ../apps/openssl$(EXE_EXT) tpkcs7 tpkcs7d testp7.pem pkcs7-1.pem -+test_pkcs7: - @sh ./tpkcs7 2>/dev/null - @sh ./tpkcs7d 2>/dev/null - --test_bn: $(BNTEST)$(EXE_EXT) $(EXPTEST)$(EXE_EXT) bctest -+test_bn: - @echo starting big number library test, could take a while... - @../util/shlib_wrap.sh ./$(BNTEST) >tmp.bntest - @echo quit >>tmp.bntest -@@ -250,33 +250,33 @@ - @echo 'test a^b%c implementations' - ../util/shlib_wrap.sh ./$(EXPTEST) - --test_ec: $(ECTEST)$(EXE_EXT) -+test_ec: - @echo 'test elliptic curves' - ../util/shlib_wrap.sh ./$(ECTEST) - --test_ecdsa: $(ECDSATEST)$(EXE_EXT) -+test_ecdsa: - @echo 'test ecdsa' - ../util/shlib_wrap.sh ./$(ECDSATEST) - --test_ecdh: $(ECDHTEST)$(EXE_EXT) -+test_ecdh: - @echo 'test ecdh' - ../util/shlib_wrap.sh ./$(ECDHTEST) - --test_verify: ../apps/openssl$(EXE_EXT) -+test_verify: - @echo "The following command should have some OK's and some failures" - @echo "There are definitly a few expired certificates" - ../util/shlib_wrap.sh ../apps/openssl verify -CApath ../certs/demo ../certs/demo/*.pem - --test_dh: $(DHTEST)$(EXE_EXT) -+test_dh: - @echo "Generate a set of DH parameters" - ../util/shlib_wrap.sh ./$(DHTEST) - --test_dsa: $(DSATEST)$(EXE_EXT) -+test_dsa: - @echo "Generate a set of DSA parameters" - ../util/shlib_wrap.sh ./$(DSATEST) - ../util/shlib_wrap.sh ./$(DSATEST) -app2_1 - --test_gen testreq.pem: ../apps/openssl$(EXE_EXT) testgen test.cnf -+test_gen testreq.pem: - @echo "Generate and verify a certificate request" - @sh ./testgen - -@@ -288,13 +288,11 @@ - @cat certCA.ss certU.ss > intP1.ss - @cat certCA.ss certU.ss certP1.ss > intP2.ss - --test_engine: $(ENGINETEST)$(EXE_EXT) -+test_engine: - @echo "Manipulate the ENGINE structures" - ../util/shlib_wrap.sh ./$(ENGINETEST) - --test_ssl: keyU.ss certU.ss certCA.ss certP1.ss keyP1.ss certP2.ss keyP2.ss \ -- intP1.ss intP2.ss $(SSLTEST)$(EXE_EXT) testssl testsslproxy \ -- ../apps/server2.pem serverinfo.pem -+test_ssl: - @echo "test SSL protocol" - @if [ -n "$(FIPSCANLIB)" ]; then \ - sh ./testfipsssl keyU.ss certU.ss certCA.ss; \ -@@ -304,7 +302,7 @@ - @sh ./testsslproxy keyP1.ss certP1.ss intP1.ss - @sh ./testsslproxy keyP2.ss certP2.ss intP2.ss - --test_ca: ../apps/openssl$(EXE_EXT) testca CAss.cnf Uss.cnf -+test_ca: - @if ../util/shlib_wrap.sh ../apps/openssl no-rsa; then \ - echo "skipping CA.sh test -- requires RSA"; \ - else \ -@@ -312,11 +310,11 @@ - sh ./testca; \ - fi - --test_aes: #$(AESTEST) -+test_aes: - # @echo "test Rijndael" - # ../util/shlib_wrap.sh ./$(AESTEST) - --test_tsa: ../apps/openssl$(EXE_EXT) testtsa CAtsa.cnf ../util/shlib_wrap.sh -+test_tsa: - @if ../util/shlib_wrap.sh ../apps/openssl no-rsa; then \ - echo "skipping testtsa test -- requires RSA"; \ - else \ -@@ -331,7 +329,7 @@ - @echo "Test JPAKE" - ../util/shlib_wrap.sh ./$(JPAKETEST) - --test_cms: ../apps/openssl$(EXE_EXT) cms-test.pl smcont.txt -+test_cms: - @echo "CMS consistency test" - $(PERL) cms-test.pl - -@@ -339,22 +337,22 @@ - @echo "Test SRP" - ../util/shlib_wrap.sh ./srptest - --test_ocsp: ../apps/openssl$(EXE_EXT) tocsp -+test_ocsp: - @echo "Test OCSP" - @sh ./tocsp - --test_v3name: $(V3NAMETEST)$(EXE_EXT) -+test_v3name: - @echo "Test X509v3_check_*" - ../util/shlib_wrap.sh ./$(V3NAMETEST) - - test_heartbeat: - ../util/shlib_wrap.sh ./$(HEARTBEATTEST) - --test_constant_time: $(CONSTTIMETEST)$(EXE_EXT) -+test_constant_time: - @echo "Test constant time utilites" - ../util/shlib_wrap.sh ./$(CONSTTIMETEST) - --test_verify_extra: $(VERIFYEXTRATEST)$(EXE_EXT) -+test_verify_extra: - @echo $(START) $@ - ../util/shlib_wrap.sh ./$(VERIFYEXTRATEST) - diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/reproducible.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/reproducible.patch new file mode 100644 index 000000000..a24260c95 --- /dev/null +++ b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/reproducible.patch @@ -0,0 +1,32 @@ +The value for perl_archname can vary depending on the host, e.g. +x86_64-linux-gnu-thread-multi or x86_64-linux-thread-multi which +makes the ptest package non-reproducible. Its unused other than +these references so drop it. + +RP 2020/2/6 + +Upstream-Status: Pending +Signed-off-by: Richard Purdie + +Index: openssl-1.1.1d/Configure +=================================================================== +--- openssl-1.1.1d.orig/Configure ++++ openssl-1.1.1d/Configure +@@ -286,7 +286,7 @@ if (defined env($local_config_envname)) + # Save away perl command information + $config{perl_cmd} = $^X; + $config{perl_version} = $Config{version}; +-$config{perl_archname} = $Config{archname}; ++#$config{perl_archname} = $Config{archname}; + + $config{prefix}=""; + $config{openssldir}=""; +@@ -2517,7 +2517,7 @@ _____ + @{$config{perlargv}}), "\n"; + print "\nPerl information:\n\n"; + print ' ',$config{perl_cmd},"\n"; +- print ' ',$config{perl_version},' for ',$config{perl_archname},"\n"; ++ print ' ',$config{perl_version},"\n"; + } + if ($dump || $options) { + my $longest = 0; diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/run-ptest b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/run-ptest old mode 100755 new mode 100644 index 3b20fce1e..3fb22471f --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/run-ptest +++ b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/run-ptest @@ -1,2 +1,12 @@ #!/bin/sh -make -k runtest + +set -e + +# Optional arguments are 'list' to lists all tests, or the test name (base name +# ie test_evp, not 03_test_evp.t). + +export TOP=. +# OPENSSL_ENGINES is relative from the test binaries +export OPENSSL_ENGINES=../engines + +perl ./test/run_tests.pl $* | perl -0pe 's#(.*) \.*.ok#PASS: \1#g; s#(.*) \.*.skipped: (.*)#SKIP: \1 (\2)#g; s#(.*) \.*.\nDubious#FAIL: \1#;' diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/shared-libs.patch b/meta/meta-mediatek/recipes-connectivity/openssl/openssl/shared-libs.patch deleted file mode 100755 index a7ca0a307..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl/shared-libs.patch +++ /dev/null @@ -1,41 +0,0 @@ -Upstream-Status: Inappropriate [configuration] - -Index: openssl-1.0.1e/crypto/Makefile -=================================================================== ---- openssl-1.0.1e.orig/crypto/Makefile -+++ openssl-1.0.1e/crypto/Makefile -@@ -108,7 +108,7 @@ $(LIB): $(LIBOBJ) - - shared: buildinf.h lib subdirs - if [ -n "$(SHARED_LIBS)" ]; then \ -- (cd ..; $(MAKE) $(SHARED_LIB)); \ -+ (cd ..; $(MAKE) -e $(SHARED_LIB)); \ - fi - - libs: -Index: openssl-1.0.1e/Makefile.org -=================================================================== ---- openssl-1.0.1e.orig/Makefile.org -+++ openssl-1.0.1e/Makefile.org -@@ -310,7 +310,7 @@ libcrypto$(SHLIB_EXT): libcrypto.a fips_ - - libssl$(SHLIB_EXT): libcrypto$(SHLIB_EXT) libssl.a - @if [ "$(SHLIB_TARGET)" != "" ]; then \ -- $(MAKE) SHLIBDIRS=ssl SHLIBDEPS='-lcrypto' build-shared; \ -+ $(MAKE) -e SHLIBDIRS=ssl SHLIBDEPS='-lcrypto' build-shared; \ - else \ - echo "There's no support for shared libraries on this platform" >&2; \ - exit 1; \ -Index: openssl-1.0.1e/ssl/Makefile -=================================================================== ---- openssl-1.0.1e.orig/ssl/Makefile -+++ openssl-1.0.1e/ssl/Makefile -@@ -62,7 +62,7 @@ lib: $(LIBOBJ) - - shared: lib - if [ -n "$(SHARED_LIBS)" ]; then \ -- (cd ..; $(MAKE) $(SHARED_LIB)); \ -+ (cd ..; $(MAKE) -e $(SHARED_LIB)); \ - fi - - files: diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl_1.0.2j.bb b/meta/meta-mediatek/recipes-connectivity/openssl/openssl_1.0.2j.bb deleted file mode 100755 index 9a7cdedd0..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl_1.0.2j.bb +++ /dev/null @@ -1,61 +0,0 @@ -require openssl.inc - -# For target side versions of openssl enable support for OCF Linux driver -# if they are available. -DEPENDS += "cryptodev-linux" - -CFLAG += "-DHAVE_CRYPTODEV -DUSE_CRYPTODEV_DIGESTS" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=27ffa5d74bb5a337056c14b2ef93fbf6" - -export DIRS = "crypto ssl apps engines" -export OE_LDFLAGS="${LDFLAGS}" - -SRC_URI += "file://find.pl;subdir=${BP}/util/ \ - file://run-ptest \ - file://openssl-c_rehash.sh \ - file://configure-targets.patch \ - file://shared-libs.patch \ - file://oe-ldflags.patch \ - file://engines-install-in-libdir-ssl.patch \ - file://debian1.0.2/block_diginotar.patch \ - file://debian1.0.2/block_digicert_malaysia.patch \ - file://debian/ca.patch \ - file://debian/c_rehash-compat.patch \ - file://debian/debian-targets.patch \ - file://debian/man-dir.patch \ - file://debian/man-section.patch \ - file://debian/no-rpath.patch \ - file://debian/no-symbolic.patch \ - file://debian/pic.patch \ - file://debian1.0.2/version-script.patch \ - file://openssl_fix_for_x32.patch \ - file://fix-cipher-des-ede3-cfb1.patch \ - file://openssl-avoid-NULL-pointer-dereference-in-EVP_DigestInit_ex.patch \ - file://openssl-fix-des.pod-error.patch \ - file://Makefiles-ptest.patch \ - file://ptest-deps.patch \ - file://openssl-1.0.2a-x32-asm.patch \ - file://ptest_makefile_deps.patch \ - file://configure-musl-target.patch \ - file://parallel.patch \ - file://openssl-util-perlpath.pl-cwd.patch \ - file://CVE-2016-7055.patch \ - file://0001-CVE-2017-3731.patch \ - file://0002-CVE-2017-3731.patch \ - " -SRC_URI[md5sum] = "96322138f0b69e61b7212bc53d5e912b" -SRC_URI[sha256sum] = "e7aff292be21c259c6af26469c7a9b3ba26e9abaaffd325e3dccc9785256c431" - -PACKAGES =+ "${PN}-engines" -FILES_${PN}-engines = "${libdir}/ssl/engines/*.so ${libdir}/engines" - -# The crypto_use_bigint patch means that perl's bignum module needs to be -# installed, but some distributions (for example Fedora 23) don't ship it by -# default. As the resulting error is very misleading check for bignum before -# building. -do_configure_prepend() { - if ! perl -Mbigint -e true; then - bbfatal "The perl module 'bignum' was not found but this is required to build openssl. Please install this module (often packaged as perl-bignum) and re-run bitbake." - fi -} diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl_1.1.0h.bb b/meta/meta-mediatek/recipes-connectivity/openssl/openssl_1.1.0h.bb deleted file mode 100755 index 69d3a0fca..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl_1.1.0h.bb +++ /dev/null @@ -1,172 +0,0 @@ -SUMMARY = "Secure Socket Layer" -DESCRIPTION = "Secure Socket Layer (SSL) binary and related cryptographic tools." -HOMEPAGE = "http://www.openssl.org/" -BUGTRACKER = "http://www.openssl.org/news/vulnerabilities.html" -SECTION = "libs/network" - -# "openssl | SSLeay" dual license -LICENSE = "openssl" -LIC_FILES_CHKSUM = "file://LICENSE;md5=d57d511030c9d66ef5f5966bee5a7eff" - -DEPENDS = "makedepend-native hostperl-runtime-native" -DEPENDS += "cryptodev-linux" - -export DIRS = "crypto ssl apps" -export OE_LDFLAGS="${LDFLAGS}" - -BBCLASSEXTEND = "native nativesdk" - -SRC_URI[md5sum] = "5271477e4d93f4ea032b665ef095ff24" -SRC_URI[sha256sum] = "5835626cde9e99656585fc7aaa2302a73a7e1340bf8c14fd635a62c66802a517" - -SRC_URI = "http://www.openssl.org/source/openssl-${PV}.tar.gz \ - file://run-ptest \ - file://openssl-c_rehash.sh \ - file://0001-Take-linking-flags-from-LDFLAGS-env-var.patch \ - " - -S = "${WORKDIR}/openssl-${PV}" - -#inherit lib_package multilib_header ptest -inherit pkgconfig siteinfo multilib_header ptest - -do_configure () { - os=${HOST_OS} - case $os in - linux-uclibc |\ - linux-uclibceabi |\ - linux-gnueabi |\ - linux-uclibcspe |\ - linux-gnuspe |\ - linux-musl*) - os=linux - ;; - *) - ;; - esac - target="$os-${HOST_ARCH}" - case $target in - linux-arm) - target=linux-armv4 - ;; - linux-armeb) - target=linux-armv4 - ;; - linux-aarch64*) - target=linux-aarch64 - ;; - linux-sh3) - target=linux-generic32 - ;; - linux-sh4) - target=linux-generic32 - ;; - linux-i486) - target=linux-elf - ;; - linux-i586 | linux-viac3) - target=linux-elf - ;; - linux-i686) - target=linux-elf - ;; - linux-gnux32-x86_64) - target=linux-x32 - ;; - linux-gnu64-x86_64) - target=linux-x86_64 - ;; - linux-mips) - # specifying TARGET_CC_ARCH prevents openssl from (incorrectly) adding target architecture flags - target="linux-mips32 ${TARGET_CC_ARCH}" - ;; - linux-mipsel) - target="linux-mips32 ${TARGET_CC_ARCH}" - ;; - linux-gnun32-mips*) - target=linux-mips64 - ;; - linux-*-mips64 | linux-mips64) - target=linux64-mips64 - ;; - linux-*-mips64el | linux-mips64el) - target=linux64-mips64 - ;; - linux-microblaze*|linux-nios2*) - target=linux-generic32 - ;; - linux-powerpc) - target=linux-ppc - ;; - linux-powerpc64) - target=linux-ppc64 - ;; - linux-riscv64) - target=linux-generic64 - ;; - linux-riscv32) - target=linux-generic32 - ;; - linux-supersparc) - target=linux-sparcv9 - ;; - linux-sparc) - target=linux-sparcv9 - ;; - darwin-i386) - target=darwin-i386-cc - ;; - esac - useprefix=${prefix} - if [ "x$useprefix" = "x" ]; then - useprefix=/ - fi - libdirleaf="$(echo ${libdir} | sed s:$useprefix::)" - perl ./Configure ${EXTRA_OECONF} --prefix=$useprefix --openssldir=${libdir}/ssl-1.1 --libdir=${libdirleaf} $target -} - -#| engines/afalg/e_afalg.c: In function 'eventfd': -#| engines/afalg/e_afalg.c:110:20: error: '__NR_eventfd' undeclared (first use in this function) -#| return syscall(__NR_eventfd, n); -#| ^~~~~~~~~~~~ -EXTRA_OECONF_aarch64 += "no-afalgeng" - -#| ./libcrypto.so: undefined reference to `getcontext' -#| ./libcrypto.so: undefined reference to `setcontext' -#| ./libcrypto.so: undefined reference to `makecontext' -EXTRA_OECONF_libc-musl += "-DOPENSSL_NO_ASYNC" - -do_install () { - oe_runmake DESTDIR="${D}" MANDIR="${mandir}" MANSUFFIX=ssl install - oe_multilib_header openssl/opensslconf.h -} - -do_install_append_class-native () { - # Install a custom version of c_rehash that can handle sysroots properly. - # This version is used for example when installing ca-certificates during - # image creation. - install -Dm 0755 ${WORKDIR}/openssl-c_rehash.sh ${D}${bindir}/c_rehash - sed -i -e 's,/etc/openssl,${sysconfdir}/ssl,g' ${D}${bindir}/c_rehash -} - -do_install_ptest() { - cp -r * ${D}${PTEST_PATH} - - # Putting .so files in ptest package will mess up the dependencies of the main openssl package - # so we rename them to .so.ptest and patch the test accordingly - mv ${D}${PTEST_PATH}/libcrypto.so ${D}${PTEST_PATH}/libcrypto.so.ptest - mv ${D}${PTEST_PATH}/libssl.so ${D}${PTEST_PATH}/libssl.so.ptest - sed -i 's/$target{shared_extension_simple}/".so.ptest"/' ${D}${PTEST_PATH}/test/recipes/90-test_shlibload.t -} - -RDEPENDS_${PN}-ptest += "perl-module-file-spec-functions bash python" - -FILES_${PN} =+ " ${libdir}/ssl-1.1/*" - -PACKAGES =+ "${PN}-engines" -FILES_${PN}-engines = "${libdir}/engines-1.1" - -####new add -PACKAGES =+ "libcrypto libssl " -FILES_libcrypto = "${libdir}/libcrypto${SOLIBS}" -FILES_libssl = "${libdir}/libssl${SOLIBS}" diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl_1.1.0i.bb b/meta/meta-mediatek/recipes-connectivity/openssl/openssl_1.1.0i.bb deleted file mode 100755 index 39d49fca2..000000000 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl_1.1.0i.bb +++ /dev/null @@ -1,172 +0,0 @@ -SUMMARY = "Secure Socket Layer" -DESCRIPTION = "Secure Socket Layer (SSL) binary and related cryptographic tools." -HOMEPAGE = "http://www.openssl.org/" -BUGTRACKER = "http://www.openssl.org/news/vulnerabilities.html" -SECTION = "libs/network" - -# "openssl | SSLeay" dual license -LICENSE = "openssl" -LIC_FILES_CHKSUM = "file://LICENSE;md5=d57d511030c9d66ef5f5966bee5a7eff" - -DEPENDS = "makedepend-native hostperl-runtime-native" -DEPENDS += "cryptodev-linux" - -export DIRS = "crypto ssl apps" -export OE_LDFLAGS="${LDFLAGS}" - -BBCLASSEXTEND = "native nativesdk" - -SRC_URI[md5sum] = "9495126aafd2659d357ea66a969c3fe1" -SRC_URI[sha256sum] = "ebbfc844a8c8cc0ea5dc10b86c9ce97f401837f3fa08c17b2cdadc118253cf99" - -SRC_URI = "http://www.openssl.org/source/openssl-${PV}.tar.gz \ - file://run-ptest \ - file://openssl-c_rehash.sh \ - file://0001-Take-linking-flags-from-LDFLAGS-env-var.patch \ - " - -S = "${WORKDIR}/openssl-${PV}" - -#inherit lib_package multilib_header ptest -inherit pkgconfig siteinfo multilib_header ptest - -do_configure () { - os=${HOST_OS} - case $os in - linux-uclibc |\ - linux-uclibceabi |\ - linux-gnueabi |\ - linux-uclibcspe |\ - linux-gnuspe |\ - linux-musl*) - os=linux - ;; - *) - ;; - esac - target="$os-${HOST_ARCH}" - case $target in - linux-arm) - target=linux-armv4 - ;; - linux-armeb) - target=linux-armv4 - ;; - linux-aarch64*) - target=linux-aarch64 - ;; - linux-sh3) - target=linux-generic32 - ;; - linux-sh4) - target=linux-generic32 - ;; - linux-i486) - target=linux-elf - ;; - linux-i586 | linux-viac3) - target=linux-elf - ;; - linux-i686) - target=linux-elf - ;; - linux-gnux32-x86_64) - target=linux-x32 - ;; - linux-gnu64-x86_64) - target=linux-x86_64 - ;; - linux-mips) - # specifying TARGET_CC_ARCH prevents openssl from (incorrectly) adding target architecture flags - target="linux-mips32 ${TARGET_CC_ARCH}" - ;; - linux-mipsel) - target="linux-mips32 ${TARGET_CC_ARCH}" - ;; - linux-gnun32-mips*) - target=linux-mips64 - ;; - linux-*-mips64 | linux-mips64) - target=linux64-mips64 - ;; - linux-*-mips64el | linux-mips64el) - target=linux64-mips64 - ;; - linux-microblaze*|linux-nios2*) - target=linux-generic32 - ;; - linux-powerpc) - target=linux-ppc - ;; - linux-powerpc64) - target=linux-ppc64 - ;; - linux-riscv64) - target=linux-generic64 - ;; - linux-riscv32) - target=linux-generic32 - ;; - linux-supersparc) - target=linux-sparcv9 - ;; - linux-sparc) - target=linux-sparcv9 - ;; - darwin-i386) - target=darwin-i386-cc - ;; - esac - useprefix=${prefix} - if [ "x$useprefix" = "x" ]; then - useprefix=/ - fi - libdirleaf="$(echo ${libdir} | sed s:$useprefix::)" - perl ./Configure ${EXTRA_OECONF} --prefix=$useprefix --openssldir=${libdir}/ssl-1.1 --libdir=${libdirleaf} $target -} - -#| engines/afalg/e_afalg.c: In function 'eventfd': -#| engines/afalg/e_afalg.c:110:20: error: '__NR_eventfd' undeclared (first use in this function) -#| return syscall(__NR_eventfd, n); -#| ^~~~~~~~~~~~ -EXTRA_OECONF_aarch64 += "no-afalgeng" - -#| ./libcrypto.so: undefined reference to `getcontext' -#| ./libcrypto.so: undefined reference to `setcontext' -#| ./libcrypto.so: undefined reference to `makecontext' -EXTRA_OECONF_libc-musl += "-DOPENSSL_NO_ASYNC" - -do_install () { - oe_runmake DESTDIR="${D}" MANDIR="${mandir}" MANSUFFIX=ssl install - oe_multilib_header openssl/opensslconf.h -} - -do_install_append_class-native () { - # Install a custom version of c_rehash that can handle sysroots properly. - # This version is used for example when installing ca-certificates during - # image creation. - install -Dm 0755 ${WORKDIR}/openssl-c_rehash.sh ${D}${bindir}/c_rehash - sed -i -e 's,/etc/openssl,${sysconfdir}/ssl,g' ${D}${bindir}/c_rehash -} - -do_install_ptest() { - cp -r * ${D}${PTEST_PATH} - - # Putting .so files in ptest package will mess up the dependencies of the main openssl package - # so we rename them to .so.ptest and patch the test accordingly - mv ${D}${PTEST_PATH}/libcrypto.so ${D}${PTEST_PATH}/libcrypto.so.ptest - mv ${D}${PTEST_PATH}/libssl.so ${D}${PTEST_PATH}/libssl.so.ptest - sed -i 's/$target{shared_extension_simple}/".so.ptest"/' ${D}${PTEST_PATH}/test/recipes/90-test_shlibload.t -} - -RDEPENDS_${PN}-ptest += "perl-module-file-spec-functions bash python" - -FILES_${PN} =+ " ${libdir}/ssl-1.1/*" - -PACKAGES =+ "${PN}-engines" -FILES_${PN}-engines = "${libdir}/engines-1.1" - -####new add -PACKAGES =+ "libcrypto libssl " -FILES_libcrypto = "${libdir}/libcrypto${SOLIBS}" -FILES_libssl = "${libdir}/libssl${SOLIBS}" diff --git a/meta/meta-mediatek/recipes-connectivity/openssl/openssl_1.1.1a.bb b/meta/meta-mediatek/recipes-connectivity/openssl/openssl_1.1.1g.bb similarity index 85% rename from meta/meta-mediatek/recipes-connectivity/openssl/openssl_1.1.1a.bb rename to meta/meta-mediatek/recipes-connectivity/openssl/openssl_1.1.1g.bb index 042e023de..589bf4b33 100644 --- a/meta/meta-mediatek/recipes-connectivity/openssl/openssl_1.1.1a.bb +++ b/meta/meta-mediatek/recipes-connectivity/openssl/openssl_1.1.1g.bb @@ -7,27 +7,30 @@ SECTION = "libs/network" # "openssl" here actually means both OpenSSL and SSLeay licenses apply # (see meta/files/common-licenses/OpenSSL to which "openssl" is SPDXLICENSEMAPped) LICENSE = "openssl" -LIC_FILES_CHKSUM = "file://LICENSE;md5=d57d511030c9d66ef5f5966bee5a7eff" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d343e62fc9c833710bbbed25f27364c8" DEPENDS = "hostperl-runtime-native" SRC_URI = "http://www.openssl.org/source/openssl-${PV}.tar.gz \ file://run-ptest \ - file://openssl-c_rehash.sh \ file://0001-skip-test_symbol_presence.patch \ file://0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch \ file://afalg.patch \ + file://reproducible.patch \ " SRC_URI_append_class-nativesdk = " \ file://environment.d-openssl.sh \ " -SRC_URI[md5sum] = "963deb2272d6be7d4c2458afd2517b73" -SRC_URI[sha256sum] = "fc20130f8b7cbd2fb918b2f14e2f429e109c31ddd0fb38fc5d71d9ffed3f9f41" +SRC_URI[sha256sum] = "ddb04774f1e32f0c49751e21b67216ac87852ceb056b75209af2443400636d46" inherit lib_package multilib_header ptest +PACKAGECONFIG ?= "" +PACKAGECONFIG_class-native = "" +PACKAGECONFIG_class-nativesdk = "" + B = "${WORKDIR}/build" do_configure[cleandirs] = "${B}" @@ -35,11 +38,12 @@ do_configure[cleandirs] = "${B}" #| ./libcrypto.so: undefined reference to `setcontext' #| ./libcrypto.so: undefined reference to `makecontext' EXTRA_OECONF_append_libc-musl = " no-async" +EXTRA_OECONF_append_libc-musl_powerpc64 = " no-asm" -# This prevents openssl from using getrandom() which is not available on older glibc versions +# adding devrandom prevents openssl from using getrandom() which is not available on older glibc versions # (native versions can be built with newer glibc, but then relocated onto a system with older glibc) -EXTRA_OECONF_class-native = "--with-rand-seed=devrandom" -EXTRA_OECONF_class-nativesdk = "--with-rand-seed=devrandom" +EXTRA_OECONF_class-native = "--with-rand-seed=os,devrandom" +EXTRA_OECONF_class-nativesdk = "--with-rand-seed=os,devrandom" # Relying on hardcoded built-in paths causes openssl-native to not be relocateable from sstate. CFLAGS_append_class-native = " -DOPENSSLDIR=/not/builtin -DENGINESDIR=/not/builtin" @@ -141,13 +145,7 @@ do_install_append_class-native () { OPENSSL_CONF=${libdir}/ssl-1.1/openssl.cnf \ SSL_CERT_DIR=${libdir}/ssl-1.1/certs \ SSL_CERT_FILE=${libdir}/ssl-1.1/cert.pem \ - OPENSSL_ENGINES=${libdir}/ssl-1.1/engines - - # Install a custom version of c_rehash that can handle sysroots properly. - # This version is used for example when installing ca-certificates during - # image creation. - install -Dm 0755 ${WORKDIR}/openssl-c_rehash.sh ${D}${bindir}/c_rehash - sed -i -e 's,/etc/openssl,${sysconfdir}/ssl,g' ${D}${bindir}/c_rehash + OPENSSL_ENGINES=${libdir}/engines-1.1 } do_install_append_class-nativesdk () { @@ -166,8 +164,8 @@ do_install_ptest () { cp -r ${S}/external ${B}/test ${S}/test ${B}/fuzz ${S}/util ${B}/util ${D}${PTEST_PATH} # For test_shlibload - ln -s ${libdir}/libcrypto.so.1.1 ${D}${PTEST_PATH}/libcrypto.so - ln -s ${libdir}/libssl.so.1.1 ${D}${PTEST_PATH}/libssl.so + ln -s ${libdir}/libcrypto.so.1.1 ${D}${PTEST_PATH}/ + ln -s ${libdir}/libssl.so.1.1 ${D}${PTEST_PATH}/ install -d ${D}${PTEST_PATH}/apps ln -s ${bindir}/openssl ${D}${PTEST_PATH}/apps @@ -196,12 +194,16 @@ FILES_${PN}_append_class-nativesdk = " ${SDKPATHNATIVE}/environment-setup.d/open CONFFILES_openssl-conf = "${sysconfdir}/ssl/openssl.cnf" RRECOMMENDS_libcrypto += "openssl-conf" -RDEPENDS_${PN}-bin = "perl" -RDEPENDS_${PN}-misc = "perl" -RDEPENDS_${PN}-ptest += "openssl-bin perl perl-modules bash python" +RDEPENDS_${PN}-ptest += "openssl-bin perl perl-modules bash" RPROVIDES_openssl-conf = "openssl10-conf" RREPLACES_openssl-conf = "openssl10-conf" RCONFLICTS_openssl-conf = "openssl10-conf" BBCLASSEXTEND = "native nativesdk" + +CVE_PRODUCT = "openssl:openssl" + +# Only affects OpenSSL >= 1.1.1 in combination with Apache < 2.4.37 +# Apache in meta-webserver is already recent enough +CVE_CHECK_WHITELIST += "CVE-2019-0190" diff --git a/src/apps/portaudio/include/pa_linux_alsa.h b/src/apps/portaudio/include/pa_linux_alsa.h deleted file mode 100644 index c94061563..000000000 --- a/src/apps/portaudio/include/pa_linux_alsa.h +++ /dev/null @@ -1,107 +0,0 @@ -#ifndef PA_LINUX_ALSA_H -#define PA_LINUX_ALSA_H - -/* - * $Id$ - * PortAudio Portable Real-Time Audio Library - * ALSA-specific extensions - * - * Copyright (c) 1999-2000 Ross Bencina and Phil Burk - * - * 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. - */ - -/* - * The text above constitutes the entire PortAudio license; however, - * the PortAudio community also makes the following non-binding requests: - * - * Any person wishing to distribute modifications to the Software is - * requested to send the modifications to the original developer so that - * they can be incorporated into the canonical version. It is also - * requested that these non-binding requests be included along with the - * license above. - */ - -/** @file - * @ingroup public_header - * @brief ALSA-specific PortAudio API extension header file. - */ - -#include "portaudio.h" - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct PaAlsaStreamInfo -{ - unsigned long size; - PaHostApiTypeId hostApiType; - unsigned long version; - - const char *deviceString; -} -PaAlsaStreamInfo; - -/** Initialize host API specific structure, call this before setting relevant attributes. */ -void PaAlsa_InitializeStreamInfo( PaAlsaStreamInfo *info ); - -/** Instruct whether to enable real-time priority when starting the audio thread. - * - * If this is turned on by the stream is started, the audio callback thread will be created - * with the FIFO scheduling policy, which is suitable for realtime operation. - **/ -void PaAlsa_EnableRealtimeScheduling( PaStream *s, int enable ); - -#if 0 -void PaAlsa_EnableWatchdog( PaStream *s, int enable ); -#endif - -/** Get the ALSA-lib card index of this stream's input device. */ -PaError PaAlsa_GetStreamInputCard( PaStream *s, int *card ); - -/** Get the ALSA-lib card index of this stream's output device. */ -PaError PaAlsa_GetStreamOutputCard( PaStream *s, int *card ); - -/** Set the number of periods (buffer fragments) to configure devices with. - * - * By default the number of periods is 4, this is the lowest number of periods that works well on - * the author's soundcard. - * @param numPeriods The number of periods. - */ -PaError PaAlsa_SetNumPeriods( int numPeriods ); - -/** Set the maximum number of times to retry opening busy device (sleeping for a - * short interval inbetween). - */ -PaError PaAlsa_SetRetriesBusy( int retries ); - -/** Set the path and name of ALSA library file if PortAudio is configured to load it dynamically (see - * PA_ALSA_DYNAMIC). This setting will overwrite the default name set by PA_ALSA_PATHNAME define. - * @param pathName Full path with filename. Only filename can be used, but dlopen() will lookup default - * searchable directories (/usr/lib;/usr/local/lib) then. - */ -void PaAlsa_SetLibraryPathName( const char *pathName ); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/apps/portaudio/include/portaudio.h b/src/apps/portaudio/include/portaudio.h deleted file mode 100644 index 5d847314a..000000000 --- a/src/apps/portaudio/include/portaudio.h +++ /dev/null @@ -1,1228 +0,0 @@ -#ifndef PORTAUDIO_H -#define PORTAUDIO_H -/* - * $Id$ - * PortAudio Portable Real-Time Audio Library - * PortAudio API Header File - * Latest version available at: http://www.portaudio.com/ - * - * Copyright (c) 1999-2002 Ross Bencina and Phil Burk - * - * 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. - */ - -/* - * The text above constitutes the entire PortAudio license; however, - * the PortAudio community also makes the following non-binding requests: - * - * Any person wishing to distribute modifications to the Software is - * requested to send the modifications to the original developer so that - * they can be incorporated into the canonical version. It is also - * requested that these non-binding requests be included along with the - * license above. - */ - -/** @file - @ingroup public_header - @brief The portable PortAudio API. -*/ - - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/** Retrieve the release number of the currently running PortAudio build. - For example, for version "19.5.1" this will return 0x00130501. - - @see paMakeVersionNumber -*/ -int Pa_GetVersion( void ); - -/** Retrieve a textual description of the current PortAudio build, - e.g. "PortAudio V19.5.0-devel, revision 1952M". - The format of the text may change in the future. Do not try to parse the - returned string. - - @deprecated As of 19.5.0, use Pa_GetVersionInfo()->versionText instead. -*/ -const char* Pa_GetVersionText( void ); - -/** - Generate a packed integer version number in the same format used - by Pa_GetVersion(). Use this to compare a specified version number with - the currently running version. For example: - - @code - if( Pa_GetVersion() < paMakeVersionNumber(19,5,1) ) {} - @endcode - - @see Pa_GetVersion, Pa_GetVersionInfo - @version Available as of 19.5.0. -*/ -#define paMakeVersionNumber(major, minor, subminor) \ - (((major)&0xFF)<<16 | ((minor)&0xFF)<<8 | ((subminor)&0xFF)) - - -/** - A structure containing PortAudio API version information. - @see Pa_GetVersionInfo, paMakeVersionNumber - @version Available as of 19.5.0. -*/ -typedef struct PaVersionInfo { - int versionMajor; - int versionMinor; - int versionSubMinor; - /** - This is currently the Git revision hash but may change in the future. - The versionControlRevision is updated by running a script before compiling the library. - If the update does not occur, this value may refer to an earlier revision. - */ - const char *versionControlRevision; - /** Version as a string, for example "PortAudio V19.5.0-devel, revision 1952M" */ - const char *versionText; -} PaVersionInfo; - -/** Retrieve version information for the currently running PortAudio build. - @return A pointer to an immutable PaVersionInfo structure. - - @note This function can be called at any time. It does not require PortAudio - to be initialized. The structure pointed to is statically allocated. Do not - attempt to free it or modify it. - - @see PaVersionInfo, paMakeVersionNumber - @version Available as of 19.5.0. -*/ -const PaVersionInfo* Pa_GetVersionInfo( void ); - - -/** Error codes returned by PortAudio functions. - Note that with the exception of paNoError, all PaErrorCodes are negative. -*/ - -typedef int PaError; -typedef enum PaErrorCode -{ - paNoError = 0, - - paNotInitialized = -10000, - paUnanticipatedHostError, - paInvalidChannelCount, - paInvalidSampleRate, - paInvalidDevice, - paInvalidFlag, - paSampleFormatNotSupported, - paBadIODeviceCombination, - paInsufficientMemory, - paBufferTooBig, - paBufferTooSmall, - paNullCallback, - paBadStreamPtr, - paTimedOut, - paInternalError, - paDeviceUnavailable, - paIncompatibleHostApiSpecificStreamInfo, - paStreamIsStopped, - paStreamIsNotStopped, - paInputOverflowed, - paOutputUnderflowed, - paHostApiNotFound, - paInvalidHostApi, - paCanNotReadFromACallbackStream, - paCanNotWriteToACallbackStream, - paCanNotReadFromAnOutputOnlyStream, - paCanNotWriteToAnInputOnlyStream, - paIncompatibleStreamHostApi, - paBadBufferPtr -} PaErrorCode; - - -/** Translate the supplied PortAudio error code into a human readable - message. -*/ -const char *Pa_GetErrorText( PaError errorCode ); - - -/** Library initialization function - call this before using PortAudio. - This function initializes internal data structures and prepares underlying - host APIs for use. With the exception of Pa_GetVersion(), Pa_GetVersionText(), - and Pa_GetErrorText(), this function MUST be called before using any other - PortAudio API functions. - - If Pa_Initialize() is called multiple times, each successful - call must be matched with a corresponding call to Pa_Terminate(). - Pairs of calls to Pa_Initialize()/Pa_Terminate() may overlap, and are not - required to be fully nested. - - Note that if Pa_Initialize() returns an error code, Pa_Terminate() should - NOT be called. - - @return paNoError if successful, otherwise an error code indicating the cause - of failure. - - @see Pa_Terminate -*/ -PaError Pa_Initialize( void ); - - -/** Library termination function - call this when finished using PortAudio. - This function deallocates all resources allocated by PortAudio since it was - initialized by a call to Pa_Initialize(). In cases where Pa_Initialise() has - been called multiple times, each call must be matched with a corresponding call - to Pa_Terminate(). The final matching call to Pa_Terminate() will automatically - close any PortAudio streams that are still open. - - Pa_Terminate() MUST be called before exiting a program which uses PortAudio. - Failure to do so may result in serious resource leaks, such as audio devices - not being available until the next reboot. - - @return paNoError if successful, otherwise an error code indicating the cause - of failure. - - @see Pa_Initialize -*/ -PaError Pa_Terminate( void ); - - - -/** The type used to refer to audio devices. Values of this type usually - range from 0 to (Pa_GetDeviceCount()-1), and may also take on the PaNoDevice - and paUseHostApiSpecificDeviceSpecification values. - - @see Pa_GetDeviceCount, paNoDevice, paUseHostApiSpecificDeviceSpecification -*/ -typedef int PaDeviceIndex; - - -/** A special PaDeviceIndex value indicating that no device is available, - or should be used. - - @see PaDeviceIndex -*/ -#define paNoDevice ((PaDeviceIndex)-1) - - -/** A special PaDeviceIndex value indicating that the device(s) to be used - are specified in the host api specific stream info structure. - - @see PaDeviceIndex -*/ -#define paUseHostApiSpecificDeviceSpecification ((PaDeviceIndex)-2) - - -/* Host API enumeration mechanism */ - -/** The type used to enumerate to host APIs at runtime. Values of this type - range from 0 to (Pa_GetHostApiCount()-1). - - @see Pa_GetHostApiCount -*/ -typedef int PaHostApiIndex; - - -/** Retrieve the number of available host APIs. Even if a host API is - available it may have no devices available. - - @return A non-negative value indicating the number of available host APIs - or, a PaErrorCode (which are always negative) if PortAudio is not initialized - or an error is encountered. - - @see PaHostApiIndex -*/ -PaHostApiIndex Pa_GetHostApiCount( void ); - - -/** Retrieve the index of the default host API. The default host API will be - the lowest common denominator host API on the current platform and is - unlikely to provide the best performance. - - @return A non-negative value ranging from 0 to (Pa_GetHostApiCount()-1) - indicating the default host API index or, a PaErrorCode (which are always - negative) if PortAudio is not initialized or an error is encountered. -*/ -PaHostApiIndex Pa_GetDefaultHostApi( void ); - - -/** Unchanging unique identifiers for each supported host API. This type - is used in the PaHostApiInfo structure. The values are guaranteed to be - unique and to never change, thus allowing code to be written that - conditionally uses host API specific extensions. - - New type ids will be allocated when support for a host API reaches - "public alpha" status, prior to that developers should use the - paInDevelopment type id. - - @see PaHostApiInfo -*/ -typedef enum PaHostApiTypeId -{ - paInDevelopment=0, /* use while developing support for a new host API */ - paDirectSound=1, - paMME=2, - paASIO=3, - paSoundManager=4, - paCoreAudio=5, - paOSS=7, - paALSA=8, - paAL=9, - paBeOS=10, - paWDMKS=11, - paJACK=12, - paWASAPI=13, - paAudioScienceHPI=14 -} PaHostApiTypeId; - - -/** A structure containing information about a particular host API. */ - -typedef struct PaHostApiInfo -{ - /** this is struct version 1 */ - int structVersion; - /** The well known unique identifier of this host API @see PaHostApiTypeId */ - PaHostApiTypeId type; - /** A textual description of the host API for display on user interfaces. */ - const char *name; - - /** The number of devices belonging to this host API. This field may be - used in conjunction with Pa_HostApiDeviceIndexToDeviceIndex() to enumerate - all devices for this host API. - @see Pa_HostApiDeviceIndexToDeviceIndex - */ - int deviceCount; - - /** The default input device for this host API. The value will be a - device index ranging from 0 to (Pa_GetDeviceCount()-1), or paNoDevice - if no default input device is available. - */ - PaDeviceIndex defaultInputDevice; - - /** The default output device for this host API. The value will be a - device index ranging from 0 to (Pa_GetDeviceCount()-1), or paNoDevice - if no default output device is available. - */ - PaDeviceIndex defaultOutputDevice; - -} PaHostApiInfo; - - -/** Retrieve a pointer to a structure containing information about a specific - host Api. - - @param hostApi A valid host API index ranging from 0 to (Pa_GetHostApiCount()-1) - - @return A pointer to an immutable PaHostApiInfo structure describing - a specific host API. If the hostApi parameter is out of range or an error - is encountered, the function returns NULL. - - The returned structure is owned by the PortAudio implementation and must not - be manipulated or freed. The pointer is only guaranteed to be valid between - calls to Pa_Initialize() and Pa_Terminate(). -*/ -const PaHostApiInfo * Pa_GetHostApiInfo( PaHostApiIndex hostApi ); - - -/** Convert a static host API unique identifier, into a runtime - host API index. - - @param type A unique host API identifier belonging to the PaHostApiTypeId - enumeration. - - @return A valid PaHostApiIndex ranging from 0 to (Pa_GetHostApiCount()-1) or, - a PaErrorCode (which are always negative) if PortAudio is not initialized - or an error is encountered. - - The paHostApiNotFound error code indicates that the host API specified by the - type parameter is not available. - - @see PaHostApiTypeId -*/ -PaHostApiIndex Pa_HostApiTypeIdToHostApiIndex( PaHostApiTypeId type ); - - -/** Convert a host-API-specific device index to standard PortAudio device index. - This function may be used in conjunction with the deviceCount field of - PaHostApiInfo to enumerate all devices for the specified host API. - - @param hostApi A valid host API index ranging from 0 to (Pa_GetHostApiCount()-1) - - @param hostApiDeviceIndex A valid per-host device index in the range - 0 to (Pa_GetHostApiInfo(hostApi)->deviceCount-1) - - @return A non-negative PaDeviceIndex ranging from 0 to (Pa_GetDeviceCount()-1) - or, a PaErrorCode (which are always negative) if PortAudio is not initialized - or an error is encountered. - - A paInvalidHostApi error code indicates that the host API index specified by - the hostApi parameter is out of range. - - A paInvalidDevice error code indicates that the hostApiDeviceIndex parameter - is out of range. - - @see PaHostApiInfo -*/ -PaDeviceIndex Pa_HostApiDeviceIndexToDeviceIndex( PaHostApiIndex hostApi, - int hostApiDeviceIndex ); - - - -/** Structure used to return information about a host error condition. -*/ -typedef struct PaHostErrorInfo{ - PaHostApiTypeId hostApiType; /**< the host API which returned the error code */ - long errorCode; /**< the error code returned */ - const char *errorText; /**< a textual description of the error if available, otherwise a zero-length string */ -}PaHostErrorInfo; - - -/** Return information about the last host error encountered. The error - information returned by Pa_GetLastHostErrorInfo() will never be modified - asynchronously by errors occurring in other PortAudio owned threads - (such as the thread that manages the stream callback.) - - This function is provided as a last resort, primarily to enhance debugging - by providing clients with access to all available error information. - - @return A pointer to an immutable structure constraining information about - the host error. The values in this structure will only be valid if a - PortAudio function has previously returned the paUnanticipatedHostError - error code. -*/ -const PaHostErrorInfo* Pa_GetLastHostErrorInfo( void ); - - - -/* Device enumeration and capabilities */ - -/** Retrieve the number of available devices. The number of available devices - may be zero. - - @return A non-negative value indicating the number of available devices or, - a PaErrorCode (which are always negative) if PortAudio is not initialized - or an error is encountered. -*/ -PaDeviceIndex Pa_GetDeviceCount( void ); - - -/** Retrieve the index of the default input device. The result can be - used in the inputDevice parameter to Pa_OpenStream(). - - @return The default input device index for the default host API, or paNoDevice - if no default input device is available or an error was encountered. -*/ -PaDeviceIndex Pa_GetDefaultInputDevice( void ); - - -/** Retrieve the index of the default output device. The result can be - used in the outputDevice parameter to Pa_OpenStream(). - - @return The default output device index for the default host API, or paNoDevice - if no default output device is available or an error was encountered. - - @note - On the PC, the user can specify a default device by - setting an environment variable. For example, to use device #1. -
- set PA_RECOMMENDED_OUTPUT_DEVICE=1
-
- The user should first determine the available device ids by using - the supplied application "pa_devs". -*/ -PaDeviceIndex Pa_GetDefaultOutputDevice( void ); - - -/** The type used to represent monotonic time in seconds. PaTime is - used for the fields of the PaStreamCallbackTimeInfo argument to the - PaStreamCallback and as the result of Pa_GetStreamTime(). - - PaTime values have unspecified origin. - - @see PaStreamCallback, PaStreamCallbackTimeInfo, Pa_GetStreamTime -*/ -typedef double PaTime; - - -/** A type used to specify one or more sample formats. Each value indicates - a possible format for sound data passed to and from the stream callback, - Pa_ReadStream and Pa_WriteStream. - - The standard formats paFloat32, paInt16, paInt32, paInt24, paInt8 - and aUInt8 are usually implemented by all implementations. - - The floating point representation (paFloat32) uses +1.0 and -1.0 as the - maximum and minimum respectively. - - paUInt8 is an unsigned 8 bit format where 128 is considered "ground" - - The paNonInterleaved flag indicates that audio data is passed as an array - of pointers to separate buffers, one buffer for each channel. Usually, - when this flag is not used, audio data is passed as a single buffer with - all channels interleaved. - - @see Pa_OpenStream, Pa_OpenDefaultStream, PaDeviceInfo - @see paFloat32, paInt16, paInt32, paInt24, paInt8 - @see paUInt8, paCustomFormat, paNonInterleaved -*/ -typedef unsigned long PaSampleFormat; - - -#define paFloat32 ((PaSampleFormat) 0x00000001) /**< @see PaSampleFormat */ -#define paInt32 ((PaSampleFormat) 0x00000002) /**< @see PaSampleFormat */ -#define paInt24 ((PaSampleFormat) 0x00000004) /**< Packed 24 bit format. @see PaSampleFormat */ -#define paInt16 ((PaSampleFormat) 0x00000008) /**< @see PaSampleFormat */ -#define paInt8 ((PaSampleFormat) 0x00000010) /**< @see PaSampleFormat */ -#define paUInt8 ((PaSampleFormat) 0x00000020) /**< @see PaSampleFormat */ -#define paCustomFormat ((PaSampleFormat) 0x00010000) /**< @see PaSampleFormat */ - -#define paNonInterleaved ((PaSampleFormat) 0x80000000) /**< @see PaSampleFormat */ - -/** A structure providing information and capabilities of PortAudio devices. - Devices may support input, output or both input and output. -*/ -typedef struct PaDeviceInfo -{ - int structVersion; /* this is struct version 2 */ - const char *name; - PaHostApiIndex hostApi; /**< note this is a host API index, not a type id*/ - - int maxInputChannels; - int maxOutputChannels; - - /** Default latency values for interactive performance. */ - PaTime defaultLowInputLatency; - PaTime defaultLowOutputLatency; - /** Default latency values for robust non-interactive applications (eg. playing sound files). */ - PaTime defaultHighInputLatency; - PaTime defaultHighOutputLatency; - - double defaultSampleRate; -} PaDeviceInfo; - - -/** Retrieve a pointer to a PaDeviceInfo structure containing information - about the specified device. - @return A pointer to an immutable PaDeviceInfo structure. If the device - parameter is out of range the function returns NULL. - - @param device A valid device index in the range 0 to (Pa_GetDeviceCount()-1) - - @note PortAudio manages the memory referenced by the returned pointer, - the client must not manipulate or free the memory. The pointer is only - guaranteed to be valid between calls to Pa_Initialize() and Pa_Terminate(). - - @see PaDeviceInfo, PaDeviceIndex -*/ -const PaDeviceInfo* Pa_GetDeviceInfo( PaDeviceIndex device ); - - -/** Parameters for one direction (input or output) of a stream. -*/ -typedef struct PaStreamParameters -{ - /** A valid device index in the range 0 to (Pa_GetDeviceCount()-1) - specifying the device to be used or the special constant - paUseHostApiSpecificDeviceSpecification which indicates that the actual - device(s) to use are specified in hostApiSpecificStreamInfo. - This field must not be set to paNoDevice. - */ - PaDeviceIndex device; - - /** The number of channels of sound to be delivered to the - stream callback or accessed by Pa_ReadStream() or Pa_WriteStream(). - It can range from 1 to the value of maxInputChannels in the - PaDeviceInfo record for the device specified by the device parameter. - */ - int channelCount; - - /** The sample format of the buffer provided to the stream callback, - a_ReadStream() or Pa_WriteStream(). It may be any of the formats described - by the PaSampleFormat enumeration. - */ - PaSampleFormat sampleFormat; - - /** The desired latency in seconds. Where practical, implementations should - configure their latency based on these parameters, otherwise they may - choose the closest viable latency instead. Unless the suggested latency - is greater than the absolute upper limit for the device implementations - should round the suggestedLatency up to the next practical value - ie to - provide an equal or higher latency than suggestedLatency wherever possible. - Actual latency values for an open stream may be retrieved using the - inputLatency and outputLatency fields of the PaStreamInfo structure - returned by Pa_GetStreamInfo(). - @see default*Latency in PaDeviceInfo, *Latency in PaStreamInfo - */ - PaTime suggestedLatency; - - /** An optional pointer to a host api specific data structure - containing additional information for device setup and/or stream processing. - hostApiSpecificStreamInfo is never required for correct operation, - if not used it should be set to NULL. - */ - void *hostApiSpecificStreamInfo; - -} PaStreamParameters; - - -/** Return code for Pa_IsFormatSupported indicating success. */ -#define paFormatIsSupported (0) - -/** Determine whether it would be possible to open a stream with the specified - parameters. - - @param inputParameters A structure that describes the input parameters used to - open a stream. The suggestedLatency field is ignored. See PaStreamParameters - for a description of these parameters. inputParameters must be NULL for - output-only streams. - - @param outputParameters A structure that describes the output parameters used - to open a stream. The suggestedLatency field is ignored. See PaStreamParameters - for a description of these parameters. outputParameters must be NULL for - input-only streams. - - @param sampleRate The required sampleRate. For full-duplex streams it is the - sample rate for both input and output - - @return Returns 0 if the format is supported, and an error code indicating why - the format is not supported otherwise. The constant paFormatIsSupported is - provided to compare with the return value for success. - - @see paFormatIsSupported, PaStreamParameters -*/ -PaError Pa_IsFormatSupported( const PaStreamParameters *inputParameters, - const PaStreamParameters *outputParameters, - double sampleRate ); - - - -/* Streaming types and functions */ - - -/** - A single PaStream can provide multiple channels of real-time - streaming audio input and output to a client application. A stream - provides access to audio hardware represented by one or more - PaDevices. Depending on the underlying Host API, it may be possible - to open multiple streams using the same device, however this behavior - is implementation defined. Portable applications should assume that - a PaDevice may be simultaneously used by at most one PaStream. - - Pointers to PaStream objects are passed between PortAudio functions that - operate on streams. - - @see Pa_OpenStream, Pa_OpenDefaultStream, Pa_OpenDefaultStream, Pa_CloseStream, - Pa_StartStream, Pa_StopStream, Pa_AbortStream, Pa_IsStreamActive, - Pa_GetStreamTime, Pa_GetStreamCpuLoad - -*/ -typedef void PaStream; - - -/** Can be passed as the framesPerBuffer parameter to Pa_OpenStream() - or Pa_OpenDefaultStream() to indicate that the stream callback will - accept buffers of any size. -*/ -#define paFramesPerBufferUnspecified (0) - - -/** Flags used to control the behavior of a stream. They are passed as - parameters to Pa_OpenStream or Pa_OpenDefaultStream. Multiple flags may be - ORed together. - - @see Pa_OpenStream, Pa_OpenDefaultStream - @see paNoFlag, paClipOff, paDitherOff, paNeverDropInput, - paPrimeOutputBuffersUsingStreamCallback, paPlatformSpecificFlags -*/ -typedef unsigned long PaStreamFlags; - -/** @see PaStreamFlags */ -#define paNoFlag ((PaStreamFlags) 0) - -/** Disable default clipping of out of range samples. - @see PaStreamFlags -*/ -#define paClipOff ((PaStreamFlags) 0x00000001) - -/** Disable default dithering. - @see PaStreamFlags -*/ -#define paDitherOff ((PaStreamFlags) 0x00000002) - -/** Flag requests that where possible a full duplex stream will not discard - overflowed input samples without calling the stream callback. This flag is - only valid for full duplex callback streams and only when used in combination - with the paFramesPerBufferUnspecified (0) framesPerBuffer parameter. Using - this flag incorrectly results in a paInvalidFlag error being returned from - Pa_OpenStream and Pa_OpenDefaultStream. - - @see PaStreamFlags, paFramesPerBufferUnspecified -*/ -#define paNeverDropInput ((PaStreamFlags) 0x00000004) - -/** Call the stream callback to fill initial output buffers, rather than the - default behavior of priming the buffers with zeros (silence). This flag has - no effect for input-only and blocking read/write streams. - - @see PaStreamFlags -*/ -#define paPrimeOutputBuffersUsingStreamCallback ((PaStreamFlags) 0x00000008) - -/** A mask specifying the platform specific bits. - @see PaStreamFlags -*/ -#define paPlatformSpecificFlags ((PaStreamFlags)0xFFFF0000) - -/** - Timing information for the buffers passed to the stream callback. - - Time values are expressed in seconds and are synchronised with the time base used by Pa_GetStreamTime() for the associated stream. - - @see PaStreamCallback, Pa_GetStreamTime -*/ -typedef struct PaStreamCallbackTimeInfo{ - PaTime inputBufferAdcTime; /**< The time when the first sample of the input buffer was captured at the ADC input */ - PaTime currentTime; /**< The time when the stream callback was invoked */ - PaTime outputBufferDacTime; /**< The time when the first sample of the output buffer will output the DAC */ -} PaStreamCallbackTimeInfo; - - -/** - Flag bit constants for the statusFlags to PaStreamCallback. - - @see paInputUnderflow, paInputOverflow, paOutputUnderflow, paOutputOverflow, - paPrimingOutput -*/ -typedef unsigned long PaStreamCallbackFlags; - -/** In a stream opened with paFramesPerBufferUnspecified, indicates that - input data is all silence (zeros) because no real data is available. In a - stream opened without paFramesPerBufferUnspecified, it indicates that one or - more zero samples have been inserted into the input buffer to compensate - for an input underflow. - @see PaStreamCallbackFlags -*/ -#define paInputUnderflow ((PaStreamCallbackFlags) 0x00000001) - -/** In a stream opened with paFramesPerBufferUnspecified, indicates that data - prior to the first sample of the input buffer was discarded due to an - overflow, possibly because the stream callback is using too much CPU time. - Otherwise indicates that data prior to one or more samples in the - input buffer was discarded. - @see PaStreamCallbackFlags -*/ -#define paInputOverflow ((PaStreamCallbackFlags) 0x00000002) - -/** Indicates that output data (or a gap) was inserted, possibly because the - stream callback is using too much CPU time. - @see PaStreamCallbackFlags -*/ -#define paOutputUnderflow ((PaStreamCallbackFlags) 0x00000004) - -/** Indicates that output data will be discarded because no room is available. - @see PaStreamCallbackFlags -*/ -#define paOutputOverflow ((PaStreamCallbackFlags) 0x00000008) - -/** Some of all of the output data will be used to prime the stream, input - data may be zero. - @see PaStreamCallbackFlags -*/ -#define paPrimingOutput ((PaStreamCallbackFlags) 0x00000010) - -/** - Allowable return values for the PaStreamCallback. - @see PaStreamCallback -*/ -typedef enum PaStreamCallbackResult -{ - paContinue=0, /**< Signal that the stream should continue invoking the callback and processing audio. */ - paComplete=1, /**< Signal that the stream should stop invoking the callback and finish once all output samples have played. */ - paAbort=2 /**< Signal that the stream should stop invoking the callback and finish as soon as possible. */ -} PaStreamCallbackResult; - - -/** - Functions of type PaStreamCallback are implemented by PortAudio clients. - They consume, process or generate audio in response to requests from an - active PortAudio stream. - - When a stream is running, PortAudio calls the stream callback periodically. - The callback function is responsible for processing buffers of audio samples - passed via the input and output parameters. - - The PortAudio stream callback runs at very high or real-time priority. - It is required to consistently meet its time deadlines. Do not allocate - memory, access the file system, call library functions or call other functions - from the stream callback that may block or take an unpredictable amount of - time to complete. - - In order for a stream to maintain glitch-free operation the callback - must consume and return audio data faster than it is recorded and/or - played. PortAudio anticipates that each callback invocation may execute for - a duration approaching the duration of frameCount audio frames at the stream - sample rate. It is reasonable to expect to be able to utilise 70% or more of - the available CPU time in the PortAudio callback. However, due to buffer size - adaption and other factors, not all host APIs are able to guarantee audio - stability under heavy CPU load with arbitrary fixed callback buffer sizes. - When high callback CPU utilisation is required the most robust behavior - can be achieved by using paFramesPerBufferUnspecified as the - Pa_OpenStream() framesPerBuffer parameter. - - @param input and @param output are either arrays of interleaved samples or; - if non-interleaved samples were requested using the paNonInterleaved sample - format flag, an array of buffer pointers, one non-interleaved buffer for - each channel. - - The format, packing and number of channels used by the buffers are - determined by parameters to Pa_OpenStream(). - - @param frameCount The number of sample frames to be processed by - the stream callback. - - @param timeInfo Timestamps indicating the ADC capture time of the first sample - in the input buffer, the DAC output time of the first sample in the output buffer - and the time the callback was invoked. - See PaStreamCallbackTimeInfo and Pa_GetStreamTime() - - @param statusFlags Flags indicating whether input and/or output buffers - have been inserted or will be dropped to overcome underflow or overflow - conditions. - - @param userData The value of a user supplied pointer passed to - Pa_OpenStream() intended for storing synthesis data etc. - - @return - The stream callback should return one of the values in the - ::PaStreamCallbackResult enumeration. To ensure that the callback continues - to be called, it should return paContinue (0). Either paComplete or paAbort - can be returned to finish stream processing, after either of these values is - returned the callback will not be called again. If paAbort is returned the - stream will finish as soon as possible. If paComplete is returned, the stream - will continue until all buffers generated by the callback have been played. - This may be useful in applications such as soundfile players where a specific - duration of output is required. However, it is not necessary to utilize this - mechanism as Pa_StopStream(), Pa_AbortStream() or Pa_CloseStream() can also - be used to stop the stream. The callback must always fill the entire output - buffer irrespective of its return value. - - @see Pa_OpenStream, Pa_OpenDefaultStream - - @note With the exception of Pa_GetStreamCpuLoad() it is not permissible to call - PortAudio API functions from within the stream callback. -*/ -typedef int PaStreamCallback( - const void *input, void *output, - unsigned long frameCount, - const PaStreamCallbackTimeInfo* timeInfo, - PaStreamCallbackFlags statusFlags, - void *userData ); - - -/** Opens a stream for either input, output or both. - - @param stream The address of a PaStream pointer which will receive - a pointer to the newly opened stream. - - @param inputParameters A structure that describes the input parameters used by - the opened stream. See PaStreamParameters for a description of these parameters. - inputParameters must be NULL for output-only streams. - - @param outputParameters A structure that describes the output parameters used by - the opened stream. See PaStreamParameters for a description of these parameters. - outputParameters must be NULL for input-only streams. - - @param sampleRate The desired sampleRate. For full-duplex streams it is the - sample rate for both input and output. Note that the actual sampleRate - may differ very slightly from the desired rate because of hardware limitations. - The exact rate can be queried using Pa_GetStreamInfo(). If nothing close - to the desired sampleRate is available then the open will fail and return an error. - - @param framesPerBuffer The number of frames passed to the stream callback - function, or the preferred block granularity for a blocking read/write stream. - The special value paFramesPerBufferUnspecified (0) may be used to request that - the stream callback will receive an optimal (and possibly varying) number of - frames based on host requirements and the requested latency settings. - Note: With some host APIs, the use of non-zero framesPerBuffer for a callback - stream may introduce an additional layer of buffering which could introduce - additional latency. PortAudio guarantees that the additional latency - will be kept to the theoretical minimum however, it is strongly recommended - that a non-zero framesPerBuffer value only be used when your algorithm - requires a fixed number of frames per stream callback. - - @param streamFlags Flags which modify the behavior of the streaming process. - This parameter may contain a combination of flags ORed together. Some flags may - only be relevant to certain buffer formats. - - @param streamCallback A pointer to a client supplied function that is responsible - for processing and filling input and output buffers. If this parameter is NULL - the stream will be opened in 'blocking read/write' mode. In blocking mode, - the client can receive sample data using Pa_ReadStream and write sample data - using Pa_WriteStream, the number of samples that may be read or written - without blocking is returned by Pa_GetStreamReadAvailable and - Pa_GetStreamWriteAvailable respectively. - - @param userData A client supplied pointer which is passed to the stream callback - function. It could for example, contain a pointer to instance data necessary - for processing the audio buffers. This parameter is ignored if streamCallback - is NULL. - - @return - Upon success Pa_OpenStream() returns paNoError and places a pointer to a - valid PaStream in the stream argument. The stream is inactive (stopped). - If a call to Pa_OpenStream() fails, a non-zero error code is returned (see - PaError for possible error codes) and the value of stream is invalid. - - @see PaStreamParameters, PaStreamCallback, Pa_ReadStream, Pa_WriteStream, - Pa_GetStreamReadAvailable, Pa_GetStreamWriteAvailable -*/ -PaError Pa_OpenStream( PaStream** stream, - const PaStreamParameters *inputParameters, - const PaStreamParameters *outputParameters, - double sampleRate, - unsigned long framesPerBuffer, - PaStreamFlags streamFlags, - PaStreamCallback *streamCallback, - void *userData ); - - -/** A simplified version of Pa_OpenStream() that opens the default input - and/or output devices. - - @param stream The address of a PaStream pointer which will receive - a pointer to the newly opened stream. - - @param numInputChannels The number of channels of sound that will be supplied - to the stream callback or returned by Pa_ReadStream. It can range from 1 to - the value of maxInputChannels in the PaDeviceInfo record for the default input - device. If 0 the stream is opened as an output-only stream. - - @param numOutputChannels The number of channels of sound to be delivered to the - stream callback or passed to Pa_WriteStream. It can range from 1 to the value - of maxOutputChannels in the PaDeviceInfo record for the default output device. - If 0 the stream is opened as an output-only stream. - - @param sampleFormat The sample format of both the input and output buffers - provided to the callback or passed to and from Pa_ReadStream and Pa_WriteStream. - sampleFormat may be any of the formats described by the PaSampleFormat - enumeration. - - @param sampleRate Same as Pa_OpenStream parameter of the same name. - @param framesPerBuffer Same as Pa_OpenStream parameter of the same name. - @param streamCallback Same as Pa_OpenStream parameter of the same name. - @param userData Same as Pa_OpenStream parameter of the same name. - - @return As for Pa_OpenStream - - @see Pa_OpenStream, PaStreamCallback -*/ -PaError Pa_OpenDefaultStream( PaStream** stream, - int numInputChannels, - int numOutputChannels, - PaSampleFormat sampleFormat, - double sampleRate, - unsigned long framesPerBuffer, - PaStreamCallback *streamCallback, - void *userData ); - - -/** Closes an audio stream. If the audio stream is active it - discards any pending buffers as if Pa_AbortStream() had been called. -*/ -PaError Pa_CloseStream( PaStream *stream ); - - -/** Functions of type PaStreamFinishedCallback are implemented by PortAudio - clients. They can be registered with a stream using the Pa_SetStreamFinishedCallback - function. Once registered they are called when the stream becomes inactive - (ie once a call to Pa_StopStream() will not block). - A stream will become inactive after the stream callback returns non-zero, - or when Pa_StopStream or Pa_AbortStream is called. For a stream providing audio - output, if the stream callback returns paComplete, or Pa_StopStream() is called, - the stream finished callback will not be called until all generated sample data - has been played. - - @param userData The userData parameter supplied to Pa_OpenStream() - - @see Pa_SetStreamFinishedCallback -*/ -typedef void PaStreamFinishedCallback( void *userData ); - - -/** Register a stream finished callback function which will be called when the - stream becomes inactive. See the description of PaStreamFinishedCallback for - further details about when the callback will be called. - - @param stream a pointer to a PaStream that is in the stopped state - if the - stream is not stopped, the stream's finished callback will remain unchanged - and an error code will be returned. - - @param streamFinishedCallback a pointer to a function with the same signature - as PaStreamFinishedCallback, that will be called when the stream becomes - inactive. Passing NULL for this parameter will un-register a previously - registered stream finished callback function. - - @return on success returns paNoError, otherwise an error code indicating the cause - of the error. - - @see PaStreamFinishedCallback -*/ -PaError Pa_SetStreamFinishedCallback( PaStream *stream, PaStreamFinishedCallback* streamFinishedCallback ); - - -/** Commences audio processing. -*/ -PaError Pa_StartStream( PaStream *stream ); - - -/** Terminates audio processing. It waits until all pending - audio buffers have been played before it returns. -*/ -PaError Pa_StopStream( PaStream *stream ); - - -/** Terminates audio processing immediately without waiting for pending - buffers to complete. -*/ -PaError Pa_AbortStream( PaStream *stream ); - - -/** Determine whether the stream is stopped. - A stream is considered to be stopped prior to a successful call to - Pa_StartStream and after a successful call to Pa_StopStream or Pa_AbortStream. - If a stream callback returns a value other than paContinue the stream is NOT - considered to be stopped. - - @return Returns one (1) when the stream is stopped, zero (0) when - the stream is running or, a PaErrorCode (which are always negative) if - PortAudio is not initialized or an error is encountered. - - @see Pa_StopStream, Pa_AbortStream, Pa_IsStreamActive -*/ -PaError Pa_IsStreamStopped( PaStream *stream ); - - -/** Determine whether the stream is active. - A stream is active after a successful call to Pa_StartStream(), until it - becomes inactive either as a result of a call to Pa_StopStream() or - Pa_AbortStream(), or as a result of a return value other than paContinue from - the stream callback. In the latter case, the stream is considered inactive - after the last buffer has finished playing. - - @return Returns one (1) when the stream is active (ie playing or recording - audio), zero (0) when not playing or, a PaErrorCode (which are always negative) - if PortAudio is not initialized or an error is encountered. - - @see Pa_StopStream, Pa_AbortStream, Pa_IsStreamStopped -*/ -PaError Pa_IsStreamActive( PaStream *stream ); - - - -/** A structure containing unchanging information about an open stream. - @see Pa_GetStreamInfo -*/ - -typedef struct PaStreamInfo -{ - /** this is struct version 1 */ - int structVersion; - - /** The input latency of the stream in seconds. This value provides the most - accurate estimate of input latency available to the implementation. It may - differ significantly from the suggestedLatency value passed to Pa_OpenStream(). - The value of this field will be zero (0.) for output-only streams. - @see PaTime - */ - PaTime inputLatency; - - /** The output latency of the stream in seconds. This value provides the most - accurate estimate of output latency available to the implementation. It may - differ significantly from the suggestedLatency value passed to Pa_OpenStream(). - The value of this field will be zero (0.) for input-only streams. - @see PaTime - */ - PaTime outputLatency; - - /** The sample rate of the stream in Hertz (samples per second). In cases - where the hardware sample rate is inaccurate and PortAudio is aware of it, - the value of this field may be different from the sampleRate parameter - passed to Pa_OpenStream(). If information about the actual hardware sample - rate is not available, this field will have the same value as the sampleRate - parameter passed to Pa_OpenStream(). - */ - double sampleRate; - -} PaStreamInfo; - - -/** Retrieve a pointer to a PaStreamInfo structure containing information - about the specified stream. - @return A pointer to an immutable PaStreamInfo structure. If the stream - parameter is invalid, or an error is encountered, the function returns NULL. - - @param stream A pointer to an open stream previously created with Pa_OpenStream. - - @note PortAudio manages the memory referenced by the returned pointer, - the client must not manipulate or free the memory. The pointer is only - guaranteed to be valid until the specified stream is closed. - - @see PaStreamInfo -*/ -const PaStreamInfo* Pa_GetStreamInfo( PaStream *stream ); - - -/** Returns the current time in seconds for a stream according to the same clock used - to generate callback PaStreamCallbackTimeInfo timestamps. The time values are - monotonically increasing and have unspecified origin. - - Pa_GetStreamTime returns valid time values for the entire life of the stream, - from when the stream is opened until it is closed. Starting and stopping the stream - does not affect the passage of time returned by Pa_GetStreamTime. - - This time may be used for synchronizing other events to the audio stream, for - example synchronizing audio to MIDI. - - @return The stream's current time in seconds, or 0 if an error occurred. - - @see PaTime, PaStreamCallback, PaStreamCallbackTimeInfo -*/ -PaTime Pa_GetStreamTime( PaStream *stream ); - - -/** Retrieve CPU usage information for the specified stream. - The "CPU Load" is a fraction of total CPU time consumed by a callback stream's - audio processing routines including, but not limited to the client supplied - stream callback. This function does not work with blocking read/write streams. - - This function may be called from the stream callback function or the - application. - - @return - A floating point value, typically between 0.0 and 1.0, where 1.0 indicates - that the stream callback is consuming the maximum number of CPU cycles possible - to maintain real-time operation. A value of 0.5 would imply that PortAudio and - the stream callback was consuming roughly 50% of the available CPU time. The - return value may exceed 1.0. A value of 0.0 will always be returned for a - blocking read/write stream, or if an error occurs. -*/ -double Pa_GetStreamCpuLoad( PaStream* stream ); - - -/** Read samples from an input stream. The function doesn't return until - the entire buffer has been filled - this may involve waiting for the operating - system to supply the data. - - @param stream A pointer to an open stream previously created with Pa_OpenStream. - - @param buffer A pointer to a buffer of sample frames. The buffer contains - samples in the format specified by the inputParameters->sampleFormat field - used to open the stream, and the number of channels specified by - inputParameters->numChannels. If non-interleaved samples were requested using - the paNonInterleaved sample format flag, buffer is a pointer to the first element - of an array of buffer pointers, one non-interleaved buffer for each channel. - - @param frames The number of frames to be read into buffer. This parameter - is not constrained to a specific range, however high performance applications - will want to match this parameter to the framesPerBuffer parameter used - when opening the stream. - - @return On success PaNoError will be returned, or PaInputOverflowed if input - data was discarded by PortAudio after the previous call and before this call. -*/ -PaError Pa_ReadStream( PaStream* stream, - void *buffer, - unsigned long frames ); - - -/** Write samples to an output stream. This function doesn't return until the - entire buffer has been written - this may involve waiting for the operating - system to consume the data. - - @param stream A pointer to an open stream previously created with Pa_OpenStream. - - @param buffer A pointer to a buffer of sample frames. The buffer contains - samples in the format specified by the outputParameters->sampleFormat field - used to open the stream, and the number of channels specified by - outputParameters->numChannels. If non-interleaved samples were requested using - the paNonInterleaved sample format flag, buffer is a pointer to the first element - of an array of buffer pointers, one non-interleaved buffer for each channel. - - @param frames The number of frames to be written from buffer. This parameter - is not constrained to a specific range, however high performance applications - will want to match this parameter to the framesPerBuffer parameter used - when opening the stream. - - @return On success PaNoError will be returned, or paOutputUnderflowed if - additional output data was inserted after the previous call and before this - call. -*/ -PaError Pa_WriteStream( PaStream* stream, - const void *buffer, - unsigned long frames ); - - -/** Retrieve the number of frames that can be read from the stream without - waiting. - - @return Returns a non-negative value representing the maximum number of frames - that can be read from the stream without blocking or busy waiting or, a - PaErrorCode (which are always negative) if PortAudio is not initialized or an - error is encountered. -*/ -signed long Pa_GetStreamReadAvailable( PaStream* stream ); - - -/** Retrieve the number of frames that can be written to the stream without - waiting. - - @return Returns a non-negative value representing the maximum number of frames - that can be written to the stream without blocking or busy waiting or, a - PaErrorCode (which are always negative) if PortAudio is not initialized or an - error is encountered. -*/ -signed long Pa_GetStreamWriteAvailable( PaStream* stream ); - - -/* Miscellaneous utilities */ - - -/** Retrieve the size of a given sample format in bytes. - - @return The size in bytes of a single sample in the specified format, - or paSampleFormatNotSupported if the format is not supported. -*/ -PaError Pa_GetSampleSize( PaSampleFormat format ); - - -/** Put the caller to sleep for at least 'msec' milliseconds. This function is - provided only as a convenience for authors of portable code (such as the tests - and examples in the PortAudio distribution.) - - The function may sleep longer than requested so don't rely on this for accurate - musical timing. -*/ -void Pa_Sleep( long msec ); - - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ -#endif /* PORTAUDIO_H */ diff --git a/src/apps/portaudio/lib64/libportaudio.so b/src/apps/portaudio/lib64/libportaudio.so deleted file mode 100644 index f5a944dbd641af777297d26984a871139d5f5c11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 590320 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

SeaRpPXzpf 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%0A`6i54iY2}-G?sM; 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

I#>!vs{9RA`BIh= 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