From e6d0ddf4d4d6b4fd4f4e75662eb4250f77c6f8e1 Mon Sep 17 00:00:00 2001 From: Bassem Girgis Date: Thu, 15 Aug 2019 02:40:14 -0500 Subject: [PATCH] update windows libs --- noarch/include/node/common.gypi | 72 +- noarch/include/node/config.gypi | 5 +- noarch/include/node/node.h | 31 +- noarch/include/node/node_api.h | 15 +- noarch/include/node/node_api_types.h | 12 +- noarch/include/node/node_object_wrap.h | 1 - noarch/include/node/node_version.h | 6 +- .../archs/BSD-x86_64/asm/crypto/buildinf.h | 75 +- .../asm/crypto/include/internal/dso_conf.h | 5 +- .../asm/include/openssl/opensslconf.h | 39 +- .../archs/BSD-x86_64/asm/include/progs.h | 443 +++-- .../BSD-x86_64/asm_avx2/crypto/buildinf.h | 48 + .../crypto/include/internal/bn_conf.h | 28 + .../crypto/include/internal/dso_conf.h | 17 + .../asm_avx2/include/openssl/opensslconf.h | 198 +++ .../archs/BSD-x86_64/asm_avx2/include/progs.h | 507 ++++++ .../archs/BSD-x86_64/no-asm/crypto/buildinf.h | 42 +- .../no-asm/crypto/include/internal/dso_conf.h | 5 +- .../no-asm/include/openssl/opensslconf.h | 39 +- .../archs/BSD-x86_64/no-asm/include/progs.h | 443 +++-- .../archs/VC-WIN32/asm/crypto/buildinf.h | 47 +- .../asm/crypto/include/internal/dso_conf.h | 6 +- .../asm/include/openssl/opensslconf.h | 42 +- .../archs/VC-WIN32/asm/include/progs.h | 443 +++-- .../archs/VC-WIN32/asm_avx2/crypto/buildinf.h | 45 + .../crypto/include/internal/bn_conf.h | 28 + .../crypto/include/internal/dso_conf.h | 16 + .../asm_avx2/include/openssl/opensslconf.h | 204 +++ .../archs/VC-WIN32/asm_avx2/include/progs.h | 507 ++++++ .../archs/VC-WIN32/no-asm/crypto/buildinf.h | 47 +- .../no-asm/crypto/include/internal/dso_conf.h | 6 +- .../no-asm/include/openssl/opensslconf.h | 42 +- .../archs/VC-WIN32/no-asm/include/progs.h | 443 +++-- .../VC-WIN64-ARM/no-asm/crypto/buildinf.h | 29 + .../no-asm/crypto/include/internal/bn_conf.h | 28 + .../no-asm/crypto/include/internal/dso_conf.h | 16 + .../no-asm/include/openssl/opensslconf.h | 207 +++ .../archs/VC-WIN64-ARM/no-asm/include/progs.h | 507 ++++++ .../archs/VC-WIN64A/asm/crypto/buildinf.h | 25 +- .../asm/crypto/include/internal/dso_conf.h | 6 +- .../asm/include/openssl/opensslconf.h | 42 +- .../archs/VC-WIN64A/asm/include/progs.h | 443 +++-- .../VC-WIN64A/asm_avx2/crypto/buildinf.h | 23 + .../crypto/include/internal/bn_conf.h | 28 + .../crypto/include/internal/dso_conf.h | 16 + .../asm_avx2/include/openssl/opensslconf.h | 204 +++ .../archs/VC-WIN64A/asm_avx2/include/progs.h | 507 ++++++ .../archs/VC-WIN64A/no-asm/crypto/buildinf.h | 25 +- .../no-asm/crypto/include/internal/dso_conf.h | 6 +- .../no-asm/include/openssl/opensslconf.h | 42 +- .../archs/VC-WIN64A/no-asm/include/progs.h | 443 +++-- .../archs/aix-gcc/asm/crypto/buildinf.h | 54 +- .../asm/crypto/include/internal/dso_conf.h | 5 +- .../aix-gcc/asm/include/openssl/opensslconf.h | 42 +- .../openssl/archs/aix-gcc/asm/include/progs.h | 443 +++-- .../archs/aix-gcc/asm_avx2/crypto/buildinf.h | 36 + .../crypto/include/internal/bn_conf.h | 28 + .../crypto/include/internal/dso_conf.h | 17 + .../asm_avx2/include/openssl/opensslconf.h | 204 +++ .../archs/aix-gcc/asm_avx2/include/progs.h | 507 ++++++ .../archs/aix-gcc/no-asm/crypto/buildinf.h | 39 +- .../no-asm/crypto/include/internal/dso_conf.h | 5 +- .../no-asm/include/openssl/opensslconf.h | 42 +- .../archs/aix-gcc/no-asm/include/progs.h | 443 +++-- .../archs/aix64-gcc/asm/crypto/buildinf.h | 57 +- .../asm/crypto/include/internal/dso_conf.h | 5 +- .../asm/include/openssl/opensslconf.h | 42 +- .../archs/aix64-gcc/asm/include/progs.h | 443 +++-- .../aix64-gcc/asm_avx2/crypto/buildinf.h | 39 + .../crypto/include/internal/bn_conf.h | 28 + .../crypto/include/internal/dso_conf.h | 17 + .../asm_avx2/include/openssl/opensslconf.h | 204 +++ .../archs/aix64-gcc/asm_avx2/include/progs.h | 507 ++++++ .../archs/aix64-gcc/no-asm/crypto/buildinf.h | 40 +- .../no-asm/crypto/include/internal/dso_conf.h | 5 +- .../no-asm/include/openssl/opensslconf.h | 42 +- .../archs/aix64-gcc/no-asm/include/progs.h | 443 +++-- .../darwin-i386-cc/asm/crypto/buildinf.h | 77 +- .../asm/crypto/include/internal/dso_conf.h | 5 +- .../asm/include/openssl/opensslconf.h | 42 +- .../archs/darwin-i386-cc/asm/include/progs.h | 443 +++-- .../darwin-i386-cc/asm_avx2/crypto/buildinf.h | 48 + .../crypto/include/internal/bn_conf.h | 28 + .../crypto/include/internal/dso_conf.h | 17 + .../asm_avx2/include/openssl/opensslconf.h | 204 +++ .../darwin-i386-cc/asm_avx2/include/progs.h | 507 ++++++ .../darwin-i386-cc/no-asm/crypto/buildinf.h | 42 +- .../no-asm/crypto/include/internal/dso_conf.h | 5 +- .../no-asm/include/openssl/opensslconf.h | 42 +- .../darwin-i386-cc/no-asm/include/progs.h | 443 +++-- .../darwin64-x86_64-cc/asm/crypto/buildinf.h | 74 +- .../asm/crypto/include/internal/dso_conf.h | 5 +- .../asm/include/openssl/opensslconf.h | 42 +- .../darwin64-x86_64-cc/asm/include/progs.h | 443 +++-- .../asm_avx2/crypto/buildinf.h | 47 + .../crypto/include/internal/bn_conf.h | 28 + .../crypto/include/internal/dso_conf.h | 17 + .../asm_avx2/include/openssl/opensslconf.h | 204 +++ .../asm_avx2/include/progs.h | 507 ++++++ .../no-asm/crypto/buildinf.h | 41 +- .../no-asm/crypto/include/internal/dso_conf.h | 5 +- .../no-asm/include/openssl/opensslconf.h | 42 +- .../darwin64-x86_64-cc/no-asm/include/progs.h | 443 +++-- .../archs/linux-aarch64/asm/crypto/buildinf.h | 56 +- .../asm/crypto/include/internal/dso_conf.h | 5 +- .../asm/include/openssl/opensslconf.h | 42 +- .../archs/linux-aarch64/asm/include/progs.h | 443 +++-- .../linux-aarch64/asm_avx2/crypto/buildinf.h | 39 + .../crypto/include/internal/bn_conf.h | 28 + .../crypto/include/internal/dso_conf.h | 17 + .../asm_avx2/include/openssl/opensslconf.h | 201 +++ .../linux-aarch64/asm_avx2/include/progs.h | 507 ++++++ .../linux-aarch64/no-asm/crypto/buildinf.h | 41 +- .../no-asm/crypto/include/internal/dso_conf.h | 5 +- .../no-asm/include/openssl/opensslconf.h | 42 +- .../linux-aarch64/no-asm/include/progs.h | 443 +++-- .../archs/linux-armv4/asm/crypto/buildinf.h | 61 +- .../asm/crypto/include/internal/dso_conf.h | 5 +- .../asm/include/openssl/opensslconf.h | 42 +- .../archs/linux-armv4/asm/include/progs.h | 443 +++-- .../linux-armv4/asm_avx2/crypto/buildinf.h | 42 + .../crypto/include/internal/bn_conf.h | 28 + .../crypto/include/internal/dso_conf.h | 17 + .../asm_avx2/include/openssl/opensslconf.h | 201 +++ .../linux-armv4/asm_avx2/include/progs.h | 507 ++++++ .../linux-armv4/no-asm/crypto/buildinf.h | 41 +- .../no-asm/crypto/include/internal/dso_conf.h | 5 +- .../no-asm/include/openssl/opensslconf.h | 42 +- .../archs/linux-armv4/no-asm/include/progs.h | 443 +++-- .../archs/linux-elf/asm/crypto/buildinf.h | 75 +- .../asm/crypto/include/internal/dso_conf.h | 5 +- .../asm/include/openssl/opensslconf.h | 42 +- .../archs/linux-elf/asm/include/progs.h | 443 +++-- .../linux-elf/asm_avx2/crypto/buildinf.h | 49 + .../crypto/include/internal/bn_conf.h | 28 + .../crypto/include/internal/dso_conf.h | 17 + .../asm_avx2/include/openssl/opensslconf.h | 201 +++ .../archs/linux-elf/asm_avx2/include/progs.h | 507 ++++++ .../archs/linux-elf/no-asm/crypto/buildinf.h | 43 +- .../no-asm/crypto/include/internal/dso_conf.h | 5 +- .../no-asm/include/openssl/opensslconf.h | 42 +- .../archs/linux-elf/no-asm/include/progs.h | 443 +++-- .../archs/linux-ppc/asm/crypto/buildinf.h | 53 +- .../asm/crypto/include/internal/dso_conf.h | 5 +- .../asm/include/openssl/opensslconf.h | 42 +- .../archs/linux-ppc/asm/include/progs.h | 443 +++-- .../linux-ppc/asm_avx2/crypto/buildinf.h | 37 + .../crypto/include/internal/bn_conf.h | 28 + .../crypto/include/internal/dso_conf.h | 17 + .../asm_avx2/include/openssl/opensslconf.h | 201 +++ .../archs/linux-ppc/asm_avx2/include/progs.h | 507 ++++++ .../archs/linux-ppc/no-asm/crypto/buildinf.h | 41 +- .../no-asm/crypto/include/internal/dso_conf.h | 5 +- .../no-asm/include/openssl/opensslconf.h | 42 +- .../archs/linux-ppc/no-asm/include/progs.h | 443 +++-- .../archs/linux-ppc64/asm/crypto/buildinf.h | 57 +- .../asm/crypto/include/internal/dso_conf.h | 5 +- .../asm/include/openssl/opensslconf.h | 42 +- .../archs/linux-ppc64/asm/include/progs.h | 443 +++-- .../linux-ppc64/asm_avx2/crypto/buildinf.h | 41 + .../crypto/include/internal/bn_conf.h | 28 + .../crypto/include/internal/dso_conf.h | 17 + .../asm_avx2/include/openssl/opensslconf.h | 201 +++ .../linux-ppc64/asm_avx2/include/progs.h | 507 ++++++ .../linux-ppc64/no-asm/crypto/buildinf.h | 42 +- .../no-asm/crypto/include/internal/dso_conf.h | 5 +- .../no-asm/include/openssl/opensslconf.h | 42 +- .../archs/linux-ppc64/no-asm/include/progs.h | 443 +++-- .../archs/linux-ppc64le/asm/crypto/buildinf.h | 57 +- .../asm/crypto/include/internal/dso_conf.h | 5 +- .../asm/include/openssl/opensslconf.h | 42 +- .../archs/linux-ppc64le/asm/include/progs.h | 443 +++-- .../linux-ppc64le/asm_avx2/crypto/buildinf.h | 41 + .../crypto/include/internal/bn_conf.h | 28 + .../crypto/include/internal/dso_conf.h | 17 + .../asm_avx2/include/openssl/opensslconf.h | 201 +++ .../linux-ppc64le/asm_avx2/include/progs.h | 507 ++++++ .../linux-ppc64le/no-asm/crypto/buildinf.h | 42 +- .../no-asm/crypto/include/internal/dso_conf.h | 5 +- .../no-asm/include/openssl/opensslconf.h | 42 +- .../linux-ppc64le/no-asm/include/progs.h | 443 +++-- .../archs/linux-x32/asm/crypto/buildinf.h | 75 +- .../asm/crypto/include/internal/dso_conf.h | 5 +- .../asm/include/openssl/opensslconf.h | 42 +- .../archs/linux-x32/asm/include/progs.h | 443 +++-- .../linux-x32/asm_avx2/crypto/buildinf.h | 48 + .../crypto/include/internal/bn_conf.h | 28 + .../crypto/include/internal/dso_conf.h | 17 + .../asm_avx2/include/openssl/opensslconf.h | 201 +++ .../archs/linux-x32/asm_avx2/include/progs.h | 507 ++++++ .../archs/linux-x32/no-asm/crypto/buildinf.h | 42 +- .../no-asm/crypto/include/internal/dso_conf.h | 5 +- .../no-asm/include/openssl/opensslconf.h | 42 +- .../archs/linux-x32/no-asm/include/progs.h | 443 +++-- .../archs/linux-x86_64/asm/crypto/buildinf.h | 73 +- .../asm/crypto/include/internal/dso_conf.h | 5 +- .../asm/include/openssl/opensslconf.h | 42 +- .../archs/linux-x86_64/asm/include/progs.h | 443 +++-- .../linux-x86_64/asm_avx2/crypto/buildinf.h | 48 + .../crypto/include/internal/bn_conf.h | 28 + .../crypto/include/internal/dso_conf.h | 17 + .../asm_avx2/include/openssl/opensslconf.h | 201 +++ .../linux-x86_64/asm_avx2/include/progs.h | 507 ++++++ .../linux-x86_64/no-asm/crypto/buildinf.h | 42 +- .../no-asm/crypto/include/internal/dso_conf.h | 5 +- .../no-asm/include/openssl/opensslconf.h | 42 +- .../archs/linux-x86_64/no-asm/include/progs.h | 443 +++-- .../archs/linux32-s390x/asm/crypto/buildinf.h | 56 +- .../asm/crypto/include/internal/dso_conf.h | 5 +- .../asm/include/openssl/opensslconf.h | 42 +- .../archs/linux32-s390x/asm/include/progs.h | 443 +++-- .../linux32-s390x/asm_avx2/crypto/buildinf.h | 44 + .../crypto/include/internal/bn_conf.h | 28 + .../crypto/include/internal/dso_conf.h | 17 + .../asm_avx2/include/openssl/opensslconf.h | 201 +++ .../linux32-s390x/asm_avx2/include/progs.h | 507 ++++++ .../linux32-s390x/no-asm/crypto/buildinf.h | 42 +- .../no-asm/crypto/include/internal/dso_conf.h | 5 +- .../no-asm/include/openssl/opensslconf.h | 42 +- .../linux32-s390x/no-asm/include/progs.h | 443 +++-- .../archs/linux64-s390x/asm/crypto/buildinf.h | 63 +- .../asm/crypto/include/internal/dso_conf.h | 5 +- .../asm/include/openssl/opensslconf.h | 42 +- .../archs/linux64-s390x/asm/include/progs.h | 443 +++-- .../linux64-s390x/asm_avx2/crypto/buildinf.h | 43 + .../crypto/include/internal/bn_conf.h | 28 + .../crypto/include/internal/dso_conf.h | 17 + .../asm_avx2/include/openssl/opensslconf.h | 201 +++ .../linux64-s390x/asm_avx2/include/progs.h | 507 ++++++ .../linux64-s390x/no-asm/crypto/buildinf.h | 42 +- .../no-asm/crypto/include/internal/dso_conf.h | 5 +- .../no-asm/include/openssl/opensslconf.h | 42 +- .../linux64-s390x/no-asm/include/progs.h | 443 +++-- .../solaris-x86-gcc/asm/crypto/buildinf.h | 77 +- .../asm/crypto/include/internal/dso_conf.h | 5 +- .../asm/include/openssl/opensslconf.h | 42 +- .../archs/solaris-x86-gcc/asm/include/progs.h | 443 +++-- .../asm_avx2/crypto/buildinf.h | 48 + .../crypto/include/internal/bn_conf.h | 28 + .../crypto/include/internal/dso_conf.h | 17 + .../asm_avx2/include/openssl/opensslconf.h | 201 +++ .../solaris-x86-gcc/asm_avx2/include/progs.h | 507 ++++++ .../solaris-x86-gcc/no-asm/crypto/buildinf.h | 42 +- .../no-asm/crypto/include/internal/dso_conf.h | 5 +- .../no-asm/include/openssl/opensslconf.h | 42 +- .../solaris-x86-gcc/no-asm/include/progs.h | 443 +++-- .../asm/crypto/buildinf.h | 72 +- .../asm/crypto/include/internal/dso_conf.h | 5 +- .../asm/include/openssl/opensslconf.h | 42 +- .../solaris64-x86_64-gcc/asm/include/progs.h | 443 +++-- .../asm_avx2/crypto/buildinf.h | 47 + .../crypto/include/internal/bn_conf.h | 28 + .../crypto/include/internal/dso_conf.h | 17 + .../asm_avx2/include/openssl/opensslconf.h | 201 +++ .../asm_avx2/include/progs.h | 507 ++++++ .../no-asm/crypto/buildinf.h | 41 +- .../no-asm/crypto/include/internal/dso_conf.h | 5 +- .../no-asm/include/openssl/opensslconf.h | 42 +- .../no-asm/include/progs.h | 443 +++-- noarch/include/node/openssl/asn1.h | 242 +-- noarch/include/node/openssl/asn1err.h | 252 +++ noarch/include/node/openssl/asn1t.h | 32 +- noarch/include/node/openssl/async.h | 26 +- noarch/include/node/openssl/asyncerr.h | 38 + noarch/include/node/openssl/bio.h | 196 +-- noarch/include/node/openssl/bioerr.h | 120 ++ noarch/include/node/openssl/bn.h | 97 +- noarch/include/node/openssl/bn_conf_no-asm.h | 2 + noarch/include/node/openssl/bnerr.h | 96 ++ noarch/include/node/openssl/buffer.h | 19 +- noarch/include/node/openssl/buffererr.h | 30 + noarch/include/node/openssl/cms.h | 182 +- noarch/include/node/openssl/cmserr.h | 196 +++ noarch/include/node/openssl/comp.h | 23 +- noarch/include/node/openssl/comperr.h | 40 + noarch/include/node/openssl/conf.h | 56 +- noarch/include/node/openssl/conferr.h | 72 + noarch/include/node/openssl/crypto.h | 74 +- noarch/include/node/openssl/cryptoerr.h | 56 + noarch/include/node/openssl/ct.h | 61 +- noarch/include/node/openssl/cterr.h | 76 + noarch/include/node/openssl/dh.h | 83 +- noarch/include/node/openssl/dherr.h | 84 + noarch/include/node/openssl/dsa.h | 64 +- noarch/include/node/openssl/dsaerr.h | 67 + noarch/include/node/openssl/dso_conf_no-asm.h | 2 + noarch/include/node/openssl/dtls1.h | 13 +- noarch/include/node/openssl/e_os2.h | 39 +- noarch/include/node/openssl/ec.h | 478 +++--- noarch/include/node/openssl/ecerr.h | 271 +++ noarch/include/node/openssl/engine.h | 99 +- noarch/include/node/openssl/engineerr.h | 107 ++ noarch/include/node/openssl/err.h | 24 +- noarch/include/node/openssl/evp.h | 374 +++-- noarch/include/node/openssl/evperr.h | 194 +++ noarch/include/node/openssl/hmac.h | 6 +- noarch/include/node/openssl/kdf.h | 80 +- noarch/include/node/openssl/kdferr.h | 51 + noarch/include/node/openssl/lhash.h | 55 +- noarch/include/node/openssl/modes.h | 17 +- noarch/include/node/openssl/obj_mac.h | 639 ++++++- noarch/include/node/openssl/objects.h | 928 +---------- noarch/include/node/openssl/objectserr.h | 38 + noarch/include/node/openssl/ocsp.h | 84 +- noarch/include/node/openssl/ocsperr.h | 74 + .../include/node/openssl/opensslconf_no-asm.h | 2 + noarch/include/node/openssl/opensslv.h | 10 +- noarch/include/node/openssl/ossl_typ.h | 8 +- noarch/include/node/openssl/pem.h | 144 +- noarch/include/node/openssl/pem2.h | 15 +- noarch/include/node/openssl/pemerr.h | 99 ++ noarch/include/node/openssl/pkcs12.h | 61 +- noarch/include/node/openssl/pkcs12err.h | 77 + noarch/include/node/openssl/pkcs7.h | 87 +- noarch/include/node/openssl/pkcs7err.h | 99 ++ noarch/include/node/openssl/rand.h | 60 +- noarch/include/node/openssl/rand_drbg.h | 130 ++ noarch/include/node/openssl/randerr.h | 89 + noarch/include/node/openssl/rsa.h | 260 +-- noarch/include/node/openssl/rsaerr.h | 162 ++ noarch/include/node/openssl/safestack.h | 89 +- noarch/include/node/openssl/srp.h | 6 +- noarch/include/node/openssl/ssl.h | 1469 ++++++++--------- noarch/include/node/openssl/ssl3.h | 57 +- noarch/include/node/openssl/sslerr.h | 768 +++++++++ noarch/include/node/openssl/stack.h | 11 +- noarch/include/node/openssl/store.h | 266 +++ noarch/include/node/openssl/storeerr.h | 87 + noarch/include/node/openssl/symhacks.h | 17 +- noarch/include/node/openssl/tls1.h | 423 ++++- noarch/include/node/openssl/ts.h | 134 +- noarch/include/node/openssl/tserr.h | 128 ++ noarch/include/node/openssl/txt_db.h | 4 +- noarch/include/node/openssl/ui.h | 120 +- noarch/include/node/openssl/uierr.h | 61 + noarch/include/node/openssl/x509.h | 147 +- noarch/include/node/openssl/x509_vfy.h | 12 +- noarch/include/node/openssl/x509err.h | 125 ++ noarch/include/node/openssl/x509v3.h | 207 +-- noarch/include/node/openssl/x509v3err.h | 158 ++ noarch/include/node/uv.h | 91 +- noarch/include/node/uv/unix.h | 12 +- noarch/include/node/uv/version.h | 4 +- noarch/include/node/uv/win.h | 14 + noarch/include/node/v8.h | 44 +- .../cmake/Boost-1.70.0/BoostConfig.cmake | 140 ++ .../Boost-1.70.0/BoostConfigVersion.cmake | 12 + .../cmake/BoostDetectToolset-1.70.0.cmake | 156 ++ .../boost_atomic-config-version.cmake | 12 + .../boost_atomic-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...mic-variant-vc142-mt-x64-1_70-shared.cmake | 72 + .../boost_chrono-config-version.cmake | 12 + .../boost_chrono-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...ono-variant-vc142-mt-x64-1_70-shared.cmake | 72 + .../boost_container-config-version.cmake | 12 + .../boost_container-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...ner-variant-vc142-mt-x64-1_70-shared.cmake | 72 + .../boost_context-config-version.cmake | 12 + .../boost_context-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...ext-variant-vc142-mt-x64-1_70-shared.cmake | 72 + .../boost_contract-config-version.cmake | 12 + .../boost_contract-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...act-variant-vc142-mt-x64-1_70-shared.cmake | 72 + .../boost_coroutine-config-version.cmake | 12 + .../boost_coroutine-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...ine-variant-vc142-mt-x64-1_70-shared.cmake | 72 + .../boost_date_time-config-version.cmake | 12 + .../boost_date_time-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...ime-variant-vc142-mt-x64-1_70-shared.cmake | 72 + .../boost_exception-config-version.cmake | 12 + .../boost_exception-config.cmake | 20 + .../boost_fiber-config-version.cmake | 12 + .../boost_fiber-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...ber-variant-vc142-mt-x64-1_70-shared.cmake | 72 + .../boost_fiber_numa-config-version.cmake | 12 + .../boost_fiber_numa-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 61 + ...uma-variant-vc142-mt-x64-1_70-shared.cmake | 61 + .../boost_filesystem-config-version.cmake | 12 + .../boost_filesystem-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...tem-variant-vc142-mt-x64-1_70-shared.cmake | 72 + .../boost_graph-config-version.cmake | 12 + .../boost_graph-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...aph-variant-vc142-mt-x64-1_70-shared.cmake | 72 + .../boost_graph_parallel-config-version.cmake | 12 + .../boost_graph_parallel-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 61 + ...lel-variant-vc142-mt-x64-1_70-shared.cmake | 61 + .../boost_headers-config-version.cmake | 12 + .../boost_headers-config.cmake | 20 + .../boost_iostreams-config-version.cmake | 12 + .../boost_iostreams-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...ams-variant-vc142-mt-x64-1_70-shared.cmake | 72 + .../boost_locale-config-version.cmake | 12 + .../boost_locale-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...ale-variant-vc142-mt-x64-1_70-shared.cmake | 72 + .../boost_log-config-version.cmake | 12 + .../boost_log-1.70.0/boost_log-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...log-variant-vc142-mt-x64-1_70-shared.cmake | 72 + .../boost_log_setup-config-version.cmake | 12 + .../boost_log_setup-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...tup-variant-vc142-mt-x64-1_70-shared.cmake | 72 + .../boost_math-config-version.cmake | 12 + .../boost_math-1.70.0/boost_math-config.cmake | 20 + .../boost_math_c99-config-version.cmake | 12 + .../boost_math_c99-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...c99-variant-vc142-mt-x64-1_70-shared.cmake | 72 + .../boost_math_c99f-config-version.cmake | 12 + .../boost_math_c99f-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...99f-variant-vc142-mt-x64-1_70-shared.cmake | 72 + .../boost_math_c99l-config-version.cmake | 12 + .../boost_math_c99l-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...99l-variant-vc142-mt-x64-1_70-shared.cmake | 72 + .../boost_math_tr1-config-version.cmake | 12 + .../boost_math_tr1-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...tr1-variant-vc142-mt-x64-1_70-shared.cmake | 72 + .../boost_math_tr1f-config-version.cmake | 12 + .../boost_math_tr1f-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...r1f-variant-vc142-mt-x64-1_70-shared.cmake | 72 + .../boost_math_tr1l-config-version.cmake | 12 + .../boost_math_tr1l-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...r1l-variant-vc142-mt-x64-1_70-shared.cmake | 72 + .../boost_mpi-config-version.cmake | 12 + .../boost_mpi-1.70.0/boost_mpi-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 61 + ...mpi-variant-vc142-mt-x64-1_70-shared.cmake | 61 + .../boost_numpy-config-version.cmake | 12 + .../boost_numpy-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 61 + ...mpy-variant-vc142-mt-x64-1_70-shared.cmake | 61 + ...oost_prg_exec_monitor-config-version.cmake | 12 + .../boost_prg_exec_monitor-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...tor-variant-vc142-mt-x64-1_70-shared.cmake | 72 + ...boost_program_options-config-version.cmake | 12 + .../boost_program_options-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...ons-variant-vc142-mt-x64-1_70-shared.cmake | 72 + .../boost_python-config-version.cmake | 12 + .../boost_python-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...hon-variant-vc142-mt-x64-1_70-shared.cmake | 72 + .../boost_random-config-version.cmake | 12 + .../boost_random-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...dom-variant-vc142-mt-x64-1_70-shared.cmake | 72 + .../boost_regex-config-version.cmake | 12 + .../boost_regex-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...gex-variant-vc142-mt-x64-1_70-shared.cmake | 72 + .../boost_serialization-config-version.cmake | 12 + .../boost_serialization-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...ion-variant-vc142-mt-x64-1_70-shared.cmake | 72 + ..._stacktrace_addr2line-config-version.cmake | 12 + .../boost_stacktrace_addr2line-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 61 + ...ine-variant-vc142-mt-x64-1_70-shared.cmake | 61 + ..._stacktrace_backtrace-config-version.cmake | 12 + .../boost_stacktrace_backtrace-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 61 + ...ace-variant-vc142-mt-x64-1_70-shared.cmake | 61 + ...oost_stacktrace_basic-config-version.cmake | 12 + .../boost_stacktrace_basic-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 61 + ...sic-variant-vc142-mt-x64-1_70-shared.cmake | 61 + ...boost_stacktrace_noop-config-version.cmake | 12 + .../boost_stacktrace_noop-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...oop-variant-vc142-mt-x64-1_70-shared.cmake | 72 + ...ost_stacktrace_windbg-config-version.cmake | 12 + .../boost_stacktrace_windbg-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...dbg-variant-vc142-mt-x64-1_70-shared.cmake | 72 + ...cktrace_windbg_cached-config-version.cmake | 12 + ...oost_stacktrace_windbg_cached-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...hed-variant-vc142-mt-x64-1_70-shared.cmake | 72 + .../boost_system-config-version.cmake | 12 + .../boost_system-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...tem-variant-vc142-mt-x64-1_70-shared.cmake | 72 + ...ost_test_exec_monitor-config-version.cmake | 12 + .../boost_test_exec_monitor-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...tor-variant-vc142-mt-x64-1_70-shared.cmake | 72 + .../boost_thread-config-version.cmake | 12 + .../boost_thread-config.cmake | 102 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...ead-variant-vc142-mt-x64-1_70-shared.cmake | 72 + .../boost_timer-config-version.cmake | 12 + .../boost_timer-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...mer-variant-vc142-mt-x64-1_70-shared.cmake | 72 + .../boost_type_erasure-config-version.cmake | 12 + .../boost_type_erasure-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...ure-variant-vc142-mt-x64-1_70-shared.cmake | 72 + ...t_unit_test_framework-config-version.cmake | 12 + .../boost_unit_test_framework-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...ork-variant-vc142-mt-x64-1_70-shared.cmake | 72 + .../boost_wave-config-version.cmake | 12 + .../boost_wave-1.70.0/boost_wave-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...ave-variant-vc142-mt-x64-1_70-shared.cmake | 72 + .../boost_wserialization-config-version.cmake | 12 + .../boost_wserialization-config.cmake | 98 ++ ...-variant-vc142-mt-gd-x64-1_70-shared.cmake | 72 + ...ion-variant-vc142-mt-x64-1_70-shared.cmake | 72 + winx64/lib/google/benchmark/benchmark.lib | Bin 1860030 -> 1860030 bytes winx64/lib/google/benchmark/benchmarkd.lib | Bin 0 -> 12211028 bytes winx64/lib/google/log/glog.dll | Bin 132608 -> 132608 bytes winx64/lib/google/log/glogd.dll | Bin 0 -> 339968 bytes winx64/lib/google/log/glogd.lib | Bin 0 -> 55222 bytes 535 files changed, 47085 insertions(+), 12600 deletions(-) create mode 100644 noarch/include/node/openssl/archs/BSD-x86_64/asm_avx2/crypto/buildinf.h create mode 100644 noarch/include/node/openssl/archs/BSD-x86_64/asm_avx2/crypto/include/internal/bn_conf.h create mode 100644 noarch/include/node/openssl/archs/BSD-x86_64/asm_avx2/crypto/include/internal/dso_conf.h create mode 100644 noarch/include/node/openssl/archs/BSD-x86_64/asm_avx2/include/openssl/opensslconf.h create mode 100644 noarch/include/node/openssl/archs/BSD-x86_64/asm_avx2/include/progs.h create mode 100644 noarch/include/node/openssl/archs/VC-WIN32/asm_avx2/crypto/buildinf.h create mode 100644 noarch/include/node/openssl/archs/VC-WIN32/asm_avx2/crypto/include/internal/bn_conf.h create mode 100644 noarch/include/node/openssl/archs/VC-WIN32/asm_avx2/crypto/include/internal/dso_conf.h create mode 100644 noarch/include/node/openssl/archs/VC-WIN32/asm_avx2/include/openssl/opensslconf.h create mode 100644 noarch/include/node/openssl/archs/VC-WIN32/asm_avx2/include/progs.h create mode 100644 noarch/include/node/openssl/archs/VC-WIN64-ARM/no-asm/crypto/buildinf.h create mode 100644 noarch/include/node/openssl/archs/VC-WIN64-ARM/no-asm/crypto/include/internal/bn_conf.h create mode 100644 noarch/include/node/openssl/archs/VC-WIN64-ARM/no-asm/crypto/include/internal/dso_conf.h create mode 100644 noarch/include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/openssl/opensslconf.h create mode 100644 noarch/include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/progs.h create mode 100644 noarch/include/node/openssl/archs/VC-WIN64A/asm_avx2/crypto/buildinf.h create mode 100644 noarch/include/node/openssl/archs/VC-WIN64A/asm_avx2/crypto/include/internal/bn_conf.h create mode 100644 noarch/include/node/openssl/archs/VC-WIN64A/asm_avx2/crypto/include/internal/dso_conf.h create mode 100644 noarch/include/node/openssl/archs/VC-WIN64A/asm_avx2/include/openssl/opensslconf.h create mode 100644 noarch/include/node/openssl/archs/VC-WIN64A/asm_avx2/include/progs.h create mode 100644 noarch/include/node/openssl/archs/aix-gcc/asm_avx2/crypto/buildinf.h create mode 100644 noarch/include/node/openssl/archs/aix-gcc/asm_avx2/crypto/include/internal/bn_conf.h create mode 100644 noarch/include/node/openssl/archs/aix-gcc/asm_avx2/crypto/include/internal/dso_conf.h create mode 100644 noarch/include/node/openssl/archs/aix-gcc/asm_avx2/include/openssl/opensslconf.h create mode 100644 noarch/include/node/openssl/archs/aix-gcc/asm_avx2/include/progs.h create mode 100644 noarch/include/node/openssl/archs/aix64-gcc/asm_avx2/crypto/buildinf.h create mode 100644 noarch/include/node/openssl/archs/aix64-gcc/asm_avx2/crypto/include/internal/bn_conf.h create mode 100644 noarch/include/node/openssl/archs/aix64-gcc/asm_avx2/crypto/include/internal/dso_conf.h create mode 100644 noarch/include/node/openssl/archs/aix64-gcc/asm_avx2/include/openssl/opensslconf.h create mode 100644 noarch/include/node/openssl/archs/aix64-gcc/asm_avx2/include/progs.h create mode 100644 noarch/include/node/openssl/archs/darwin-i386-cc/asm_avx2/crypto/buildinf.h create mode 100644 noarch/include/node/openssl/archs/darwin-i386-cc/asm_avx2/crypto/include/internal/bn_conf.h create mode 100644 noarch/include/node/openssl/archs/darwin-i386-cc/asm_avx2/crypto/include/internal/dso_conf.h create mode 100644 noarch/include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/openssl/opensslconf.h create mode 100644 noarch/include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/progs.h create mode 100644 noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/crypto/buildinf.h create mode 100644 noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/crypto/include/internal/bn_conf.h create mode 100644 noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/crypto/include/internal/dso_conf.h create mode 100644 noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/opensslconf.h create mode 100644 noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/progs.h create mode 100644 noarch/include/node/openssl/archs/linux-aarch64/asm_avx2/crypto/buildinf.h create mode 100644 noarch/include/node/openssl/archs/linux-aarch64/asm_avx2/crypto/include/internal/bn_conf.h create mode 100644 noarch/include/node/openssl/archs/linux-aarch64/asm_avx2/crypto/include/internal/dso_conf.h create mode 100644 noarch/include/node/openssl/archs/linux-aarch64/asm_avx2/include/openssl/opensslconf.h create mode 100644 noarch/include/node/openssl/archs/linux-aarch64/asm_avx2/include/progs.h create mode 100644 noarch/include/node/openssl/archs/linux-armv4/asm_avx2/crypto/buildinf.h create mode 100644 noarch/include/node/openssl/archs/linux-armv4/asm_avx2/crypto/include/internal/bn_conf.h create mode 100644 noarch/include/node/openssl/archs/linux-armv4/asm_avx2/crypto/include/internal/dso_conf.h create mode 100644 noarch/include/node/openssl/archs/linux-armv4/asm_avx2/include/openssl/opensslconf.h create mode 100644 noarch/include/node/openssl/archs/linux-armv4/asm_avx2/include/progs.h create mode 100644 noarch/include/node/openssl/archs/linux-elf/asm_avx2/crypto/buildinf.h create mode 100644 noarch/include/node/openssl/archs/linux-elf/asm_avx2/crypto/include/internal/bn_conf.h create mode 100644 noarch/include/node/openssl/archs/linux-elf/asm_avx2/crypto/include/internal/dso_conf.h create mode 100644 noarch/include/node/openssl/archs/linux-elf/asm_avx2/include/openssl/opensslconf.h create mode 100644 noarch/include/node/openssl/archs/linux-elf/asm_avx2/include/progs.h create mode 100644 noarch/include/node/openssl/archs/linux-ppc/asm_avx2/crypto/buildinf.h create mode 100644 noarch/include/node/openssl/archs/linux-ppc/asm_avx2/crypto/include/internal/bn_conf.h create mode 100644 noarch/include/node/openssl/archs/linux-ppc/asm_avx2/crypto/include/internal/dso_conf.h create mode 100644 noarch/include/node/openssl/archs/linux-ppc/asm_avx2/include/openssl/opensslconf.h create mode 100644 noarch/include/node/openssl/archs/linux-ppc/asm_avx2/include/progs.h create mode 100644 noarch/include/node/openssl/archs/linux-ppc64/asm_avx2/crypto/buildinf.h create mode 100644 noarch/include/node/openssl/archs/linux-ppc64/asm_avx2/crypto/include/internal/bn_conf.h create mode 100644 noarch/include/node/openssl/archs/linux-ppc64/asm_avx2/crypto/include/internal/dso_conf.h create mode 100644 noarch/include/node/openssl/archs/linux-ppc64/asm_avx2/include/openssl/opensslconf.h create mode 100644 noarch/include/node/openssl/archs/linux-ppc64/asm_avx2/include/progs.h create mode 100644 noarch/include/node/openssl/archs/linux-ppc64le/asm_avx2/crypto/buildinf.h create mode 100644 noarch/include/node/openssl/archs/linux-ppc64le/asm_avx2/crypto/include/internal/bn_conf.h create mode 100644 noarch/include/node/openssl/archs/linux-ppc64le/asm_avx2/crypto/include/internal/dso_conf.h create mode 100644 noarch/include/node/openssl/archs/linux-ppc64le/asm_avx2/include/openssl/opensslconf.h create mode 100644 noarch/include/node/openssl/archs/linux-ppc64le/asm_avx2/include/progs.h create mode 100644 noarch/include/node/openssl/archs/linux-x32/asm_avx2/crypto/buildinf.h create mode 100644 noarch/include/node/openssl/archs/linux-x32/asm_avx2/crypto/include/internal/bn_conf.h create mode 100644 noarch/include/node/openssl/archs/linux-x32/asm_avx2/crypto/include/internal/dso_conf.h create mode 100644 noarch/include/node/openssl/archs/linux-x32/asm_avx2/include/openssl/opensslconf.h create mode 100644 noarch/include/node/openssl/archs/linux-x32/asm_avx2/include/progs.h create mode 100644 noarch/include/node/openssl/archs/linux-x86_64/asm_avx2/crypto/buildinf.h create mode 100644 noarch/include/node/openssl/archs/linux-x86_64/asm_avx2/crypto/include/internal/bn_conf.h create mode 100644 noarch/include/node/openssl/archs/linux-x86_64/asm_avx2/crypto/include/internal/dso_conf.h create mode 100644 noarch/include/node/openssl/archs/linux-x86_64/asm_avx2/include/openssl/opensslconf.h create mode 100644 noarch/include/node/openssl/archs/linux-x86_64/asm_avx2/include/progs.h create mode 100644 noarch/include/node/openssl/archs/linux32-s390x/asm_avx2/crypto/buildinf.h create mode 100644 noarch/include/node/openssl/archs/linux32-s390x/asm_avx2/crypto/include/internal/bn_conf.h create mode 100644 noarch/include/node/openssl/archs/linux32-s390x/asm_avx2/crypto/include/internal/dso_conf.h create mode 100644 noarch/include/node/openssl/archs/linux32-s390x/asm_avx2/include/openssl/opensslconf.h create mode 100644 noarch/include/node/openssl/archs/linux32-s390x/asm_avx2/include/progs.h create mode 100644 noarch/include/node/openssl/archs/linux64-s390x/asm_avx2/crypto/buildinf.h create mode 100644 noarch/include/node/openssl/archs/linux64-s390x/asm_avx2/crypto/include/internal/bn_conf.h create mode 100644 noarch/include/node/openssl/archs/linux64-s390x/asm_avx2/crypto/include/internal/dso_conf.h create mode 100644 noarch/include/node/openssl/archs/linux64-s390x/asm_avx2/include/openssl/opensslconf.h create mode 100644 noarch/include/node/openssl/archs/linux64-s390x/asm_avx2/include/progs.h create mode 100644 noarch/include/node/openssl/archs/solaris-x86-gcc/asm_avx2/crypto/buildinf.h create mode 100644 noarch/include/node/openssl/archs/solaris-x86-gcc/asm_avx2/crypto/include/internal/bn_conf.h create mode 100644 noarch/include/node/openssl/archs/solaris-x86-gcc/asm_avx2/crypto/include/internal/dso_conf.h create mode 100644 noarch/include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/openssl/opensslconf.h create mode 100644 noarch/include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/progs.h create mode 100644 noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/crypto/buildinf.h create mode 100644 noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/crypto/include/internal/bn_conf.h create mode 100644 noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/crypto/include/internal/dso_conf.h create mode 100644 noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/opensslconf.h create mode 100644 noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/progs.h create mode 100644 noarch/include/node/openssl/asn1err.h create mode 100644 noarch/include/node/openssl/asyncerr.h create mode 100644 noarch/include/node/openssl/bioerr.h create mode 100644 noarch/include/node/openssl/bnerr.h create mode 100644 noarch/include/node/openssl/buffererr.h create mode 100644 noarch/include/node/openssl/cmserr.h create mode 100644 noarch/include/node/openssl/comperr.h create mode 100644 noarch/include/node/openssl/conferr.h create mode 100644 noarch/include/node/openssl/cryptoerr.h create mode 100644 noarch/include/node/openssl/cterr.h create mode 100644 noarch/include/node/openssl/dherr.h create mode 100644 noarch/include/node/openssl/dsaerr.h create mode 100644 noarch/include/node/openssl/ecerr.h create mode 100644 noarch/include/node/openssl/engineerr.h create mode 100644 noarch/include/node/openssl/evperr.h create mode 100644 noarch/include/node/openssl/kdferr.h create mode 100644 noarch/include/node/openssl/objectserr.h create mode 100644 noarch/include/node/openssl/ocsperr.h create mode 100644 noarch/include/node/openssl/pemerr.h create mode 100644 noarch/include/node/openssl/pkcs12err.h create mode 100644 noarch/include/node/openssl/pkcs7err.h create mode 100644 noarch/include/node/openssl/rand_drbg.h create mode 100644 noarch/include/node/openssl/randerr.h create mode 100644 noarch/include/node/openssl/rsaerr.h create mode 100644 noarch/include/node/openssl/sslerr.h create mode 100644 noarch/include/node/openssl/store.h create mode 100644 noarch/include/node/openssl/storeerr.h create mode 100644 noarch/include/node/openssl/tserr.h create mode 100644 noarch/include/node/openssl/uierr.h create mode 100644 noarch/include/node/openssl/x509err.h create mode 100644 noarch/include/node/openssl/x509v3err.h create mode 100644 winx64/lib/boost/cmake/Boost-1.70.0/BoostConfig.cmake create mode 100644 winx64/lib/boost/cmake/Boost-1.70.0/BoostConfigVersion.cmake create mode 100644 winx64/lib/boost/cmake/BoostDetectToolset-1.70.0.cmake create mode 100644 winx64/lib/boost/cmake/boost_atomic-1.70.0/boost_atomic-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_atomic-1.70.0/boost_atomic-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_atomic-1.70.0/libboost_atomic-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_atomic-1.70.0/libboost_atomic-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_chrono-1.70.0/boost_chrono-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_chrono-1.70.0/boost_chrono-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_chrono-1.70.0/libboost_chrono-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_chrono-1.70.0/libboost_chrono-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_container-1.70.0/boost_container-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_container-1.70.0/boost_container-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_container-1.70.0/libboost_container-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_container-1.70.0/libboost_container-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_context-1.70.0/boost_context-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_context-1.70.0/boost_context-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_context-1.70.0/libboost_context-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_context-1.70.0/libboost_context-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_contract-1.70.0/boost_contract-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_contract-1.70.0/boost_contract-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_contract-1.70.0/libboost_contract-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_contract-1.70.0/libboost_contract-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_coroutine-1.70.0/boost_coroutine-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_coroutine-1.70.0/boost_coroutine-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_coroutine-1.70.0/libboost_coroutine-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_coroutine-1.70.0/libboost_coroutine-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_date_time-1.70.0/boost_date_time-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_date_time-1.70.0/boost_date_time-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_date_time-1.70.0/libboost_date_time-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_date_time-1.70.0/libboost_date_time-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_exception-1.70.0/boost_exception-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_exception-1.70.0/boost_exception-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_fiber-1.70.0/boost_fiber-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_fiber-1.70.0/boost_fiber-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_fiber-1.70.0/libboost_fiber-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_fiber-1.70.0/libboost_fiber-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_fiber_numa-1.70.0/boost_fiber_numa-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_fiber_numa-1.70.0/boost_fiber_numa-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_fiber_numa-1.70.0/libboost_fiber_numa-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_fiber_numa-1.70.0/libboost_fiber_numa-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_filesystem-1.70.0/boost_filesystem-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_filesystem-1.70.0/boost_filesystem-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_filesystem-1.70.0/libboost_filesystem-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_filesystem-1.70.0/libboost_filesystem-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_graph-1.70.0/boost_graph-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_graph-1.70.0/boost_graph-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_graph-1.70.0/libboost_graph-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_graph-1.70.0/libboost_graph-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_graph_parallel-1.70.0/boost_graph_parallel-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_graph_parallel-1.70.0/boost_graph_parallel-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_graph_parallel-1.70.0/libboost_graph_parallel-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_graph_parallel-1.70.0/libboost_graph_parallel-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_headers-1.70.0/boost_headers-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_headers-1.70.0/boost_headers-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_iostreams-1.70.0/boost_iostreams-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_iostreams-1.70.0/boost_iostreams-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_iostreams-1.70.0/libboost_iostreams-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_iostreams-1.70.0/libboost_iostreams-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_locale-1.70.0/boost_locale-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_locale-1.70.0/boost_locale-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_locale-1.70.0/libboost_locale-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_locale-1.70.0/libboost_locale-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_log-1.70.0/boost_log-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_log-1.70.0/boost_log-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_log-1.70.0/libboost_log-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_log-1.70.0/libboost_log-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_log_setup-1.70.0/boost_log_setup-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_log_setup-1.70.0/boost_log_setup-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_log_setup-1.70.0/libboost_log_setup-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_log_setup-1.70.0/libboost_log_setup-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_math-1.70.0/boost_math-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_math-1.70.0/boost_math-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_math_c99-1.70.0/boost_math_c99-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_math_c99-1.70.0/boost_math_c99-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_math_c99-1.70.0/libboost_math_c99-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_math_c99-1.70.0/libboost_math_c99-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_math_c99f-1.70.0/boost_math_c99f-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_math_c99f-1.70.0/boost_math_c99f-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_math_c99f-1.70.0/libboost_math_c99f-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_math_c99f-1.70.0/libboost_math_c99f-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_math_c99l-1.70.0/boost_math_c99l-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_math_c99l-1.70.0/boost_math_c99l-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_math_c99l-1.70.0/libboost_math_c99l-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_math_c99l-1.70.0/libboost_math_c99l-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_math_tr1-1.70.0/boost_math_tr1-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_math_tr1-1.70.0/boost_math_tr1-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_math_tr1-1.70.0/libboost_math_tr1-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_math_tr1-1.70.0/libboost_math_tr1-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_math_tr1f-1.70.0/boost_math_tr1f-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_math_tr1f-1.70.0/boost_math_tr1f-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_math_tr1f-1.70.0/libboost_math_tr1f-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_math_tr1f-1.70.0/libboost_math_tr1f-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_math_tr1l-1.70.0/boost_math_tr1l-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_math_tr1l-1.70.0/boost_math_tr1l-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_math_tr1l-1.70.0/libboost_math_tr1l-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_math_tr1l-1.70.0/libboost_math_tr1l-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_mpi-1.70.0/boost_mpi-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_mpi-1.70.0/boost_mpi-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_mpi-1.70.0/libboost_mpi-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_mpi-1.70.0/libboost_mpi-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_numpy-1.70.0/boost_numpy-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_numpy-1.70.0/boost_numpy-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_numpy-1.70.0/libboost_numpy-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_numpy-1.70.0/libboost_numpy-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_prg_exec_monitor-1.70.0/boost_prg_exec_monitor-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_prg_exec_monitor-1.70.0/boost_prg_exec_monitor-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_prg_exec_monitor-1.70.0/libboost_prg_exec_monitor-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_prg_exec_monitor-1.70.0/libboost_prg_exec_monitor-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_program_options-1.70.0/boost_program_options-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_program_options-1.70.0/boost_program_options-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_program_options-1.70.0/libboost_program_options-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_program_options-1.70.0/libboost_program_options-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_python-1.70.0/boost_python-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_python-1.70.0/boost_python-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_python-1.70.0/libboost_python-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_python-1.70.0/libboost_python-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_random-1.70.0/boost_random-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_random-1.70.0/boost_random-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_random-1.70.0/libboost_random-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_random-1.70.0/libboost_random-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_regex-1.70.0/boost_regex-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_regex-1.70.0/boost_regex-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_regex-1.70.0/libboost_regex-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_regex-1.70.0/libboost_regex-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_serialization-1.70.0/boost_serialization-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_serialization-1.70.0/boost_serialization-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_serialization-1.70.0/libboost_serialization-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_serialization-1.70.0/libboost_serialization-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_stacktrace_addr2line-1.70.0/boost_stacktrace_addr2line-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_stacktrace_addr2line-1.70.0/boost_stacktrace_addr2line-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_stacktrace_addr2line-1.70.0/libboost_stacktrace_addr2line-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_stacktrace_addr2line-1.70.0/libboost_stacktrace_addr2line-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_stacktrace_backtrace-1.70.0/boost_stacktrace_backtrace-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_stacktrace_backtrace-1.70.0/boost_stacktrace_backtrace-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_stacktrace_backtrace-1.70.0/libboost_stacktrace_backtrace-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_stacktrace_backtrace-1.70.0/libboost_stacktrace_backtrace-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_stacktrace_basic-1.70.0/boost_stacktrace_basic-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_stacktrace_basic-1.70.0/boost_stacktrace_basic-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_stacktrace_basic-1.70.0/libboost_stacktrace_basic-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_stacktrace_basic-1.70.0/libboost_stacktrace_basic-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_stacktrace_noop-1.70.0/boost_stacktrace_noop-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_stacktrace_noop-1.70.0/boost_stacktrace_noop-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_stacktrace_noop-1.70.0/libboost_stacktrace_noop-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_stacktrace_noop-1.70.0/libboost_stacktrace_noop-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_stacktrace_windbg-1.70.0/boost_stacktrace_windbg-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_stacktrace_windbg-1.70.0/boost_stacktrace_windbg-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_stacktrace_windbg-1.70.0/libboost_stacktrace_windbg-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_stacktrace_windbg-1.70.0/libboost_stacktrace_windbg-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_stacktrace_windbg_cached-1.70.0/boost_stacktrace_windbg_cached-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_stacktrace_windbg_cached-1.70.0/boost_stacktrace_windbg_cached-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_stacktrace_windbg_cached-1.70.0/libboost_stacktrace_windbg_cached-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_stacktrace_windbg_cached-1.70.0/libboost_stacktrace_windbg_cached-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_system-1.70.0/boost_system-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_system-1.70.0/boost_system-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_system-1.70.0/libboost_system-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_system-1.70.0/libboost_system-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_test_exec_monitor-1.70.0/boost_test_exec_monitor-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_test_exec_monitor-1.70.0/boost_test_exec_monitor-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_test_exec_monitor-1.70.0/libboost_test_exec_monitor-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_test_exec_monitor-1.70.0/libboost_test_exec_monitor-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_thread-1.70.0/boost_thread-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_thread-1.70.0/boost_thread-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_thread-1.70.0/libboost_thread-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_thread-1.70.0/libboost_thread-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_timer-1.70.0/boost_timer-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_timer-1.70.0/boost_timer-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_timer-1.70.0/libboost_timer-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_timer-1.70.0/libboost_timer-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_type_erasure-1.70.0/boost_type_erasure-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_type_erasure-1.70.0/boost_type_erasure-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_type_erasure-1.70.0/libboost_type_erasure-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_type_erasure-1.70.0/libboost_type_erasure-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_unit_test_framework-1.70.0/boost_unit_test_framework-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_unit_test_framework-1.70.0/boost_unit_test_framework-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_unit_test_framework-1.70.0/libboost_unit_test_framework-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_unit_test_framework-1.70.0/libboost_unit_test_framework-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_wave-1.70.0/boost_wave-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_wave-1.70.0/boost_wave-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_wave-1.70.0/libboost_wave-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_wave-1.70.0/libboost_wave-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_wserialization-1.70.0/boost_wserialization-config-version.cmake create mode 100644 winx64/lib/boost/cmake/boost_wserialization-1.70.0/boost_wserialization-config.cmake create mode 100644 winx64/lib/boost/cmake/boost_wserialization-1.70.0/libboost_wserialization-variant-vc142-mt-gd-x64-1_70-shared.cmake create mode 100644 winx64/lib/boost/cmake/boost_wserialization-1.70.0/libboost_wserialization-variant-vc142-mt-x64-1_70-shared.cmake create mode 100644 winx64/lib/google/benchmark/benchmarkd.lib create mode 100644 winx64/lib/google/log/glogd.dll create mode 100644 winx64/lib/google/log/glogd.lib diff --git a/noarch/include/node/common.gypi b/noarch/include/node/common.gypi index 14c6b5ae..97fe1f9e 100644 --- a/noarch/include/node/common.gypi +++ b/noarch/include/node/common.gypi @@ -33,7 +33,7 @@ # Reset this number to 0 on major V8 upgrades. # Increment by one for each non-official patch applied to deps/v8. - 'v8_embedder_string': '-node.36', + 'v8_embedder_string': '-node.54', # Enable disassembler for `--print-code` v8 options 'v8_enable_disassembler': 1, @@ -113,17 +113,8 @@ 'msvs_configuration_platform': 'x64', }], ['OS=="aix"', { - 'variables': {'real_os_name': ' ErrnoException(v8::Isolate* isolate, int errorno, const char* syscall = nullptr, @@ -291,6 +292,9 @@ NODE_EXTERN Environment* CreateEnvironment(IsolateData* isolate_data, NODE_EXTERN void LoadEnvironment(Environment* env); NODE_EXTERN void FreeEnvironment(Environment* env); +// This may return nullptr if context is not associated with a Node instance. +NODE_EXTERN Environment* GetCurrentEnvironment(v8::Local context); + // This returns the MultiIsolatePlatform used in the main thread of Node.js. // If NODE_USE_V8_PLATFORM haven't been defined when Node.js was built, // it returns nullptr. @@ -298,7 +302,8 @@ NODE_EXTERN MultiIsolatePlatform* GetMainThreadMultiIsolatePlatform(); NODE_EXTERN MultiIsolatePlatform* CreatePlatform( int thread_pool_size, - v8::TracingController* tracing_controller); + node::tracing::TracingController* tracing_controller); +MultiIsolatePlatform* InitializeV8Platform(int thread_pool_size); NODE_EXTERN void FreePlatform(MultiIsolatePlatform* platform); NODE_EXTERN void EmitBeforeExit(Environment* env); @@ -312,8 +317,11 @@ NODE_EXTERN struct uv_loop_s* GetCurrentEventLoop(v8::Isolate* isolate); /* Converts a unixtime to V8 Date */ NODE_DEPRECATED("Use v8::Date::New() directly", inline v8::Local NODE_UNIXTIME_V8(double time) { - return v8::Date::New(v8::Isolate::GetCurrent(), 1000 * time); -}) + return v8::Date::New( + v8::Isolate::GetCurrent()->GetCurrentContext(), + 1000 * time) + .ToLocalChecked(); + }) #define NODE_UNIXTIME_V8 node::NODE_UNIXTIME_V8 NODE_DEPRECATED("Use v8::Date::ValueOf() directly", inline double NODE_V8_UNIXTIME(v8::Local date) { @@ -653,9 +661,10 @@ struct async_context { /* Registers an additional v8::PromiseHook wrapper. This API exists because V8 * itself supports only a single PromiseHook. */ -NODE_EXTERN void AddPromiseHook(v8::Isolate* isolate, - promise_hook_func fn, - void* arg); +NODE_DEPRECATED("Use async_hooks directly instead", + NODE_EXTERN void AddPromiseHook(v8::Isolate* isolate, + promise_hook_func fn, + void* arg)); /* This is a lot like node::AtExit, except that the hooks added via this * function are run before the AtExit ones and will always be registered diff --git a/noarch/include/node/node_api.h b/noarch/include/node/node_api.h index e8c1f79d..54aa739f 100644 --- a/noarch/include/node/node_api.h +++ b/noarch/include/node/node_api.h @@ -3,9 +3,6 @@ #include #include -#include "node_api_types.h" - -struct uv_loop_s; // Forward declaration. #ifndef NAPI_VERSION #ifdef NAPI_EXPERIMENTAL @@ -13,10 +10,14 @@ struct uv_loop_s; // Forward declaration. #define NAPI_VERSION 2147483647 #else // The baseline version for N-API -#define NAPI_VERSION 3 +#define NAPI_VERSION 4 #endif #endif +#include "node_api_types.h" + +struct uv_loop_s; // Forward declaration. + #ifdef _WIN32 #ifdef BUILDING_NODE_EXTENSION #ifdef EXTERNAL_NAPI @@ -633,7 +634,7 @@ NAPI_EXTERN napi_status napi_remove_env_cleanup_hook(napi_env env, #endif // NAPI_VERSION >= 3 -#ifdef NAPI_EXPERIMENTAL +#if NAPI_VERSION >= 4 // Calling into JS from other threads NAPI_EXTERN napi_status @@ -671,6 +672,10 @@ napi_unref_threadsafe_function(napi_env env, napi_threadsafe_function func); NAPI_EXTERN napi_status napi_ref_threadsafe_function(napi_env env, napi_threadsafe_function func); +#endif // NAPI_VERSION >= 4 + +#ifdef NAPI_EXPERIMENTAL + NAPI_EXTERN napi_status napi_create_bigint_int64(napi_env env, int64_t value, napi_value* result); diff --git a/noarch/include/node/node_api_types.h b/noarch/include/node/node_api_types.h index 10215d9a..db1d830d 100644 --- a/noarch/include/node/node_api_types.h +++ b/noarch/include/node/node_api_types.h @@ -20,9 +20,9 @@ typedef struct napi_callback_info__* napi_callback_info; typedef struct napi_async_context__* napi_async_context; typedef struct napi_async_work__* napi_async_work; typedef struct napi_deferred__* napi_deferred; -#ifdef NAPI_EXPERIMENTAL +#if NAPI_VERSION >= 4 typedef struct napi_threadsafe_function__* napi_threadsafe_function; -#endif // NAPI_EXPERIMENTAL +#endif // NAPI_VERSION >= 4 typedef enum { napi_default = 0, @@ -84,7 +84,7 @@ typedef enum { napi_bigint_expected, } napi_status; -#ifdef NAPI_EXPERIMENTAL +#if NAPI_VERSION >= 4 typedef enum { napi_tsfn_release, napi_tsfn_abort @@ -94,7 +94,7 @@ typedef enum { napi_tsfn_nonblocking, napi_tsfn_blocking } napi_threadsafe_function_call_mode; -#endif // NAPI_EXPERIMENTAL +#endif // NAPI_VERSION >= 4 typedef napi_value (*napi_callback)(napi_env env, napi_callback_info info); @@ -107,12 +107,12 @@ typedef void (*napi_async_complete_callback)(napi_env env, napi_status status, void* data); -#ifdef NAPI_EXPERIMENTAL +#if NAPI_VERSION >= 4 typedef void (*napi_threadsafe_function_call_js)(napi_env env, napi_value js_callback, void* context, void* data); -#endif // NAPI_EXPERIMENTAL +#endif // NAPI_VERSION >= 4 typedef struct { // One of utf8name or name should be NULL. diff --git a/noarch/include/node/node_object_wrap.h b/noarch/include/node/node_object_wrap.h index b8ed2f99..90ec0963 100644 --- a/noarch/include/node/node_object_wrap.h +++ b/noarch/include/node/node_object_wrap.h @@ -38,7 +38,6 @@ class ObjectWrap { virtual ~ObjectWrap() { if (persistent().IsEmpty()) return; - assert(persistent().IsNearDeath()); persistent().ClearWeak(); persistent().Reset(); } diff --git a/noarch/include/node/node_version.h b/noarch/include/node/node_version.h index 7e7b31f8..d8d81c89 100644 --- a/noarch/include/node/node_version.h +++ b/noarch/include/node/node_version.h @@ -23,8 +23,8 @@ #define SRC_NODE_VERSION_H_ #define NODE_MAJOR_VERSION 10 -#define NODE_MINOR_VERSION 13 -#define NODE_PATCH_VERSION 0 +#define NODE_MINOR_VERSION 16 +#define NODE_PATCH_VERSION 1 #define NODE_VERSION_IS_LTS 1 #define NODE_VERSION_LTS_CODENAME "Dubnium" @@ -114,6 +114,6 @@ #define NODE_MODULE_VERSION 64 // the NAPI_VERSION provided by this version of the runtime -#define NAPI_VERSION 3 +#define NAPI_VERSION 4 #endif // SRC_NODE_VERSION_H_ diff --git a/noarch/include/node/openssl/archs/BSD-x86_64/asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/BSD-x86_64/asm/crypto/buildinf.h index a77851f6..675f1548 100644 --- a/noarch/include/node/openssl/archs/BSD-x86_64/asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/BSD-x86_64/asm/crypto/buildinf.h @@ -1,38 +1,47 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: BSD-x86_64" +#define DATE "built on: Thu Jun 13 19:22:10 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','c','c',' ','-','D','D', - 'S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E','_', - 'D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U','G', - ' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E','A', - 'D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O','_', - 'D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ','-', - 'D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D','O', - 'P','E','N','S','S','L','_','I','A','3','2','_','S','S','E','2', - ' ','-','D','O','P','E','N','S','S','L','_','B','N','_','A','S', - 'M','_','M','O','N','T',' ','-','D','O','P','E','N','S','S','L', - '_','B','N','_','A','S','M','_','M','O','N','T','5',' ','-','D', - 'O','P','E','N','S','S','L','_','B','N','_','A','S','M','_','G', - 'F','2','m',' ','-','D','S','H','A','1','_','A','S','M',' ','-', - 'D','S','H','A','2','5','6','_','A','S','M',' ','-','D','S','H', - 'A','5','1','2','_','A','S','M',' ','-','D','R','C','4','_','A', - 'S','M',' ','-','D','M','D','5','_','A','S','M',' ','-','D','A', - 'E','S','_','A','S','M',' ','-','D','V','P','A','E','S','_','A', - 'S','M',' ','-','D','B','S','A','E','S','_','A','S','M',' ','-', - 'D','G','H','A','S','H','_','A','S','M',' ','-','D','E','C','P', - '_','N','I','S','T','Z','2','5','6','_','A','S','M',' ','-','D', - 'P','A','D','L','O','C','K','_','A','S','M',' ','-','D','P','O', - 'L','Y','1','3','0','5','_','A','S','M',' ','-','D','O','P','E', - 'N','S','S','L','D','I','R','=','"','\\','"','/','u','s','r','/', - 'l','o','c','a','l','/','s','s','l','\\','"','"',' ','-','D','E', - 'N','G','I','N','E','S','D','I','R','=','"','\\','"','/','u','s', - 'r','/','l','o','c','a','l','/','l','i','b','/','e','n','g','i', - 'n','e','s','-','1','.','1','\\','"','"',' ','\0' +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f', + 'P','I','C',' ','-','p','t','h','r','e','a','d',' ','-','W','a', + ',','-','-','n','o','e','x','e','c','s','t','a','c','k',' ','-', + 'W','a','l','l',' ','-','O','3',' ','-','D','L','_','E','N','D', + 'I','A','N',' ','-','D','O','P','E','N','S','S','L','_','P','I', + 'C',' ','-','D','O','P','E','N','S','S','L','_','C','P','U','I', + 'D','_','O','B','J',' ','-','D','O','P','E','N','S','S','L','_', + 'I','A','3','2','_','S','S','E','2',' ','-','D','O','P','E','N', + 'S','S','L','_','B','N','_','A','S','M','_','M','O','N','T',' ', + '-','D','O','P','E','N','S','S','L','_','B','N','_','A','S','M', + '_','M','O','N','T','5',' ','-','D','O','P','E','N','S','S','L', + '_','B','N','_','A','S','M','_','G','F','2','m',' ','-','D','S', + 'H','A','1','_','A','S','M',' ','-','D','S','H','A','2','5','6', + '_','A','S','M',' ','-','D','S','H','A','5','1','2','_','A','S', + 'M',' ','-','D','K','E','C','C','A','K','1','6','0','0','_','A', + 'S','M',' ','-','D','R','C','4','_','A','S','M',' ','-','D','M', + 'D','5','_','A','S','M',' ','-','D','A','E','S','_','A','S','M', + ' ','-','D','V','P','A','E','S','_','A','S','M',' ','-','D','B', + 'S','A','E','S','_','A','S','M',' ','-','D','G','H','A','S','H', + '_','A','S','M',' ','-','D','E','C','P','_','N','I','S','T','Z', + '2','5','6','_','A','S','M',' ','-','D','X','2','5','5','1','9', + '_','A','S','M',' ','-','D','P','O','L','Y','1','3','0','5','_', + 'A','S','M',' ','-','D','_','T','H','R','E','A','D','_','S','A', + 'F','E',' ','-','D','_','R','E','E','N','T','R','A','N','T',' ', + '-','D','N','D','E','B','U','G','\0' }; -#define PLATFORM "platform: BSD-x86_64" -#define DATE "built on: Tue Aug 14 23:13:00 2018" diff --git a/noarch/include/node/openssl/archs/BSD-x86_64/asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/BSD-x86_64/asm/crypto/include/internal/dso_conf.h index 7a52dd1f..252266ec 100644 --- a/noarch/include/node/openssl/archs/BSD-x86_64/asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/BSD-x86_64/asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".so" #endif diff --git a/noarch/include/node/openssl/archs/BSD-x86_64/asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/BSD-x86_64/asm/include/openssl/opensslconf.h index 7dd21010..548dc342 100644 --- a/noarch/include/node/openssl/archs/BSD-x86_64/asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/BSD-x86_64/asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -34,6 +36,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -52,6 +57,9 @@ extern "C" { #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -85,6 +93,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -103,15 +114,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -135,6 +142,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -153,8 +172,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif -#define OPENSSL_CPUID_OBJ - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/BSD-x86_64/asm/include/progs.h b/noarch/include/node/openssl/archs/BSD-x86_64/asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/BSD-x86_64/asm/include/progs.h +++ b/noarch/include/node/openssl/archs/BSD-x86_64/asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/BSD-x86_64/asm_avx2/crypto/buildinf.h b/noarch/include/node/openssl/archs/BSD-x86_64/asm_avx2/crypto/buildinf.h new file mode 100644 index 00000000..8e78bcb2 --- /dev/null +++ b/noarch/include/node/openssl/archs/BSD-x86_64/asm_avx2/crypto/buildinf.h @@ -0,0 +1,48 @@ +/* + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: BSD-x86_64" +#define DATE "built on: Thu Jun 13 19:22:31 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a + * workaround for the situation where CFLAGS gets too long for a C90 string + * literal + */ +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','.','.','/','c','o','n', + 'f','i','g','/','f','a','k','e','_','g','c','c','.','p','l',' ', + '-','f','P','I','C',' ','-','p','t','h','r','e','a','d',' ','-', + 'W','a',',','-','-','n','o','e','x','e','c','s','t','a','c','k', + ' ','-','W','a','l','l',' ','-','O','3',' ','-','D','L','_','E', + 'N','D','I','A','N',' ','-','D','O','P','E','N','S','S','L','_', + 'P','I','C',' ','-','D','O','P','E','N','S','S','L','_','C','P', + 'U','I','D','_','O','B','J',' ','-','D','O','P','E','N','S','S', + 'L','_','I','A','3','2','_','S','S','E','2',' ','-','D','O','P', + 'E','N','S','S','L','_','B','N','_','A','S','M','_','M','O','N', + 'T',' ','-','D','O','P','E','N','S','S','L','_','B','N','_','A', + 'S','M','_','M','O','N','T','5',' ','-','D','O','P','E','N','S', + 'S','L','_','B','N','_','A','S','M','_','G','F','2','m',' ','-', + 'D','S','H','A','1','_','A','S','M',' ','-','D','S','H','A','2', + '5','6','_','A','S','M',' ','-','D','S','H','A','5','1','2','_', + 'A','S','M',' ','-','D','K','E','C','C','A','K','1','6','0','0', + '_','A','S','M',' ','-','D','R','C','4','_','A','S','M',' ','-', + 'D','M','D','5','_','A','S','M',' ','-','D','A','E','S','_','A', + 'S','M',' ','-','D','V','P','A','E','S','_','A','S','M',' ','-', + 'D','B','S','A','E','S','_','A','S','M',' ','-','D','G','H','A', + 'S','H','_','A','S','M',' ','-','D','E','C','P','_','N','I','S', + 'T','Z','2','5','6','_','A','S','M',' ','-','D','X','2','5','5', + '1','9','_','A','S','M',' ','-','D','P','O','L','Y','1','3','0', + '5','_','A','S','M',' ','-','D','_','T','H','R','E','A','D','_', + 'S','A','F','E',' ','-','D','_','R','E','E','N','T','R','A','N', + 'T',' ','-','D','N','D','E','B','U','G','\0' +}; diff --git a/noarch/include/node/openssl/archs/BSD-x86_64/asm_avx2/crypto/include/internal/bn_conf.h b/noarch/include/node/openssl/archs/BSD-x86_64/asm_avx2/crypto/include/internal/bn_conf.h new file mode 100644 index 00000000..34bd8b78 --- /dev/null +++ b/noarch/include/node/openssl/archs/BSD-x86_64/asm_avx2/crypto/include/internal/bn_conf.h @@ -0,0 +1,28 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/bn_conf.h.in */ +/* + * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BN_CONF_H +# define HEADER_BN_CONF_H + +/* + * The contents of this file are not used in the UEFI build, as + * both 32-bit and 64-bit builds are supported from a single run + * of the Configure script. + */ + +/* Should we define BN_DIV2W here? */ + +/* Only one for the following should be defined */ +#define SIXTY_FOUR_BIT_LONG +#undef SIXTY_FOUR_BIT +#undef THIRTY_TWO_BIT + +#endif diff --git a/noarch/include/node/openssl/archs/BSD-x86_64/asm_avx2/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/BSD-x86_64/asm_avx2/crypto/include/internal/dso_conf.h new file mode 100644 index 00000000..252266ec --- /dev/null +++ b/noarch/include/node/openssl/archs/BSD-x86_64/asm_avx2/crypto/include/internal/dso_conf.h @@ -0,0 +1,17 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ +/* + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DSO_CONF_H +# define HEADER_DSO_CONF_H +# define DSO_DLFCN +# define HAVE_DLFCN_H +# define DSO_EXTENSION ".so" +#endif diff --git a/noarch/include/node/openssl/archs/BSD-x86_64/asm_avx2/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/BSD-x86_64/asm_avx2/include/openssl/opensslconf.h new file mode 100644 index 00000000..548dc342 --- /dev/null +++ b/noarch/include/node/openssl/archs/BSD-x86_64/asm_avx2/include/openssl/opensslconf.h @@ -0,0 +1,198 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/opensslconf.h.in + * + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef OPENSSL_ALGORITHM_DEFINES +# error OPENSSL_ALGORITHM_DEFINES no longer supported +#endif + +/* + * OpenSSL was configured with the following options: + */ + +#ifndef OPENSSL_NO_COMP +# define OPENSSL_NO_COMP +#endif +#ifndef OPENSSL_NO_MD2 +# define OPENSSL_NO_MD2 +#endif +#ifndef OPENSSL_NO_RC5 +# define OPENSSL_NO_RC5 +#endif +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif +#ifndef OPENSSL_NO_ASAN +# define OPENSSL_NO_ASAN +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG +# define OPENSSL_NO_CRYPTO_MDEBUG +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +#endif +#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +# define OPENSSL_NO_EC_NISTP_64_GCC_128 +#endif +#ifndef OPENSSL_NO_EGD +# define OPENSSL_NO_EGD +#endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif +#ifndef OPENSSL_NO_FUZZ_AFL +# define OPENSSL_NO_FUZZ_AFL +#endif +#ifndef OPENSSL_NO_FUZZ_LIBFUZZER +# define OPENSSL_NO_FUZZ_LIBFUZZER +#endif +#ifndef OPENSSL_NO_HEARTBEATS +# define OPENSSL_NO_HEARTBEATS +#endif +#ifndef OPENSSL_NO_MSAN +# define OPENSSL_NO_MSAN +#endif +#ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +#endif +#ifndef OPENSSL_NO_SSL_TRACE +# define OPENSSL_NO_SSL_TRACE +#endif +#ifndef OPENSSL_NO_SSL3 +# define OPENSSL_NO_SSL3 +#endif +#ifndef OPENSSL_NO_SSL3_METHOD +# define OPENSSL_NO_SSL3_METHOD +#endif +#ifndef OPENSSL_NO_UBSAN +# define OPENSSL_NO_UBSAN +#endif +#ifndef OPENSSL_NO_UNIT_TEST +# define OPENSSL_NO_UNIT_TEST +#endif +#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS +# define OPENSSL_NO_WEAK_SSL_CIPHERS +#endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif + + +/* + * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers + * don't like that. This will hopefully silence them. + */ +#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; + +/* + * Applications should use -DOPENSSL_API_COMPAT= to suppress the + * declarations of functions deprecated in or before . Otherwise, they + * still won't see them if the library has been built to disable deprecated + * functions. + */ +#ifndef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +#endif + +#ifndef OPENSSL_FILE +# ifdef OPENSSL_NO_FILENAMES +# define OPENSSL_FILE "" +# define OPENSSL_LINE 0 +# else +# define OPENSSL_FILE __FILE__ +# define OPENSSL_LINE __LINE__ +# endif +#endif + +#ifndef OPENSSL_MIN_API +# define OPENSSL_MIN_API 0 +#endif + +#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API +# undef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT OPENSSL_MIN_API +#endif + +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10100000L +# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_1_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10000000L +# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_0_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x00908000L +# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_0_9_8(f) +#endif + +/* Generate 80386 code? */ +#undef I386_ONLY + +#undef OPENSSL_UNISTD +#define OPENSSL_UNISTD + +#undef OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* + * The following are cipher-specific, but are part of the public API. + */ +#if !defined(OPENSSL_SYS_UEFI) +# undef BN_LLONG +/* Only one for the following should be defined */ +# define SIXTY_FOUR_BIT_LONG +# undef SIXTY_FOUR_BIT +# undef THIRTY_TWO_BIT +#endif + +#define RC4_INT unsigned int + +#ifdef __cplusplus +} +#endif diff --git a/noarch/include/node/openssl/archs/BSD-x86_64/asm_avx2/include/progs.h b/noarch/include/node/openssl/archs/BSD-x86_64/asm_avx2/include/progs.h new file mode 100644 index 00000000..9b3d270e --- /dev/null +++ b/noarch/include/node/openssl/archs/BSD-x86_64/asm_avx2/include/progs.h @@ -0,0 +1,507 @@ +/* + * WARNING: do not edit! + * Generated by apps/progs.pl + * + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +typedef enum FUNC_TYPE { + FT_none, FT_general, FT_md, FT_cipher, FT_pkey, + FT_md_alg, FT_cipher_alg +} FUNC_TYPE; + +typedef struct function_st { + FUNC_TYPE type; + const char *name; + int (*func)(int argc, char *argv[]); + const OPTIONS *help; +} FUNCTION; + +DEFINE_LHASH_OF(FUNCTION); + +extern int asn1parse_main(int argc, char *argv[]); +extern int ca_main(int argc, char *argv[]); +extern int ciphers_main(int argc, char *argv[]); +extern int cms_main(int argc, char *argv[]); +extern int crl_main(int argc, char *argv[]); +extern int crl2pkcs7_main(int argc, char *argv[]); +extern int dgst_main(int argc, char *argv[]); +extern int dhparam_main(int argc, char *argv[]); +extern int dsa_main(int argc, char *argv[]); +extern int dsaparam_main(int argc, char *argv[]); +extern int ec_main(int argc, char *argv[]); +extern int ecparam_main(int argc, char *argv[]); +extern int enc_main(int argc, char *argv[]); +extern int engine_main(int argc, char *argv[]); +extern int errstr_main(int argc, char *argv[]); +extern int gendsa_main(int argc, char *argv[]); +extern int genpkey_main(int argc, char *argv[]); +extern int genrsa_main(int argc, char *argv[]); +extern int help_main(int argc, char *argv[]); +extern int list_main(int argc, char *argv[]); +extern int nseq_main(int argc, char *argv[]); +extern int ocsp_main(int argc, char *argv[]); +extern int passwd_main(int argc, char *argv[]); +extern int pkcs12_main(int argc, char *argv[]); +extern int pkcs7_main(int argc, char *argv[]); +extern int pkcs8_main(int argc, char *argv[]); +extern int pkey_main(int argc, char *argv[]); +extern int pkeyparam_main(int argc, char *argv[]); +extern int pkeyutl_main(int argc, char *argv[]); +extern int prime_main(int argc, char *argv[]); +extern int rand_main(int argc, char *argv[]); +extern int rehash_main(int argc, char *argv[]); +extern int req_main(int argc, char *argv[]); +extern int rsa_main(int argc, char *argv[]); +extern int rsautl_main(int argc, char *argv[]); +extern int s_client_main(int argc, char *argv[]); +extern int s_server_main(int argc, char *argv[]); +extern int s_time_main(int argc, char *argv[]); +extern int sess_id_main(int argc, char *argv[]); +extern int smime_main(int argc, char *argv[]); +extern int speed_main(int argc, char *argv[]); +extern int spkac_main(int argc, char *argv[]); +extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); +extern int ts_main(int argc, char *argv[]); +extern int verify_main(int argc, char *argv[]); +extern int version_main(int argc, char *argv[]); +extern int x509_main(int argc, char *argv[]); + +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; + +#ifdef INCLUDE_FUNCTION_TABLE +static FUNCTION functions[] = { + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, +#ifndef OPENSSL_NO_SOCK + {FT_general, "ciphers", ciphers_main, ciphers_options}, +#endif +#ifndef OPENSSL_NO_CMS + {FT_general, "cms", cms_main, cms_options}, +#endif + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, +#ifndef OPENSSL_NO_DH + {FT_general, "dhparam", dhparam_main, dhparam_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsa", dsa_main, dsa_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ec", ec_main, ec_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ecparam", ecparam_main, ecparam_options}, +#endif + {FT_general, "enc", enc_main, enc_options}, +#ifndef OPENSSL_NO_ENGINE + {FT_general, "engine", engine_main, engine_options}, +#endif + {FT_general, "errstr", errstr_main, errstr_options}, +#ifndef OPENSSL_NO_DSA + {FT_general, "gendsa", gendsa_main, gendsa_options}, +#endif + {FT_general, "genpkey", genpkey_main, genpkey_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "genrsa", genrsa_main, genrsa_options}, +#endif + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, +#ifndef OPENSSL_NO_OCSP + {FT_general, "ocsp", ocsp_main, ocsp_options}, +#endif + {FT_general, "passwd", passwd_main, passwd_options}, +#ifndef OPENSSL_NO_DES + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, +#endif + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "rsautl", rsautl_main, rsautl_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_client", s_client_main, s_client_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_server", s_server_main, s_server_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_time", s_time_main, s_time_options}, +#endif + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, +#ifndef OPENSSL_NO_SRP + {FT_general, "srp", srp_main, srp_options}, +#endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, +#ifndef OPENSSL_NO_TS + {FT_general, "ts", ts_main, ts_options}, +#endif + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, +#ifndef OPENSSL_NO_MD2 + {FT_md, "md2", dgst_main}, +#endif +#ifndef OPENSSL_NO_MD4 + {FT_md, "md4", dgst_main}, +#endif + {FT_md, "md5", dgst_main}, +#ifndef OPENSSL_NO_GOST + {FT_md, "gost", dgst_main}, +#endif + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, +#ifndef OPENSSL_NO_MDC2 + {FT_md, "mdc2", dgst_main}, +#endif +#ifndef OPENSSL_NO_RMD160 + {FT_md, "rmd160", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2b512", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2s256", dgst_main}, +#endif +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, +#ifdef ZLIB + {FT_cipher, "zlib", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "desx", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4-40", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} +}; +#endif diff --git a/noarch/include/node/openssl/archs/BSD-x86_64/no-asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/BSD-x86_64/no-asm/crypto/buildinf.h index 52f1b831..202131ff 100644 --- a/noarch/include/node/openssl/archs/BSD-x86_64/no-asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/BSD-x86_64/no-asm/crypto/buildinf.h @@ -1,23 +1,29 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: BSD-x86_64" +#define DATE "built on: Thu Jun 13 19:22:54 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','c','c',' ','-','D','D', - 'S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E','_', - 'D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U','G', - ' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E','A', - 'D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O','_', - 'D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ','-', - 'D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D','O', - 'P','E','N','S','S','L','D','I','R','=','"','\\','"','/','u','s', - 'r','/','l','o','c','a','l','/','s','s','l','\\','"','"',' ','-', - 'D','E','N','G','I','N','E','S','D','I','R','=','"','\\','"','/', - 'u','s','r','/','l','o','c','a','l','/','l','i','b','/','e','n', - 'g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','c','c',' ','-','f','P', + 'I','C',' ','-','p','t','h','r','e','a','d',' ','-','W','a','l', + 'l',' ','-','O','3',' ','-','D','L','_','E','N','D','I','A','N', + ' ','-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-', + 'D','_','T','H','R','E','A','D','_','S','A','F','E',' ','-','D', + '_','R','E','E','N','T','R','A','N','T',' ','-','D','N','D','E', + 'B','U','G','\0' }; -#define PLATFORM "platform: BSD-x86_64" -#define DATE "built on: Tue Aug 14 23:13:04 2018" diff --git a/noarch/include/node/openssl/archs/BSD-x86_64/no-asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/BSD-x86_64/no-asm/crypto/include/internal/dso_conf.h index 7a52dd1f..252266ec 100644 --- a/noarch/include/node/openssl/archs/BSD-x86_64/no-asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/BSD-x86_64/no-asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".so" #endif diff --git a/noarch/include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/opensslconf.h index 7b122bd8..316117ba 100644 --- a/noarch/include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -34,6 +36,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -55,6 +60,9 @@ extern "C" { #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -88,6 +96,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -106,15 +117,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -138,6 +145,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -156,8 +175,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif - - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/BSD-x86_64/no-asm/include/progs.h b/noarch/include/node/openssl/archs/BSD-x86_64/no-asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/BSD-x86_64/no-asm/include/progs.h +++ b/noarch/include/node/openssl/archs/BSD-x86_64/no-asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/VC-WIN32/asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/VC-WIN32/asm/crypto/buildinf.h index 74eb547a..d58c8d2e 100644 --- a/noarch/include/node/openssl/archs/VC-WIN32/asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/VC-WIN32/asm/crypto/buildinf.h @@ -1,12 +1,45 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: " +#define DATE "built on: Thu Jun 13 19:32:10 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','c','c','\0' +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','c','c',' ','/','Z','i', + ' ','/','F','d','o','s','s','l','_','s','t','a','t','i','c','.', + 'p','d','b',' ',' ','-','D','O','P','E','N','S','S','L','_','I', + 'A','3','2','_','S','S','E','2',' ','-','D','L','_','E','N','D', + 'I','A','N',' ','-','D','O','P','E','N','S','S','L','_','P','I', + 'C',' ','-','D','O','P','E','N','S','S','L','_','C','P','U','I', + 'D','_','O','B','J',' ','-','D','O','P','E','N','S','S','L','_', + 'B','N','_','A','S','M','_','P','A','R','T','_','W','O','R','D', + 'S',' ','-','D','O','P','E','N','S','S','L','_','I','A','3','2', + '_','S','S','E','2',' ','-','D','O','P','E','N','S','S','L','_', + 'B','N','_','A','S','M','_','M','O','N','T',' ','-','D','O','P', + 'E','N','S','S','L','_','B','N','_','A','S','M','_','G','F','2', + 'm',' ','-','D','S','H','A','1','_','A','S','M',' ','-','D','S', + 'H','A','2','5','6','_','A','S','M',' ','-','D','S','H','A','5', + '1','2','_','A','S','M',' ','-','D','R','C','4','_','A','S','M', + ' ','-','D','M','D','5','_','A','S','M',' ','-','D','R','M','D', + '1','6','0','_','A','S','M',' ','-','D','A','E','S','_','A','S', + 'M',' ','-','D','V','P','A','E','S','_','A','S','M',' ','-','D', + 'W','H','I','R','L','P','O','O','L','_','A','S','M',' ','-','D', + 'G','H','A','S','H','_','A','S','M',' ','-','D','E','C','P','_', + 'N','I','S','T','Z','2','5','6','_','A','S','M',' ','-','D','P', + 'A','D','L','O','C','K','_','A','S','M',' ','-','D','P','O','L', + 'Y','1','3','0','5','_','A','S','M','\0' }; -#define PLATFORM "platform: " -#define DATE "built on: Tue Aug 14 23:13:47 2018" diff --git a/noarch/include/node/openssl/archs/VC-WIN32/asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/VC-WIN32/asm/crypto/include/internal/dso_conf.h index f555fb4b..c3b41df0 100644 --- a/noarch/include/node/openssl/archs/VC-WIN32/asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/VC-WIN32/asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,6 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - -# define DSO_EXTENSION "" +# define DSO_WIN32 +# define DSO_EXTENSION ".dll" #endif diff --git a/noarch/include/node/openssl/archs/VC-WIN32/asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/VC-WIN32/asm/include/openssl/opensslconf.h index 19c35390..7743e209 100644 --- a/noarch/include/node/openssl/archs/VC-WIN32/asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/VC-WIN32/asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -37,6 +39,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -49,12 +54,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -88,6 +99,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -106,15 +120,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -138,6 +148,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -156,8 +178,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif -#define OPENSSL_CPUID_OBJ - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/VC-WIN32/asm/include/progs.h b/noarch/include/node/openssl/archs/VC-WIN32/asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/VC-WIN32/asm/include/progs.h +++ b/noarch/include/node/openssl/archs/VC-WIN32/asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/VC-WIN32/asm_avx2/crypto/buildinf.h b/noarch/include/node/openssl/archs/VC-WIN32/asm_avx2/crypto/buildinf.h new file mode 100644 index 00000000..e18b8fed --- /dev/null +++ b/noarch/include/node/openssl/archs/VC-WIN32/asm_avx2/crypto/buildinf.h @@ -0,0 +1,45 @@ +/* + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: " +#define DATE "built on: Thu Jun 13 19:32:20 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a + * workaround for the situation where CFLAGS gets too long for a C90 string + * literal + */ +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','c','c',' ','/','Z','i', + ' ','/','F','d','o','s','s','l','_','s','t','a','t','i','c','.', + 'p','d','b',' ',' ','-','D','O','P','E','N','S','S','L','_','I', + 'A','3','2','_','S','S','E','2',' ','-','D','L','_','E','N','D', + 'I','A','N',' ','-','D','O','P','E','N','S','S','L','_','P','I', + 'C',' ','-','D','O','P','E','N','S','S','L','_','C','P','U','I', + 'D','_','O','B','J',' ','-','D','O','P','E','N','S','S','L','_', + 'B','N','_','A','S','M','_','P','A','R','T','_','W','O','R','D', + 'S',' ','-','D','O','P','E','N','S','S','L','_','I','A','3','2', + '_','S','S','E','2',' ','-','D','O','P','E','N','S','S','L','_', + 'B','N','_','A','S','M','_','M','O','N','T',' ','-','D','O','P', + 'E','N','S','S','L','_','B','N','_','A','S','M','_','G','F','2', + 'm',' ','-','D','S','H','A','1','_','A','S','M',' ','-','D','S', + 'H','A','2','5','6','_','A','S','M',' ','-','D','S','H','A','5', + '1','2','_','A','S','M',' ','-','D','R','C','4','_','A','S','M', + ' ','-','D','M','D','5','_','A','S','M',' ','-','D','R','M','D', + '1','6','0','_','A','S','M',' ','-','D','A','E','S','_','A','S', + 'M',' ','-','D','V','P','A','E','S','_','A','S','M',' ','-','D', + 'W','H','I','R','L','P','O','O','L','_','A','S','M',' ','-','D', + 'G','H','A','S','H','_','A','S','M',' ','-','D','E','C','P','_', + 'N','I','S','T','Z','2','5','6','_','A','S','M',' ','-','D','P', + 'A','D','L','O','C','K','_','A','S','M',' ','-','D','P','O','L', + 'Y','1','3','0','5','_','A','S','M','\0' +}; diff --git a/noarch/include/node/openssl/archs/VC-WIN32/asm_avx2/crypto/include/internal/bn_conf.h b/noarch/include/node/openssl/archs/VC-WIN32/asm_avx2/crypto/include/internal/bn_conf.h new file mode 100644 index 00000000..ce324699 --- /dev/null +++ b/noarch/include/node/openssl/archs/VC-WIN32/asm_avx2/crypto/include/internal/bn_conf.h @@ -0,0 +1,28 @@ +/* WARNING: do not edit! */ +/* Generated by makefile from crypto/include/internal/bn_conf.h.in */ +/* + * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BN_CONF_H +# define HEADER_BN_CONF_H + +/* + * The contents of this file are not used in the UEFI build, as + * both 32-bit and 64-bit builds are supported from a single run + * of the Configure script. + */ + +/* Should we define BN_DIV2W here? */ + +/* Only one for the following should be defined */ +#undef SIXTY_FOUR_BIT_LONG +#undef SIXTY_FOUR_BIT +#define THIRTY_TWO_BIT + +#endif diff --git a/noarch/include/node/openssl/archs/VC-WIN32/asm_avx2/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/VC-WIN32/asm_avx2/crypto/include/internal/dso_conf.h new file mode 100644 index 00000000..c3b41df0 --- /dev/null +++ b/noarch/include/node/openssl/archs/VC-WIN32/asm_avx2/crypto/include/internal/dso_conf.h @@ -0,0 +1,16 @@ +/* WARNING: do not edit! */ +/* Generated by makefile from crypto/include/internal/dso_conf.h.in */ +/* + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DSO_CONF_H +# define HEADER_DSO_CONF_H +# define DSO_WIN32 +# define DSO_EXTENSION ".dll" +#endif diff --git a/noarch/include/node/openssl/archs/VC-WIN32/asm_avx2/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/VC-WIN32/asm_avx2/include/openssl/opensslconf.h new file mode 100644 index 00000000..7743e209 --- /dev/null +++ b/noarch/include/node/openssl/archs/VC-WIN32/asm_avx2/include/openssl/opensslconf.h @@ -0,0 +1,204 @@ +/* + * WARNING: do not edit! + * Generated by makefile from include/openssl/opensslconf.h.in + * + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef OPENSSL_ALGORITHM_DEFINES +# error OPENSSL_ALGORITHM_DEFINES no longer supported +#endif + +/* + * OpenSSL was configured with the following options: + */ + +#ifndef OPENSSL_SYS_WIN32 +# define OPENSSL_SYS_WIN32 1 +#endif +#ifndef OPENSSL_NO_COMP +# define OPENSSL_NO_COMP +#endif +#ifndef OPENSSL_NO_MD2 +# define OPENSSL_NO_MD2 +#endif +#ifndef OPENSSL_NO_RC5 +# define OPENSSL_NO_RC5 +#endif +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif +#ifndef OPENSSL_NO_ASAN +# define OPENSSL_NO_ASAN +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG +# define OPENSSL_NO_CRYPTO_MDEBUG +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +#endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif +#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +# define OPENSSL_NO_EC_NISTP_64_GCC_128 +#endif +#ifndef OPENSSL_NO_EGD +# define OPENSSL_NO_EGD +#endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif +#ifndef OPENSSL_NO_FUZZ_AFL +# define OPENSSL_NO_FUZZ_AFL +#endif +#ifndef OPENSSL_NO_FUZZ_LIBFUZZER +# define OPENSSL_NO_FUZZ_LIBFUZZER +#endif +#ifndef OPENSSL_NO_HEARTBEATS +# define OPENSSL_NO_HEARTBEATS +#endif +#ifndef OPENSSL_NO_MSAN +# define OPENSSL_NO_MSAN +#endif +#ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +#endif +#ifndef OPENSSL_NO_SSL_TRACE +# define OPENSSL_NO_SSL_TRACE +#endif +#ifndef OPENSSL_NO_SSL3 +# define OPENSSL_NO_SSL3 +#endif +#ifndef OPENSSL_NO_SSL3_METHOD +# define OPENSSL_NO_SSL3_METHOD +#endif +#ifndef OPENSSL_NO_UBSAN +# define OPENSSL_NO_UBSAN +#endif +#ifndef OPENSSL_NO_UNIT_TEST +# define OPENSSL_NO_UNIT_TEST +#endif +#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS +# define OPENSSL_NO_WEAK_SSL_CIPHERS +#endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif + + +/* + * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers + * don't like that. This will hopefully silence them. + */ +#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; + +/* + * Applications should use -DOPENSSL_API_COMPAT= to suppress the + * declarations of functions deprecated in or before . Otherwise, they + * still won't see them if the library has been built to disable deprecated + * functions. + */ +#ifndef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +#endif + +#ifndef OPENSSL_FILE +# ifdef OPENSSL_NO_FILENAMES +# define OPENSSL_FILE "" +# define OPENSSL_LINE 0 +# else +# define OPENSSL_FILE __FILE__ +# define OPENSSL_LINE __LINE__ +# endif +#endif + +#ifndef OPENSSL_MIN_API +# define OPENSSL_MIN_API 0 +#endif + +#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API +# undef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT OPENSSL_MIN_API +#endif + +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10100000L +# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_1_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10000000L +# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_0_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x00908000L +# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_0_9_8(f) +#endif + +/* Generate 80386 code? */ +#undef I386_ONLY + +#undef OPENSSL_UNISTD +#define OPENSSL_UNISTD + +#define OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* + * The following are cipher-specific, but are part of the public API. + */ +#if !defined(OPENSSL_SYS_UEFI) +# define BN_LLONG +/* Only one for the following should be defined */ +# undef SIXTY_FOUR_BIT_LONG +# undef SIXTY_FOUR_BIT +# define THIRTY_TWO_BIT +#endif + +#define RC4_INT unsigned int + +#ifdef __cplusplus +} +#endif diff --git a/noarch/include/node/openssl/archs/VC-WIN32/asm_avx2/include/progs.h b/noarch/include/node/openssl/archs/VC-WIN32/asm_avx2/include/progs.h new file mode 100644 index 00000000..9b3d270e --- /dev/null +++ b/noarch/include/node/openssl/archs/VC-WIN32/asm_avx2/include/progs.h @@ -0,0 +1,507 @@ +/* + * WARNING: do not edit! + * Generated by apps/progs.pl + * + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +typedef enum FUNC_TYPE { + FT_none, FT_general, FT_md, FT_cipher, FT_pkey, + FT_md_alg, FT_cipher_alg +} FUNC_TYPE; + +typedef struct function_st { + FUNC_TYPE type; + const char *name; + int (*func)(int argc, char *argv[]); + const OPTIONS *help; +} FUNCTION; + +DEFINE_LHASH_OF(FUNCTION); + +extern int asn1parse_main(int argc, char *argv[]); +extern int ca_main(int argc, char *argv[]); +extern int ciphers_main(int argc, char *argv[]); +extern int cms_main(int argc, char *argv[]); +extern int crl_main(int argc, char *argv[]); +extern int crl2pkcs7_main(int argc, char *argv[]); +extern int dgst_main(int argc, char *argv[]); +extern int dhparam_main(int argc, char *argv[]); +extern int dsa_main(int argc, char *argv[]); +extern int dsaparam_main(int argc, char *argv[]); +extern int ec_main(int argc, char *argv[]); +extern int ecparam_main(int argc, char *argv[]); +extern int enc_main(int argc, char *argv[]); +extern int engine_main(int argc, char *argv[]); +extern int errstr_main(int argc, char *argv[]); +extern int gendsa_main(int argc, char *argv[]); +extern int genpkey_main(int argc, char *argv[]); +extern int genrsa_main(int argc, char *argv[]); +extern int help_main(int argc, char *argv[]); +extern int list_main(int argc, char *argv[]); +extern int nseq_main(int argc, char *argv[]); +extern int ocsp_main(int argc, char *argv[]); +extern int passwd_main(int argc, char *argv[]); +extern int pkcs12_main(int argc, char *argv[]); +extern int pkcs7_main(int argc, char *argv[]); +extern int pkcs8_main(int argc, char *argv[]); +extern int pkey_main(int argc, char *argv[]); +extern int pkeyparam_main(int argc, char *argv[]); +extern int pkeyutl_main(int argc, char *argv[]); +extern int prime_main(int argc, char *argv[]); +extern int rand_main(int argc, char *argv[]); +extern int rehash_main(int argc, char *argv[]); +extern int req_main(int argc, char *argv[]); +extern int rsa_main(int argc, char *argv[]); +extern int rsautl_main(int argc, char *argv[]); +extern int s_client_main(int argc, char *argv[]); +extern int s_server_main(int argc, char *argv[]); +extern int s_time_main(int argc, char *argv[]); +extern int sess_id_main(int argc, char *argv[]); +extern int smime_main(int argc, char *argv[]); +extern int speed_main(int argc, char *argv[]); +extern int spkac_main(int argc, char *argv[]); +extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); +extern int ts_main(int argc, char *argv[]); +extern int verify_main(int argc, char *argv[]); +extern int version_main(int argc, char *argv[]); +extern int x509_main(int argc, char *argv[]); + +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; + +#ifdef INCLUDE_FUNCTION_TABLE +static FUNCTION functions[] = { + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, +#ifndef OPENSSL_NO_SOCK + {FT_general, "ciphers", ciphers_main, ciphers_options}, +#endif +#ifndef OPENSSL_NO_CMS + {FT_general, "cms", cms_main, cms_options}, +#endif + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, +#ifndef OPENSSL_NO_DH + {FT_general, "dhparam", dhparam_main, dhparam_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsa", dsa_main, dsa_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ec", ec_main, ec_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ecparam", ecparam_main, ecparam_options}, +#endif + {FT_general, "enc", enc_main, enc_options}, +#ifndef OPENSSL_NO_ENGINE + {FT_general, "engine", engine_main, engine_options}, +#endif + {FT_general, "errstr", errstr_main, errstr_options}, +#ifndef OPENSSL_NO_DSA + {FT_general, "gendsa", gendsa_main, gendsa_options}, +#endif + {FT_general, "genpkey", genpkey_main, genpkey_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "genrsa", genrsa_main, genrsa_options}, +#endif + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, +#ifndef OPENSSL_NO_OCSP + {FT_general, "ocsp", ocsp_main, ocsp_options}, +#endif + {FT_general, "passwd", passwd_main, passwd_options}, +#ifndef OPENSSL_NO_DES + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, +#endif + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "rsautl", rsautl_main, rsautl_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_client", s_client_main, s_client_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_server", s_server_main, s_server_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_time", s_time_main, s_time_options}, +#endif + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, +#ifndef OPENSSL_NO_SRP + {FT_general, "srp", srp_main, srp_options}, +#endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, +#ifndef OPENSSL_NO_TS + {FT_general, "ts", ts_main, ts_options}, +#endif + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, +#ifndef OPENSSL_NO_MD2 + {FT_md, "md2", dgst_main}, +#endif +#ifndef OPENSSL_NO_MD4 + {FT_md, "md4", dgst_main}, +#endif + {FT_md, "md5", dgst_main}, +#ifndef OPENSSL_NO_GOST + {FT_md, "gost", dgst_main}, +#endif + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, +#ifndef OPENSSL_NO_MDC2 + {FT_md, "mdc2", dgst_main}, +#endif +#ifndef OPENSSL_NO_RMD160 + {FT_md, "rmd160", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2b512", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2s256", dgst_main}, +#endif +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, +#ifdef ZLIB + {FT_cipher, "zlib", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "desx", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4-40", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} +}; +#endif diff --git a/noarch/include/node/openssl/archs/VC-WIN32/no-asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/VC-WIN32/no-asm/crypto/buildinf.h index a9c58caa..9009e987 100644 --- a/noarch/include/node/openssl/archs/VC-WIN32/no-asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/VC-WIN32/no-asm/crypto/buildinf.h @@ -1,12 +1,45 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: " +#define DATE "built on: Thu Jun 13 19:32:30 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','c','c','\0' +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','c','c',' ','/','Z','i', + ' ','/','F','d','o','s','s','l','_','s','t','a','t','i','c','.', + 'p','d','b',' ',' ','-','D','O','P','E','N','S','S','L','_','I', + 'A','3','2','_','S','S','E','2',' ','-','D','L','_','E','N','D', + 'I','A','N',' ','-','D','O','P','E','N','S','S','L','_','P','I', + 'C',' ','-','D','O','P','E','N','S','S','L','_','C','P','U','I', + 'D','_','O','B','J',' ','-','D','O','P','E','N','S','S','L','_', + 'B','N','_','A','S','M','_','P','A','R','T','_','W','O','R','D', + 'S',' ','-','D','O','P','E','N','S','S','L','_','I','A','3','2', + '_','S','S','E','2',' ','-','D','O','P','E','N','S','S','L','_', + 'B','N','_','A','S','M','_','M','O','N','T',' ','-','D','O','P', + 'E','N','S','S','L','_','B','N','_','A','S','M','_','G','F','2', + 'm',' ','-','D','S','H','A','1','_','A','S','M',' ','-','D','S', + 'H','A','2','5','6','_','A','S','M',' ','-','D','S','H','A','5', + '1','2','_','A','S','M',' ','-','D','R','C','4','_','A','S','M', + ' ','-','D','M','D','5','_','A','S','M',' ','-','D','R','M','D', + '1','6','0','_','A','S','M',' ','-','D','A','E','S','_','A','S', + 'M',' ','-','D','V','P','A','E','S','_','A','S','M',' ','-','D', + 'W','H','I','R','L','P','O','O','L','_','A','S','M',' ','-','D', + 'G','H','A','S','H','_','A','S','M',' ','-','D','E','C','P','_', + 'N','I','S','T','Z','2','5','6','_','A','S','M',' ','-','D','P', + 'A','D','L','O','C','K','_','A','S','M',' ','-','D','P','O','L', + 'Y','1','3','0','5','_','A','S','M','\0' }; -#define PLATFORM "platform: " -#define DATE "built on: Tue Aug 14 23:13:48 2018" diff --git a/noarch/include/node/openssl/archs/VC-WIN32/no-asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/VC-WIN32/no-asm/crypto/include/internal/dso_conf.h index f555fb4b..c3b41df0 100644 --- a/noarch/include/node/openssl/archs/VC-WIN32/no-asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/VC-WIN32/no-asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,6 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - -# define DSO_EXTENSION "" +# define DSO_WIN32 +# define DSO_EXTENSION ".dll" #endif diff --git a/noarch/include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/opensslconf.h index eaf7b681..fd1aaa4c 100644 --- a/noarch/include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -37,6 +39,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -52,12 +57,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -91,6 +102,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -109,15 +123,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -141,6 +151,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -159,8 +181,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif - - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/VC-WIN32/no-asm/include/progs.h b/noarch/include/node/openssl/archs/VC-WIN32/no-asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/VC-WIN32/no-asm/include/progs.h +++ b/noarch/include/node/openssl/archs/VC-WIN32/no-asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/VC-WIN64-ARM/no-asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/VC-WIN64-ARM/no-asm/crypto/buildinf.h new file mode 100644 index 00000000..178b13ab --- /dev/null +++ b/noarch/include/node/openssl/archs/VC-WIN64-ARM/no-asm/crypto/buildinf.h @@ -0,0 +1,29 @@ +/* + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: VC-WIN64-ARM" +#define DATE "built on: Thu Jun 13 19:32:35 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a + * workaround for the situation where CFLAGS gets too long for a C90 string + * literal + */ +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','c','l',' ','/','Z','i', + ' ','/','F','d','o','s','s','l','_','s','t','a','t','i','c','.', + 'p','d','b',' ','/','G','s','0',' ','/','G','F',' ','/','G','y', + ' ','/','M','D',' ','/','W','3',' ','/','w','d','4','0','9','0', + ' ','/','n','o','l','o','g','o',' ','/','O','2',' ','-','D','L', + '_','E','N','D','I','A','N',' ','-','D','O','P','E','N','S','S', + 'L','_','P','I','C','\0' +}; diff --git a/noarch/include/node/openssl/archs/VC-WIN64-ARM/no-asm/crypto/include/internal/bn_conf.h b/noarch/include/node/openssl/archs/VC-WIN64-ARM/no-asm/crypto/include/internal/bn_conf.h new file mode 100644 index 00000000..d803b518 --- /dev/null +++ b/noarch/include/node/openssl/archs/VC-WIN64-ARM/no-asm/crypto/include/internal/bn_conf.h @@ -0,0 +1,28 @@ +/* WARNING: do not edit! */ +/* Generated by makefile from crypto/include/internal/bn_conf.h.in */ +/* + * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BN_CONF_H +# define HEADER_BN_CONF_H + +/* + * The contents of this file are not used in the UEFI build, as + * both 32-bit and 64-bit builds are supported from a single run + * of the Configure script. + */ + +/* Should we define BN_DIV2W here? */ + +/* Only one for the following should be defined */ +#undef SIXTY_FOUR_BIT_LONG +#define SIXTY_FOUR_BIT +#undef THIRTY_TWO_BIT + +#endif diff --git a/noarch/include/node/openssl/archs/VC-WIN64-ARM/no-asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/VC-WIN64-ARM/no-asm/crypto/include/internal/dso_conf.h new file mode 100644 index 00000000..c3b41df0 --- /dev/null +++ b/noarch/include/node/openssl/archs/VC-WIN64-ARM/no-asm/crypto/include/internal/dso_conf.h @@ -0,0 +1,16 @@ +/* WARNING: do not edit! */ +/* Generated by makefile from crypto/include/internal/dso_conf.h.in */ +/* + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DSO_CONF_H +# define HEADER_DSO_CONF_H +# define DSO_WIN32 +# define DSO_EXTENSION ".dll" +#endif diff --git a/noarch/include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/openssl/opensslconf.h new file mode 100644 index 00000000..fd1aaa4c --- /dev/null +++ b/noarch/include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/openssl/opensslconf.h @@ -0,0 +1,207 @@ +/* + * WARNING: do not edit! + * Generated by makefile from include/openssl/opensslconf.h.in + * + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef OPENSSL_ALGORITHM_DEFINES +# error OPENSSL_ALGORITHM_DEFINES no longer supported +#endif + +/* + * OpenSSL was configured with the following options: + */ + +#ifndef OPENSSL_SYS_WIN32 +# define OPENSSL_SYS_WIN32 1 +#endif +#ifndef OPENSSL_NO_COMP +# define OPENSSL_NO_COMP +#endif +#ifndef OPENSSL_NO_MD2 +# define OPENSSL_NO_MD2 +#endif +#ifndef OPENSSL_NO_RC5 +# define OPENSSL_NO_RC5 +#endif +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif +#ifndef OPENSSL_NO_ASAN +# define OPENSSL_NO_ASAN +#endif +#ifndef OPENSSL_NO_ASM +# define OPENSSL_NO_ASM +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG +# define OPENSSL_NO_CRYPTO_MDEBUG +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +#endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif +#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +# define OPENSSL_NO_EC_NISTP_64_GCC_128 +#endif +#ifndef OPENSSL_NO_EGD +# define OPENSSL_NO_EGD +#endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif +#ifndef OPENSSL_NO_FUZZ_AFL +# define OPENSSL_NO_FUZZ_AFL +#endif +#ifndef OPENSSL_NO_FUZZ_LIBFUZZER +# define OPENSSL_NO_FUZZ_LIBFUZZER +#endif +#ifndef OPENSSL_NO_HEARTBEATS +# define OPENSSL_NO_HEARTBEATS +#endif +#ifndef OPENSSL_NO_MSAN +# define OPENSSL_NO_MSAN +#endif +#ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +#endif +#ifndef OPENSSL_NO_SSL_TRACE +# define OPENSSL_NO_SSL_TRACE +#endif +#ifndef OPENSSL_NO_SSL3 +# define OPENSSL_NO_SSL3 +#endif +#ifndef OPENSSL_NO_SSL3_METHOD +# define OPENSSL_NO_SSL3_METHOD +#endif +#ifndef OPENSSL_NO_UBSAN +# define OPENSSL_NO_UBSAN +#endif +#ifndef OPENSSL_NO_UNIT_TEST +# define OPENSSL_NO_UNIT_TEST +#endif +#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS +# define OPENSSL_NO_WEAK_SSL_CIPHERS +#endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif + + +/* + * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers + * don't like that. This will hopefully silence them. + */ +#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; + +/* + * Applications should use -DOPENSSL_API_COMPAT= to suppress the + * declarations of functions deprecated in or before . Otherwise, they + * still won't see them if the library has been built to disable deprecated + * functions. + */ +#ifndef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +#endif + +#ifndef OPENSSL_FILE +# ifdef OPENSSL_NO_FILENAMES +# define OPENSSL_FILE "" +# define OPENSSL_LINE 0 +# else +# define OPENSSL_FILE __FILE__ +# define OPENSSL_LINE __LINE__ +# endif +#endif + +#ifndef OPENSSL_MIN_API +# define OPENSSL_MIN_API 0 +#endif + +#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API +# undef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT OPENSSL_MIN_API +#endif + +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10100000L +# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_1_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10000000L +# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_0_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x00908000L +# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_0_9_8(f) +#endif + +/* Generate 80386 code? */ +#undef I386_ONLY + +#undef OPENSSL_UNISTD +#define OPENSSL_UNISTD + +#define OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* + * The following are cipher-specific, but are part of the public API. + */ +#if !defined(OPENSSL_SYS_UEFI) +# define BN_LLONG +/* Only one for the following should be defined */ +# undef SIXTY_FOUR_BIT_LONG +# undef SIXTY_FOUR_BIT +# define THIRTY_TWO_BIT +#endif + +#define RC4_INT unsigned int + +#ifdef __cplusplus +} +#endif diff --git a/noarch/include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/progs.h b/noarch/include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/progs.h new file mode 100644 index 00000000..9b3d270e --- /dev/null +++ b/noarch/include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/progs.h @@ -0,0 +1,507 @@ +/* + * WARNING: do not edit! + * Generated by apps/progs.pl + * + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +typedef enum FUNC_TYPE { + FT_none, FT_general, FT_md, FT_cipher, FT_pkey, + FT_md_alg, FT_cipher_alg +} FUNC_TYPE; + +typedef struct function_st { + FUNC_TYPE type; + const char *name; + int (*func)(int argc, char *argv[]); + const OPTIONS *help; +} FUNCTION; + +DEFINE_LHASH_OF(FUNCTION); + +extern int asn1parse_main(int argc, char *argv[]); +extern int ca_main(int argc, char *argv[]); +extern int ciphers_main(int argc, char *argv[]); +extern int cms_main(int argc, char *argv[]); +extern int crl_main(int argc, char *argv[]); +extern int crl2pkcs7_main(int argc, char *argv[]); +extern int dgst_main(int argc, char *argv[]); +extern int dhparam_main(int argc, char *argv[]); +extern int dsa_main(int argc, char *argv[]); +extern int dsaparam_main(int argc, char *argv[]); +extern int ec_main(int argc, char *argv[]); +extern int ecparam_main(int argc, char *argv[]); +extern int enc_main(int argc, char *argv[]); +extern int engine_main(int argc, char *argv[]); +extern int errstr_main(int argc, char *argv[]); +extern int gendsa_main(int argc, char *argv[]); +extern int genpkey_main(int argc, char *argv[]); +extern int genrsa_main(int argc, char *argv[]); +extern int help_main(int argc, char *argv[]); +extern int list_main(int argc, char *argv[]); +extern int nseq_main(int argc, char *argv[]); +extern int ocsp_main(int argc, char *argv[]); +extern int passwd_main(int argc, char *argv[]); +extern int pkcs12_main(int argc, char *argv[]); +extern int pkcs7_main(int argc, char *argv[]); +extern int pkcs8_main(int argc, char *argv[]); +extern int pkey_main(int argc, char *argv[]); +extern int pkeyparam_main(int argc, char *argv[]); +extern int pkeyutl_main(int argc, char *argv[]); +extern int prime_main(int argc, char *argv[]); +extern int rand_main(int argc, char *argv[]); +extern int rehash_main(int argc, char *argv[]); +extern int req_main(int argc, char *argv[]); +extern int rsa_main(int argc, char *argv[]); +extern int rsautl_main(int argc, char *argv[]); +extern int s_client_main(int argc, char *argv[]); +extern int s_server_main(int argc, char *argv[]); +extern int s_time_main(int argc, char *argv[]); +extern int sess_id_main(int argc, char *argv[]); +extern int smime_main(int argc, char *argv[]); +extern int speed_main(int argc, char *argv[]); +extern int spkac_main(int argc, char *argv[]); +extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); +extern int ts_main(int argc, char *argv[]); +extern int verify_main(int argc, char *argv[]); +extern int version_main(int argc, char *argv[]); +extern int x509_main(int argc, char *argv[]); + +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; + +#ifdef INCLUDE_FUNCTION_TABLE +static FUNCTION functions[] = { + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, +#ifndef OPENSSL_NO_SOCK + {FT_general, "ciphers", ciphers_main, ciphers_options}, +#endif +#ifndef OPENSSL_NO_CMS + {FT_general, "cms", cms_main, cms_options}, +#endif + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, +#ifndef OPENSSL_NO_DH + {FT_general, "dhparam", dhparam_main, dhparam_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsa", dsa_main, dsa_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ec", ec_main, ec_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ecparam", ecparam_main, ecparam_options}, +#endif + {FT_general, "enc", enc_main, enc_options}, +#ifndef OPENSSL_NO_ENGINE + {FT_general, "engine", engine_main, engine_options}, +#endif + {FT_general, "errstr", errstr_main, errstr_options}, +#ifndef OPENSSL_NO_DSA + {FT_general, "gendsa", gendsa_main, gendsa_options}, +#endif + {FT_general, "genpkey", genpkey_main, genpkey_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "genrsa", genrsa_main, genrsa_options}, +#endif + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, +#ifndef OPENSSL_NO_OCSP + {FT_general, "ocsp", ocsp_main, ocsp_options}, +#endif + {FT_general, "passwd", passwd_main, passwd_options}, +#ifndef OPENSSL_NO_DES + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, +#endif + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "rsautl", rsautl_main, rsautl_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_client", s_client_main, s_client_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_server", s_server_main, s_server_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_time", s_time_main, s_time_options}, +#endif + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, +#ifndef OPENSSL_NO_SRP + {FT_general, "srp", srp_main, srp_options}, +#endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, +#ifndef OPENSSL_NO_TS + {FT_general, "ts", ts_main, ts_options}, +#endif + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, +#ifndef OPENSSL_NO_MD2 + {FT_md, "md2", dgst_main}, +#endif +#ifndef OPENSSL_NO_MD4 + {FT_md, "md4", dgst_main}, +#endif + {FT_md, "md5", dgst_main}, +#ifndef OPENSSL_NO_GOST + {FT_md, "gost", dgst_main}, +#endif + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, +#ifndef OPENSSL_NO_MDC2 + {FT_md, "mdc2", dgst_main}, +#endif +#ifndef OPENSSL_NO_RMD160 + {FT_md, "rmd160", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2b512", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2s256", dgst_main}, +#endif +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, +#ifdef ZLIB + {FT_cipher, "zlib", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "desx", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4-40", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} +}; +#endif diff --git a/noarch/include/node/openssl/archs/VC-WIN64A/asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/VC-WIN64A/asm/crypto/buildinf.h index b4a762c7..0b6c28e4 100644 --- a/noarch/include/node/openssl/archs/VC-WIN64A/asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/VC-WIN64A/asm/crypto/buildinf.h @@ -1,12 +1,23 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: " +#define DATE "built on: Thu Jun 13 19:30:56 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','c','c','\0' +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','c','c',' ',' ','\0' }; -#define PLATFORM "platform: " -#define DATE "built on: Tue Aug 14 23:13:42 2018" diff --git a/noarch/include/node/openssl/archs/VC-WIN64A/asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/VC-WIN64A/asm/crypto/include/internal/dso_conf.h index f555fb4b..c3b41df0 100644 --- a/noarch/include/node/openssl/archs/VC-WIN64A/asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/VC-WIN64A/asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,6 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - -# define DSO_EXTENSION "" +# define DSO_WIN32 +# define DSO_EXTENSION ".dll" #endif diff --git a/noarch/include/node/openssl/archs/VC-WIN64A/asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/VC-WIN64A/asm/include/openssl/opensslconf.h index fd1ca561..b1aa3bbf 100644 --- a/noarch/include/node/openssl/archs/VC-WIN64A/asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/VC-WIN64A/asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -37,6 +39,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -49,12 +54,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -88,6 +99,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -106,15 +120,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -138,6 +148,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -156,8 +178,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif -#define OPENSSL_CPUID_OBJ - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/VC-WIN64A/asm/include/progs.h b/noarch/include/node/openssl/archs/VC-WIN64A/asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/VC-WIN64A/asm/include/progs.h +++ b/noarch/include/node/openssl/archs/VC-WIN64A/asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/VC-WIN64A/asm_avx2/crypto/buildinf.h b/noarch/include/node/openssl/archs/VC-WIN64A/asm_avx2/crypto/buildinf.h new file mode 100644 index 00000000..6f1b4a65 --- /dev/null +++ b/noarch/include/node/openssl/archs/VC-WIN64A/asm_avx2/crypto/buildinf.h @@ -0,0 +1,23 @@ +/* + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: " +#define DATE "built on: Thu Jun 13 19:31:33 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a + * workaround for the situation where CFLAGS gets too long for a C90 string + * literal + */ +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','c','c',' ',' ','\0' +}; diff --git a/noarch/include/node/openssl/archs/VC-WIN64A/asm_avx2/crypto/include/internal/bn_conf.h b/noarch/include/node/openssl/archs/VC-WIN64A/asm_avx2/crypto/include/internal/bn_conf.h new file mode 100644 index 00000000..d803b518 --- /dev/null +++ b/noarch/include/node/openssl/archs/VC-WIN64A/asm_avx2/crypto/include/internal/bn_conf.h @@ -0,0 +1,28 @@ +/* WARNING: do not edit! */ +/* Generated by makefile from crypto/include/internal/bn_conf.h.in */ +/* + * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BN_CONF_H +# define HEADER_BN_CONF_H + +/* + * The contents of this file are not used in the UEFI build, as + * both 32-bit and 64-bit builds are supported from a single run + * of the Configure script. + */ + +/* Should we define BN_DIV2W here? */ + +/* Only one for the following should be defined */ +#undef SIXTY_FOUR_BIT_LONG +#define SIXTY_FOUR_BIT +#undef THIRTY_TWO_BIT + +#endif diff --git a/noarch/include/node/openssl/archs/VC-WIN64A/asm_avx2/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/VC-WIN64A/asm_avx2/crypto/include/internal/dso_conf.h new file mode 100644 index 00000000..c3b41df0 --- /dev/null +++ b/noarch/include/node/openssl/archs/VC-WIN64A/asm_avx2/crypto/include/internal/dso_conf.h @@ -0,0 +1,16 @@ +/* WARNING: do not edit! */ +/* Generated by makefile from crypto/include/internal/dso_conf.h.in */ +/* + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DSO_CONF_H +# define HEADER_DSO_CONF_H +# define DSO_WIN32 +# define DSO_EXTENSION ".dll" +#endif diff --git a/noarch/include/node/openssl/archs/VC-WIN64A/asm_avx2/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/VC-WIN64A/asm_avx2/include/openssl/opensslconf.h new file mode 100644 index 00000000..b1aa3bbf --- /dev/null +++ b/noarch/include/node/openssl/archs/VC-WIN64A/asm_avx2/include/openssl/opensslconf.h @@ -0,0 +1,204 @@ +/* + * WARNING: do not edit! + * Generated by makefile from include/openssl/opensslconf.h.in + * + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef OPENSSL_ALGORITHM_DEFINES +# error OPENSSL_ALGORITHM_DEFINES no longer supported +#endif + +/* + * OpenSSL was configured with the following options: + */ + +#ifndef OPENSSL_SYS_WIN64A +# define OPENSSL_SYS_WIN64A 1 +#endif +#ifndef OPENSSL_NO_COMP +# define OPENSSL_NO_COMP +#endif +#ifndef OPENSSL_NO_MD2 +# define OPENSSL_NO_MD2 +#endif +#ifndef OPENSSL_NO_RC5 +# define OPENSSL_NO_RC5 +#endif +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif +#ifndef OPENSSL_NO_ASAN +# define OPENSSL_NO_ASAN +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG +# define OPENSSL_NO_CRYPTO_MDEBUG +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +#endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif +#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +# define OPENSSL_NO_EC_NISTP_64_GCC_128 +#endif +#ifndef OPENSSL_NO_EGD +# define OPENSSL_NO_EGD +#endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif +#ifndef OPENSSL_NO_FUZZ_AFL +# define OPENSSL_NO_FUZZ_AFL +#endif +#ifndef OPENSSL_NO_FUZZ_LIBFUZZER +# define OPENSSL_NO_FUZZ_LIBFUZZER +#endif +#ifndef OPENSSL_NO_HEARTBEATS +# define OPENSSL_NO_HEARTBEATS +#endif +#ifndef OPENSSL_NO_MSAN +# define OPENSSL_NO_MSAN +#endif +#ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +#endif +#ifndef OPENSSL_NO_SSL_TRACE +# define OPENSSL_NO_SSL_TRACE +#endif +#ifndef OPENSSL_NO_SSL3 +# define OPENSSL_NO_SSL3 +#endif +#ifndef OPENSSL_NO_SSL3_METHOD +# define OPENSSL_NO_SSL3_METHOD +#endif +#ifndef OPENSSL_NO_UBSAN +# define OPENSSL_NO_UBSAN +#endif +#ifndef OPENSSL_NO_UNIT_TEST +# define OPENSSL_NO_UNIT_TEST +#endif +#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS +# define OPENSSL_NO_WEAK_SSL_CIPHERS +#endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif + + +/* + * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers + * don't like that. This will hopefully silence them. + */ +#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; + +/* + * Applications should use -DOPENSSL_API_COMPAT= to suppress the + * declarations of functions deprecated in or before . Otherwise, they + * still won't see them if the library has been built to disable deprecated + * functions. + */ +#ifndef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +#endif + +#ifndef OPENSSL_FILE +# ifdef OPENSSL_NO_FILENAMES +# define OPENSSL_FILE "" +# define OPENSSL_LINE 0 +# else +# define OPENSSL_FILE __FILE__ +# define OPENSSL_LINE __LINE__ +# endif +#endif + +#ifndef OPENSSL_MIN_API +# define OPENSSL_MIN_API 0 +#endif + +#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API +# undef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT OPENSSL_MIN_API +#endif + +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10100000L +# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_1_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10000000L +# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_0_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x00908000L +# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_0_9_8(f) +#endif + +/* Generate 80386 code? */ +#undef I386_ONLY + +#undef OPENSSL_UNISTD +#define OPENSSL_UNISTD + +#define OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* + * The following are cipher-specific, but are part of the public API. + */ +#if !defined(OPENSSL_SYS_UEFI) +# undef BN_LLONG +/* Only one for the following should be defined */ +# undef SIXTY_FOUR_BIT_LONG +# define SIXTY_FOUR_BIT +# undef THIRTY_TWO_BIT +#endif + +#define RC4_INT unsigned int + +#ifdef __cplusplus +} +#endif diff --git a/noarch/include/node/openssl/archs/VC-WIN64A/asm_avx2/include/progs.h b/noarch/include/node/openssl/archs/VC-WIN64A/asm_avx2/include/progs.h new file mode 100644 index 00000000..9b3d270e --- /dev/null +++ b/noarch/include/node/openssl/archs/VC-WIN64A/asm_avx2/include/progs.h @@ -0,0 +1,507 @@ +/* + * WARNING: do not edit! + * Generated by apps/progs.pl + * + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +typedef enum FUNC_TYPE { + FT_none, FT_general, FT_md, FT_cipher, FT_pkey, + FT_md_alg, FT_cipher_alg +} FUNC_TYPE; + +typedef struct function_st { + FUNC_TYPE type; + const char *name; + int (*func)(int argc, char *argv[]); + const OPTIONS *help; +} FUNCTION; + +DEFINE_LHASH_OF(FUNCTION); + +extern int asn1parse_main(int argc, char *argv[]); +extern int ca_main(int argc, char *argv[]); +extern int ciphers_main(int argc, char *argv[]); +extern int cms_main(int argc, char *argv[]); +extern int crl_main(int argc, char *argv[]); +extern int crl2pkcs7_main(int argc, char *argv[]); +extern int dgst_main(int argc, char *argv[]); +extern int dhparam_main(int argc, char *argv[]); +extern int dsa_main(int argc, char *argv[]); +extern int dsaparam_main(int argc, char *argv[]); +extern int ec_main(int argc, char *argv[]); +extern int ecparam_main(int argc, char *argv[]); +extern int enc_main(int argc, char *argv[]); +extern int engine_main(int argc, char *argv[]); +extern int errstr_main(int argc, char *argv[]); +extern int gendsa_main(int argc, char *argv[]); +extern int genpkey_main(int argc, char *argv[]); +extern int genrsa_main(int argc, char *argv[]); +extern int help_main(int argc, char *argv[]); +extern int list_main(int argc, char *argv[]); +extern int nseq_main(int argc, char *argv[]); +extern int ocsp_main(int argc, char *argv[]); +extern int passwd_main(int argc, char *argv[]); +extern int pkcs12_main(int argc, char *argv[]); +extern int pkcs7_main(int argc, char *argv[]); +extern int pkcs8_main(int argc, char *argv[]); +extern int pkey_main(int argc, char *argv[]); +extern int pkeyparam_main(int argc, char *argv[]); +extern int pkeyutl_main(int argc, char *argv[]); +extern int prime_main(int argc, char *argv[]); +extern int rand_main(int argc, char *argv[]); +extern int rehash_main(int argc, char *argv[]); +extern int req_main(int argc, char *argv[]); +extern int rsa_main(int argc, char *argv[]); +extern int rsautl_main(int argc, char *argv[]); +extern int s_client_main(int argc, char *argv[]); +extern int s_server_main(int argc, char *argv[]); +extern int s_time_main(int argc, char *argv[]); +extern int sess_id_main(int argc, char *argv[]); +extern int smime_main(int argc, char *argv[]); +extern int speed_main(int argc, char *argv[]); +extern int spkac_main(int argc, char *argv[]); +extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); +extern int ts_main(int argc, char *argv[]); +extern int verify_main(int argc, char *argv[]); +extern int version_main(int argc, char *argv[]); +extern int x509_main(int argc, char *argv[]); + +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; + +#ifdef INCLUDE_FUNCTION_TABLE +static FUNCTION functions[] = { + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, +#ifndef OPENSSL_NO_SOCK + {FT_general, "ciphers", ciphers_main, ciphers_options}, +#endif +#ifndef OPENSSL_NO_CMS + {FT_general, "cms", cms_main, cms_options}, +#endif + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, +#ifndef OPENSSL_NO_DH + {FT_general, "dhparam", dhparam_main, dhparam_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsa", dsa_main, dsa_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ec", ec_main, ec_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ecparam", ecparam_main, ecparam_options}, +#endif + {FT_general, "enc", enc_main, enc_options}, +#ifndef OPENSSL_NO_ENGINE + {FT_general, "engine", engine_main, engine_options}, +#endif + {FT_general, "errstr", errstr_main, errstr_options}, +#ifndef OPENSSL_NO_DSA + {FT_general, "gendsa", gendsa_main, gendsa_options}, +#endif + {FT_general, "genpkey", genpkey_main, genpkey_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "genrsa", genrsa_main, genrsa_options}, +#endif + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, +#ifndef OPENSSL_NO_OCSP + {FT_general, "ocsp", ocsp_main, ocsp_options}, +#endif + {FT_general, "passwd", passwd_main, passwd_options}, +#ifndef OPENSSL_NO_DES + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, +#endif + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "rsautl", rsautl_main, rsautl_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_client", s_client_main, s_client_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_server", s_server_main, s_server_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_time", s_time_main, s_time_options}, +#endif + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, +#ifndef OPENSSL_NO_SRP + {FT_general, "srp", srp_main, srp_options}, +#endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, +#ifndef OPENSSL_NO_TS + {FT_general, "ts", ts_main, ts_options}, +#endif + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, +#ifndef OPENSSL_NO_MD2 + {FT_md, "md2", dgst_main}, +#endif +#ifndef OPENSSL_NO_MD4 + {FT_md, "md4", dgst_main}, +#endif + {FT_md, "md5", dgst_main}, +#ifndef OPENSSL_NO_GOST + {FT_md, "gost", dgst_main}, +#endif + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, +#ifndef OPENSSL_NO_MDC2 + {FT_md, "mdc2", dgst_main}, +#endif +#ifndef OPENSSL_NO_RMD160 + {FT_md, "rmd160", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2b512", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2s256", dgst_main}, +#endif +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, +#ifdef ZLIB + {FT_cipher, "zlib", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "desx", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4-40", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} +}; +#endif diff --git a/noarch/include/node/openssl/archs/VC-WIN64A/no-asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/VC-WIN64A/no-asm/crypto/buildinf.h index c255115f..ea9a7d4e 100644 --- a/noarch/include/node/openssl/archs/VC-WIN64A/no-asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/VC-WIN64A/no-asm/crypto/buildinf.h @@ -1,12 +1,23 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: " +#define DATE "built on: Thu Jun 13 19:32:05 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','c','c','\0' +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','c','c',' ',' ','\0' }; -#define PLATFORM "platform: " -#define DATE "built on: Tue Aug 14 23:13:46 2018" diff --git a/noarch/include/node/openssl/archs/VC-WIN64A/no-asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/VC-WIN64A/no-asm/crypto/include/internal/dso_conf.h index f555fb4b..c3b41df0 100644 --- a/noarch/include/node/openssl/archs/VC-WIN64A/no-asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/VC-WIN64A/no-asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,6 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - -# define DSO_EXTENSION "" +# define DSO_WIN32 +# define DSO_EXTENSION ".dll" #endif diff --git a/noarch/include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/opensslconf.h index 097c8ae7..1b30a53f 100644 --- a/noarch/include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -37,6 +39,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -52,12 +57,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -91,6 +102,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -109,15 +123,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -141,6 +151,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -159,8 +181,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif - - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/VC-WIN64A/no-asm/include/progs.h b/noarch/include/node/openssl/archs/VC-WIN64A/no-asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/VC-WIN64A/no-asm/include/progs.h +++ b/noarch/include/node/openssl/archs/VC-WIN64A/no-asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/aix-gcc/asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/aix-gcc/asm/crypto/buildinf.h index 55bdf413..24c83bb7 100644 --- a/noarch/include/node/openssl/archs/aix-gcc/asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/aix-gcc/asm/crypto/buildinf.h @@ -1,29 +1,35 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: aix-gcc" +#define DATE "built on: Thu Jun 13 19:21:29 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','D', - 'D','S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E', - '_','D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U', - 'G',' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E', - 'A','D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O', - '_','D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ', - '-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D', - 'O','P','E','N','S','S','L','_','B','N','_','A','S','M','_','M', - 'O','N','T',' ','-','D','S','H','A','1','_','A','S','M',' ','-', - 'D','S','H','A','2','5','6','_','A','S','M',' ','-','D','S','H', - 'A','5','1','2','_','A','S','M',' ','-','D','A','E','S','_','A', - 'S','M',' ','-','D','V','P','A','E','S','_','A','S','M',' ','-', - 'D','P','O','L','Y','1','3','0','5','_','A','S','M',' ','-','D', - 'O','P','E','N','S','S','L','D','I','R','=','"','\\','"','/','u', - 's','r','/','l','o','c','a','l','/','s','s','l','\\','"','"',' ', - '-','D','E','N','G','I','N','E','S','D','I','R','=','"','\\','"', - '/','u','s','r','/','l','o','c','a','l','/','l','i','b','/','e', - 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','p', + 't','h','r','e','a','d',' ','-','W','a',',','-','-','n','o','e', + 'x','e','c','s','t','a','c','k',' ','-','O',' ','-','D','B','_', + 'E','N','D','I','A','N',' ','-','D','O','P','E','N','S','S','L', + '_','P','I','C',' ','-','D','O','P','E','N','S','S','L','_','C', + 'P','U','I','D','_','O','B','J',' ','-','D','O','P','E','N','S', + 'S','L','_','B','N','_','A','S','M','_','M','O','N','T',' ','-', + 'D','S','H','A','1','_','A','S','M',' ','-','D','S','H','A','2', + '5','6','_','A','S','M',' ','-','D','S','H','A','5','1','2','_', + 'A','S','M',' ','-','D','A','E','S','_','A','S','M',' ','-','D', + 'V','P','A','E','S','_','A','S','M',' ','-','D','P','O','L','Y', + '1','3','0','5','_','A','S','M',' ','-','D','N','D','E','B','U', + 'G','\0' }; -#define PLATFORM "platform: aix-gcc" -#define DATE "built on: Tue Aug 14 23:12:56 2018" diff --git a/noarch/include/node/openssl/archs/aix-gcc/asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/aix-gcc/asm/crypto/include/internal/dso_conf.h index 7a52dd1f..252266ec 100644 --- a/noarch/include/node/openssl/archs/aix-gcc/asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/aix-gcc/asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".so" #endif diff --git a/noarch/include/node/openssl/archs/aix-gcc/asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/aix-gcc/asm/include/openssl/opensslconf.h index b3ae627c..e7861bdb 100644 --- a/noarch/include/node/openssl/archs/aix-gcc/asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/aix-gcc/asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -37,6 +39,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -49,12 +54,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -88,6 +99,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -106,15 +120,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -138,6 +148,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -156,8 +178,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif -#define OPENSSL_CPUID_OBJ - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/aix-gcc/asm/include/progs.h b/noarch/include/node/openssl/archs/aix-gcc/asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/aix-gcc/asm/include/progs.h +++ b/noarch/include/node/openssl/archs/aix-gcc/asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/aix-gcc/asm_avx2/crypto/buildinf.h b/noarch/include/node/openssl/archs/aix-gcc/asm_avx2/crypto/buildinf.h new file mode 100644 index 00000000..f2c699d6 --- /dev/null +++ b/noarch/include/node/openssl/archs/aix-gcc/asm_avx2/crypto/buildinf.h @@ -0,0 +1,36 @@ +/* + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: aix-gcc" +#define DATE "built on: Thu Jun 13 19:21:38 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a + * workaround for the situation where CFLAGS gets too long for a C90 string + * literal + */ +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','.','.','/','c','o','n', + 'f','i','g','/','f','a','k','e','_','g','c','c','.','p','l',' ', + '-','p','t','h','r','e','a','d',' ','-','W','a',',','-','-','n', + 'o','e','x','e','c','s','t','a','c','k',' ','-','O',' ','-','D', + 'B','_','E','N','D','I','A','N',' ','-','D','O','P','E','N','S', + 'S','L','_','P','I','C',' ','-','D','O','P','E','N','S','S','L', + '_','C','P','U','I','D','_','O','B','J',' ','-','D','O','P','E', + 'N','S','S','L','_','B','N','_','A','S','M','_','M','O','N','T', + ' ','-','D','S','H','A','1','_','A','S','M',' ','-','D','S','H', + 'A','2','5','6','_','A','S','M',' ','-','D','S','H','A','5','1', + '2','_','A','S','M',' ','-','D','A','E','S','_','A','S','M',' ', + '-','D','V','P','A','E','S','_','A','S','M',' ','-','D','P','O', + 'L','Y','1','3','0','5','_','A','S','M',' ','-','D','N','D','E', + 'B','U','G','\0' +}; diff --git a/noarch/include/node/openssl/archs/aix-gcc/asm_avx2/crypto/include/internal/bn_conf.h b/noarch/include/node/openssl/archs/aix-gcc/asm_avx2/crypto/include/internal/bn_conf.h new file mode 100644 index 00000000..fb52156b --- /dev/null +++ b/noarch/include/node/openssl/archs/aix-gcc/asm_avx2/crypto/include/internal/bn_conf.h @@ -0,0 +1,28 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/bn_conf.h.in */ +/* + * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BN_CONF_H +# define HEADER_BN_CONF_H + +/* + * The contents of this file are not used in the UEFI build, as + * both 32-bit and 64-bit builds are supported from a single run + * of the Configure script. + */ + +/* Should we define BN_DIV2W here? */ + +/* Only one for the following should be defined */ +#undef SIXTY_FOUR_BIT_LONG +#undef SIXTY_FOUR_BIT +#define THIRTY_TWO_BIT + +#endif diff --git a/noarch/include/node/openssl/archs/aix-gcc/asm_avx2/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/aix-gcc/asm_avx2/crypto/include/internal/dso_conf.h new file mode 100644 index 00000000..252266ec --- /dev/null +++ b/noarch/include/node/openssl/archs/aix-gcc/asm_avx2/crypto/include/internal/dso_conf.h @@ -0,0 +1,17 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ +/* + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DSO_CONF_H +# define HEADER_DSO_CONF_H +# define DSO_DLFCN +# define HAVE_DLFCN_H +# define DSO_EXTENSION ".so" +#endif diff --git a/noarch/include/node/openssl/archs/aix-gcc/asm_avx2/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/aix-gcc/asm_avx2/include/openssl/opensslconf.h new file mode 100644 index 00000000..e7861bdb --- /dev/null +++ b/noarch/include/node/openssl/archs/aix-gcc/asm_avx2/include/openssl/opensslconf.h @@ -0,0 +1,204 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/opensslconf.h.in + * + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef OPENSSL_ALGORITHM_DEFINES +# error OPENSSL_ALGORITHM_DEFINES no longer supported +#endif + +/* + * OpenSSL was configured with the following options: + */ + +#ifndef OPENSSL_SYS_AIX +# define OPENSSL_SYS_AIX 1 +#endif +#ifndef OPENSSL_NO_COMP +# define OPENSSL_NO_COMP +#endif +#ifndef OPENSSL_NO_MD2 +# define OPENSSL_NO_MD2 +#endif +#ifndef OPENSSL_NO_RC5 +# define OPENSSL_NO_RC5 +#endif +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif +#ifndef OPENSSL_NO_ASAN +# define OPENSSL_NO_ASAN +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG +# define OPENSSL_NO_CRYPTO_MDEBUG +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +#endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif +#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +# define OPENSSL_NO_EC_NISTP_64_GCC_128 +#endif +#ifndef OPENSSL_NO_EGD +# define OPENSSL_NO_EGD +#endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif +#ifndef OPENSSL_NO_FUZZ_AFL +# define OPENSSL_NO_FUZZ_AFL +#endif +#ifndef OPENSSL_NO_FUZZ_LIBFUZZER +# define OPENSSL_NO_FUZZ_LIBFUZZER +#endif +#ifndef OPENSSL_NO_HEARTBEATS +# define OPENSSL_NO_HEARTBEATS +#endif +#ifndef OPENSSL_NO_MSAN +# define OPENSSL_NO_MSAN +#endif +#ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +#endif +#ifndef OPENSSL_NO_SSL_TRACE +# define OPENSSL_NO_SSL_TRACE +#endif +#ifndef OPENSSL_NO_SSL3 +# define OPENSSL_NO_SSL3 +#endif +#ifndef OPENSSL_NO_SSL3_METHOD +# define OPENSSL_NO_SSL3_METHOD +#endif +#ifndef OPENSSL_NO_UBSAN +# define OPENSSL_NO_UBSAN +#endif +#ifndef OPENSSL_NO_UNIT_TEST +# define OPENSSL_NO_UNIT_TEST +#endif +#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS +# define OPENSSL_NO_WEAK_SSL_CIPHERS +#endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif + + +/* + * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers + * don't like that. This will hopefully silence them. + */ +#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; + +/* + * Applications should use -DOPENSSL_API_COMPAT= to suppress the + * declarations of functions deprecated in or before . Otherwise, they + * still won't see them if the library has been built to disable deprecated + * functions. + */ +#ifndef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +#endif + +#ifndef OPENSSL_FILE +# ifdef OPENSSL_NO_FILENAMES +# define OPENSSL_FILE "" +# define OPENSSL_LINE 0 +# else +# define OPENSSL_FILE __FILE__ +# define OPENSSL_LINE __LINE__ +# endif +#endif + +#ifndef OPENSSL_MIN_API +# define OPENSSL_MIN_API 0 +#endif + +#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API +# undef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT OPENSSL_MIN_API +#endif + +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10100000L +# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_1_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10000000L +# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_0_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x00908000L +# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_0_9_8(f) +#endif + +/* Generate 80386 code? */ +#undef I386_ONLY + +#undef OPENSSL_UNISTD +#define OPENSSL_UNISTD + +#undef OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* + * The following are cipher-specific, but are part of the public API. + */ +#if !defined(OPENSSL_SYS_UEFI) +# define BN_LLONG +/* Only one for the following should be defined */ +# undef SIXTY_FOUR_BIT_LONG +# undef SIXTY_FOUR_BIT +# define THIRTY_TWO_BIT +#endif + +#define RC4_INT unsigned char + +#ifdef __cplusplus +} +#endif diff --git a/noarch/include/node/openssl/archs/aix-gcc/asm_avx2/include/progs.h b/noarch/include/node/openssl/archs/aix-gcc/asm_avx2/include/progs.h new file mode 100644 index 00000000..9b3d270e --- /dev/null +++ b/noarch/include/node/openssl/archs/aix-gcc/asm_avx2/include/progs.h @@ -0,0 +1,507 @@ +/* + * WARNING: do not edit! + * Generated by apps/progs.pl + * + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +typedef enum FUNC_TYPE { + FT_none, FT_general, FT_md, FT_cipher, FT_pkey, + FT_md_alg, FT_cipher_alg +} FUNC_TYPE; + +typedef struct function_st { + FUNC_TYPE type; + const char *name; + int (*func)(int argc, char *argv[]); + const OPTIONS *help; +} FUNCTION; + +DEFINE_LHASH_OF(FUNCTION); + +extern int asn1parse_main(int argc, char *argv[]); +extern int ca_main(int argc, char *argv[]); +extern int ciphers_main(int argc, char *argv[]); +extern int cms_main(int argc, char *argv[]); +extern int crl_main(int argc, char *argv[]); +extern int crl2pkcs7_main(int argc, char *argv[]); +extern int dgst_main(int argc, char *argv[]); +extern int dhparam_main(int argc, char *argv[]); +extern int dsa_main(int argc, char *argv[]); +extern int dsaparam_main(int argc, char *argv[]); +extern int ec_main(int argc, char *argv[]); +extern int ecparam_main(int argc, char *argv[]); +extern int enc_main(int argc, char *argv[]); +extern int engine_main(int argc, char *argv[]); +extern int errstr_main(int argc, char *argv[]); +extern int gendsa_main(int argc, char *argv[]); +extern int genpkey_main(int argc, char *argv[]); +extern int genrsa_main(int argc, char *argv[]); +extern int help_main(int argc, char *argv[]); +extern int list_main(int argc, char *argv[]); +extern int nseq_main(int argc, char *argv[]); +extern int ocsp_main(int argc, char *argv[]); +extern int passwd_main(int argc, char *argv[]); +extern int pkcs12_main(int argc, char *argv[]); +extern int pkcs7_main(int argc, char *argv[]); +extern int pkcs8_main(int argc, char *argv[]); +extern int pkey_main(int argc, char *argv[]); +extern int pkeyparam_main(int argc, char *argv[]); +extern int pkeyutl_main(int argc, char *argv[]); +extern int prime_main(int argc, char *argv[]); +extern int rand_main(int argc, char *argv[]); +extern int rehash_main(int argc, char *argv[]); +extern int req_main(int argc, char *argv[]); +extern int rsa_main(int argc, char *argv[]); +extern int rsautl_main(int argc, char *argv[]); +extern int s_client_main(int argc, char *argv[]); +extern int s_server_main(int argc, char *argv[]); +extern int s_time_main(int argc, char *argv[]); +extern int sess_id_main(int argc, char *argv[]); +extern int smime_main(int argc, char *argv[]); +extern int speed_main(int argc, char *argv[]); +extern int spkac_main(int argc, char *argv[]); +extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); +extern int ts_main(int argc, char *argv[]); +extern int verify_main(int argc, char *argv[]); +extern int version_main(int argc, char *argv[]); +extern int x509_main(int argc, char *argv[]); + +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; + +#ifdef INCLUDE_FUNCTION_TABLE +static FUNCTION functions[] = { + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, +#ifndef OPENSSL_NO_SOCK + {FT_general, "ciphers", ciphers_main, ciphers_options}, +#endif +#ifndef OPENSSL_NO_CMS + {FT_general, "cms", cms_main, cms_options}, +#endif + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, +#ifndef OPENSSL_NO_DH + {FT_general, "dhparam", dhparam_main, dhparam_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsa", dsa_main, dsa_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ec", ec_main, ec_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ecparam", ecparam_main, ecparam_options}, +#endif + {FT_general, "enc", enc_main, enc_options}, +#ifndef OPENSSL_NO_ENGINE + {FT_general, "engine", engine_main, engine_options}, +#endif + {FT_general, "errstr", errstr_main, errstr_options}, +#ifndef OPENSSL_NO_DSA + {FT_general, "gendsa", gendsa_main, gendsa_options}, +#endif + {FT_general, "genpkey", genpkey_main, genpkey_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "genrsa", genrsa_main, genrsa_options}, +#endif + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, +#ifndef OPENSSL_NO_OCSP + {FT_general, "ocsp", ocsp_main, ocsp_options}, +#endif + {FT_general, "passwd", passwd_main, passwd_options}, +#ifndef OPENSSL_NO_DES + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, +#endif + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "rsautl", rsautl_main, rsautl_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_client", s_client_main, s_client_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_server", s_server_main, s_server_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_time", s_time_main, s_time_options}, +#endif + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, +#ifndef OPENSSL_NO_SRP + {FT_general, "srp", srp_main, srp_options}, +#endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, +#ifndef OPENSSL_NO_TS + {FT_general, "ts", ts_main, ts_options}, +#endif + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, +#ifndef OPENSSL_NO_MD2 + {FT_md, "md2", dgst_main}, +#endif +#ifndef OPENSSL_NO_MD4 + {FT_md, "md4", dgst_main}, +#endif + {FT_md, "md5", dgst_main}, +#ifndef OPENSSL_NO_GOST + {FT_md, "gost", dgst_main}, +#endif + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, +#ifndef OPENSSL_NO_MDC2 + {FT_md, "mdc2", dgst_main}, +#endif +#ifndef OPENSSL_NO_RMD160 + {FT_md, "rmd160", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2b512", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2s256", dgst_main}, +#endif +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, +#ifdef ZLIB + {FT_cipher, "zlib", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "desx", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4-40", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} +}; +#endif diff --git a/noarch/include/node/openssl/archs/aix-gcc/no-asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/aix-gcc/no-asm/crypto/buildinf.h index 915064c8..0ca5c271 100644 --- a/noarch/include/node/openssl/archs/aix-gcc/no-asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/aix-gcc/no-asm/crypto/buildinf.h @@ -1,23 +1,26 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: aix-gcc" +#define DATE "built on: Thu Jun 13 19:21:45 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','D', - 'D','S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E', - '_','D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U', - 'G',' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E', - 'A','D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O', - '_','D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ', - '-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D', - 'O','P','E','N','S','S','L','D','I','R','=','"','\\','"','/','u', - 's','r','/','l','o','c','a','l','/','s','s','l','\\','"','"',' ', - '-','D','E','N','G','I','N','E','S','D','I','R','=','"','\\','"', - '/','u','s','r','/','l','o','c','a','l','/','l','i','b','/','e', - 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','p', + 't','h','r','e','a','d',' ','-','O',' ','-','D','B','_','E','N', + 'D','I','A','N',' ','-','D','O','P','E','N','S','S','L','_','P', + 'I','C',' ','-','D','N','D','E','B','U','G','\0' }; -#define PLATFORM "platform: aix-gcc" -#define DATE "built on: Tue Aug 14 23:12:58 2018" diff --git a/noarch/include/node/openssl/archs/aix-gcc/no-asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/aix-gcc/no-asm/crypto/include/internal/dso_conf.h index 7a52dd1f..252266ec 100644 --- a/noarch/include/node/openssl/archs/aix-gcc/no-asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/aix-gcc/no-asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".so" #endif diff --git a/noarch/include/node/openssl/archs/aix-gcc/no-asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/aix-gcc/no-asm/include/openssl/opensslconf.h index de84cb51..57f421d5 100644 --- a/noarch/include/node/openssl/archs/aix-gcc/no-asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/aix-gcc/no-asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -37,6 +39,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -52,12 +57,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -91,6 +102,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -109,15 +123,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -141,6 +151,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -159,8 +181,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif - - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/aix-gcc/no-asm/include/progs.h b/noarch/include/node/openssl/archs/aix-gcc/no-asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/aix-gcc/no-asm/include/progs.h +++ b/noarch/include/node/openssl/archs/aix-gcc/no-asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/aix64-gcc/asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/aix64-gcc/asm/crypto/buildinf.h index bbb79117..2b09f512 100644 --- a/noarch/include/node/openssl/archs/aix64-gcc/asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/aix64-gcc/asm/crypto/buildinf.h @@ -1,29 +1,38 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: aix64-gcc" +#define DATE "built on: Thu Jun 13 19:21:50 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','D', - 'D','S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E', - '_','D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U', - 'G',' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E', - 'A','D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O', - '_','D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ', - '-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D', - 'O','P','E','N','S','S','L','_','B','N','_','A','S','M','_','M', - 'O','N','T',' ','-','D','S','H','A','1','_','A','S','M',' ','-', - 'D','S','H','A','2','5','6','_','A','S','M',' ','-','D','S','H', - 'A','5','1','2','_','A','S','M',' ','-','D','A','E','S','_','A', - 'S','M',' ','-','D','V','P','A','E','S','_','A','S','M',' ','-', - 'D','P','O','L','Y','1','3','0','5','_','A','S','M',' ','-','D', - 'O','P','E','N','S','S','L','D','I','R','=','"','\\','"','/','u', - 's','r','/','l','o','c','a','l','/','s','s','l','\\','"','"',' ', - '-','D','E','N','G','I','N','E','S','D','I','R','=','"','\\','"', - '/','u','s','r','/','l','o','c','a','l','/','l','i','b','/','e', - 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','m', + 'a','i','x','6','4',' ','-','p','t','h','r','e','a','d',' ','-', + 'W','a',',','-','-','n','o','e','x','e','c','s','t','a','c','k', + ' ','-','O',' ','-','D','B','_','E','N','D','I','A','N',' ','-', + 'D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D','O', + 'P','E','N','S','S','L','_','C','P','U','I','D','_','O','B','J', + ' ','-','D','O','P','E','N','S','S','L','_','B','N','_','A','S', + 'M','_','M','O','N','T',' ','-','D','S','H','A','1','_','A','S', + 'M',' ','-','D','S','H','A','2','5','6','_','A','S','M',' ','-', + 'D','S','H','A','5','1','2','_','A','S','M',' ','-','D','K','E', + 'C','C','A','K','1','6','0','0','_','A','S','M',' ','-','D','A', + 'E','S','_','A','S','M',' ','-','D','V','P','A','E','S','_','A', + 'S','M',' ','-','D','E','C','P','_','N','I','S','T','Z','2','5', + '6','_','A','S','M',' ','-','D','X','2','5','5','1','9','_','A', + 'S','M',' ','-','D','P','O','L','Y','1','3','0','5','_','A','S', + 'M',' ','-','D','N','D','E','B','U','G','\0' }; -#define PLATFORM "platform: aix64-gcc" -#define DATE "built on: Tue Aug 14 23:12:58 2018" diff --git a/noarch/include/node/openssl/archs/aix64-gcc/asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/aix64-gcc/asm/crypto/include/internal/dso_conf.h index 7a52dd1f..252266ec 100644 --- a/noarch/include/node/openssl/archs/aix64-gcc/asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/aix64-gcc/asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".so" #endif diff --git a/noarch/include/node/openssl/archs/aix64-gcc/asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/aix64-gcc/asm/include/openssl/opensslconf.h index f4459a98..ccca4530 100644 --- a/noarch/include/node/openssl/archs/aix64-gcc/asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/aix64-gcc/asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -37,6 +39,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -49,12 +54,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -88,6 +99,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -106,15 +120,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -138,6 +148,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -156,8 +178,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif -#define OPENSSL_CPUID_OBJ - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/aix64-gcc/asm/include/progs.h b/noarch/include/node/openssl/archs/aix64-gcc/asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/aix64-gcc/asm/include/progs.h +++ b/noarch/include/node/openssl/archs/aix64-gcc/asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/aix64-gcc/asm_avx2/crypto/buildinf.h b/noarch/include/node/openssl/archs/aix64-gcc/asm_avx2/crypto/buildinf.h new file mode 100644 index 00000000..bed7ccee --- /dev/null +++ b/noarch/include/node/openssl/archs/aix64-gcc/asm_avx2/crypto/buildinf.h @@ -0,0 +1,39 @@ +/* + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: aix64-gcc" +#define DATE "built on: Thu Jun 13 19:21:57 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a + * workaround for the situation where CFLAGS gets too long for a C90 string + * literal + */ +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','.','.','/','c','o','n', + 'f','i','g','/','f','a','k','e','_','g','c','c','.','p','l',' ', + '-','m','a','i','x','6','4',' ','-','p','t','h','r','e','a','d', + ' ','-','W','a',',','-','-','n','o','e','x','e','c','s','t','a', + 'c','k',' ','-','O',' ','-','D','B','_','E','N','D','I','A','N', + ' ','-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-', + 'D','O','P','E','N','S','S','L','_','C','P','U','I','D','_','O', + 'B','J',' ','-','D','O','P','E','N','S','S','L','_','B','N','_', + 'A','S','M','_','M','O','N','T',' ','-','D','S','H','A','1','_', + 'A','S','M',' ','-','D','S','H','A','2','5','6','_','A','S','M', + ' ','-','D','S','H','A','5','1','2','_','A','S','M',' ','-','D', + 'K','E','C','C','A','K','1','6','0','0','_','A','S','M',' ','-', + 'D','A','E','S','_','A','S','M',' ','-','D','V','P','A','E','S', + '_','A','S','M',' ','-','D','E','C','P','_','N','I','S','T','Z', + '2','5','6','_','A','S','M',' ','-','D','X','2','5','5','1','9', + '_','A','S','M',' ','-','D','P','O','L','Y','1','3','0','5','_', + 'A','S','M',' ','-','D','N','D','E','B','U','G','\0' +}; diff --git a/noarch/include/node/openssl/archs/aix64-gcc/asm_avx2/crypto/include/internal/bn_conf.h b/noarch/include/node/openssl/archs/aix64-gcc/asm_avx2/crypto/include/internal/bn_conf.h new file mode 100644 index 00000000..34bd8b78 --- /dev/null +++ b/noarch/include/node/openssl/archs/aix64-gcc/asm_avx2/crypto/include/internal/bn_conf.h @@ -0,0 +1,28 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/bn_conf.h.in */ +/* + * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BN_CONF_H +# define HEADER_BN_CONF_H + +/* + * The contents of this file are not used in the UEFI build, as + * both 32-bit and 64-bit builds are supported from a single run + * of the Configure script. + */ + +/* Should we define BN_DIV2W here? */ + +/* Only one for the following should be defined */ +#define SIXTY_FOUR_BIT_LONG +#undef SIXTY_FOUR_BIT +#undef THIRTY_TWO_BIT + +#endif diff --git a/noarch/include/node/openssl/archs/aix64-gcc/asm_avx2/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/aix64-gcc/asm_avx2/crypto/include/internal/dso_conf.h new file mode 100644 index 00000000..252266ec --- /dev/null +++ b/noarch/include/node/openssl/archs/aix64-gcc/asm_avx2/crypto/include/internal/dso_conf.h @@ -0,0 +1,17 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ +/* + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DSO_CONF_H +# define HEADER_DSO_CONF_H +# define DSO_DLFCN +# define HAVE_DLFCN_H +# define DSO_EXTENSION ".so" +#endif diff --git a/noarch/include/node/openssl/archs/aix64-gcc/asm_avx2/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/aix64-gcc/asm_avx2/include/openssl/opensslconf.h new file mode 100644 index 00000000..ccca4530 --- /dev/null +++ b/noarch/include/node/openssl/archs/aix64-gcc/asm_avx2/include/openssl/opensslconf.h @@ -0,0 +1,204 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/opensslconf.h.in + * + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef OPENSSL_ALGORITHM_DEFINES +# error OPENSSL_ALGORITHM_DEFINES no longer supported +#endif + +/* + * OpenSSL was configured with the following options: + */ + +#ifndef OPENSSL_SYS_AIX +# define OPENSSL_SYS_AIX 1 +#endif +#ifndef OPENSSL_NO_COMP +# define OPENSSL_NO_COMP +#endif +#ifndef OPENSSL_NO_MD2 +# define OPENSSL_NO_MD2 +#endif +#ifndef OPENSSL_NO_RC5 +# define OPENSSL_NO_RC5 +#endif +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif +#ifndef OPENSSL_NO_ASAN +# define OPENSSL_NO_ASAN +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG +# define OPENSSL_NO_CRYPTO_MDEBUG +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +#endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif +#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +# define OPENSSL_NO_EC_NISTP_64_GCC_128 +#endif +#ifndef OPENSSL_NO_EGD +# define OPENSSL_NO_EGD +#endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif +#ifndef OPENSSL_NO_FUZZ_AFL +# define OPENSSL_NO_FUZZ_AFL +#endif +#ifndef OPENSSL_NO_FUZZ_LIBFUZZER +# define OPENSSL_NO_FUZZ_LIBFUZZER +#endif +#ifndef OPENSSL_NO_HEARTBEATS +# define OPENSSL_NO_HEARTBEATS +#endif +#ifndef OPENSSL_NO_MSAN +# define OPENSSL_NO_MSAN +#endif +#ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +#endif +#ifndef OPENSSL_NO_SSL_TRACE +# define OPENSSL_NO_SSL_TRACE +#endif +#ifndef OPENSSL_NO_SSL3 +# define OPENSSL_NO_SSL3 +#endif +#ifndef OPENSSL_NO_SSL3_METHOD +# define OPENSSL_NO_SSL3_METHOD +#endif +#ifndef OPENSSL_NO_UBSAN +# define OPENSSL_NO_UBSAN +#endif +#ifndef OPENSSL_NO_UNIT_TEST +# define OPENSSL_NO_UNIT_TEST +#endif +#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS +# define OPENSSL_NO_WEAK_SSL_CIPHERS +#endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif + + +/* + * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers + * don't like that. This will hopefully silence them. + */ +#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; + +/* + * Applications should use -DOPENSSL_API_COMPAT= to suppress the + * declarations of functions deprecated in or before . Otherwise, they + * still won't see them if the library has been built to disable deprecated + * functions. + */ +#ifndef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +#endif + +#ifndef OPENSSL_FILE +# ifdef OPENSSL_NO_FILENAMES +# define OPENSSL_FILE "" +# define OPENSSL_LINE 0 +# else +# define OPENSSL_FILE __FILE__ +# define OPENSSL_LINE __LINE__ +# endif +#endif + +#ifndef OPENSSL_MIN_API +# define OPENSSL_MIN_API 0 +#endif + +#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API +# undef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT OPENSSL_MIN_API +#endif + +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10100000L +# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_1_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10000000L +# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_0_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x00908000L +# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_0_9_8(f) +#endif + +/* Generate 80386 code? */ +#undef I386_ONLY + +#undef OPENSSL_UNISTD +#define OPENSSL_UNISTD + +#undef OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* + * The following are cipher-specific, but are part of the public API. + */ +#if !defined(OPENSSL_SYS_UEFI) +# undef BN_LLONG +/* Only one for the following should be defined */ +# define SIXTY_FOUR_BIT_LONG +# undef SIXTY_FOUR_BIT +# undef THIRTY_TWO_BIT +#endif + +#define RC4_INT unsigned char + +#ifdef __cplusplus +} +#endif diff --git a/noarch/include/node/openssl/archs/aix64-gcc/asm_avx2/include/progs.h b/noarch/include/node/openssl/archs/aix64-gcc/asm_avx2/include/progs.h new file mode 100644 index 00000000..9b3d270e --- /dev/null +++ b/noarch/include/node/openssl/archs/aix64-gcc/asm_avx2/include/progs.h @@ -0,0 +1,507 @@ +/* + * WARNING: do not edit! + * Generated by apps/progs.pl + * + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +typedef enum FUNC_TYPE { + FT_none, FT_general, FT_md, FT_cipher, FT_pkey, + FT_md_alg, FT_cipher_alg +} FUNC_TYPE; + +typedef struct function_st { + FUNC_TYPE type; + const char *name; + int (*func)(int argc, char *argv[]); + const OPTIONS *help; +} FUNCTION; + +DEFINE_LHASH_OF(FUNCTION); + +extern int asn1parse_main(int argc, char *argv[]); +extern int ca_main(int argc, char *argv[]); +extern int ciphers_main(int argc, char *argv[]); +extern int cms_main(int argc, char *argv[]); +extern int crl_main(int argc, char *argv[]); +extern int crl2pkcs7_main(int argc, char *argv[]); +extern int dgst_main(int argc, char *argv[]); +extern int dhparam_main(int argc, char *argv[]); +extern int dsa_main(int argc, char *argv[]); +extern int dsaparam_main(int argc, char *argv[]); +extern int ec_main(int argc, char *argv[]); +extern int ecparam_main(int argc, char *argv[]); +extern int enc_main(int argc, char *argv[]); +extern int engine_main(int argc, char *argv[]); +extern int errstr_main(int argc, char *argv[]); +extern int gendsa_main(int argc, char *argv[]); +extern int genpkey_main(int argc, char *argv[]); +extern int genrsa_main(int argc, char *argv[]); +extern int help_main(int argc, char *argv[]); +extern int list_main(int argc, char *argv[]); +extern int nseq_main(int argc, char *argv[]); +extern int ocsp_main(int argc, char *argv[]); +extern int passwd_main(int argc, char *argv[]); +extern int pkcs12_main(int argc, char *argv[]); +extern int pkcs7_main(int argc, char *argv[]); +extern int pkcs8_main(int argc, char *argv[]); +extern int pkey_main(int argc, char *argv[]); +extern int pkeyparam_main(int argc, char *argv[]); +extern int pkeyutl_main(int argc, char *argv[]); +extern int prime_main(int argc, char *argv[]); +extern int rand_main(int argc, char *argv[]); +extern int rehash_main(int argc, char *argv[]); +extern int req_main(int argc, char *argv[]); +extern int rsa_main(int argc, char *argv[]); +extern int rsautl_main(int argc, char *argv[]); +extern int s_client_main(int argc, char *argv[]); +extern int s_server_main(int argc, char *argv[]); +extern int s_time_main(int argc, char *argv[]); +extern int sess_id_main(int argc, char *argv[]); +extern int smime_main(int argc, char *argv[]); +extern int speed_main(int argc, char *argv[]); +extern int spkac_main(int argc, char *argv[]); +extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); +extern int ts_main(int argc, char *argv[]); +extern int verify_main(int argc, char *argv[]); +extern int version_main(int argc, char *argv[]); +extern int x509_main(int argc, char *argv[]); + +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; + +#ifdef INCLUDE_FUNCTION_TABLE +static FUNCTION functions[] = { + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, +#ifndef OPENSSL_NO_SOCK + {FT_general, "ciphers", ciphers_main, ciphers_options}, +#endif +#ifndef OPENSSL_NO_CMS + {FT_general, "cms", cms_main, cms_options}, +#endif + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, +#ifndef OPENSSL_NO_DH + {FT_general, "dhparam", dhparam_main, dhparam_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsa", dsa_main, dsa_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ec", ec_main, ec_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ecparam", ecparam_main, ecparam_options}, +#endif + {FT_general, "enc", enc_main, enc_options}, +#ifndef OPENSSL_NO_ENGINE + {FT_general, "engine", engine_main, engine_options}, +#endif + {FT_general, "errstr", errstr_main, errstr_options}, +#ifndef OPENSSL_NO_DSA + {FT_general, "gendsa", gendsa_main, gendsa_options}, +#endif + {FT_general, "genpkey", genpkey_main, genpkey_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "genrsa", genrsa_main, genrsa_options}, +#endif + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, +#ifndef OPENSSL_NO_OCSP + {FT_general, "ocsp", ocsp_main, ocsp_options}, +#endif + {FT_general, "passwd", passwd_main, passwd_options}, +#ifndef OPENSSL_NO_DES + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, +#endif + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "rsautl", rsautl_main, rsautl_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_client", s_client_main, s_client_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_server", s_server_main, s_server_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_time", s_time_main, s_time_options}, +#endif + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, +#ifndef OPENSSL_NO_SRP + {FT_general, "srp", srp_main, srp_options}, +#endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, +#ifndef OPENSSL_NO_TS + {FT_general, "ts", ts_main, ts_options}, +#endif + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, +#ifndef OPENSSL_NO_MD2 + {FT_md, "md2", dgst_main}, +#endif +#ifndef OPENSSL_NO_MD4 + {FT_md, "md4", dgst_main}, +#endif + {FT_md, "md5", dgst_main}, +#ifndef OPENSSL_NO_GOST + {FT_md, "gost", dgst_main}, +#endif + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, +#ifndef OPENSSL_NO_MDC2 + {FT_md, "mdc2", dgst_main}, +#endif +#ifndef OPENSSL_NO_RMD160 + {FT_md, "rmd160", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2b512", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2s256", dgst_main}, +#endif +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, +#ifdef ZLIB + {FT_cipher, "zlib", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "desx", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4-40", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} +}; +#endif diff --git a/noarch/include/node/openssl/archs/aix64-gcc/no-asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/aix64-gcc/no-asm/crypto/buildinf.h index 21038f0e..c3c34d59 100644 --- a/noarch/include/node/openssl/archs/aix64-gcc/no-asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/aix64-gcc/no-asm/crypto/buildinf.h @@ -1,23 +1,27 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: aix64-gcc" +#define DATE "built on: Thu Jun 13 19:22:06 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','D', - 'D','S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E', - '_','D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U', - 'G',' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E', - 'A','D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O', - '_','D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ', - '-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D', - 'O','P','E','N','S','S','L','D','I','R','=','"','\\','"','/','u', - 's','r','/','l','o','c','a','l','/','s','s','l','\\','"','"',' ', - '-','D','E','N','G','I','N','E','S','D','I','R','=','"','\\','"', - '/','u','s','r','/','l','o','c','a','l','/','l','i','b','/','e', - 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','m', + 'a','i','x','6','4',' ','-','p','t','h','r','e','a','d',' ','-', + 'O',' ','-','D','B','_','E','N','D','I','A','N',' ','-','D','O', + 'P','E','N','S','S','L','_','P','I','C',' ','-','D','N','D','E', + 'B','U','G','\0' }; -#define PLATFORM "platform: aix64-gcc" -#define DATE "built on: Tue Aug 14 23:12:59 2018" diff --git a/noarch/include/node/openssl/archs/aix64-gcc/no-asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/aix64-gcc/no-asm/crypto/include/internal/dso_conf.h index 7a52dd1f..252266ec 100644 --- a/noarch/include/node/openssl/archs/aix64-gcc/no-asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/aix64-gcc/no-asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".so" #endif diff --git a/noarch/include/node/openssl/archs/aix64-gcc/no-asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/aix64-gcc/no-asm/include/openssl/opensslconf.h index 123e7f66..86d0e052 100644 --- a/noarch/include/node/openssl/archs/aix64-gcc/no-asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/aix64-gcc/no-asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -37,6 +39,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -52,12 +57,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -91,6 +102,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -109,15 +123,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -141,6 +151,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -159,8 +181,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif - - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/aix64-gcc/no-asm/include/progs.h b/noarch/include/node/openssl/archs/aix64-gcc/no-asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/aix64-gcc/no-asm/include/progs.h +++ b/noarch/include/node/openssl/archs/aix64-gcc/no-asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/darwin-i386-cc/asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/darwin-i386-cc/asm/crypto/buildinf.h index b89e43e6..5230ee89 100644 --- a/noarch/include/node/openssl/archs/darwin-i386-cc/asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/darwin-i386-cc/asm/crypto/buildinf.h @@ -1,40 +1,47 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: darwin-i386-cc" +#define DATE "built on: Thu Jun 13 19:23:53 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','c','c',' ','-','D','D', - 'S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E','_', - 'D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U','G', - ' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E','A', - 'D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O','_', - 'D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ','-', - 'D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D','O', - 'P','E','N','S','S','L','_','B','N','_','A','S','M','_','P','A', - 'R','T','_','W','O','R','D','S',' ','-','D','O','P','E','N','S', - 'S','L','_','I','A','3','2','_','S','S','E','2',' ','-','D','O', - 'P','E','N','S','S','L','_','B','N','_','A','S','M','_','M','O', - 'N','T',' ','-','D','O','P','E','N','S','S','L','_','B','N','_', - 'A','S','M','_','G','F','2','m',' ','-','D','S','H','A','1','_', - 'A','S','M',' ','-','D','S','H','A','2','5','6','_','A','S','M', - ' ','-','D','S','H','A','5','1','2','_','A','S','M',' ','-','D', - 'R','C','4','_','A','S','M',' ','-','D','M','D','5','_','A','S', - 'M',' ','-','D','R','M','D','1','6','0','_','A','S','M',' ','-', - 'D','A','E','S','_','A','S','M',' ','-','D','V','P','A','E','S', - '_','A','S','M',' ','-','D','W','H','I','R','L','P','O','O','L', - '_','A','S','M',' ','-','D','G','H','A','S','H','_','A','S','M', - ' ','-','D','E','C','P','_','N','I','S','T','Z','2','5','6','_', - 'A','S','M',' ','-','D','P','A','D','L','O','C','K','_','A','S', - 'M',' ','-','D','P','O','L','Y','1','3','0','5','_','A','S','M', - ' ','-','D','O','P','E','N','S','S','L','D','I','R','=','"','\\', - '"','/','u','s','r','/','l','o','c','a','l','/','s','s','l','\\', - '"','"',' ','-','D','E','N','G','I','N','E','S','D','I','R','=', - '"','\\','"','/','u','s','r','/','l','o','c','a','l','/','l','i', - 'b','/','e','n','g','i','n','e','s','-','1','.','1','\\','"','"', - ' ','\0' +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f', + 'P','I','C',' ','-','a','r','c','h',' ','i','3','8','6',' ','-', + 'W','a',',','-','-','n','o','e','x','e','c','s','t','a','c','k', + ' ','-','O','3',' ','-','f','o','m','i','t','-','f','r','a','m', + 'e','-','p','o','i','n','t','e','r',' ','-','D','L','_','E','N', + 'D','I','A','N',' ','-','D','O','P','E','N','S','S','L','_','P', + 'I','C',' ','-','D','O','P','E','N','S','S','L','_','C','P','U', + 'I','D','_','O','B','J',' ','-','D','O','P','E','N','S','S','L', + '_','B','N','_','A','S','M','_','P','A','R','T','_','W','O','R', + 'D','S',' ','-','D','O','P','E','N','S','S','L','_','I','A','3', + '2','_','S','S','E','2',' ','-','D','O','P','E','N','S','S','L', + '_','B','N','_','A','S','M','_','M','O','N','T',' ','-','D','O', + 'P','E','N','S','S','L','_','B','N','_','A','S','M','_','G','F', + '2','m',' ','-','D','S','H','A','1','_','A','S','M',' ','-','D', + 'S','H','A','2','5','6','_','A','S','M',' ','-','D','S','H','A', + '5','1','2','_','A','S','M',' ','-','D','R','C','4','_','A','S', + 'M',' ','-','D','M','D','5','_','A','S','M',' ','-','D','R','M', + 'D','1','6','0','_','A','S','M',' ','-','D','A','E','S','_','A', + 'S','M',' ','-','D','V','P','A','E','S','_','A','S','M',' ','-', + 'D','W','H','I','R','L','P','O','O','L','_','A','S','M',' ','-', + 'D','G','H','A','S','H','_','A','S','M',' ','-','D','E','C','P', + '_','N','I','S','T','Z','2','5','6','_','A','S','M',' ','-','D', + 'P','O','L','Y','1','3','0','5','_','A','S','M',' ','-','D','_', + 'R','E','E','N','T','R','A','N','T',' ','-','D','N','D','E','B', + 'U','G','\0' }; -#define PLATFORM "platform: darwin-i386-cc" -#define DATE "built on: Tue Aug 14 23:13:09 2018" diff --git a/noarch/include/node/openssl/archs/darwin-i386-cc/asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/darwin-i386-cc/asm/crypto/include/internal/dso_conf.h index 64f9685d..a6930919 100644 --- a/noarch/include/node/openssl/archs/darwin-i386-cc/asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/darwin-i386-cc/asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".dylib" #endif diff --git a/noarch/include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/opensslconf.h index cd3e29a4..a3c4b2e6 100644 --- a/noarch/include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -37,6 +39,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -49,12 +54,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -88,6 +99,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -106,15 +120,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -138,6 +148,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -156,8 +178,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif -#define OPENSSL_CPUID_OBJ - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/darwin-i386-cc/asm/include/progs.h b/noarch/include/node/openssl/archs/darwin-i386-cc/asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/darwin-i386-cc/asm/include/progs.h +++ b/noarch/include/node/openssl/archs/darwin-i386-cc/asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/darwin-i386-cc/asm_avx2/crypto/buildinf.h b/noarch/include/node/openssl/archs/darwin-i386-cc/asm_avx2/crypto/buildinf.h new file mode 100644 index 00000000..415f08db --- /dev/null +++ b/noarch/include/node/openssl/archs/darwin-i386-cc/asm_avx2/crypto/buildinf.h @@ -0,0 +1,48 @@ +/* + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: darwin-i386-cc" +#define DATE "built on: Thu Jun 13 19:24:03 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a + * workaround for the situation where CFLAGS gets too long for a C90 string + * literal + */ +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','.','.','/','c','o','n', + 'f','i','g','/','f','a','k','e','_','g','c','c','.','p','l',' ', + '-','f','P','I','C',' ','-','a','r','c','h',' ','i','3','8','6', + ' ','-','W','a',',','-','-','n','o','e','x','e','c','s','t','a', + 'c','k',' ','-','O','3',' ','-','f','o','m','i','t','-','f','r', + 'a','m','e','-','p','o','i','n','t','e','r',' ','-','D','L','_', + 'E','N','D','I','A','N',' ','-','D','O','P','E','N','S','S','L', + '_','P','I','C',' ','-','D','O','P','E','N','S','S','L','_','C', + 'P','U','I','D','_','O','B','J',' ','-','D','O','P','E','N','S', + 'S','L','_','B','N','_','A','S','M','_','P','A','R','T','_','W', + 'O','R','D','S',' ','-','D','O','P','E','N','S','S','L','_','I', + 'A','3','2','_','S','S','E','2',' ','-','D','O','P','E','N','S', + 'S','L','_','B','N','_','A','S','M','_','M','O','N','T',' ','-', + 'D','O','P','E','N','S','S','L','_','B','N','_','A','S','M','_', + 'G','F','2','m',' ','-','D','S','H','A','1','_','A','S','M',' ', + '-','D','S','H','A','2','5','6','_','A','S','M',' ','-','D','S', + 'H','A','5','1','2','_','A','S','M',' ','-','D','R','C','4','_', + 'A','S','M',' ','-','D','M','D','5','_','A','S','M',' ','-','D', + 'R','M','D','1','6','0','_','A','S','M',' ','-','D','A','E','S', + '_','A','S','M',' ','-','D','V','P','A','E','S','_','A','S','M', + ' ','-','D','W','H','I','R','L','P','O','O','L','_','A','S','M', + ' ','-','D','G','H','A','S','H','_','A','S','M',' ','-','D','E', + 'C','P','_','N','I','S','T','Z','2','5','6','_','A','S','M',' ', + '-','D','P','O','L','Y','1','3','0','5','_','A','S','M',' ','-', + 'D','_','R','E','E','N','T','R','A','N','T',' ','-','D','N','D', + 'E','B','U','G','\0' +}; diff --git a/noarch/include/node/openssl/archs/darwin-i386-cc/asm_avx2/crypto/include/internal/bn_conf.h b/noarch/include/node/openssl/archs/darwin-i386-cc/asm_avx2/crypto/include/internal/bn_conf.h new file mode 100644 index 00000000..fb52156b --- /dev/null +++ b/noarch/include/node/openssl/archs/darwin-i386-cc/asm_avx2/crypto/include/internal/bn_conf.h @@ -0,0 +1,28 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/bn_conf.h.in */ +/* + * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BN_CONF_H +# define HEADER_BN_CONF_H + +/* + * The contents of this file are not used in the UEFI build, as + * both 32-bit and 64-bit builds are supported from a single run + * of the Configure script. + */ + +/* Should we define BN_DIV2W here? */ + +/* Only one for the following should be defined */ +#undef SIXTY_FOUR_BIT_LONG +#undef SIXTY_FOUR_BIT +#define THIRTY_TWO_BIT + +#endif diff --git a/noarch/include/node/openssl/archs/darwin-i386-cc/asm_avx2/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/darwin-i386-cc/asm_avx2/crypto/include/internal/dso_conf.h new file mode 100644 index 00000000..a6930919 --- /dev/null +++ b/noarch/include/node/openssl/archs/darwin-i386-cc/asm_avx2/crypto/include/internal/dso_conf.h @@ -0,0 +1,17 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ +/* + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DSO_CONF_H +# define HEADER_DSO_CONF_H +# define DSO_DLFCN +# define HAVE_DLFCN_H +# define DSO_EXTENSION ".dylib" +#endif diff --git a/noarch/include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/openssl/opensslconf.h new file mode 100644 index 00000000..a3c4b2e6 --- /dev/null +++ b/noarch/include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/openssl/opensslconf.h @@ -0,0 +1,204 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/opensslconf.h.in + * + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef OPENSSL_ALGORITHM_DEFINES +# error OPENSSL_ALGORITHM_DEFINES no longer supported +#endif + +/* + * OpenSSL was configured with the following options: + */ + +#ifndef OPENSSL_SYS_MACOSX +# define OPENSSL_SYS_MACOSX 1 +#endif +#ifndef OPENSSL_NO_COMP +# define OPENSSL_NO_COMP +#endif +#ifndef OPENSSL_NO_MD2 +# define OPENSSL_NO_MD2 +#endif +#ifndef OPENSSL_NO_RC5 +# define OPENSSL_NO_RC5 +#endif +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif +#ifndef OPENSSL_NO_ASAN +# define OPENSSL_NO_ASAN +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG +# define OPENSSL_NO_CRYPTO_MDEBUG +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +#endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif +#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +# define OPENSSL_NO_EC_NISTP_64_GCC_128 +#endif +#ifndef OPENSSL_NO_EGD +# define OPENSSL_NO_EGD +#endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif +#ifndef OPENSSL_NO_FUZZ_AFL +# define OPENSSL_NO_FUZZ_AFL +#endif +#ifndef OPENSSL_NO_FUZZ_LIBFUZZER +# define OPENSSL_NO_FUZZ_LIBFUZZER +#endif +#ifndef OPENSSL_NO_HEARTBEATS +# define OPENSSL_NO_HEARTBEATS +#endif +#ifndef OPENSSL_NO_MSAN +# define OPENSSL_NO_MSAN +#endif +#ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +#endif +#ifndef OPENSSL_NO_SSL_TRACE +# define OPENSSL_NO_SSL_TRACE +#endif +#ifndef OPENSSL_NO_SSL3 +# define OPENSSL_NO_SSL3 +#endif +#ifndef OPENSSL_NO_SSL3_METHOD +# define OPENSSL_NO_SSL3_METHOD +#endif +#ifndef OPENSSL_NO_UBSAN +# define OPENSSL_NO_UBSAN +#endif +#ifndef OPENSSL_NO_UNIT_TEST +# define OPENSSL_NO_UNIT_TEST +#endif +#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS +# define OPENSSL_NO_WEAK_SSL_CIPHERS +#endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif + + +/* + * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers + * don't like that. This will hopefully silence them. + */ +#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; + +/* + * Applications should use -DOPENSSL_API_COMPAT= to suppress the + * declarations of functions deprecated in or before . Otherwise, they + * still won't see them if the library has been built to disable deprecated + * functions. + */ +#ifndef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +#endif + +#ifndef OPENSSL_FILE +# ifdef OPENSSL_NO_FILENAMES +# define OPENSSL_FILE "" +# define OPENSSL_LINE 0 +# else +# define OPENSSL_FILE __FILE__ +# define OPENSSL_LINE __LINE__ +# endif +#endif + +#ifndef OPENSSL_MIN_API +# define OPENSSL_MIN_API 0 +#endif + +#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API +# undef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT OPENSSL_MIN_API +#endif + +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10100000L +# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_1_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10000000L +# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_0_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x00908000L +# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_0_9_8(f) +#endif + +/* Generate 80386 code? */ +#undef I386_ONLY + +#undef OPENSSL_UNISTD +#define OPENSSL_UNISTD + +#undef OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* + * The following are cipher-specific, but are part of the public API. + */ +#if !defined(OPENSSL_SYS_UEFI) +# define BN_LLONG +/* Only one for the following should be defined */ +# undef SIXTY_FOUR_BIT_LONG +# undef SIXTY_FOUR_BIT +# define THIRTY_TWO_BIT +#endif + +#define RC4_INT unsigned int + +#ifdef __cplusplus +} +#endif diff --git a/noarch/include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/progs.h b/noarch/include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/progs.h new file mode 100644 index 00000000..9b3d270e --- /dev/null +++ b/noarch/include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/progs.h @@ -0,0 +1,507 @@ +/* + * WARNING: do not edit! + * Generated by apps/progs.pl + * + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +typedef enum FUNC_TYPE { + FT_none, FT_general, FT_md, FT_cipher, FT_pkey, + FT_md_alg, FT_cipher_alg +} FUNC_TYPE; + +typedef struct function_st { + FUNC_TYPE type; + const char *name; + int (*func)(int argc, char *argv[]); + const OPTIONS *help; +} FUNCTION; + +DEFINE_LHASH_OF(FUNCTION); + +extern int asn1parse_main(int argc, char *argv[]); +extern int ca_main(int argc, char *argv[]); +extern int ciphers_main(int argc, char *argv[]); +extern int cms_main(int argc, char *argv[]); +extern int crl_main(int argc, char *argv[]); +extern int crl2pkcs7_main(int argc, char *argv[]); +extern int dgst_main(int argc, char *argv[]); +extern int dhparam_main(int argc, char *argv[]); +extern int dsa_main(int argc, char *argv[]); +extern int dsaparam_main(int argc, char *argv[]); +extern int ec_main(int argc, char *argv[]); +extern int ecparam_main(int argc, char *argv[]); +extern int enc_main(int argc, char *argv[]); +extern int engine_main(int argc, char *argv[]); +extern int errstr_main(int argc, char *argv[]); +extern int gendsa_main(int argc, char *argv[]); +extern int genpkey_main(int argc, char *argv[]); +extern int genrsa_main(int argc, char *argv[]); +extern int help_main(int argc, char *argv[]); +extern int list_main(int argc, char *argv[]); +extern int nseq_main(int argc, char *argv[]); +extern int ocsp_main(int argc, char *argv[]); +extern int passwd_main(int argc, char *argv[]); +extern int pkcs12_main(int argc, char *argv[]); +extern int pkcs7_main(int argc, char *argv[]); +extern int pkcs8_main(int argc, char *argv[]); +extern int pkey_main(int argc, char *argv[]); +extern int pkeyparam_main(int argc, char *argv[]); +extern int pkeyutl_main(int argc, char *argv[]); +extern int prime_main(int argc, char *argv[]); +extern int rand_main(int argc, char *argv[]); +extern int rehash_main(int argc, char *argv[]); +extern int req_main(int argc, char *argv[]); +extern int rsa_main(int argc, char *argv[]); +extern int rsautl_main(int argc, char *argv[]); +extern int s_client_main(int argc, char *argv[]); +extern int s_server_main(int argc, char *argv[]); +extern int s_time_main(int argc, char *argv[]); +extern int sess_id_main(int argc, char *argv[]); +extern int smime_main(int argc, char *argv[]); +extern int speed_main(int argc, char *argv[]); +extern int spkac_main(int argc, char *argv[]); +extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); +extern int ts_main(int argc, char *argv[]); +extern int verify_main(int argc, char *argv[]); +extern int version_main(int argc, char *argv[]); +extern int x509_main(int argc, char *argv[]); + +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; + +#ifdef INCLUDE_FUNCTION_TABLE +static FUNCTION functions[] = { + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, +#ifndef OPENSSL_NO_SOCK + {FT_general, "ciphers", ciphers_main, ciphers_options}, +#endif +#ifndef OPENSSL_NO_CMS + {FT_general, "cms", cms_main, cms_options}, +#endif + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, +#ifndef OPENSSL_NO_DH + {FT_general, "dhparam", dhparam_main, dhparam_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsa", dsa_main, dsa_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ec", ec_main, ec_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ecparam", ecparam_main, ecparam_options}, +#endif + {FT_general, "enc", enc_main, enc_options}, +#ifndef OPENSSL_NO_ENGINE + {FT_general, "engine", engine_main, engine_options}, +#endif + {FT_general, "errstr", errstr_main, errstr_options}, +#ifndef OPENSSL_NO_DSA + {FT_general, "gendsa", gendsa_main, gendsa_options}, +#endif + {FT_general, "genpkey", genpkey_main, genpkey_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "genrsa", genrsa_main, genrsa_options}, +#endif + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, +#ifndef OPENSSL_NO_OCSP + {FT_general, "ocsp", ocsp_main, ocsp_options}, +#endif + {FT_general, "passwd", passwd_main, passwd_options}, +#ifndef OPENSSL_NO_DES + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, +#endif + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "rsautl", rsautl_main, rsautl_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_client", s_client_main, s_client_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_server", s_server_main, s_server_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_time", s_time_main, s_time_options}, +#endif + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, +#ifndef OPENSSL_NO_SRP + {FT_general, "srp", srp_main, srp_options}, +#endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, +#ifndef OPENSSL_NO_TS + {FT_general, "ts", ts_main, ts_options}, +#endif + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, +#ifndef OPENSSL_NO_MD2 + {FT_md, "md2", dgst_main}, +#endif +#ifndef OPENSSL_NO_MD4 + {FT_md, "md4", dgst_main}, +#endif + {FT_md, "md5", dgst_main}, +#ifndef OPENSSL_NO_GOST + {FT_md, "gost", dgst_main}, +#endif + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, +#ifndef OPENSSL_NO_MDC2 + {FT_md, "mdc2", dgst_main}, +#endif +#ifndef OPENSSL_NO_RMD160 + {FT_md, "rmd160", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2b512", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2s256", dgst_main}, +#endif +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, +#ifdef ZLIB + {FT_cipher, "zlib", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "desx", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4-40", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} +}; +#endif diff --git a/noarch/include/node/openssl/archs/darwin-i386-cc/no-asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/darwin-i386-cc/no-asm/crypto/buildinf.h index 6792fc6d..7b98e11d 100644 --- a/noarch/include/node/openssl/archs/darwin-i386-cc/no-asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/darwin-i386-cc/no-asm/crypto/buildinf.h @@ -1,23 +1,29 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: darwin-i386-cc" +#define DATE "built on: Thu Jun 13 19:24:11 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','c','c',' ','-','D','D', - 'S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E','_', - 'D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U','G', - ' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E','A', - 'D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O','_', - 'D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ','-', - 'D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D','O', - 'P','E','N','S','S','L','D','I','R','=','"','\\','"','/','u','s', - 'r','/','l','o','c','a','l','/','s','s','l','\\','"','"',' ','-', - 'D','E','N','G','I','N','E','S','D','I','R','=','"','\\','"','/', - 'u','s','r','/','l','o','c','a','l','/','l','i','b','/','e','n', - 'g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','c','c',' ','-','f','P', + 'I','C',' ','-','a','r','c','h',' ','i','3','8','6',' ','-','O', + '3',' ','-','f','o','m','i','t','-','f','r','a','m','e','-','p', + 'o','i','n','t','e','r',' ','-','D','L','_','E','N','D','I','A', + 'N',' ','-','D','O','P','E','N','S','S','L','_','P','I','C',' ', + '-','D','_','R','E','E','N','T','R','A','N','T',' ','-','D','N', + 'D','E','B','U','G','\0' }; -#define PLATFORM "platform: darwin-i386-cc" -#define DATE "built on: Tue Aug 14 23:13:11 2018" diff --git a/noarch/include/node/openssl/archs/darwin-i386-cc/no-asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/darwin-i386-cc/no-asm/crypto/include/internal/dso_conf.h index 64f9685d..a6930919 100644 --- a/noarch/include/node/openssl/archs/darwin-i386-cc/no-asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/darwin-i386-cc/no-asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".dylib" #endif diff --git a/noarch/include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/opensslconf.h index b2fe2bef..2e9f55ba 100644 --- a/noarch/include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -37,6 +39,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -52,12 +57,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -91,6 +102,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -109,15 +123,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -141,6 +151,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -159,8 +181,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif - - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/darwin-i386-cc/no-asm/include/progs.h b/noarch/include/node/openssl/archs/darwin-i386-cc/no-asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/darwin-i386-cc/no-asm/include/progs.h +++ b/noarch/include/node/openssl/archs/darwin-i386-cc/no-asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm/crypto/buildinf.h index eb762c8e..09cd6ae1 100644 --- a/noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm/crypto/buildinf.h @@ -1,38 +1,46 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: darwin64-x86_64-cc" +#define DATE "built on: Thu Jun 13 19:23:00 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','c','c',' ','-','D','D', - 'S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E','_', - 'D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U','G', - ' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E','A', - 'D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O','_', - 'D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ','-', - 'D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D','O', - 'P','E','N','S','S','L','_','I','A','3','2','_','S','S','E','2', - ' ','-','D','O','P','E','N','S','S','L','_','B','N','_','A','S', - 'M','_','M','O','N','T',' ','-','D','O','P','E','N','S','S','L', - '_','B','N','_','A','S','M','_','M','O','N','T','5',' ','-','D', - 'O','P','E','N','S','S','L','_','B','N','_','A','S','M','_','G', - 'F','2','m',' ','-','D','S','H','A','1','_','A','S','M',' ','-', - 'D','S','H','A','2','5','6','_','A','S','M',' ','-','D','S','H', - 'A','5','1','2','_','A','S','M',' ','-','D','R','C','4','_','A', - 'S','M',' ','-','D','M','D','5','_','A','S','M',' ','-','D','A', - 'E','S','_','A','S','M',' ','-','D','V','P','A','E','S','_','A', - 'S','M',' ','-','D','B','S','A','E','S','_','A','S','M',' ','-', - 'D','G','H','A','S','H','_','A','S','M',' ','-','D','E','C','P', - '_','N','I','S','T','Z','2','5','6','_','A','S','M',' ','-','D', - 'P','A','D','L','O','C','K','_','A','S','M',' ','-','D','P','O', - 'L','Y','1','3','0','5','_','A','S','M',' ','-','D','O','P','E', - 'N','S','S','L','D','I','R','=','"','\\','"','/','u','s','r','/', - 'l','o','c','a','l','/','s','s','l','\\','"','"',' ','-','D','E', - 'N','G','I','N','E','S','D','I','R','=','"','\\','"','/','u','s', - 'r','/','l','o','c','a','l','/','l','i','b','/','e','n','g','i', - 'n','e','s','-','1','.','1','\\','"','"',' ','\0' +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f', + 'P','I','C',' ','-','a','r','c','h',' ','x','8','6','_','6','4', + ' ','-','W','a',',','-','-','n','o','e','x','e','c','s','t','a', + 'c','k',' ','-','O','3',' ','-','W','a','l','l',' ','-','D','L', + '_','E','N','D','I','A','N',' ','-','D','O','P','E','N','S','S', + 'L','_','P','I','C',' ','-','D','O','P','E','N','S','S','L','_', + 'C','P','U','I','D','_','O','B','J',' ','-','D','O','P','E','N', + 'S','S','L','_','I','A','3','2','_','S','S','E','2',' ','-','D', + 'O','P','E','N','S','S','L','_','B','N','_','A','S','M','_','M', + 'O','N','T',' ','-','D','O','P','E','N','S','S','L','_','B','N', + '_','A','S','M','_','M','O','N','T','5',' ','-','D','O','P','E', + 'N','S','S','L','_','B','N','_','A','S','M','_','G','F','2','m', + ' ','-','D','S','H','A','1','_','A','S','M',' ','-','D','S','H', + 'A','2','5','6','_','A','S','M',' ','-','D','S','H','A','5','1', + '2','_','A','S','M',' ','-','D','K','E','C','C','A','K','1','6', + '0','0','_','A','S','M',' ','-','D','R','C','4','_','A','S','M', + ' ','-','D','M','D','5','_','A','S','M',' ','-','D','A','E','S', + '_','A','S','M',' ','-','D','V','P','A','E','S','_','A','S','M', + ' ','-','D','B','S','A','E','S','_','A','S','M',' ','-','D','G', + 'H','A','S','H','_','A','S','M',' ','-','D','E','C','P','_','N', + 'I','S','T','Z','2','5','6','_','A','S','M',' ','-','D','X','2', + '5','5','1','9','_','A','S','M',' ','-','D','P','O','L','Y','1', + '3','0','5','_','A','S','M',' ','-','D','_','R','E','E','N','T', + 'R','A','N','T',' ','-','D','N','D','E','B','U','G','\0' }; -#define PLATFORM "platform: darwin64-x86_64-cc" -#define DATE "built on: Tue Aug 14 23:13:05 2018" diff --git a/noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm/crypto/include/internal/dso_conf.h index 64f9685d..a6930919 100644 --- a/noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".dylib" #endif diff --git a/noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/opensslconf.h index dd9f0d18..e82a7281 100644 --- a/noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -37,6 +39,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -49,12 +54,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -88,6 +99,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -106,15 +120,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -138,6 +148,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -156,8 +178,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif -#define OPENSSL_CPUID_OBJ - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm/include/progs.h b/noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm/include/progs.h +++ b/noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/crypto/buildinf.h b/noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/crypto/buildinf.h new file mode 100644 index 00000000..90bcbf26 --- /dev/null +++ b/noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/crypto/buildinf.h @@ -0,0 +1,47 @@ +/* + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: darwin64-x86_64-cc" +#define DATE "built on: Thu Jun 13 19:23:25 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a + * workaround for the situation where CFLAGS gets too long for a C90 string + * literal + */ +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','.','.','/','c','o','n', + 'f','i','g','/','f','a','k','e','_','g','c','c','.','p','l',' ', + '-','f','P','I','C',' ','-','a','r','c','h',' ','x','8','6','_', + '6','4',' ','-','W','a',',','-','-','n','o','e','x','e','c','s', + 't','a','c','k',' ','-','O','3',' ','-','W','a','l','l',' ','-', + 'D','L','_','E','N','D','I','A','N',' ','-','D','O','P','E','N', + 'S','S','L','_','P','I','C',' ','-','D','O','P','E','N','S','S', + 'L','_','C','P','U','I','D','_','O','B','J',' ','-','D','O','P', + 'E','N','S','S','L','_','I','A','3','2','_','S','S','E','2',' ', + '-','D','O','P','E','N','S','S','L','_','B','N','_','A','S','M', + '_','M','O','N','T',' ','-','D','O','P','E','N','S','S','L','_', + 'B','N','_','A','S','M','_','M','O','N','T','5',' ','-','D','O', + 'P','E','N','S','S','L','_','B','N','_','A','S','M','_','G','F', + '2','m',' ','-','D','S','H','A','1','_','A','S','M',' ','-','D', + 'S','H','A','2','5','6','_','A','S','M',' ','-','D','S','H','A', + '5','1','2','_','A','S','M',' ','-','D','K','E','C','C','A','K', + '1','6','0','0','_','A','S','M',' ','-','D','R','C','4','_','A', + 'S','M',' ','-','D','M','D','5','_','A','S','M',' ','-','D','A', + 'E','S','_','A','S','M',' ','-','D','V','P','A','E','S','_','A', + 'S','M',' ','-','D','B','S','A','E','S','_','A','S','M',' ','-', + 'D','G','H','A','S','H','_','A','S','M',' ','-','D','E','C','P', + '_','N','I','S','T','Z','2','5','6','_','A','S','M',' ','-','D', + 'X','2','5','5','1','9','_','A','S','M',' ','-','D','P','O','L', + 'Y','1','3','0','5','_','A','S','M',' ','-','D','_','R','E','E', + 'N','T','R','A','N','T',' ','-','D','N','D','E','B','U','G','\0' +}; diff --git a/noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/crypto/include/internal/bn_conf.h b/noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/crypto/include/internal/bn_conf.h new file mode 100644 index 00000000..34bd8b78 --- /dev/null +++ b/noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/crypto/include/internal/bn_conf.h @@ -0,0 +1,28 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/bn_conf.h.in */ +/* + * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BN_CONF_H +# define HEADER_BN_CONF_H + +/* + * The contents of this file are not used in the UEFI build, as + * both 32-bit and 64-bit builds are supported from a single run + * of the Configure script. + */ + +/* Should we define BN_DIV2W here? */ + +/* Only one for the following should be defined */ +#define SIXTY_FOUR_BIT_LONG +#undef SIXTY_FOUR_BIT +#undef THIRTY_TWO_BIT + +#endif diff --git a/noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/crypto/include/internal/dso_conf.h new file mode 100644 index 00000000..a6930919 --- /dev/null +++ b/noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/crypto/include/internal/dso_conf.h @@ -0,0 +1,17 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ +/* + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DSO_CONF_H +# define HEADER_DSO_CONF_H +# define DSO_DLFCN +# define HAVE_DLFCN_H +# define DSO_EXTENSION ".dylib" +#endif diff --git a/noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/opensslconf.h new file mode 100644 index 00000000..e82a7281 --- /dev/null +++ b/noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/opensslconf.h @@ -0,0 +1,204 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/opensslconf.h.in + * + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef OPENSSL_ALGORITHM_DEFINES +# error OPENSSL_ALGORITHM_DEFINES no longer supported +#endif + +/* + * OpenSSL was configured with the following options: + */ + +#ifndef OPENSSL_SYS_MACOSX +# define OPENSSL_SYS_MACOSX 1 +#endif +#ifndef OPENSSL_NO_COMP +# define OPENSSL_NO_COMP +#endif +#ifndef OPENSSL_NO_MD2 +# define OPENSSL_NO_MD2 +#endif +#ifndef OPENSSL_NO_RC5 +# define OPENSSL_NO_RC5 +#endif +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif +#ifndef OPENSSL_NO_ASAN +# define OPENSSL_NO_ASAN +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG +# define OPENSSL_NO_CRYPTO_MDEBUG +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +#endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif +#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +# define OPENSSL_NO_EC_NISTP_64_GCC_128 +#endif +#ifndef OPENSSL_NO_EGD +# define OPENSSL_NO_EGD +#endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif +#ifndef OPENSSL_NO_FUZZ_AFL +# define OPENSSL_NO_FUZZ_AFL +#endif +#ifndef OPENSSL_NO_FUZZ_LIBFUZZER +# define OPENSSL_NO_FUZZ_LIBFUZZER +#endif +#ifndef OPENSSL_NO_HEARTBEATS +# define OPENSSL_NO_HEARTBEATS +#endif +#ifndef OPENSSL_NO_MSAN +# define OPENSSL_NO_MSAN +#endif +#ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +#endif +#ifndef OPENSSL_NO_SSL_TRACE +# define OPENSSL_NO_SSL_TRACE +#endif +#ifndef OPENSSL_NO_SSL3 +# define OPENSSL_NO_SSL3 +#endif +#ifndef OPENSSL_NO_SSL3_METHOD +# define OPENSSL_NO_SSL3_METHOD +#endif +#ifndef OPENSSL_NO_UBSAN +# define OPENSSL_NO_UBSAN +#endif +#ifndef OPENSSL_NO_UNIT_TEST +# define OPENSSL_NO_UNIT_TEST +#endif +#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS +# define OPENSSL_NO_WEAK_SSL_CIPHERS +#endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif + + +/* + * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers + * don't like that. This will hopefully silence them. + */ +#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; + +/* + * Applications should use -DOPENSSL_API_COMPAT= to suppress the + * declarations of functions deprecated in or before . Otherwise, they + * still won't see them if the library has been built to disable deprecated + * functions. + */ +#ifndef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +#endif + +#ifndef OPENSSL_FILE +# ifdef OPENSSL_NO_FILENAMES +# define OPENSSL_FILE "" +# define OPENSSL_LINE 0 +# else +# define OPENSSL_FILE __FILE__ +# define OPENSSL_LINE __LINE__ +# endif +#endif + +#ifndef OPENSSL_MIN_API +# define OPENSSL_MIN_API 0 +#endif + +#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API +# undef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT OPENSSL_MIN_API +#endif + +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10100000L +# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_1_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10000000L +# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_0_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x00908000L +# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_0_9_8(f) +#endif + +/* Generate 80386 code? */ +#undef I386_ONLY + +#undef OPENSSL_UNISTD +#define OPENSSL_UNISTD + +#undef OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* + * The following are cipher-specific, but are part of the public API. + */ +#if !defined(OPENSSL_SYS_UEFI) +# undef BN_LLONG +/* Only one for the following should be defined */ +# define SIXTY_FOUR_BIT_LONG +# undef SIXTY_FOUR_BIT +# undef THIRTY_TWO_BIT +#endif + +#define RC4_INT unsigned int + +#ifdef __cplusplus +} +#endif diff --git a/noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/progs.h b/noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/progs.h new file mode 100644 index 00000000..9b3d270e --- /dev/null +++ b/noarch/include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/progs.h @@ -0,0 +1,507 @@ +/* + * WARNING: do not edit! + * Generated by apps/progs.pl + * + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +typedef enum FUNC_TYPE { + FT_none, FT_general, FT_md, FT_cipher, FT_pkey, + FT_md_alg, FT_cipher_alg +} FUNC_TYPE; + +typedef struct function_st { + FUNC_TYPE type; + const char *name; + int (*func)(int argc, char *argv[]); + const OPTIONS *help; +} FUNCTION; + +DEFINE_LHASH_OF(FUNCTION); + +extern int asn1parse_main(int argc, char *argv[]); +extern int ca_main(int argc, char *argv[]); +extern int ciphers_main(int argc, char *argv[]); +extern int cms_main(int argc, char *argv[]); +extern int crl_main(int argc, char *argv[]); +extern int crl2pkcs7_main(int argc, char *argv[]); +extern int dgst_main(int argc, char *argv[]); +extern int dhparam_main(int argc, char *argv[]); +extern int dsa_main(int argc, char *argv[]); +extern int dsaparam_main(int argc, char *argv[]); +extern int ec_main(int argc, char *argv[]); +extern int ecparam_main(int argc, char *argv[]); +extern int enc_main(int argc, char *argv[]); +extern int engine_main(int argc, char *argv[]); +extern int errstr_main(int argc, char *argv[]); +extern int gendsa_main(int argc, char *argv[]); +extern int genpkey_main(int argc, char *argv[]); +extern int genrsa_main(int argc, char *argv[]); +extern int help_main(int argc, char *argv[]); +extern int list_main(int argc, char *argv[]); +extern int nseq_main(int argc, char *argv[]); +extern int ocsp_main(int argc, char *argv[]); +extern int passwd_main(int argc, char *argv[]); +extern int pkcs12_main(int argc, char *argv[]); +extern int pkcs7_main(int argc, char *argv[]); +extern int pkcs8_main(int argc, char *argv[]); +extern int pkey_main(int argc, char *argv[]); +extern int pkeyparam_main(int argc, char *argv[]); +extern int pkeyutl_main(int argc, char *argv[]); +extern int prime_main(int argc, char *argv[]); +extern int rand_main(int argc, char *argv[]); +extern int rehash_main(int argc, char *argv[]); +extern int req_main(int argc, char *argv[]); +extern int rsa_main(int argc, char *argv[]); +extern int rsautl_main(int argc, char *argv[]); +extern int s_client_main(int argc, char *argv[]); +extern int s_server_main(int argc, char *argv[]); +extern int s_time_main(int argc, char *argv[]); +extern int sess_id_main(int argc, char *argv[]); +extern int smime_main(int argc, char *argv[]); +extern int speed_main(int argc, char *argv[]); +extern int spkac_main(int argc, char *argv[]); +extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); +extern int ts_main(int argc, char *argv[]); +extern int verify_main(int argc, char *argv[]); +extern int version_main(int argc, char *argv[]); +extern int x509_main(int argc, char *argv[]); + +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; + +#ifdef INCLUDE_FUNCTION_TABLE +static FUNCTION functions[] = { + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, +#ifndef OPENSSL_NO_SOCK + {FT_general, "ciphers", ciphers_main, ciphers_options}, +#endif +#ifndef OPENSSL_NO_CMS + {FT_general, "cms", cms_main, cms_options}, +#endif + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, +#ifndef OPENSSL_NO_DH + {FT_general, "dhparam", dhparam_main, dhparam_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsa", dsa_main, dsa_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ec", ec_main, ec_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ecparam", ecparam_main, ecparam_options}, +#endif + {FT_general, "enc", enc_main, enc_options}, +#ifndef OPENSSL_NO_ENGINE + {FT_general, "engine", engine_main, engine_options}, +#endif + {FT_general, "errstr", errstr_main, errstr_options}, +#ifndef OPENSSL_NO_DSA + {FT_general, "gendsa", gendsa_main, gendsa_options}, +#endif + {FT_general, "genpkey", genpkey_main, genpkey_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "genrsa", genrsa_main, genrsa_options}, +#endif + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, +#ifndef OPENSSL_NO_OCSP + {FT_general, "ocsp", ocsp_main, ocsp_options}, +#endif + {FT_general, "passwd", passwd_main, passwd_options}, +#ifndef OPENSSL_NO_DES + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, +#endif + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "rsautl", rsautl_main, rsautl_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_client", s_client_main, s_client_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_server", s_server_main, s_server_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_time", s_time_main, s_time_options}, +#endif + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, +#ifndef OPENSSL_NO_SRP + {FT_general, "srp", srp_main, srp_options}, +#endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, +#ifndef OPENSSL_NO_TS + {FT_general, "ts", ts_main, ts_options}, +#endif + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, +#ifndef OPENSSL_NO_MD2 + {FT_md, "md2", dgst_main}, +#endif +#ifndef OPENSSL_NO_MD4 + {FT_md, "md4", dgst_main}, +#endif + {FT_md, "md5", dgst_main}, +#ifndef OPENSSL_NO_GOST + {FT_md, "gost", dgst_main}, +#endif + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, +#ifndef OPENSSL_NO_MDC2 + {FT_md, "mdc2", dgst_main}, +#endif +#ifndef OPENSSL_NO_RMD160 + {FT_md, "rmd160", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2b512", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2s256", dgst_main}, +#endif +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, +#ifdef ZLIB + {FT_cipher, "zlib", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "desx", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4-40", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} +}; +#endif diff --git a/noarch/include/node/openssl/archs/darwin64-x86_64-cc/no-asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/darwin64-x86_64-cc/no-asm/crypto/buildinf.h index fd5748f7..9d3cb99e 100644 --- a/noarch/include/node/openssl/archs/darwin64-x86_64-cc/no-asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/darwin64-x86_64-cc/no-asm/crypto/buildinf.h @@ -1,23 +1,28 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: darwin64-x86_64-cc" +#define DATE "built on: Thu Jun 13 19:23:48 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','c','c',' ','-','D','D', - 'S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E','_', - 'D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U','G', - ' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E','A', - 'D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O','_', - 'D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ','-', - 'D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D','O', - 'P','E','N','S','S','L','D','I','R','=','"','\\','"','/','u','s', - 'r','/','l','o','c','a','l','/','s','s','l','\\','"','"',' ','-', - 'D','E','N','G','I','N','E','S','D','I','R','=','"','\\','"','/', - 'u','s','r','/','l','o','c','a','l','/','l','i','b','/','e','n', - 'g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','c','c',' ','-','f','P', + 'I','C',' ','-','a','r','c','h',' ','x','8','6','_','6','4',' ', + '-','O','3',' ','-','W','a','l','l',' ','-','D','L','_','E','N', + 'D','I','A','N',' ','-','D','O','P','E','N','S','S','L','_','P', + 'I','C',' ','-','D','_','R','E','E','N','T','R','A','N','T',' ', + '-','D','N','D','E','B','U','G','\0' }; -#define PLATFORM "platform: darwin64-x86_64-cc" -#define DATE "built on: Tue Aug 14 23:13:08 2018" diff --git a/noarch/include/node/openssl/archs/darwin64-x86_64-cc/no-asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/darwin64-x86_64-cc/no-asm/crypto/include/internal/dso_conf.h index 64f9685d..a6930919 100644 --- a/noarch/include/node/openssl/archs/darwin64-x86_64-cc/no-asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/darwin64-x86_64-cc/no-asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".dylib" #endif diff --git a/noarch/include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/opensslconf.h index 77321f72..d35f3b63 100644 --- a/noarch/include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -37,6 +39,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -52,12 +57,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -91,6 +102,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -109,15 +123,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -141,6 +151,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -159,8 +181,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif - - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/progs.h b/noarch/include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/progs.h +++ b/noarch/include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/linux-aarch64/asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/linux-aarch64/asm/crypto/buildinf.h index 1efa1d17..5f3043c3 100644 --- a/noarch/include/node/openssl/archs/linux-aarch64/asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/linux-aarch64/asm/crypto/buildinf.h @@ -1,30 +1,38 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux-aarch64" +#define DATE "built on: Thu Jun 13 19:24:17 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','D', - 'D','S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E', - '_','D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U', - 'G',' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E', - 'A','D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O', - '_','D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ', +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f', + 'P','I','C',' ','-','p','t','h','r','e','a','d',' ','-','W','a', + ',','-','-','n','o','e','x','e','c','s','t','a','c','k',' ','-', + 'W','a','l','l',' ','-','O','3',' ','-','D','O','P','E','N','S', + 'S','L','_','U','S','E','_','N','O','D','E','L','E','T','E',' ', '-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D', - 'O','P','E','N','S','S','L','_','B','N','_','A','S','M','_','M', - 'O','N','T',' ','-','D','S','H','A','1','_','A','S','M',' ','-', - 'D','S','H','A','2','5','6','_','A','S','M',' ','-','D','S','H', - 'A','5','1','2','_','A','S','M',' ','-','D','V','P','A','E','S', - '_','A','S','M',' ','-','D','E','C','P','_','N','I','S','T','Z', - '2','5','6','_','A','S','M',' ','-','D','P','O','L','Y','1','3', - '0','5','_','A','S','M',' ','-','D','O','P','E','N','S','S','L', - 'D','I','R','=','"','\\','"','/','u','s','r','/','l','o','c','a', - 'l','/','s','s','l','\\','"','"',' ','-','D','E','N','G','I','N', - 'E','S','D','I','R','=','"','\\','"','/','u','s','r','/','l','o', - 'c','a','l','/','l','i','b','/','e','n','g','i','n','e','s','-', - '1','.','1','\\','"','"',' ','\0' + 'O','P','E','N','S','S','L','_','C','P','U','I','D','_','O','B', + 'J',' ','-','D','O','P','E','N','S','S','L','_','B','N','_','A', + 'S','M','_','M','O','N','T',' ','-','D','S','H','A','1','_','A', + 'S','M',' ','-','D','S','H','A','2','5','6','_','A','S','M',' ', + '-','D','S','H','A','5','1','2','_','A','S','M',' ','-','D','K', + 'E','C','C','A','K','1','6','0','0','_','A','S','M',' ','-','D', + 'V','P','A','E','S','_','A','S','M',' ','-','D','E','C','P','_', + 'N','I','S','T','Z','2','5','6','_','A','S','M',' ','-','D','P', + 'O','L','Y','1','3','0','5','_','A','S','M',' ','-','D','N','D', + 'E','B','U','G','\0' }; -#define PLATFORM "platform: linux-aarch64" -#define DATE "built on: Tue Aug 14 23:13:11 2018" diff --git a/noarch/include/node/openssl/archs/linux-aarch64/asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/linux-aarch64/asm/crypto/include/internal/dso_conf.h index 7a52dd1f..252266ec 100644 --- a/noarch/include/node/openssl/archs/linux-aarch64/asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/linux-aarch64/asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".so" #endif diff --git a/noarch/include/node/openssl/archs/linux-aarch64/asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/linux-aarch64/asm/include/openssl/opensslconf.h index 8bd973e7..f1faeec1 100644 --- a/noarch/include/node/openssl/archs/linux-aarch64/asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/linux-aarch64/asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -34,6 +36,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -46,12 +51,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -85,6 +96,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -103,15 +117,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -135,6 +145,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -153,8 +175,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif -#define OPENSSL_CPUID_OBJ - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/linux-aarch64/asm/include/progs.h b/noarch/include/node/openssl/archs/linux-aarch64/asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/linux-aarch64/asm/include/progs.h +++ b/noarch/include/node/openssl/archs/linux-aarch64/asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/linux-aarch64/asm_avx2/crypto/buildinf.h b/noarch/include/node/openssl/archs/linux-aarch64/asm_avx2/crypto/buildinf.h new file mode 100644 index 00000000..1b78cca8 --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-aarch64/asm_avx2/crypto/buildinf.h @@ -0,0 +1,39 @@ +/* + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux-aarch64" +#define DATE "built on: Thu Jun 13 19:24:26 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a + * workaround for the situation where CFLAGS gets too long for a C90 string + * literal + */ +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','.','.','/','c','o','n', + 'f','i','g','/','f','a','k','e','_','g','c','c','.','p','l',' ', + '-','f','P','I','C',' ','-','p','t','h','r','e','a','d',' ','-', + 'W','a',',','-','-','n','o','e','x','e','c','s','t','a','c','k', + ' ','-','W','a','l','l',' ','-','O','3',' ','-','D','O','P','E', + 'N','S','S','L','_','U','S','E','_','N','O','D','E','L','E','T', + 'E',' ','-','D','O','P','E','N','S','S','L','_','P','I','C',' ', + '-','D','O','P','E','N','S','S','L','_','C','P','U','I','D','_', + 'O','B','J',' ','-','D','O','P','E','N','S','S','L','_','B','N', + '_','A','S','M','_','M','O','N','T',' ','-','D','S','H','A','1', + '_','A','S','M',' ','-','D','S','H','A','2','5','6','_','A','S', + 'M',' ','-','D','S','H','A','5','1','2','_','A','S','M',' ','-', + 'D','K','E','C','C','A','K','1','6','0','0','_','A','S','M',' ', + '-','D','V','P','A','E','S','_','A','S','M',' ','-','D','E','C', + 'P','_','N','I','S','T','Z','2','5','6','_','A','S','M',' ','-', + 'D','P','O','L','Y','1','3','0','5','_','A','S','M',' ','-','D', + 'N','D','E','B','U','G','\0' +}; diff --git a/noarch/include/node/openssl/archs/linux-aarch64/asm_avx2/crypto/include/internal/bn_conf.h b/noarch/include/node/openssl/archs/linux-aarch64/asm_avx2/crypto/include/internal/bn_conf.h new file mode 100644 index 00000000..34bd8b78 --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-aarch64/asm_avx2/crypto/include/internal/bn_conf.h @@ -0,0 +1,28 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/bn_conf.h.in */ +/* + * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BN_CONF_H +# define HEADER_BN_CONF_H + +/* + * The contents of this file are not used in the UEFI build, as + * both 32-bit and 64-bit builds are supported from a single run + * of the Configure script. + */ + +/* Should we define BN_DIV2W here? */ + +/* Only one for the following should be defined */ +#define SIXTY_FOUR_BIT_LONG +#undef SIXTY_FOUR_BIT +#undef THIRTY_TWO_BIT + +#endif diff --git a/noarch/include/node/openssl/archs/linux-aarch64/asm_avx2/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/linux-aarch64/asm_avx2/crypto/include/internal/dso_conf.h new file mode 100644 index 00000000..252266ec --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-aarch64/asm_avx2/crypto/include/internal/dso_conf.h @@ -0,0 +1,17 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ +/* + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DSO_CONF_H +# define HEADER_DSO_CONF_H +# define DSO_DLFCN +# define HAVE_DLFCN_H +# define DSO_EXTENSION ".so" +#endif diff --git a/noarch/include/node/openssl/archs/linux-aarch64/asm_avx2/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/linux-aarch64/asm_avx2/include/openssl/opensslconf.h new file mode 100644 index 00000000..f1faeec1 --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-aarch64/asm_avx2/include/openssl/opensslconf.h @@ -0,0 +1,201 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/opensslconf.h.in + * + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef OPENSSL_ALGORITHM_DEFINES +# error OPENSSL_ALGORITHM_DEFINES no longer supported +#endif + +/* + * OpenSSL was configured with the following options: + */ + +#ifndef OPENSSL_NO_COMP +# define OPENSSL_NO_COMP +#endif +#ifndef OPENSSL_NO_MD2 +# define OPENSSL_NO_MD2 +#endif +#ifndef OPENSSL_NO_RC5 +# define OPENSSL_NO_RC5 +#endif +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif +#ifndef OPENSSL_NO_ASAN +# define OPENSSL_NO_ASAN +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG +# define OPENSSL_NO_CRYPTO_MDEBUG +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +#endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif +#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +# define OPENSSL_NO_EC_NISTP_64_GCC_128 +#endif +#ifndef OPENSSL_NO_EGD +# define OPENSSL_NO_EGD +#endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif +#ifndef OPENSSL_NO_FUZZ_AFL +# define OPENSSL_NO_FUZZ_AFL +#endif +#ifndef OPENSSL_NO_FUZZ_LIBFUZZER +# define OPENSSL_NO_FUZZ_LIBFUZZER +#endif +#ifndef OPENSSL_NO_HEARTBEATS +# define OPENSSL_NO_HEARTBEATS +#endif +#ifndef OPENSSL_NO_MSAN +# define OPENSSL_NO_MSAN +#endif +#ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +#endif +#ifndef OPENSSL_NO_SSL_TRACE +# define OPENSSL_NO_SSL_TRACE +#endif +#ifndef OPENSSL_NO_SSL3 +# define OPENSSL_NO_SSL3 +#endif +#ifndef OPENSSL_NO_SSL3_METHOD +# define OPENSSL_NO_SSL3_METHOD +#endif +#ifndef OPENSSL_NO_UBSAN +# define OPENSSL_NO_UBSAN +#endif +#ifndef OPENSSL_NO_UNIT_TEST +# define OPENSSL_NO_UNIT_TEST +#endif +#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS +# define OPENSSL_NO_WEAK_SSL_CIPHERS +#endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif + + +/* + * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers + * don't like that. This will hopefully silence them. + */ +#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; + +/* + * Applications should use -DOPENSSL_API_COMPAT= to suppress the + * declarations of functions deprecated in or before . Otherwise, they + * still won't see them if the library has been built to disable deprecated + * functions. + */ +#ifndef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +#endif + +#ifndef OPENSSL_FILE +# ifdef OPENSSL_NO_FILENAMES +# define OPENSSL_FILE "" +# define OPENSSL_LINE 0 +# else +# define OPENSSL_FILE __FILE__ +# define OPENSSL_LINE __LINE__ +# endif +#endif + +#ifndef OPENSSL_MIN_API +# define OPENSSL_MIN_API 0 +#endif + +#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API +# undef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT OPENSSL_MIN_API +#endif + +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10100000L +# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_1_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10000000L +# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_0_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x00908000L +# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_0_9_8(f) +#endif + +/* Generate 80386 code? */ +#undef I386_ONLY + +#undef OPENSSL_UNISTD +#define OPENSSL_UNISTD + +#undef OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* + * The following are cipher-specific, but are part of the public API. + */ +#if !defined(OPENSSL_SYS_UEFI) +# undef BN_LLONG +/* Only one for the following should be defined */ +# define SIXTY_FOUR_BIT_LONG +# undef SIXTY_FOUR_BIT +# undef THIRTY_TWO_BIT +#endif + +#define RC4_INT unsigned char + +#ifdef __cplusplus +} +#endif diff --git a/noarch/include/node/openssl/archs/linux-aarch64/asm_avx2/include/progs.h b/noarch/include/node/openssl/archs/linux-aarch64/asm_avx2/include/progs.h new file mode 100644 index 00000000..9b3d270e --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-aarch64/asm_avx2/include/progs.h @@ -0,0 +1,507 @@ +/* + * WARNING: do not edit! + * Generated by apps/progs.pl + * + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +typedef enum FUNC_TYPE { + FT_none, FT_general, FT_md, FT_cipher, FT_pkey, + FT_md_alg, FT_cipher_alg +} FUNC_TYPE; + +typedef struct function_st { + FUNC_TYPE type; + const char *name; + int (*func)(int argc, char *argv[]); + const OPTIONS *help; +} FUNCTION; + +DEFINE_LHASH_OF(FUNCTION); + +extern int asn1parse_main(int argc, char *argv[]); +extern int ca_main(int argc, char *argv[]); +extern int ciphers_main(int argc, char *argv[]); +extern int cms_main(int argc, char *argv[]); +extern int crl_main(int argc, char *argv[]); +extern int crl2pkcs7_main(int argc, char *argv[]); +extern int dgst_main(int argc, char *argv[]); +extern int dhparam_main(int argc, char *argv[]); +extern int dsa_main(int argc, char *argv[]); +extern int dsaparam_main(int argc, char *argv[]); +extern int ec_main(int argc, char *argv[]); +extern int ecparam_main(int argc, char *argv[]); +extern int enc_main(int argc, char *argv[]); +extern int engine_main(int argc, char *argv[]); +extern int errstr_main(int argc, char *argv[]); +extern int gendsa_main(int argc, char *argv[]); +extern int genpkey_main(int argc, char *argv[]); +extern int genrsa_main(int argc, char *argv[]); +extern int help_main(int argc, char *argv[]); +extern int list_main(int argc, char *argv[]); +extern int nseq_main(int argc, char *argv[]); +extern int ocsp_main(int argc, char *argv[]); +extern int passwd_main(int argc, char *argv[]); +extern int pkcs12_main(int argc, char *argv[]); +extern int pkcs7_main(int argc, char *argv[]); +extern int pkcs8_main(int argc, char *argv[]); +extern int pkey_main(int argc, char *argv[]); +extern int pkeyparam_main(int argc, char *argv[]); +extern int pkeyutl_main(int argc, char *argv[]); +extern int prime_main(int argc, char *argv[]); +extern int rand_main(int argc, char *argv[]); +extern int rehash_main(int argc, char *argv[]); +extern int req_main(int argc, char *argv[]); +extern int rsa_main(int argc, char *argv[]); +extern int rsautl_main(int argc, char *argv[]); +extern int s_client_main(int argc, char *argv[]); +extern int s_server_main(int argc, char *argv[]); +extern int s_time_main(int argc, char *argv[]); +extern int sess_id_main(int argc, char *argv[]); +extern int smime_main(int argc, char *argv[]); +extern int speed_main(int argc, char *argv[]); +extern int spkac_main(int argc, char *argv[]); +extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); +extern int ts_main(int argc, char *argv[]); +extern int verify_main(int argc, char *argv[]); +extern int version_main(int argc, char *argv[]); +extern int x509_main(int argc, char *argv[]); + +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; + +#ifdef INCLUDE_FUNCTION_TABLE +static FUNCTION functions[] = { + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, +#ifndef OPENSSL_NO_SOCK + {FT_general, "ciphers", ciphers_main, ciphers_options}, +#endif +#ifndef OPENSSL_NO_CMS + {FT_general, "cms", cms_main, cms_options}, +#endif + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, +#ifndef OPENSSL_NO_DH + {FT_general, "dhparam", dhparam_main, dhparam_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsa", dsa_main, dsa_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ec", ec_main, ec_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ecparam", ecparam_main, ecparam_options}, +#endif + {FT_general, "enc", enc_main, enc_options}, +#ifndef OPENSSL_NO_ENGINE + {FT_general, "engine", engine_main, engine_options}, +#endif + {FT_general, "errstr", errstr_main, errstr_options}, +#ifndef OPENSSL_NO_DSA + {FT_general, "gendsa", gendsa_main, gendsa_options}, +#endif + {FT_general, "genpkey", genpkey_main, genpkey_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "genrsa", genrsa_main, genrsa_options}, +#endif + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, +#ifndef OPENSSL_NO_OCSP + {FT_general, "ocsp", ocsp_main, ocsp_options}, +#endif + {FT_general, "passwd", passwd_main, passwd_options}, +#ifndef OPENSSL_NO_DES + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, +#endif + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "rsautl", rsautl_main, rsautl_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_client", s_client_main, s_client_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_server", s_server_main, s_server_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_time", s_time_main, s_time_options}, +#endif + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, +#ifndef OPENSSL_NO_SRP + {FT_general, "srp", srp_main, srp_options}, +#endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, +#ifndef OPENSSL_NO_TS + {FT_general, "ts", ts_main, ts_options}, +#endif + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, +#ifndef OPENSSL_NO_MD2 + {FT_md, "md2", dgst_main}, +#endif +#ifndef OPENSSL_NO_MD4 + {FT_md, "md4", dgst_main}, +#endif + {FT_md, "md5", dgst_main}, +#ifndef OPENSSL_NO_GOST + {FT_md, "gost", dgst_main}, +#endif + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, +#ifndef OPENSSL_NO_MDC2 + {FT_md, "mdc2", dgst_main}, +#endif +#ifndef OPENSSL_NO_RMD160 + {FT_md, "rmd160", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2b512", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2s256", dgst_main}, +#endif +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, +#ifdef ZLIB + {FT_cipher, "zlib", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "desx", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4-40", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} +}; +#endif diff --git a/noarch/include/node/openssl/archs/linux-aarch64/no-asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/linux-aarch64/no-asm/crypto/buildinf.h index 53176610..34d17458 100644 --- a/noarch/include/node/openssl/archs/linux-aarch64/no-asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/linux-aarch64/no-asm/crypto/buildinf.h @@ -1,23 +1,28 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux-aarch64" +#define DATE "built on: Thu Jun 13 19:24:34 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','D', - 'D','S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E', - '_','D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U', - 'G',' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E', - 'A','D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O', - '_','D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ', - '-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D', - 'O','P','E','N','S','S','L','D','I','R','=','"','\\','"','/','u', - 's','r','/','l','o','c','a','l','/','s','s','l','\\','"','"',' ', - '-','D','E','N','G','I','N','E','S','D','I','R','=','"','\\','"', - '/','u','s','r','/','l','o','c','a','l','/','l','i','b','/','e', - 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f', + 'P','I','C',' ','-','p','t','h','r','e','a','d',' ','-','W','a', + 'l','l',' ','-','O','3',' ','-','D','O','P','E','N','S','S','L', + '_','U','S','E','_','N','O','D','E','L','E','T','E',' ','-','D', + 'O','P','E','N','S','S','L','_','P','I','C',' ','-','D','N','D', + 'E','B','U','G','\0' }; -#define PLATFORM "platform: linux-aarch64" -#define DATE "built on: Tue Aug 14 23:13:13 2018" diff --git a/noarch/include/node/openssl/archs/linux-aarch64/no-asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/linux-aarch64/no-asm/crypto/include/internal/dso_conf.h index 7a52dd1f..252266ec 100644 --- a/noarch/include/node/openssl/archs/linux-aarch64/no-asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/linux-aarch64/no-asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".so" #endif diff --git a/noarch/include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/opensslconf.h index 08bf3d43..fc142601 100644 --- a/noarch/include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -34,6 +36,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -49,12 +54,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -88,6 +99,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -106,15 +120,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -138,6 +148,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -156,8 +178,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif - - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/linux-aarch64/no-asm/include/progs.h b/noarch/include/node/openssl/archs/linux-aarch64/no-asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/linux-aarch64/no-asm/include/progs.h +++ b/noarch/include/node/openssl/archs/linux-aarch64/no-asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/linux-armv4/asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/linux-armv4/asm/crypto/buildinf.h index d930fb3e..e5966dd2 100644 --- a/noarch/include/node/openssl/archs/linux-armv4/asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/linux-armv4/asm/crypto/buildinf.h @@ -1,33 +1,40 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux-armv4" +#define DATE "built on: Thu Jun 13 19:24:40 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','D', - 'D','S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E', - '_','D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U', - 'G',' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E', - 'A','D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O', - '_','D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ', +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f', + 'P','I','C',' ','-','p','t','h','r','e','a','d',' ','-','W','a', + ',','-','-','n','o','e','x','e','c','s','t','a','c','k',' ','-', + 'W','a','l','l',' ','-','O','3',' ','-','D','O','P','E','N','S', + 'S','L','_','U','S','E','_','N','O','D','E','L','E','T','E',' ', '-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D', - 'O','P','E','N','S','S','L','_','B','N','_','A','S','M','_','M', - 'O','N','T',' ','-','D','O','P','E','N','S','S','L','_','B','N', - '_','A','S','M','_','G','F','2','m',' ','-','D','S','H','A','1', - '_','A','S','M',' ','-','D','S','H','A','2','5','6','_','A','S', - 'M',' ','-','D','S','H','A','5','1','2','_','A','S','M',' ','-', - 'D','A','E','S','_','A','S','M',' ','-','D','B','S','A','E','S', - '_','A','S','M',' ','-','D','G','H','A','S','H','_','A','S','M', - ' ','-','D','E','C','P','_','N','I','S','T','Z','2','5','6','_', - 'A','S','M',' ','-','D','P','O','L','Y','1','3','0','5','_','A', - 'S','M',' ','-','D','O','P','E','N','S','S','L','D','I','R','=', - '"','\\','"','/','u','s','r','/','l','o','c','a','l','/','s','s', - 'l','\\','"','"',' ','-','D','E','N','G','I','N','E','S','D','I', - 'R','=','"','\\','"','/','u','s','r','/','l','o','c','a','l','/', - 'l','i','b','/','e','n','g','i','n','e','s','-','1','.','1','\\', - '"','"',' ','\0' + 'O','P','E','N','S','S','L','_','C','P','U','I','D','_','O','B', + 'J',' ','-','D','O','P','E','N','S','S','L','_','B','N','_','A', + 'S','M','_','M','O','N','T',' ','-','D','O','P','E','N','S','S', + 'L','_','B','N','_','A','S','M','_','G','F','2','m',' ','-','D', + 'S','H','A','1','_','A','S','M',' ','-','D','S','H','A','2','5', + '6','_','A','S','M',' ','-','D','S','H','A','5','1','2','_','A', + 'S','M',' ','-','D','K','E','C','C','A','K','1','6','0','0','_', + 'A','S','M',' ','-','D','A','E','S','_','A','S','M',' ','-','D', + 'B','S','A','E','S','_','A','S','M',' ','-','D','G','H','A','S', + 'H','_','A','S','M',' ','-','D','E','C','P','_','N','I','S','T', + 'Z','2','5','6','_','A','S','M',' ','-','D','P','O','L','Y','1', + '3','0','5','_','A','S','M',' ','-','D','N','D','E','B','U','G','\0' }; -#define PLATFORM "platform: linux-armv4" -#define DATE "built on: Tue Aug 14 23:13:13 2018" diff --git a/noarch/include/node/openssl/archs/linux-armv4/asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/linux-armv4/asm/crypto/include/internal/dso_conf.h index 7a52dd1f..252266ec 100644 --- a/noarch/include/node/openssl/archs/linux-armv4/asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/linux-armv4/asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".so" #endif diff --git a/noarch/include/node/openssl/archs/linux-armv4/asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/linux-armv4/asm/include/openssl/opensslconf.h index 21dd8cc6..fbc0ff24 100644 --- a/noarch/include/node/openssl/archs/linux-armv4/asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/linux-armv4/asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -34,6 +36,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -46,12 +51,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -85,6 +96,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -103,15 +117,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -135,6 +145,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -153,8 +175,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif -#define OPENSSL_CPUID_OBJ - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/linux-armv4/asm/include/progs.h b/noarch/include/node/openssl/archs/linux-armv4/asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/linux-armv4/asm/include/progs.h +++ b/noarch/include/node/openssl/archs/linux-armv4/asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/linux-armv4/asm_avx2/crypto/buildinf.h b/noarch/include/node/openssl/archs/linux-armv4/asm_avx2/crypto/buildinf.h new file mode 100644 index 00000000..aaf2758c --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-armv4/asm_avx2/crypto/buildinf.h @@ -0,0 +1,42 @@ +/* + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux-armv4" +#define DATE "built on: Thu Jun 13 19:24:50 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a + * workaround for the situation where CFLAGS gets too long for a C90 string + * literal + */ +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','.','.','/','c','o','n', + 'f','i','g','/','f','a','k','e','_','g','c','c','.','p','l',' ', + '-','f','P','I','C',' ','-','p','t','h','r','e','a','d',' ','-', + 'W','a',',','-','-','n','o','e','x','e','c','s','t','a','c','k', + ' ','-','W','a','l','l',' ','-','O','3',' ','-','D','O','P','E', + 'N','S','S','L','_','U','S','E','_','N','O','D','E','L','E','T', + 'E',' ','-','D','O','P','E','N','S','S','L','_','P','I','C',' ', + '-','D','O','P','E','N','S','S','L','_','C','P','U','I','D','_', + 'O','B','J',' ','-','D','O','P','E','N','S','S','L','_','B','N', + '_','A','S','M','_','M','O','N','T',' ','-','D','O','P','E','N', + 'S','S','L','_','B','N','_','A','S','M','_','G','F','2','m',' ', + '-','D','S','H','A','1','_','A','S','M',' ','-','D','S','H','A', + '2','5','6','_','A','S','M',' ','-','D','S','H','A','5','1','2', + '_','A','S','M',' ','-','D','K','E','C','C','A','K','1','6','0', + '0','_','A','S','M',' ','-','D','A','E','S','_','A','S','M',' ', + '-','D','B','S','A','E','S','_','A','S','M',' ','-','D','G','H', + 'A','S','H','_','A','S','M',' ','-','D','E','C','P','_','N','I', + 'S','T','Z','2','5','6','_','A','S','M',' ','-','D','P','O','L', + 'Y','1','3','0','5','_','A','S','M',' ','-','D','N','D','E','B', + 'U','G','\0' +}; diff --git a/noarch/include/node/openssl/archs/linux-armv4/asm_avx2/crypto/include/internal/bn_conf.h b/noarch/include/node/openssl/archs/linux-armv4/asm_avx2/crypto/include/internal/bn_conf.h new file mode 100644 index 00000000..fb52156b --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-armv4/asm_avx2/crypto/include/internal/bn_conf.h @@ -0,0 +1,28 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/bn_conf.h.in */ +/* + * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BN_CONF_H +# define HEADER_BN_CONF_H + +/* + * The contents of this file are not used in the UEFI build, as + * both 32-bit and 64-bit builds are supported from a single run + * of the Configure script. + */ + +/* Should we define BN_DIV2W here? */ + +/* Only one for the following should be defined */ +#undef SIXTY_FOUR_BIT_LONG +#undef SIXTY_FOUR_BIT +#define THIRTY_TWO_BIT + +#endif diff --git a/noarch/include/node/openssl/archs/linux-armv4/asm_avx2/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/linux-armv4/asm_avx2/crypto/include/internal/dso_conf.h new file mode 100644 index 00000000..252266ec --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-armv4/asm_avx2/crypto/include/internal/dso_conf.h @@ -0,0 +1,17 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ +/* + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DSO_CONF_H +# define HEADER_DSO_CONF_H +# define DSO_DLFCN +# define HAVE_DLFCN_H +# define DSO_EXTENSION ".so" +#endif diff --git a/noarch/include/node/openssl/archs/linux-armv4/asm_avx2/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/linux-armv4/asm_avx2/include/openssl/opensslconf.h new file mode 100644 index 00000000..fbc0ff24 --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-armv4/asm_avx2/include/openssl/opensslconf.h @@ -0,0 +1,201 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/opensslconf.h.in + * + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef OPENSSL_ALGORITHM_DEFINES +# error OPENSSL_ALGORITHM_DEFINES no longer supported +#endif + +/* + * OpenSSL was configured with the following options: + */ + +#ifndef OPENSSL_NO_COMP +# define OPENSSL_NO_COMP +#endif +#ifndef OPENSSL_NO_MD2 +# define OPENSSL_NO_MD2 +#endif +#ifndef OPENSSL_NO_RC5 +# define OPENSSL_NO_RC5 +#endif +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif +#ifndef OPENSSL_NO_ASAN +# define OPENSSL_NO_ASAN +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG +# define OPENSSL_NO_CRYPTO_MDEBUG +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +#endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif +#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +# define OPENSSL_NO_EC_NISTP_64_GCC_128 +#endif +#ifndef OPENSSL_NO_EGD +# define OPENSSL_NO_EGD +#endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif +#ifndef OPENSSL_NO_FUZZ_AFL +# define OPENSSL_NO_FUZZ_AFL +#endif +#ifndef OPENSSL_NO_FUZZ_LIBFUZZER +# define OPENSSL_NO_FUZZ_LIBFUZZER +#endif +#ifndef OPENSSL_NO_HEARTBEATS +# define OPENSSL_NO_HEARTBEATS +#endif +#ifndef OPENSSL_NO_MSAN +# define OPENSSL_NO_MSAN +#endif +#ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +#endif +#ifndef OPENSSL_NO_SSL_TRACE +# define OPENSSL_NO_SSL_TRACE +#endif +#ifndef OPENSSL_NO_SSL3 +# define OPENSSL_NO_SSL3 +#endif +#ifndef OPENSSL_NO_SSL3_METHOD +# define OPENSSL_NO_SSL3_METHOD +#endif +#ifndef OPENSSL_NO_UBSAN +# define OPENSSL_NO_UBSAN +#endif +#ifndef OPENSSL_NO_UNIT_TEST +# define OPENSSL_NO_UNIT_TEST +#endif +#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS +# define OPENSSL_NO_WEAK_SSL_CIPHERS +#endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif + + +/* + * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers + * don't like that. This will hopefully silence them. + */ +#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; + +/* + * Applications should use -DOPENSSL_API_COMPAT= to suppress the + * declarations of functions deprecated in or before . Otherwise, they + * still won't see them if the library has been built to disable deprecated + * functions. + */ +#ifndef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +#endif + +#ifndef OPENSSL_FILE +# ifdef OPENSSL_NO_FILENAMES +# define OPENSSL_FILE "" +# define OPENSSL_LINE 0 +# else +# define OPENSSL_FILE __FILE__ +# define OPENSSL_LINE __LINE__ +# endif +#endif + +#ifndef OPENSSL_MIN_API +# define OPENSSL_MIN_API 0 +#endif + +#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API +# undef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT OPENSSL_MIN_API +#endif + +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10100000L +# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_1_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10000000L +# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_0_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x00908000L +# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_0_9_8(f) +#endif + +/* Generate 80386 code? */ +#undef I386_ONLY + +#undef OPENSSL_UNISTD +#define OPENSSL_UNISTD + +#undef OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* + * The following are cipher-specific, but are part of the public API. + */ +#if !defined(OPENSSL_SYS_UEFI) +# define BN_LLONG +/* Only one for the following should be defined */ +# undef SIXTY_FOUR_BIT_LONG +# undef SIXTY_FOUR_BIT +# define THIRTY_TWO_BIT +#endif + +#define RC4_INT unsigned char + +#ifdef __cplusplus +} +#endif diff --git a/noarch/include/node/openssl/archs/linux-armv4/asm_avx2/include/progs.h b/noarch/include/node/openssl/archs/linux-armv4/asm_avx2/include/progs.h new file mode 100644 index 00000000..9b3d270e --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-armv4/asm_avx2/include/progs.h @@ -0,0 +1,507 @@ +/* + * WARNING: do not edit! + * Generated by apps/progs.pl + * + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +typedef enum FUNC_TYPE { + FT_none, FT_general, FT_md, FT_cipher, FT_pkey, + FT_md_alg, FT_cipher_alg +} FUNC_TYPE; + +typedef struct function_st { + FUNC_TYPE type; + const char *name; + int (*func)(int argc, char *argv[]); + const OPTIONS *help; +} FUNCTION; + +DEFINE_LHASH_OF(FUNCTION); + +extern int asn1parse_main(int argc, char *argv[]); +extern int ca_main(int argc, char *argv[]); +extern int ciphers_main(int argc, char *argv[]); +extern int cms_main(int argc, char *argv[]); +extern int crl_main(int argc, char *argv[]); +extern int crl2pkcs7_main(int argc, char *argv[]); +extern int dgst_main(int argc, char *argv[]); +extern int dhparam_main(int argc, char *argv[]); +extern int dsa_main(int argc, char *argv[]); +extern int dsaparam_main(int argc, char *argv[]); +extern int ec_main(int argc, char *argv[]); +extern int ecparam_main(int argc, char *argv[]); +extern int enc_main(int argc, char *argv[]); +extern int engine_main(int argc, char *argv[]); +extern int errstr_main(int argc, char *argv[]); +extern int gendsa_main(int argc, char *argv[]); +extern int genpkey_main(int argc, char *argv[]); +extern int genrsa_main(int argc, char *argv[]); +extern int help_main(int argc, char *argv[]); +extern int list_main(int argc, char *argv[]); +extern int nseq_main(int argc, char *argv[]); +extern int ocsp_main(int argc, char *argv[]); +extern int passwd_main(int argc, char *argv[]); +extern int pkcs12_main(int argc, char *argv[]); +extern int pkcs7_main(int argc, char *argv[]); +extern int pkcs8_main(int argc, char *argv[]); +extern int pkey_main(int argc, char *argv[]); +extern int pkeyparam_main(int argc, char *argv[]); +extern int pkeyutl_main(int argc, char *argv[]); +extern int prime_main(int argc, char *argv[]); +extern int rand_main(int argc, char *argv[]); +extern int rehash_main(int argc, char *argv[]); +extern int req_main(int argc, char *argv[]); +extern int rsa_main(int argc, char *argv[]); +extern int rsautl_main(int argc, char *argv[]); +extern int s_client_main(int argc, char *argv[]); +extern int s_server_main(int argc, char *argv[]); +extern int s_time_main(int argc, char *argv[]); +extern int sess_id_main(int argc, char *argv[]); +extern int smime_main(int argc, char *argv[]); +extern int speed_main(int argc, char *argv[]); +extern int spkac_main(int argc, char *argv[]); +extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); +extern int ts_main(int argc, char *argv[]); +extern int verify_main(int argc, char *argv[]); +extern int version_main(int argc, char *argv[]); +extern int x509_main(int argc, char *argv[]); + +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; + +#ifdef INCLUDE_FUNCTION_TABLE +static FUNCTION functions[] = { + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, +#ifndef OPENSSL_NO_SOCK + {FT_general, "ciphers", ciphers_main, ciphers_options}, +#endif +#ifndef OPENSSL_NO_CMS + {FT_general, "cms", cms_main, cms_options}, +#endif + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, +#ifndef OPENSSL_NO_DH + {FT_general, "dhparam", dhparam_main, dhparam_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsa", dsa_main, dsa_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ec", ec_main, ec_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ecparam", ecparam_main, ecparam_options}, +#endif + {FT_general, "enc", enc_main, enc_options}, +#ifndef OPENSSL_NO_ENGINE + {FT_general, "engine", engine_main, engine_options}, +#endif + {FT_general, "errstr", errstr_main, errstr_options}, +#ifndef OPENSSL_NO_DSA + {FT_general, "gendsa", gendsa_main, gendsa_options}, +#endif + {FT_general, "genpkey", genpkey_main, genpkey_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "genrsa", genrsa_main, genrsa_options}, +#endif + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, +#ifndef OPENSSL_NO_OCSP + {FT_general, "ocsp", ocsp_main, ocsp_options}, +#endif + {FT_general, "passwd", passwd_main, passwd_options}, +#ifndef OPENSSL_NO_DES + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, +#endif + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "rsautl", rsautl_main, rsautl_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_client", s_client_main, s_client_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_server", s_server_main, s_server_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_time", s_time_main, s_time_options}, +#endif + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, +#ifndef OPENSSL_NO_SRP + {FT_general, "srp", srp_main, srp_options}, +#endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, +#ifndef OPENSSL_NO_TS + {FT_general, "ts", ts_main, ts_options}, +#endif + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, +#ifndef OPENSSL_NO_MD2 + {FT_md, "md2", dgst_main}, +#endif +#ifndef OPENSSL_NO_MD4 + {FT_md, "md4", dgst_main}, +#endif + {FT_md, "md5", dgst_main}, +#ifndef OPENSSL_NO_GOST + {FT_md, "gost", dgst_main}, +#endif + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, +#ifndef OPENSSL_NO_MDC2 + {FT_md, "mdc2", dgst_main}, +#endif +#ifndef OPENSSL_NO_RMD160 + {FT_md, "rmd160", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2b512", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2s256", dgst_main}, +#endif +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, +#ifdef ZLIB + {FT_cipher, "zlib", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "desx", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4-40", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} +}; +#endif diff --git a/noarch/include/node/openssl/archs/linux-armv4/no-asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/linux-armv4/no-asm/crypto/buildinf.h index 8bba39bb..1d3fe731 100644 --- a/noarch/include/node/openssl/archs/linux-armv4/no-asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/linux-armv4/no-asm/crypto/buildinf.h @@ -1,23 +1,28 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux-armv4" +#define DATE "built on: Thu Jun 13 19:25:00 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','D', - 'D','S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E', - '_','D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U', - 'G',' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E', - 'A','D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O', - '_','D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ', - '-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D', - 'O','P','E','N','S','S','L','D','I','R','=','"','\\','"','/','u', - 's','r','/','l','o','c','a','l','/','s','s','l','\\','"','"',' ', - '-','D','E','N','G','I','N','E','S','D','I','R','=','"','\\','"', - '/','u','s','r','/','l','o','c','a','l','/','l','i','b','/','e', - 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f', + 'P','I','C',' ','-','p','t','h','r','e','a','d',' ','-','W','a', + 'l','l',' ','-','O','3',' ','-','D','O','P','E','N','S','S','L', + '_','U','S','E','_','N','O','D','E','L','E','T','E',' ','-','D', + 'O','P','E','N','S','S','L','_','P','I','C',' ','-','D','N','D', + 'E','B','U','G','\0' }; -#define PLATFORM "platform: linux-armv4" -#define DATE "built on: Tue Aug 14 23:13:15 2018" diff --git a/noarch/include/node/openssl/archs/linux-armv4/no-asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/linux-armv4/no-asm/crypto/include/internal/dso_conf.h index 7a52dd1f..252266ec 100644 --- a/noarch/include/node/openssl/archs/linux-armv4/no-asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/linux-armv4/no-asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".so" #endif diff --git a/noarch/include/node/openssl/archs/linux-armv4/no-asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/linux-armv4/no-asm/include/openssl/opensslconf.h index 5ba3b88d..d7206a94 100644 --- a/noarch/include/node/openssl/archs/linux-armv4/no-asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/linux-armv4/no-asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -34,6 +36,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -49,12 +54,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -88,6 +99,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -106,15 +120,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -138,6 +148,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -156,8 +178,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif - - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/linux-armv4/no-asm/include/progs.h b/noarch/include/node/openssl/archs/linux-armv4/no-asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/linux-armv4/no-asm/include/progs.h +++ b/noarch/include/node/openssl/archs/linux-armv4/no-asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/linux-elf/asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/linux-elf/asm/crypto/buildinf.h index 865759ec..54f173ce 100644 --- a/noarch/include/node/openssl/archs/linux-elf/asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/linux-elf/asm/crypto/buildinf.h @@ -1,40 +1,47 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux-elf" +#define DATE "built on: Thu Jun 13 19:25:06 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','D', - 'D','S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E', - '_','D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U', - 'G',' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E', - 'A','D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O', - '_','D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ', +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f', + 'P','I','C',' ','-','p','t','h','r','e','a','d',' ','-','W','a', + ',','-','-','n','o','e','x','e','c','s','t','a','c','k',' ','-', + 'W','a','l','l',' ','-','O','3',' ','-','f','o','m','i','t','-', + 'f','r','a','m','e','-','p','o','i','n','t','e','r',' ','-','D', + 'O','P','E','N','S','S','L','_','U','S','E','_','N','O','D','E', + 'L','E','T','E',' ','-','D','L','_','E','N','D','I','A','N',' ', '-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D', - 'O','P','E','N','S','S','L','_','B','N','_','A','S','M','_','P', - 'A','R','T','_','W','O','R','D','S',' ','-','D','O','P','E','N', - 'S','S','L','_','I','A','3','2','_','S','S','E','2',' ','-','D', - 'O','P','E','N','S','S','L','_','B','N','_','A','S','M','_','M', - 'O','N','T',' ','-','D','O','P','E','N','S','S','L','_','B','N', - '_','A','S','M','_','G','F','2','m',' ','-','D','S','H','A','1', - '_','A','S','M',' ','-','D','S','H','A','2','5','6','_','A','S', - 'M',' ','-','D','S','H','A','5','1','2','_','A','S','M',' ','-', - 'D','R','C','4','_','A','S','M',' ','-','D','M','D','5','_','A', - 'S','M',' ','-','D','R','M','D','1','6','0','_','A','S','M',' ', - '-','D','A','E','S','_','A','S','M',' ','-','D','V','P','A','E', - 'S','_','A','S','M',' ','-','D','W','H','I','R','L','P','O','O', - 'L','_','A','S','M',' ','-','D','G','H','A','S','H','_','A','S', - 'M',' ','-','D','E','C','P','_','N','I','S','T','Z','2','5','6', - '_','A','S','M',' ','-','D','P','A','D','L','O','C','K','_','A', - 'S','M',' ','-','D','P','O','L','Y','1','3','0','5','_','A','S', - 'M',' ','-','D','O','P','E','N','S','S','L','D','I','R','=','"', - '\\','"','/','u','s','r','/','l','o','c','a','l','/','s','s','l', - '\\','"','"',' ','-','D','E','N','G','I','N','E','S','D','I','R', - '=','"','\\','"','/','u','s','r','/','l','o','c','a','l','/','l', - 'i','b','/','e','n','g','i','n','e','s','-','1','.','1','\\','"', - '"',' ','\0' + 'O','P','E','N','S','S','L','_','C','P','U','I','D','_','O','B', + 'J',' ','-','D','O','P','E','N','S','S','L','_','B','N','_','A', + 'S','M','_','P','A','R','T','_','W','O','R','D','S',' ','-','D', + 'O','P','E','N','S','S','L','_','I','A','3','2','_','S','S','E', + '2',' ','-','D','O','P','E','N','S','S','L','_','B','N','_','A', + 'S','M','_','M','O','N','T',' ','-','D','O','P','E','N','S','S', + 'L','_','B','N','_','A','S','M','_','G','F','2','m',' ','-','D', + 'S','H','A','1','_','A','S','M',' ','-','D','S','H','A','2','5', + '6','_','A','S','M',' ','-','D','S','H','A','5','1','2','_','A', + 'S','M',' ','-','D','R','C','4','_','A','S','M',' ','-','D','M', + 'D','5','_','A','S','M',' ','-','D','R','M','D','1','6','0','_', + 'A','S','M',' ','-','D','A','E','S','_','A','S','M',' ','-','D', + 'V','P','A','E','S','_','A','S','M',' ','-','D','W','H','I','R', + 'L','P','O','O','L','_','A','S','M',' ','-','D','G','H','A','S', + 'H','_','A','S','M',' ','-','D','E','C','P','_','N','I','S','T', + 'Z','2','5','6','_','A','S','M',' ','-','D','P','O','L','Y','1', + '3','0','5','_','A','S','M',' ','-','D','N','D','E','B','U','G','\0' }; -#define PLATFORM "platform: linux-elf" -#define DATE "built on: Tue Aug 14 23:13:15 2018" diff --git a/noarch/include/node/openssl/archs/linux-elf/asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/linux-elf/asm/crypto/include/internal/dso_conf.h index 7a52dd1f..252266ec 100644 --- a/noarch/include/node/openssl/archs/linux-elf/asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/linux-elf/asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".so" #endif diff --git a/noarch/include/node/openssl/archs/linux-elf/asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/linux-elf/asm/include/openssl/opensslconf.h index b9d6509c..3d593ae0 100644 --- a/noarch/include/node/openssl/archs/linux-elf/asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/linux-elf/asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -34,6 +36,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -46,12 +51,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -85,6 +96,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -103,15 +117,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -135,6 +145,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -153,8 +175,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif -#define OPENSSL_CPUID_OBJ - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/linux-elf/asm/include/progs.h b/noarch/include/node/openssl/archs/linux-elf/asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/linux-elf/asm/include/progs.h +++ b/noarch/include/node/openssl/archs/linux-elf/asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/linux-elf/asm_avx2/crypto/buildinf.h b/noarch/include/node/openssl/archs/linux-elf/asm_avx2/crypto/buildinf.h new file mode 100644 index 00000000..a6087b2c --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-elf/asm_avx2/crypto/buildinf.h @@ -0,0 +1,49 @@ +/* + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux-elf" +#define DATE "built on: Thu Jun 13 19:25:16 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a + * workaround for the situation where CFLAGS gets too long for a C90 string + * literal + */ +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','.','.','/','c','o','n', + 'f','i','g','/','f','a','k','e','_','g','c','c','.','p','l',' ', + '-','f','P','I','C',' ','-','p','t','h','r','e','a','d',' ','-', + 'W','a',',','-','-','n','o','e','x','e','c','s','t','a','c','k', + ' ','-','W','a','l','l',' ','-','O','3',' ','-','f','o','m','i', + 't','-','f','r','a','m','e','-','p','o','i','n','t','e','r',' ', + '-','D','O','P','E','N','S','S','L','_','U','S','E','_','N','O', + 'D','E','L','E','T','E',' ','-','D','L','_','E','N','D','I','A', + 'N',' ','-','D','O','P','E','N','S','S','L','_','P','I','C',' ', + '-','D','O','P','E','N','S','S','L','_','C','P','U','I','D','_', + 'O','B','J',' ','-','D','O','P','E','N','S','S','L','_','B','N', + '_','A','S','M','_','P','A','R','T','_','W','O','R','D','S',' ', + '-','D','O','P','E','N','S','S','L','_','I','A','3','2','_','S', + 'S','E','2',' ','-','D','O','P','E','N','S','S','L','_','B','N', + '_','A','S','M','_','M','O','N','T',' ','-','D','O','P','E','N', + 'S','S','L','_','B','N','_','A','S','M','_','G','F','2','m',' ', + '-','D','S','H','A','1','_','A','S','M',' ','-','D','S','H','A', + '2','5','6','_','A','S','M',' ','-','D','S','H','A','5','1','2', + '_','A','S','M',' ','-','D','R','C','4','_','A','S','M',' ','-', + 'D','M','D','5','_','A','S','M',' ','-','D','R','M','D','1','6', + '0','_','A','S','M',' ','-','D','A','E','S','_','A','S','M',' ', + '-','D','V','P','A','E','S','_','A','S','M',' ','-','D','W','H', + 'I','R','L','P','O','O','L','_','A','S','M',' ','-','D','G','H', + 'A','S','H','_','A','S','M',' ','-','D','E','C','P','_','N','I', + 'S','T','Z','2','5','6','_','A','S','M',' ','-','D','P','O','L', + 'Y','1','3','0','5','_','A','S','M',' ','-','D','N','D','E','B', + 'U','G','\0' +}; diff --git a/noarch/include/node/openssl/archs/linux-elf/asm_avx2/crypto/include/internal/bn_conf.h b/noarch/include/node/openssl/archs/linux-elf/asm_avx2/crypto/include/internal/bn_conf.h new file mode 100644 index 00000000..fb52156b --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-elf/asm_avx2/crypto/include/internal/bn_conf.h @@ -0,0 +1,28 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/bn_conf.h.in */ +/* + * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BN_CONF_H +# define HEADER_BN_CONF_H + +/* + * The contents of this file are not used in the UEFI build, as + * both 32-bit and 64-bit builds are supported from a single run + * of the Configure script. + */ + +/* Should we define BN_DIV2W here? */ + +/* Only one for the following should be defined */ +#undef SIXTY_FOUR_BIT_LONG +#undef SIXTY_FOUR_BIT +#define THIRTY_TWO_BIT + +#endif diff --git a/noarch/include/node/openssl/archs/linux-elf/asm_avx2/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/linux-elf/asm_avx2/crypto/include/internal/dso_conf.h new file mode 100644 index 00000000..252266ec --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-elf/asm_avx2/crypto/include/internal/dso_conf.h @@ -0,0 +1,17 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ +/* + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DSO_CONF_H +# define HEADER_DSO_CONF_H +# define DSO_DLFCN +# define HAVE_DLFCN_H +# define DSO_EXTENSION ".so" +#endif diff --git a/noarch/include/node/openssl/archs/linux-elf/asm_avx2/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/linux-elf/asm_avx2/include/openssl/opensslconf.h new file mode 100644 index 00000000..3d593ae0 --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-elf/asm_avx2/include/openssl/opensslconf.h @@ -0,0 +1,201 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/opensslconf.h.in + * + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef OPENSSL_ALGORITHM_DEFINES +# error OPENSSL_ALGORITHM_DEFINES no longer supported +#endif + +/* + * OpenSSL was configured with the following options: + */ + +#ifndef OPENSSL_NO_COMP +# define OPENSSL_NO_COMP +#endif +#ifndef OPENSSL_NO_MD2 +# define OPENSSL_NO_MD2 +#endif +#ifndef OPENSSL_NO_RC5 +# define OPENSSL_NO_RC5 +#endif +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif +#ifndef OPENSSL_NO_ASAN +# define OPENSSL_NO_ASAN +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG +# define OPENSSL_NO_CRYPTO_MDEBUG +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +#endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif +#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +# define OPENSSL_NO_EC_NISTP_64_GCC_128 +#endif +#ifndef OPENSSL_NO_EGD +# define OPENSSL_NO_EGD +#endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif +#ifndef OPENSSL_NO_FUZZ_AFL +# define OPENSSL_NO_FUZZ_AFL +#endif +#ifndef OPENSSL_NO_FUZZ_LIBFUZZER +# define OPENSSL_NO_FUZZ_LIBFUZZER +#endif +#ifndef OPENSSL_NO_HEARTBEATS +# define OPENSSL_NO_HEARTBEATS +#endif +#ifndef OPENSSL_NO_MSAN +# define OPENSSL_NO_MSAN +#endif +#ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +#endif +#ifndef OPENSSL_NO_SSL_TRACE +# define OPENSSL_NO_SSL_TRACE +#endif +#ifndef OPENSSL_NO_SSL3 +# define OPENSSL_NO_SSL3 +#endif +#ifndef OPENSSL_NO_SSL3_METHOD +# define OPENSSL_NO_SSL3_METHOD +#endif +#ifndef OPENSSL_NO_UBSAN +# define OPENSSL_NO_UBSAN +#endif +#ifndef OPENSSL_NO_UNIT_TEST +# define OPENSSL_NO_UNIT_TEST +#endif +#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS +# define OPENSSL_NO_WEAK_SSL_CIPHERS +#endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif + + +/* + * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers + * don't like that. This will hopefully silence them. + */ +#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; + +/* + * Applications should use -DOPENSSL_API_COMPAT= to suppress the + * declarations of functions deprecated in or before . Otherwise, they + * still won't see them if the library has been built to disable deprecated + * functions. + */ +#ifndef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +#endif + +#ifndef OPENSSL_FILE +# ifdef OPENSSL_NO_FILENAMES +# define OPENSSL_FILE "" +# define OPENSSL_LINE 0 +# else +# define OPENSSL_FILE __FILE__ +# define OPENSSL_LINE __LINE__ +# endif +#endif + +#ifndef OPENSSL_MIN_API +# define OPENSSL_MIN_API 0 +#endif + +#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API +# undef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT OPENSSL_MIN_API +#endif + +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10100000L +# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_1_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10000000L +# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_0_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x00908000L +# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_0_9_8(f) +#endif + +/* Generate 80386 code? */ +#undef I386_ONLY + +#undef OPENSSL_UNISTD +#define OPENSSL_UNISTD + +#undef OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* + * The following are cipher-specific, but are part of the public API. + */ +#if !defined(OPENSSL_SYS_UEFI) +# define BN_LLONG +/* Only one for the following should be defined */ +# undef SIXTY_FOUR_BIT_LONG +# undef SIXTY_FOUR_BIT +# define THIRTY_TWO_BIT +#endif + +#define RC4_INT unsigned int + +#ifdef __cplusplus +} +#endif diff --git a/noarch/include/node/openssl/archs/linux-elf/asm_avx2/include/progs.h b/noarch/include/node/openssl/archs/linux-elf/asm_avx2/include/progs.h new file mode 100644 index 00000000..9b3d270e --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-elf/asm_avx2/include/progs.h @@ -0,0 +1,507 @@ +/* + * WARNING: do not edit! + * Generated by apps/progs.pl + * + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +typedef enum FUNC_TYPE { + FT_none, FT_general, FT_md, FT_cipher, FT_pkey, + FT_md_alg, FT_cipher_alg +} FUNC_TYPE; + +typedef struct function_st { + FUNC_TYPE type; + const char *name; + int (*func)(int argc, char *argv[]); + const OPTIONS *help; +} FUNCTION; + +DEFINE_LHASH_OF(FUNCTION); + +extern int asn1parse_main(int argc, char *argv[]); +extern int ca_main(int argc, char *argv[]); +extern int ciphers_main(int argc, char *argv[]); +extern int cms_main(int argc, char *argv[]); +extern int crl_main(int argc, char *argv[]); +extern int crl2pkcs7_main(int argc, char *argv[]); +extern int dgst_main(int argc, char *argv[]); +extern int dhparam_main(int argc, char *argv[]); +extern int dsa_main(int argc, char *argv[]); +extern int dsaparam_main(int argc, char *argv[]); +extern int ec_main(int argc, char *argv[]); +extern int ecparam_main(int argc, char *argv[]); +extern int enc_main(int argc, char *argv[]); +extern int engine_main(int argc, char *argv[]); +extern int errstr_main(int argc, char *argv[]); +extern int gendsa_main(int argc, char *argv[]); +extern int genpkey_main(int argc, char *argv[]); +extern int genrsa_main(int argc, char *argv[]); +extern int help_main(int argc, char *argv[]); +extern int list_main(int argc, char *argv[]); +extern int nseq_main(int argc, char *argv[]); +extern int ocsp_main(int argc, char *argv[]); +extern int passwd_main(int argc, char *argv[]); +extern int pkcs12_main(int argc, char *argv[]); +extern int pkcs7_main(int argc, char *argv[]); +extern int pkcs8_main(int argc, char *argv[]); +extern int pkey_main(int argc, char *argv[]); +extern int pkeyparam_main(int argc, char *argv[]); +extern int pkeyutl_main(int argc, char *argv[]); +extern int prime_main(int argc, char *argv[]); +extern int rand_main(int argc, char *argv[]); +extern int rehash_main(int argc, char *argv[]); +extern int req_main(int argc, char *argv[]); +extern int rsa_main(int argc, char *argv[]); +extern int rsautl_main(int argc, char *argv[]); +extern int s_client_main(int argc, char *argv[]); +extern int s_server_main(int argc, char *argv[]); +extern int s_time_main(int argc, char *argv[]); +extern int sess_id_main(int argc, char *argv[]); +extern int smime_main(int argc, char *argv[]); +extern int speed_main(int argc, char *argv[]); +extern int spkac_main(int argc, char *argv[]); +extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); +extern int ts_main(int argc, char *argv[]); +extern int verify_main(int argc, char *argv[]); +extern int version_main(int argc, char *argv[]); +extern int x509_main(int argc, char *argv[]); + +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; + +#ifdef INCLUDE_FUNCTION_TABLE +static FUNCTION functions[] = { + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, +#ifndef OPENSSL_NO_SOCK + {FT_general, "ciphers", ciphers_main, ciphers_options}, +#endif +#ifndef OPENSSL_NO_CMS + {FT_general, "cms", cms_main, cms_options}, +#endif + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, +#ifndef OPENSSL_NO_DH + {FT_general, "dhparam", dhparam_main, dhparam_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsa", dsa_main, dsa_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ec", ec_main, ec_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ecparam", ecparam_main, ecparam_options}, +#endif + {FT_general, "enc", enc_main, enc_options}, +#ifndef OPENSSL_NO_ENGINE + {FT_general, "engine", engine_main, engine_options}, +#endif + {FT_general, "errstr", errstr_main, errstr_options}, +#ifndef OPENSSL_NO_DSA + {FT_general, "gendsa", gendsa_main, gendsa_options}, +#endif + {FT_general, "genpkey", genpkey_main, genpkey_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "genrsa", genrsa_main, genrsa_options}, +#endif + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, +#ifndef OPENSSL_NO_OCSP + {FT_general, "ocsp", ocsp_main, ocsp_options}, +#endif + {FT_general, "passwd", passwd_main, passwd_options}, +#ifndef OPENSSL_NO_DES + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, +#endif + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "rsautl", rsautl_main, rsautl_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_client", s_client_main, s_client_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_server", s_server_main, s_server_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_time", s_time_main, s_time_options}, +#endif + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, +#ifndef OPENSSL_NO_SRP + {FT_general, "srp", srp_main, srp_options}, +#endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, +#ifndef OPENSSL_NO_TS + {FT_general, "ts", ts_main, ts_options}, +#endif + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, +#ifndef OPENSSL_NO_MD2 + {FT_md, "md2", dgst_main}, +#endif +#ifndef OPENSSL_NO_MD4 + {FT_md, "md4", dgst_main}, +#endif + {FT_md, "md5", dgst_main}, +#ifndef OPENSSL_NO_GOST + {FT_md, "gost", dgst_main}, +#endif + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, +#ifndef OPENSSL_NO_MDC2 + {FT_md, "mdc2", dgst_main}, +#endif +#ifndef OPENSSL_NO_RMD160 + {FT_md, "rmd160", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2b512", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2s256", dgst_main}, +#endif +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, +#ifdef ZLIB + {FT_cipher, "zlib", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "desx", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4-40", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} +}; +#endif diff --git a/noarch/include/node/openssl/archs/linux-elf/no-asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/linux-elf/no-asm/crypto/buildinf.h index 23fa5b79..980b81a5 100644 --- a/noarch/include/node/openssl/archs/linux-elf/no-asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/linux-elf/no-asm/crypto/buildinf.h @@ -1,23 +1,30 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux-elf" +#define DATE "built on: Thu Jun 13 19:25:26 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','D', - 'D','S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E', - '_','D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U', - 'G',' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E', - 'A','D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O', - '_','D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ', - '-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D', - 'O','P','E','N','S','S','L','D','I','R','=','"','\\','"','/','u', - 's','r','/','l','o','c','a','l','/','s','s','l','\\','"','"',' ', - '-','D','E','N','G','I','N','E','S','D','I','R','=','"','\\','"', - '/','u','s','r','/','l','o','c','a','l','/','l','i','b','/','e', - 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f', + 'P','I','C',' ','-','p','t','h','r','e','a','d',' ','-','W','a', + 'l','l',' ','-','O','3',' ','-','f','o','m','i','t','-','f','r', + 'a','m','e','-','p','o','i','n','t','e','r',' ','-','D','O','P', + 'E','N','S','S','L','_','U','S','E','_','N','O','D','E','L','E', + 'T','E',' ','-','D','L','_','E','N','D','I','A','N',' ','-','D', + 'O','P','E','N','S','S','L','_','P','I','C',' ','-','D','N','D', + 'E','B','U','G','\0' }; -#define PLATFORM "platform: linux-elf" -#define DATE "built on: Tue Aug 14 23:13:17 2018" diff --git a/noarch/include/node/openssl/archs/linux-elf/no-asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/linux-elf/no-asm/crypto/include/internal/dso_conf.h index 7a52dd1f..252266ec 100644 --- a/noarch/include/node/openssl/archs/linux-elf/no-asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/linux-elf/no-asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".so" #endif diff --git a/noarch/include/node/openssl/archs/linux-elf/no-asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/linux-elf/no-asm/include/openssl/opensslconf.h index d0fb48f4..8982dce8 100644 --- a/noarch/include/node/openssl/archs/linux-elf/no-asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/linux-elf/no-asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -34,6 +36,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -49,12 +54,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -88,6 +99,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -106,15 +120,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -138,6 +148,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -156,8 +178,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif - - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/linux-elf/no-asm/include/progs.h b/noarch/include/node/openssl/archs/linux-elf/no-asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/linux-elf/no-asm/include/progs.h +++ b/noarch/include/node/openssl/archs/linux-elf/no-asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/linux-ppc/asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/linux-ppc/asm/crypto/buildinf.h index c0355572..fe310925 100644 --- a/noarch/include/node/openssl/archs/linux-ppc/asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/linux-ppc/asm/crypto/buildinf.h @@ -1,29 +1,36 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux-ppc" +#define DATE "built on: Thu Jun 13 19:27:33 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','D', - 'D','S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E', - '_','D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U', - 'G',' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E', - 'A','D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O', - '_','D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ', +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f', + 'P','I','C',' ','-','p','t','h','r','e','a','d',' ','-','W','a', + ',','-','-','n','o','e','x','e','c','s','t','a','c','k',' ','-', + 'W','a','l','l',' ','-','O','3',' ','-','D','O','P','E','N','S', + 'S','L','_','U','S','E','_','N','O','D','E','L','E','T','E',' ', '-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D', - 'O','P','E','N','S','S','L','_','B','N','_','A','S','M','_','M', - 'O','N','T',' ','-','D','S','H','A','1','_','A','S','M',' ','-', - 'D','S','H','A','2','5','6','_','A','S','M',' ','-','D','S','H', - 'A','5','1','2','_','A','S','M',' ','-','D','A','E','S','_','A', - 'S','M',' ','-','D','V','P','A','E','S','_','A','S','M',' ','-', - 'D','P','O','L','Y','1','3','0','5','_','A','S','M',' ','-','D', - 'O','P','E','N','S','S','L','D','I','R','=','"','\\','"','/','u', - 's','r','/','l','o','c','a','l','/','s','s','l','\\','"','"',' ', - '-','D','E','N','G','I','N','E','S','D','I','R','=','"','\\','"', - '/','u','s','r','/','l','o','c','a','l','/','l','i','b','/','e', - 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' + 'O','P','E','N','S','S','L','_','C','P','U','I','D','_','O','B', + 'J',' ','-','D','O','P','E','N','S','S','L','_','B','N','_','A', + 'S','M','_','M','O','N','T',' ','-','D','S','H','A','1','_','A', + 'S','M',' ','-','D','S','H','A','2','5','6','_','A','S','M',' ', + '-','D','S','H','A','5','1','2','_','A','S','M',' ','-','D','A', + 'E','S','_','A','S','M',' ','-','D','V','P','A','E','S','_','A', + 'S','M',' ','-','D','P','O','L','Y','1','3','0','5','_','A','S', + 'M',' ','-','D','N','D','E','B','U','G','\0' }; -#define PLATFORM "platform: linux-ppc" -#define DATE "built on: Tue Aug 14 23:13:27 2018" diff --git a/noarch/include/node/openssl/archs/linux-ppc/asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/linux-ppc/asm/crypto/include/internal/dso_conf.h index 7a52dd1f..252266ec 100644 --- a/noarch/include/node/openssl/archs/linux-ppc/asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/linux-ppc/asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".so" #endif diff --git a/noarch/include/node/openssl/archs/linux-ppc/asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/linux-ppc/asm/include/openssl/opensslconf.h index 21dd8cc6..fbc0ff24 100644 --- a/noarch/include/node/openssl/archs/linux-ppc/asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/linux-ppc/asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -34,6 +36,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -46,12 +51,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -85,6 +96,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -103,15 +117,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -135,6 +145,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -153,8 +175,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif -#define OPENSSL_CPUID_OBJ - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/linux-ppc/asm/include/progs.h b/noarch/include/node/openssl/archs/linux-ppc/asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/linux-ppc/asm/include/progs.h +++ b/noarch/include/node/openssl/archs/linux-ppc/asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/linux-ppc/asm_avx2/crypto/buildinf.h b/noarch/include/node/openssl/archs/linux-ppc/asm_avx2/crypto/buildinf.h new file mode 100644 index 00000000..2e951019 --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-ppc/asm_avx2/crypto/buildinf.h @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux-ppc" +#define DATE "built on: Thu Jun 13 19:27:42 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a + * workaround for the situation where CFLAGS gets too long for a C90 string + * literal + */ +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','.','.','/','c','o','n', + 'f','i','g','/','f','a','k','e','_','g','c','c','.','p','l',' ', + '-','f','P','I','C',' ','-','p','t','h','r','e','a','d',' ','-', + 'W','a',',','-','-','n','o','e','x','e','c','s','t','a','c','k', + ' ','-','W','a','l','l',' ','-','O','3',' ','-','D','O','P','E', + 'N','S','S','L','_','U','S','E','_','N','O','D','E','L','E','T', + 'E',' ','-','D','O','P','E','N','S','S','L','_','P','I','C',' ', + '-','D','O','P','E','N','S','S','L','_','C','P','U','I','D','_', + 'O','B','J',' ','-','D','O','P','E','N','S','S','L','_','B','N', + '_','A','S','M','_','M','O','N','T',' ','-','D','S','H','A','1', + '_','A','S','M',' ','-','D','S','H','A','2','5','6','_','A','S', + 'M',' ','-','D','S','H','A','5','1','2','_','A','S','M',' ','-', + 'D','A','E','S','_','A','S','M',' ','-','D','V','P','A','E','S', + '_','A','S','M',' ','-','D','P','O','L','Y','1','3','0','5','_', + 'A','S','M',' ','-','D','N','D','E','B','U','G','\0' +}; diff --git a/noarch/include/node/openssl/archs/linux-ppc/asm_avx2/crypto/include/internal/bn_conf.h b/noarch/include/node/openssl/archs/linux-ppc/asm_avx2/crypto/include/internal/bn_conf.h new file mode 100644 index 00000000..fb52156b --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-ppc/asm_avx2/crypto/include/internal/bn_conf.h @@ -0,0 +1,28 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/bn_conf.h.in */ +/* + * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BN_CONF_H +# define HEADER_BN_CONF_H + +/* + * The contents of this file are not used in the UEFI build, as + * both 32-bit and 64-bit builds are supported from a single run + * of the Configure script. + */ + +/* Should we define BN_DIV2W here? */ + +/* Only one for the following should be defined */ +#undef SIXTY_FOUR_BIT_LONG +#undef SIXTY_FOUR_BIT +#define THIRTY_TWO_BIT + +#endif diff --git a/noarch/include/node/openssl/archs/linux-ppc/asm_avx2/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/linux-ppc/asm_avx2/crypto/include/internal/dso_conf.h new file mode 100644 index 00000000..252266ec --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-ppc/asm_avx2/crypto/include/internal/dso_conf.h @@ -0,0 +1,17 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ +/* + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DSO_CONF_H +# define HEADER_DSO_CONF_H +# define DSO_DLFCN +# define HAVE_DLFCN_H +# define DSO_EXTENSION ".so" +#endif diff --git a/noarch/include/node/openssl/archs/linux-ppc/asm_avx2/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/linux-ppc/asm_avx2/include/openssl/opensslconf.h new file mode 100644 index 00000000..fbc0ff24 --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-ppc/asm_avx2/include/openssl/opensslconf.h @@ -0,0 +1,201 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/opensslconf.h.in + * + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef OPENSSL_ALGORITHM_DEFINES +# error OPENSSL_ALGORITHM_DEFINES no longer supported +#endif + +/* + * OpenSSL was configured with the following options: + */ + +#ifndef OPENSSL_NO_COMP +# define OPENSSL_NO_COMP +#endif +#ifndef OPENSSL_NO_MD2 +# define OPENSSL_NO_MD2 +#endif +#ifndef OPENSSL_NO_RC5 +# define OPENSSL_NO_RC5 +#endif +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif +#ifndef OPENSSL_NO_ASAN +# define OPENSSL_NO_ASAN +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG +# define OPENSSL_NO_CRYPTO_MDEBUG +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +#endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif +#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +# define OPENSSL_NO_EC_NISTP_64_GCC_128 +#endif +#ifndef OPENSSL_NO_EGD +# define OPENSSL_NO_EGD +#endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif +#ifndef OPENSSL_NO_FUZZ_AFL +# define OPENSSL_NO_FUZZ_AFL +#endif +#ifndef OPENSSL_NO_FUZZ_LIBFUZZER +# define OPENSSL_NO_FUZZ_LIBFUZZER +#endif +#ifndef OPENSSL_NO_HEARTBEATS +# define OPENSSL_NO_HEARTBEATS +#endif +#ifndef OPENSSL_NO_MSAN +# define OPENSSL_NO_MSAN +#endif +#ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +#endif +#ifndef OPENSSL_NO_SSL_TRACE +# define OPENSSL_NO_SSL_TRACE +#endif +#ifndef OPENSSL_NO_SSL3 +# define OPENSSL_NO_SSL3 +#endif +#ifndef OPENSSL_NO_SSL3_METHOD +# define OPENSSL_NO_SSL3_METHOD +#endif +#ifndef OPENSSL_NO_UBSAN +# define OPENSSL_NO_UBSAN +#endif +#ifndef OPENSSL_NO_UNIT_TEST +# define OPENSSL_NO_UNIT_TEST +#endif +#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS +# define OPENSSL_NO_WEAK_SSL_CIPHERS +#endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif + + +/* + * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers + * don't like that. This will hopefully silence them. + */ +#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; + +/* + * Applications should use -DOPENSSL_API_COMPAT= to suppress the + * declarations of functions deprecated in or before . Otherwise, they + * still won't see them if the library has been built to disable deprecated + * functions. + */ +#ifndef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +#endif + +#ifndef OPENSSL_FILE +# ifdef OPENSSL_NO_FILENAMES +# define OPENSSL_FILE "" +# define OPENSSL_LINE 0 +# else +# define OPENSSL_FILE __FILE__ +# define OPENSSL_LINE __LINE__ +# endif +#endif + +#ifndef OPENSSL_MIN_API +# define OPENSSL_MIN_API 0 +#endif + +#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API +# undef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT OPENSSL_MIN_API +#endif + +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10100000L +# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_1_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10000000L +# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_0_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x00908000L +# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_0_9_8(f) +#endif + +/* Generate 80386 code? */ +#undef I386_ONLY + +#undef OPENSSL_UNISTD +#define OPENSSL_UNISTD + +#undef OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* + * The following are cipher-specific, but are part of the public API. + */ +#if !defined(OPENSSL_SYS_UEFI) +# define BN_LLONG +/* Only one for the following should be defined */ +# undef SIXTY_FOUR_BIT_LONG +# undef SIXTY_FOUR_BIT +# define THIRTY_TWO_BIT +#endif + +#define RC4_INT unsigned char + +#ifdef __cplusplus +} +#endif diff --git a/noarch/include/node/openssl/archs/linux-ppc/asm_avx2/include/progs.h b/noarch/include/node/openssl/archs/linux-ppc/asm_avx2/include/progs.h new file mode 100644 index 00000000..9b3d270e --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-ppc/asm_avx2/include/progs.h @@ -0,0 +1,507 @@ +/* + * WARNING: do not edit! + * Generated by apps/progs.pl + * + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +typedef enum FUNC_TYPE { + FT_none, FT_general, FT_md, FT_cipher, FT_pkey, + FT_md_alg, FT_cipher_alg +} FUNC_TYPE; + +typedef struct function_st { + FUNC_TYPE type; + const char *name; + int (*func)(int argc, char *argv[]); + const OPTIONS *help; +} FUNCTION; + +DEFINE_LHASH_OF(FUNCTION); + +extern int asn1parse_main(int argc, char *argv[]); +extern int ca_main(int argc, char *argv[]); +extern int ciphers_main(int argc, char *argv[]); +extern int cms_main(int argc, char *argv[]); +extern int crl_main(int argc, char *argv[]); +extern int crl2pkcs7_main(int argc, char *argv[]); +extern int dgst_main(int argc, char *argv[]); +extern int dhparam_main(int argc, char *argv[]); +extern int dsa_main(int argc, char *argv[]); +extern int dsaparam_main(int argc, char *argv[]); +extern int ec_main(int argc, char *argv[]); +extern int ecparam_main(int argc, char *argv[]); +extern int enc_main(int argc, char *argv[]); +extern int engine_main(int argc, char *argv[]); +extern int errstr_main(int argc, char *argv[]); +extern int gendsa_main(int argc, char *argv[]); +extern int genpkey_main(int argc, char *argv[]); +extern int genrsa_main(int argc, char *argv[]); +extern int help_main(int argc, char *argv[]); +extern int list_main(int argc, char *argv[]); +extern int nseq_main(int argc, char *argv[]); +extern int ocsp_main(int argc, char *argv[]); +extern int passwd_main(int argc, char *argv[]); +extern int pkcs12_main(int argc, char *argv[]); +extern int pkcs7_main(int argc, char *argv[]); +extern int pkcs8_main(int argc, char *argv[]); +extern int pkey_main(int argc, char *argv[]); +extern int pkeyparam_main(int argc, char *argv[]); +extern int pkeyutl_main(int argc, char *argv[]); +extern int prime_main(int argc, char *argv[]); +extern int rand_main(int argc, char *argv[]); +extern int rehash_main(int argc, char *argv[]); +extern int req_main(int argc, char *argv[]); +extern int rsa_main(int argc, char *argv[]); +extern int rsautl_main(int argc, char *argv[]); +extern int s_client_main(int argc, char *argv[]); +extern int s_server_main(int argc, char *argv[]); +extern int s_time_main(int argc, char *argv[]); +extern int sess_id_main(int argc, char *argv[]); +extern int smime_main(int argc, char *argv[]); +extern int speed_main(int argc, char *argv[]); +extern int spkac_main(int argc, char *argv[]); +extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); +extern int ts_main(int argc, char *argv[]); +extern int verify_main(int argc, char *argv[]); +extern int version_main(int argc, char *argv[]); +extern int x509_main(int argc, char *argv[]); + +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; + +#ifdef INCLUDE_FUNCTION_TABLE +static FUNCTION functions[] = { + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, +#ifndef OPENSSL_NO_SOCK + {FT_general, "ciphers", ciphers_main, ciphers_options}, +#endif +#ifndef OPENSSL_NO_CMS + {FT_general, "cms", cms_main, cms_options}, +#endif + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, +#ifndef OPENSSL_NO_DH + {FT_general, "dhparam", dhparam_main, dhparam_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsa", dsa_main, dsa_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ec", ec_main, ec_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ecparam", ecparam_main, ecparam_options}, +#endif + {FT_general, "enc", enc_main, enc_options}, +#ifndef OPENSSL_NO_ENGINE + {FT_general, "engine", engine_main, engine_options}, +#endif + {FT_general, "errstr", errstr_main, errstr_options}, +#ifndef OPENSSL_NO_DSA + {FT_general, "gendsa", gendsa_main, gendsa_options}, +#endif + {FT_general, "genpkey", genpkey_main, genpkey_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "genrsa", genrsa_main, genrsa_options}, +#endif + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, +#ifndef OPENSSL_NO_OCSP + {FT_general, "ocsp", ocsp_main, ocsp_options}, +#endif + {FT_general, "passwd", passwd_main, passwd_options}, +#ifndef OPENSSL_NO_DES + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, +#endif + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "rsautl", rsautl_main, rsautl_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_client", s_client_main, s_client_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_server", s_server_main, s_server_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_time", s_time_main, s_time_options}, +#endif + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, +#ifndef OPENSSL_NO_SRP + {FT_general, "srp", srp_main, srp_options}, +#endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, +#ifndef OPENSSL_NO_TS + {FT_general, "ts", ts_main, ts_options}, +#endif + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, +#ifndef OPENSSL_NO_MD2 + {FT_md, "md2", dgst_main}, +#endif +#ifndef OPENSSL_NO_MD4 + {FT_md, "md4", dgst_main}, +#endif + {FT_md, "md5", dgst_main}, +#ifndef OPENSSL_NO_GOST + {FT_md, "gost", dgst_main}, +#endif + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, +#ifndef OPENSSL_NO_MDC2 + {FT_md, "mdc2", dgst_main}, +#endif +#ifndef OPENSSL_NO_RMD160 + {FT_md, "rmd160", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2b512", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2s256", dgst_main}, +#endif +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, +#ifdef ZLIB + {FT_cipher, "zlib", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "desx", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4-40", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} +}; +#endif diff --git a/noarch/include/node/openssl/archs/linux-ppc/no-asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/linux-ppc/no-asm/crypto/buildinf.h index 2e6e10b7..837b3bda 100644 --- a/noarch/include/node/openssl/archs/linux-ppc/no-asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/linux-ppc/no-asm/crypto/buildinf.h @@ -1,23 +1,28 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux-ppc" +#define DATE "built on: Thu Jun 13 19:27:51 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','D', - 'D','S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E', - '_','D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U', - 'G',' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E', - 'A','D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O', - '_','D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ', - '-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D', - 'O','P','E','N','S','S','L','D','I','R','=','"','\\','"','/','u', - 's','r','/','l','o','c','a','l','/','s','s','l','\\','"','"',' ', - '-','D','E','N','G','I','N','E','S','D','I','R','=','"','\\','"', - '/','u','s','r','/','l','o','c','a','l','/','l','i','b','/','e', - 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f', + 'P','I','C',' ','-','p','t','h','r','e','a','d',' ','-','W','a', + 'l','l',' ','-','O','3',' ','-','D','O','P','E','N','S','S','L', + '_','U','S','E','_','N','O','D','E','L','E','T','E',' ','-','D', + 'O','P','E','N','S','S','L','_','P','I','C',' ','-','D','N','D', + 'E','B','U','G','\0' }; -#define PLATFORM "platform: linux-ppc" -#define DATE "built on: Tue Aug 14 23:13:28 2018" diff --git a/noarch/include/node/openssl/archs/linux-ppc/no-asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/linux-ppc/no-asm/crypto/include/internal/dso_conf.h index 7a52dd1f..252266ec 100644 --- a/noarch/include/node/openssl/archs/linux-ppc/no-asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/linux-ppc/no-asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".so" #endif diff --git a/noarch/include/node/openssl/archs/linux-ppc/no-asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/linux-ppc/no-asm/include/openssl/opensslconf.h index 5ba3b88d..d7206a94 100644 --- a/noarch/include/node/openssl/archs/linux-ppc/no-asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/linux-ppc/no-asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -34,6 +36,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -49,12 +54,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -88,6 +99,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -106,15 +120,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -138,6 +148,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -156,8 +178,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif - - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/linux-ppc/no-asm/include/progs.h b/noarch/include/node/openssl/archs/linux-ppc/no-asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/linux-ppc/no-asm/include/progs.h +++ b/noarch/include/node/openssl/archs/linux-ppc/no-asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/linux-ppc64/asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/linux-ppc64/asm/crypto/buildinf.h index 6c21f2f5..6041195f 100644 --- a/noarch/include/node/openssl/archs/linux-ppc64/asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/linux-ppc64/asm/crypto/buildinf.h @@ -1,29 +1,40 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux-ppc64" +#define DATE "built on: Thu Jun 13 19:27:57 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','D', - 'D','S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E', - '_','D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U', - 'G',' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E', - 'A','D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O', - '_','D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ', +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f', + 'P','I','C',' ','-','p','t','h','r','e','a','d',' ','-','m','6', + '4',' ','-','W','a',',','-','-','n','o','e','x','e','c','s','t', + 'a','c','k',' ','-','W','a','l','l',' ','-','O','3',' ','-','D', + 'O','P','E','N','S','S','L','_','U','S','E','_','N','O','D','E', + 'L','E','T','E',' ','-','D','B','_','E','N','D','I','A','N',' ', '-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D', - 'O','P','E','N','S','S','L','_','B','N','_','A','S','M','_','M', - 'O','N','T',' ','-','D','S','H','A','1','_','A','S','M',' ','-', - 'D','S','H','A','2','5','6','_','A','S','M',' ','-','D','S','H', - 'A','5','1','2','_','A','S','M',' ','-','D','A','E','S','_','A', - 'S','M',' ','-','D','V','P','A','E','S','_','A','S','M',' ','-', - 'D','P','O','L','Y','1','3','0','5','_','A','S','M',' ','-','D', - 'O','P','E','N','S','S','L','D','I','R','=','"','\\','"','/','u', - 's','r','/','l','o','c','a','l','/','s','s','l','\\','"','"',' ', - '-','D','E','N','G','I','N','E','S','D','I','R','=','"','\\','"', - '/','u','s','r','/','l','o','c','a','l','/','l','i','b','/','e', - 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' + 'O','P','E','N','S','S','L','_','C','P','U','I','D','_','O','B', + 'J',' ','-','D','O','P','E','N','S','S','L','_','B','N','_','A', + 'S','M','_','M','O','N','T',' ','-','D','S','H','A','1','_','A', + 'S','M',' ','-','D','S','H','A','2','5','6','_','A','S','M',' ', + '-','D','S','H','A','5','1','2','_','A','S','M',' ','-','D','K', + 'E','C','C','A','K','1','6','0','0','_','A','S','M',' ','-','D', + 'A','E','S','_','A','S','M',' ','-','D','V','P','A','E','S','_', + 'A','S','M',' ','-','D','E','C','P','_','N','I','S','T','Z','2', + '5','6','_','A','S','M',' ','-','D','X','2','5','5','1','9','_', + 'A','S','M',' ','-','D','P','O','L','Y','1','3','0','5','_','A', + 'S','M',' ','-','D','N','D','E','B','U','G','\0' }; -#define PLATFORM "platform: linux-ppc64" -#define DATE "built on: Tue Aug 14 23:13:29 2018" diff --git a/noarch/include/node/openssl/archs/linux-ppc64/asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/linux-ppc64/asm/crypto/include/internal/dso_conf.h index 7a52dd1f..252266ec 100644 --- a/noarch/include/node/openssl/archs/linux-ppc64/asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/linux-ppc64/asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".so" #endif diff --git a/noarch/include/node/openssl/archs/linux-ppc64/asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/linux-ppc64/asm/include/openssl/opensslconf.h index 8bd973e7..f1faeec1 100644 --- a/noarch/include/node/openssl/archs/linux-ppc64/asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/linux-ppc64/asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -34,6 +36,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -46,12 +51,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -85,6 +96,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -103,15 +117,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -135,6 +145,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -153,8 +175,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif -#define OPENSSL_CPUID_OBJ - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/linux-ppc64/asm/include/progs.h b/noarch/include/node/openssl/archs/linux-ppc64/asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/linux-ppc64/asm/include/progs.h +++ b/noarch/include/node/openssl/archs/linux-ppc64/asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/linux-ppc64/asm_avx2/crypto/buildinf.h b/noarch/include/node/openssl/archs/linux-ppc64/asm_avx2/crypto/buildinf.h new file mode 100644 index 00000000..a4fcee89 --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-ppc64/asm_avx2/crypto/buildinf.h @@ -0,0 +1,41 @@ +/* + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux-ppc64" +#define DATE "built on: Thu Jun 13 19:28:08 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a + * workaround for the situation where CFLAGS gets too long for a C90 string + * literal + */ +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','.','.','/','c','o','n', + 'f','i','g','/','f','a','k','e','_','g','c','c','.','p','l',' ', + '-','f','P','I','C',' ','-','p','t','h','r','e','a','d',' ','-', + 'm','6','4',' ','-','W','a',',','-','-','n','o','e','x','e','c', + 's','t','a','c','k',' ','-','W','a','l','l',' ','-','O','3',' ', + '-','D','O','P','E','N','S','S','L','_','U','S','E','_','N','O', + 'D','E','L','E','T','E',' ','-','D','B','_','E','N','D','I','A', + 'N',' ','-','D','O','P','E','N','S','S','L','_','P','I','C',' ', + '-','D','O','P','E','N','S','S','L','_','C','P','U','I','D','_', + 'O','B','J',' ','-','D','O','P','E','N','S','S','L','_','B','N', + '_','A','S','M','_','M','O','N','T',' ','-','D','S','H','A','1', + '_','A','S','M',' ','-','D','S','H','A','2','5','6','_','A','S', + 'M',' ','-','D','S','H','A','5','1','2','_','A','S','M',' ','-', + 'D','K','E','C','C','A','K','1','6','0','0','_','A','S','M',' ', + '-','D','A','E','S','_','A','S','M',' ','-','D','V','P','A','E', + 'S','_','A','S','M',' ','-','D','E','C','P','_','N','I','S','T', + 'Z','2','5','6','_','A','S','M',' ','-','D','X','2','5','5','1', + '9','_','A','S','M',' ','-','D','P','O','L','Y','1','3','0','5', + '_','A','S','M',' ','-','D','N','D','E','B','U','G','\0' +}; diff --git a/noarch/include/node/openssl/archs/linux-ppc64/asm_avx2/crypto/include/internal/bn_conf.h b/noarch/include/node/openssl/archs/linux-ppc64/asm_avx2/crypto/include/internal/bn_conf.h new file mode 100644 index 00000000..34bd8b78 --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-ppc64/asm_avx2/crypto/include/internal/bn_conf.h @@ -0,0 +1,28 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/bn_conf.h.in */ +/* + * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BN_CONF_H +# define HEADER_BN_CONF_H + +/* + * The contents of this file are not used in the UEFI build, as + * both 32-bit and 64-bit builds are supported from a single run + * of the Configure script. + */ + +/* Should we define BN_DIV2W here? */ + +/* Only one for the following should be defined */ +#define SIXTY_FOUR_BIT_LONG +#undef SIXTY_FOUR_BIT +#undef THIRTY_TWO_BIT + +#endif diff --git a/noarch/include/node/openssl/archs/linux-ppc64/asm_avx2/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/linux-ppc64/asm_avx2/crypto/include/internal/dso_conf.h new file mode 100644 index 00000000..252266ec --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-ppc64/asm_avx2/crypto/include/internal/dso_conf.h @@ -0,0 +1,17 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ +/* + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DSO_CONF_H +# define HEADER_DSO_CONF_H +# define DSO_DLFCN +# define HAVE_DLFCN_H +# define DSO_EXTENSION ".so" +#endif diff --git a/noarch/include/node/openssl/archs/linux-ppc64/asm_avx2/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/linux-ppc64/asm_avx2/include/openssl/opensslconf.h new file mode 100644 index 00000000..f1faeec1 --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-ppc64/asm_avx2/include/openssl/opensslconf.h @@ -0,0 +1,201 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/opensslconf.h.in + * + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef OPENSSL_ALGORITHM_DEFINES +# error OPENSSL_ALGORITHM_DEFINES no longer supported +#endif + +/* + * OpenSSL was configured with the following options: + */ + +#ifndef OPENSSL_NO_COMP +# define OPENSSL_NO_COMP +#endif +#ifndef OPENSSL_NO_MD2 +# define OPENSSL_NO_MD2 +#endif +#ifndef OPENSSL_NO_RC5 +# define OPENSSL_NO_RC5 +#endif +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif +#ifndef OPENSSL_NO_ASAN +# define OPENSSL_NO_ASAN +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG +# define OPENSSL_NO_CRYPTO_MDEBUG +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +#endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif +#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +# define OPENSSL_NO_EC_NISTP_64_GCC_128 +#endif +#ifndef OPENSSL_NO_EGD +# define OPENSSL_NO_EGD +#endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif +#ifndef OPENSSL_NO_FUZZ_AFL +# define OPENSSL_NO_FUZZ_AFL +#endif +#ifndef OPENSSL_NO_FUZZ_LIBFUZZER +# define OPENSSL_NO_FUZZ_LIBFUZZER +#endif +#ifndef OPENSSL_NO_HEARTBEATS +# define OPENSSL_NO_HEARTBEATS +#endif +#ifndef OPENSSL_NO_MSAN +# define OPENSSL_NO_MSAN +#endif +#ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +#endif +#ifndef OPENSSL_NO_SSL_TRACE +# define OPENSSL_NO_SSL_TRACE +#endif +#ifndef OPENSSL_NO_SSL3 +# define OPENSSL_NO_SSL3 +#endif +#ifndef OPENSSL_NO_SSL3_METHOD +# define OPENSSL_NO_SSL3_METHOD +#endif +#ifndef OPENSSL_NO_UBSAN +# define OPENSSL_NO_UBSAN +#endif +#ifndef OPENSSL_NO_UNIT_TEST +# define OPENSSL_NO_UNIT_TEST +#endif +#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS +# define OPENSSL_NO_WEAK_SSL_CIPHERS +#endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif + + +/* + * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers + * don't like that. This will hopefully silence them. + */ +#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; + +/* + * Applications should use -DOPENSSL_API_COMPAT= to suppress the + * declarations of functions deprecated in or before . Otherwise, they + * still won't see them if the library has been built to disable deprecated + * functions. + */ +#ifndef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +#endif + +#ifndef OPENSSL_FILE +# ifdef OPENSSL_NO_FILENAMES +# define OPENSSL_FILE "" +# define OPENSSL_LINE 0 +# else +# define OPENSSL_FILE __FILE__ +# define OPENSSL_LINE __LINE__ +# endif +#endif + +#ifndef OPENSSL_MIN_API +# define OPENSSL_MIN_API 0 +#endif + +#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API +# undef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT OPENSSL_MIN_API +#endif + +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10100000L +# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_1_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10000000L +# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_0_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x00908000L +# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_0_9_8(f) +#endif + +/* Generate 80386 code? */ +#undef I386_ONLY + +#undef OPENSSL_UNISTD +#define OPENSSL_UNISTD + +#undef OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* + * The following are cipher-specific, but are part of the public API. + */ +#if !defined(OPENSSL_SYS_UEFI) +# undef BN_LLONG +/* Only one for the following should be defined */ +# define SIXTY_FOUR_BIT_LONG +# undef SIXTY_FOUR_BIT +# undef THIRTY_TWO_BIT +#endif + +#define RC4_INT unsigned char + +#ifdef __cplusplus +} +#endif diff --git a/noarch/include/node/openssl/archs/linux-ppc64/asm_avx2/include/progs.h b/noarch/include/node/openssl/archs/linux-ppc64/asm_avx2/include/progs.h new file mode 100644 index 00000000..9b3d270e --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-ppc64/asm_avx2/include/progs.h @@ -0,0 +1,507 @@ +/* + * WARNING: do not edit! + * Generated by apps/progs.pl + * + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +typedef enum FUNC_TYPE { + FT_none, FT_general, FT_md, FT_cipher, FT_pkey, + FT_md_alg, FT_cipher_alg +} FUNC_TYPE; + +typedef struct function_st { + FUNC_TYPE type; + const char *name; + int (*func)(int argc, char *argv[]); + const OPTIONS *help; +} FUNCTION; + +DEFINE_LHASH_OF(FUNCTION); + +extern int asn1parse_main(int argc, char *argv[]); +extern int ca_main(int argc, char *argv[]); +extern int ciphers_main(int argc, char *argv[]); +extern int cms_main(int argc, char *argv[]); +extern int crl_main(int argc, char *argv[]); +extern int crl2pkcs7_main(int argc, char *argv[]); +extern int dgst_main(int argc, char *argv[]); +extern int dhparam_main(int argc, char *argv[]); +extern int dsa_main(int argc, char *argv[]); +extern int dsaparam_main(int argc, char *argv[]); +extern int ec_main(int argc, char *argv[]); +extern int ecparam_main(int argc, char *argv[]); +extern int enc_main(int argc, char *argv[]); +extern int engine_main(int argc, char *argv[]); +extern int errstr_main(int argc, char *argv[]); +extern int gendsa_main(int argc, char *argv[]); +extern int genpkey_main(int argc, char *argv[]); +extern int genrsa_main(int argc, char *argv[]); +extern int help_main(int argc, char *argv[]); +extern int list_main(int argc, char *argv[]); +extern int nseq_main(int argc, char *argv[]); +extern int ocsp_main(int argc, char *argv[]); +extern int passwd_main(int argc, char *argv[]); +extern int pkcs12_main(int argc, char *argv[]); +extern int pkcs7_main(int argc, char *argv[]); +extern int pkcs8_main(int argc, char *argv[]); +extern int pkey_main(int argc, char *argv[]); +extern int pkeyparam_main(int argc, char *argv[]); +extern int pkeyutl_main(int argc, char *argv[]); +extern int prime_main(int argc, char *argv[]); +extern int rand_main(int argc, char *argv[]); +extern int rehash_main(int argc, char *argv[]); +extern int req_main(int argc, char *argv[]); +extern int rsa_main(int argc, char *argv[]); +extern int rsautl_main(int argc, char *argv[]); +extern int s_client_main(int argc, char *argv[]); +extern int s_server_main(int argc, char *argv[]); +extern int s_time_main(int argc, char *argv[]); +extern int sess_id_main(int argc, char *argv[]); +extern int smime_main(int argc, char *argv[]); +extern int speed_main(int argc, char *argv[]); +extern int spkac_main(int argc, char *argv[]); +extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); +extern int ts_main(int argc, char *argv[]); +extern int verify_main(int argc, char *argv[]); +extern int version_main(int argc, char *argv[]); +extern int x509_main(int argc, char *argv[]); + +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; + +#ifdef INCLUDE_FUNCTION_TABLE +static FUNCTION functions[] = { + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, +#ifndef OPENSSL_NO_SOCK + {FT_general, "ciphers", ciphers_main, ciphers_options}, +#endif +#ifndef OPENSSL_NO_CMS + {FT_general, "cms", cms_main, cms_options}, +#endif + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, +#ifndef OPENSSL_NO_DH + {FT_general, "dhparam", dhparam_main, dhparam_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsa", dsa_main, dsa_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ec", ec_main, ec_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ecparam", ecparam_main, ecparam_options}, +#endif + {FT_general, "enc", enc_main, enc_options}, +#ifndef OPENSSL_NO_ENGINE + {FT_general, "engine", engine_main, engine_options}, +#endif + {FT_general, "errstr", errstr_main, errstr_options}, +#ifndef OPENSSL_NO_DSA + {FT_general, "gendsa", gendsa_main, gendsa_options}, +#endif + {FT_general, "genpkey", genpkey_main, genpkey_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "genrsa", genrsa_main, genrsa_options}, +#endif + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, +#ifndef OPENSSL_NO_OCSP + {FT_general, "ocsp", ocsp_main, ocsp_options}, +#endif + {FT_general, "passwd", passwd_main, passwd_options}, +#ifndef OPENSSL_NO_DES + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, +#endif + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "rsautl", rsautl_main, rsautl_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_client", s_client_main, s_client_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_server", s_server_main, s_server_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_time", s_time_main, s_time_options}, +#endif + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, +#ifndef OPENSSL_NO_SRP + {FT_general, "srp", srp_main, srp_options}, +#endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, +#ifndef OPENSSL_NO_TS + {FT_general, "ts", ts_main, ts_options}, +#endif + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, +#ifndef OPENSSL_NO_MD2 + {FT_md, "md2", dgst_main}, +#endif +#ifndef OPENSSL_NO_MD4 + {FT_md, "md4", dgst_main}, +#endif + {FT_md, "md5", dgst_main}, +#ifndef OPENSSL_NO_GOST + {FT_md, "gost", dgst_main}, +#endif + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, +#ifndef OPENSSL_NO_MDC2 + {FT_md, "mdc2", dgst_main}, +#endif +#ifndef OPENSSL_NO_RMD160 + {FT_md, "rmd160", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2b512", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2s256", dgst_main}, +#endif +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, +#ifdef ZLIB + {FT_cipher, "zlib", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "desx", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4-40", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} +}; +#endif diff --git a/noarch/include/node/openssl/archs/linux-ppc64/no-asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/linux-ppc64/no-asm/crypto/buildinf.h index 94576dcc..2f04ef7b 100644 --- a/noarch/include/node/openssl/archs/linux-ppc64/no-asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/linux-ppc64/no-asm/crypto/buildinf.h @@ -1,23 +1,29 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux-ppc64" +#define DATE "built on: Thu Jun 13 19:28:19 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','D', - 'D','S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E', - '_','D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U', - 'G',' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E', - 'A','D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O', - '_','D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ', - '-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D', - 'O','P','E','N','S','S','L','D','I','R','=','"','\\','"','/','u', - 's','r','/','l','o','c','a','l','/','s','s','l','\\','"','"',' ', - '-','D','E','N','G','I','N','E','S','D','I','R','=','"','\\','"', - '/','u','s','r','/','l','o','c','a','l','/','l','i','b','/','e', - 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f', + 'P','I','C',' ','-','p','t','h','r','e','a','d',' ','-','m','6', + '4',' ','-','W','a','l','l',' ','-','O','3',' ','-','D','O','P', + 'E','N','S','S','L','_','U','S','E','_','N','O','D','E','L','E', + 'T','E',' ','-','D','B','_','E','N','D','I','A','N',' ','-','D', + 'O','P','E','N','S','S','L','_','P','I','C',' ','-','D','N','D', + 'E','B','U','G','\0' }; -#define PLATFORM "platform: linux-ppc64" -#define DATE "built on: Tue Aug 14 23:13:30 2018" diff --git a/noarch/include/node/openssl/archs/linux-ppc64/no-asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/linux-ppc64/no-asm/crypto/include/internal/dso_conf.h index 7a52dd1f..252266ec 100644 --- a/noarch/include/node/openssl/archs/linux-ppc64/no-asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/linux-ppc64/no-asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".so" #endif diff --git a/noarch/include/node/openssl/archs/linux-ppc64/no-asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/linux-ppc64/no-asm/include/openssl/opensslconf.h index 08bf3d43..fc142601 100644 --- a/noarch/include/node/openssl/archs/linux-ppc64/no-asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/linux-ppc64/no-asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -34,6 +36,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -49,12 +54,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -88,6 +99,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -106,15 +120,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -138,6 +148,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -156,8 +178,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif - - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/linux-ppc64/no-asm/include/progs.h b/noarch/include/node/openssl/archs/linux-ppc64/no-asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/linux-ppc64/no-asm/include/progs.h +++ b/noarch/include/node/openssl/archs/linux-ppc64/no-asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/linux-ppc64le/asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/linux-ppc64le/asm/crypto/buildinf.h index 9d82ff0d..a99c6d3c 100644 --- a/noarch/include/node/openssl/archs/linux-ppc64le/asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/linux-ppc64le/asm/crypto/buildinf.h @@ -1,29 +1,40 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux-ppc64le" +#define DATE "built on: Thu Jun 13 19:28:25 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','D', - 'D','S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E', - '_','D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U', - 'G',' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E', - 'A','D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O', - '_','D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ', +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f', + 'P','I','C',' ','-','p','t','h','r','e','a','d',' ','-','m','6', + '4',' ','-','W','a',',','-','-','n','o','e','x','e','c','s','t', + 'a','c','k',' ','-','W','a','l','l',' ','-','O','3',' ','-','D', + 'O','P','E','N','S','S','L','_','U','S','E','_','N','O','D','E', + 'L','E','T','E',' ','-','D','L','_','E','N','D','I','A','N',' ', '-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D', - 'O','P','E','N','S','S','L','_','B','N','_','A','S','M','_','M', - 'O','N','T',' ','-','D','S','H','A','1','_','A','S','M',' ','-', - 'D','S','H','A','2','5','6','_','A','S','M',' ','-','D','S','H', - 'A','5','1','2','_','A','S','M',' ','-','D','A','E','S','_','A', - 'S','M',' ','-','D','V','P','A','E','S','_','A','S','M',' ','-', - 'D','P','O','L','Y','1','3','0','5','_','A','S','M',' ','-','D', - 'O','P','E','N','S','S','L','D','I','R','=','"','\\','"','/','u', - 's','r','/','l','o','c','a','l','/','s','s','l','\\','"','"',' ', - '-','D','E','N','G','I','N','E','S','D','I','R','=','"','\\','"', - '/','u','s','r','/','l','o','c','a','l','/','l','i','b','/','e', - 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' + 'O','P','E','N','S','S','L','_','C','P','U','I','D','_','O','B', + 'J',' ','-','D','O','P','E','N','S','S','L','_','B','N','_','A', + 'S','M','_','M','O','N','T',' ','-','D','S','H','A','1','_','A', + 'S','M',' ','-','D','S','H','A','2','5','6','_','A','S','M',' ', + '-','D','S','H','A','5','1','2','_','A','S','M',' ','-','D','K', + 'E','C','C','A','K','1','6','0','0','_','A','S','M',' ','-','D', + 'A','E','S','_','A','S','M',' ','-','D','V','P','A','E','S','_', + 'A','S','M',' ','-','D','E','C','P','_','N','I','S','T','Z','2', + '5','6','_','A','S','M',' ','-','D','X','2','5','5','1','9','_', + 'A','S','M',' ','-','D','P','O','L','Y','1','3','0','5','_','A', + 'S','M',' ','-','D','N','D','E','B','U','G','\0' }; -#define PLATFORM "platform: linux-ppc64le" -#define DATE "built on: Tue Aug 14 23:13:30 2018" diff --git a/noarch/include/node/openssl/archs/linux-ppc64le/asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/linux-ppc64le/asm/crypto/include/internal/dso_conf.h index 7a52dd1f..252266ec 100644 --- a/noarch/include/node/openssl/archs/linux-ppc64le/asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/linux-ppc64le/asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".so" #endif diff --git a/noarch/include/node/openssl/archs/linux-ppc64le/asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/linux-ppc64le/asm/include/openssl/opensslconf.h index 8bd973e7..f1faeec1 100644 --- a/noarch/include/node/openssl/archs/linux-ppc64le/asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/linux-ppc64le/asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -34,6 +36,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -46,12 +51,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -85,6 +96,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -103,15 +117,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -135,6 +145,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -153,8 +175,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif -#define OPENSSL_CPUID_OBJ - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/linux-ppc64le/asm/include/progs.h b/noarch/include/node/openssl/archs/linux-ppc64le/asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/linux-ppc64le/asm/include/progs.h +++ b/noarch/include/node/openssl/archs/linux-ppc64le/asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/linux-ppc64le/asm_avx2/crypto/buildinf.h b/noarch/include/node/openssl/archs/linux-ppc64le/asm_avx2/crypto/buildinf.h new file mode 100644 index 00000000..4b7ba12a --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-ppc64le/asm_avx2/crypto/buildinf.h @@ -0,0 +1,41 @@ +/* + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux-ppc64le" +#define DATE "built on: Thu Jun 13 19:28:36 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a + * workaround for the situation where CFLAGS gets too long for a C90 string + * literal + */ +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','.','.','/','c','o','n', + 'f','i','g','/','f','a','k','e','_','g','c','c','.','p','l',' ', + '-','f','P','I','C',' ','-','p','t','h','r','e','a','d',' ','-', + 'm','6','4',' ','-','W','a',',','-','-','n','o','e','x','e','c', + 's','t','a','c','k',' ','-','W','a','l','l',' ','-','O','3',' ', + '-','D','O','P','E','N','S','S','L','_','U','S','E','_','N','O', + 'D','E','L','E','T','E',' ','-','D','L','_','E','N','D','I','A', + 'N',' ','-','D','O','P','E','N','S','S','L','_','P','I','C',' ', + '-','D','O','P','E','N','S','S','L','_','C','P','U','I','D','_', + 'O','B','J',' ','-','D','O','P','E','N','S','S','L','_','B','N', + '_','A','S','M','_','M','O','N','T',' ','-','D','S','H','A','1', + '_','A','S','M',' ','-','D','S','H','A','2','5','6','_','A','S', + 'M',' ','-','D','S','H','A','5','1','2','_','A','S','M',' ','-', + 'D','K','E','C','C','A','K','1','6','0','0','_','A','S','M',' ', + '-','D','A','E','S','_','A','S','M',' ','-','D','V','P','A','E', + 'S','_','A','S','M',' ','-','D','E','C','P','_','N','I','S','T', + 'Z','2','5','6','_','A','S','M',' ','-','D','X','2','5','5','1', + '9','_','A','S','M',' ','-','D','P','O','L','Y','1','3','0','5', + '_','A','S','M',' ','-','D','N','D','E','B','U','G','\0' +}; diff --git a/noarch/include/node/openssl/archs/linux-ppc64le/asm_avx2/crypto/include/internal/bn_conf.h b/noarch/include/node/openssl/archs/linux-ppc64le/asm_avx2/crypto/include/internal/bn_conf.h new file mode 100644 index 00000000..34bd8b78 --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-ppc64le/asm_avx2/crypto/include/internal/bn_conf.h @@ -0,0 +1,28 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/bn_conf.h.in */ +/* + * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BN_CONF_H +# define HEADER_BN_CONF_H + +/* + * The contents of this file are not used in the UEFI build, as + * both 32-bit and 64-bit builds are supported from a single run + * of the Configure script. + */ + +/* Should we define BN_DIV2W here? */ + +/* Only one for the following should be defined */ +#define SIXTY_FOUR_BIT_LONG +#undef SIXTY_FOUR_BIT +#undef THIRTY_TWO_BIT + +#endif diff --git a/noarch/include/node/openssl/archs/linux-ppc64le/asm_avx2/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/linux-ppc64le/asm_avx2/crypto/include/internal/dso_conf.h new file mode 100644 index 00000000..252266ec --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-ppc64le/asm_avx2/crypto/include/internal/dso_conf.h @@ -0,0 +1,17 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ +/* + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DSO_CONF_H +# define HEADER_DSO_CONF_H +# define DSO_DLFCN +# define HAVE_DLFCN_H +# define DSO_EXTENSION ".so" +#endif diff --git a/noarch/include/node/openssl/archs/linux-ppc64le/asm_avx2/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/linux-ppc64le/asm_avx2/include/openssl/opensslconf.h new file mode 100644 index 00000000..f1faeec1 --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-ppc64le/asm_avx2/include/openssl/opensslconf.h @@ -0,0 +1,201 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/opensslconf.h.in + * + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef OPENSSL_ALGORITHM_DEFINES +# error OPENSSL_ALGORITHM_DEFINES no longer supported +#endif + +/* + * OpenSSL was configured with the following options: + */ + +#ifndef OPENSSL_NO_COMP +# define OPENSSL_NO_COMP +#endif +#ifndef OPENSSL_NO_MD2 +# define OPENSSL_NO_MD2 +#endif +#ifndef OPENSSL_NO_RC5 +# define OPENSSL_NO_RC5 +#endif +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif +#ifndef OPENSSL_NO_ASAN +# define OPENSSL_NO_ASAN +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG +# define OPENSSL_NO_CRYPTO_MDEBUG +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +#endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif +#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +# define OPENSSL_NO_EC_NISTP_64_GCC_128 +#endif +#ifndef OPENSSL_NO_EGD +# define OPENSSL_NO_EGD +#endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif +#ifndef OPENSSL_NO_FUZZ_AFL +# define OPENSSL_NO_FUZZ_AFL +#endif +#ifndef OPENSSL_NO_FUZZ_LIBFUZZER +# define OPENSSL_NO_FUZZ_LIBFUZZER +#endif +#ifndef OPENSSL_NO_HEARTBEATS +# define OPENSSL_NO_HEARTBEATS +#endif +#ifndef OPENSSL_NO_MSAN +# define OPENSSL_NO_MSAN +#endif +#ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +#endif +#ifndef OPENSSL_NO_SSL_TRACE +# define OPENSSL_NO_SSL_TRACE +#endif +#ifndef OPENSSL_NO_SSL3 +# define OPENSSL_NO_SSL3 +#endif +#ifndef OPENSSL_NO_SSL3_METHOD +# define OPENSSL_NO_SSL3_METHOD +#endif +#ifndef OPENSSL_NO_UBSAN +# define OPENSSL_NO_UBSAN +#endif +#ifndef OPENSSL_NO_UNIT_TEST +# define OPENSSL_NO_UNIT_TEST +#endif +#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS +# define OPENSSL_NO_WEAK_SSL_CIPHERS +#endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif + + +/* + * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers + * don't like that. This will hopefully silence them. + */ +#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; + +/* + * Applications should use -DOPENSSL_API_COMPAT= to suppress the + * declarations of functions deprecated in or before . Otherwise, they + * still won't see them if the library has been built to disable deprecated + * functions. + */ +#ifndef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +#endif + +#ifndef OPENSSL_FILE +# ifdef OPENSSL_NO_FILENAMES +# define OPENSSL_FILE "" +# define OPENSSL_LINE 0 +# else +# define OPENSSL_FILE __FILE__ +# define OPENSSL_LINE __LINE__ +# endif +#endif + +#ifndef OPENSSL_MIN_API +# define OPENSSL_MIN_API 0 +#endif + +#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API +# undef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT OPENSSL_MIN_API +#endif + +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10100000L +# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_1_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10000000L +# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_0_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x00908000L +# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_0_9_8(f) +#endif + +/* Generate 80386 code? */ +#undef I386_ONLY + +#undef OPENSSL_UNISTD +#define OPENSSL_UNISTD + +#undef OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* + * The following are cipher-specific, but are part of the public API. + */ +#if !defined(OPENSSL_SYS_UEFI) +# undef BN_LLONG +/* Only one for the following should be defined */ +# define SIXTY_FOUR_BIT_LONG +# undef SIXTY_FOUR_BIT +# undef THIRTY_TWO_BIT +#endif + +#define RC4_INT unsigned char + +#ifdef __cplusplus +} +#endif diff --git a/noarch/include/node/openssl/archs/linux-ppc64le/asm_avx2/include/progs.h b/noarch/include/node/openssl/archs/linux-ppc64le/asm_avx2/include/progs.h new file mode 100644 index 00000000..9b3d270e --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-ppc64le/asm_avx2/include/progs.h @@ -0,0 +1,507 @@ +/* + * WARNING: do not edit! + * Generated by apps/progs.pl + * + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +typedef enum FUNC_TYPE { + FT_none, FT_general, FT_md, FT_cipher, FT_pkey, + FT_md_alg, FT_cipher_alg +} FUNC_TYPE; + +typedef struct function_st { + FUNC_TYPE type; + const char *name; + int (*func)(int argc, char *argv[]); + const OPTIONS *help; +} FUNCTION; + +DEFINE_LHASH_OF(FUNCTION); + +extern int asn1parse_main(int argc, char *argv[]); +extern int ca_main(int argc, char *argv[]); +extern int ciphers_main(int argc, char *argv[]); +extern int cms_main(int argc, char *argv[]); +extern int crl_main(int argc, char *argv[]); +extern int crl2pkcs7_main(int argc, char *argv[]); +extern int dgst_main(int argc, char *argv[]); +extern int dhparam_main(int argc, char *argv[]); +extern int dsa_main(int argc, char *argv[]); +extern int dsaparam_main(int argc, char *argv[]); +extern int ec_main(int argc, char *argv[]); +extern int ecparam_main(int argc, char *argv[]); +extern int enc_main(int argc, char *argv[]); +extern int engine_main(int argc, char *argv[]); +extern int errstr_main(int argc, char *argv[]); +extern int gendsa_main(int argc, char *argv[]); +extern int genpkey_main(int argc, char *argv[]); +extern int genrsa_main(int argc, char *argv[]); +extern int help_main(int argc, char *argv[]); +extern int list_main(int argc, char *argv[]); +extern int nseq_main(int argc, char *argv[]); +extern int ocsp_main(int argc, char *argv[]); +extern int passwd_main(int argc, char *argv[]); +extern int pkcs12_main(int argc, char *argv[]); +extern int pkcs7_main(int argc, char *argv[]); +extern int pkcs8_main(int argc, char *argv[]); +extern int pkey_main(int argc, char *argv[]); +extern int pkeyparam_main(int argc, char *argv[]); +extern int pkeyutl_main(int argc, char *argv[]); +extern int prime_main(int argc, char *argv[]); +extern int rand_main(int argc, char *argv[]); +extern int rehash_main(int argc, char *argv[]); +extern int req_main(int argc, char *argv[]); +extern int rsa_main(int argc, char *argv[]); +extern int rsautl_main(int argc, char *argv[]); +extern int s_client_main(int argc, char *argv[]); +extern int s_server_main(int argc, char *argv[]); +extern int s_time_main(int argc, char *argv[]); +extern int sess_id_main(int argc, char *argv[]); +extern int smime_main(int argc, char *argv[]); +extern int speed_main(int argc, char *argv[]); +extern int spkac_main(int argc, char *argv[]); +extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); +extern int ts_main(int argc, char *argv[]); +extern int verify_main(int argc, char *argv[]); +extern int version_main(int argc, char *argv[]); +extern int x509_main(int argc, char *argv[]); + +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; + +#ifdef INCLUDE_FUNCTION_TABLE +static FUNCTION functions[] = { + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, +#ifndef OPENSSL_NO_SOCK + {FT_general, "ciphers", ciphers_main, ciphers_options}, +#endif +#ifndef OPENSSL_NO_CMS + {FT_general, "cms", cms_main, cms_options}, +#endif + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, +#ifndef OPENSSL_NO_DH + {FT_general, "dhparam", dhparam_main, dhparam_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsa", dsa_main, dsa_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ec", ec_main, ec_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ecparam", ecparam_main, ecparam_options}, +#endif + {FT_general, "enc", enc_main, enc_options}, +#ifndef OPENSSL_NO_ENGINE + {FT_general, "engine", engine_main, engine_options}, +#endif + {FT_general, "errstr", errstr_main, errstr_options}, +#ifndef OPENSSL_NO_DSA + {FT_general, "gendsa", gendsa_main, gendsa_options}, +#endif + {FT_general, "genpkey", genpkey_main, genpkey_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "genrsa", genrsa_main, genrsa_options}, +#endif + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, +#ifndef OPENSSL_NO_OCSP + {FT_general, "ocsp", ocsp_main, ocsp_options}, +#endif + {FT_general, "passwd", passwd_main, passwd_options}, +#ifndef OPENSSL_NO_DES + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, +#endif + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "rsautl", rsautl_main, rsautl_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_client", s_client_main, s_client_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_server", s_server_main, s_server_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_time", s_time_main, s_time_options}, +#endif + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, +#ifndef OPENSSL_NO_SRP + {FT_general, "srp", srp_main, srp_options}, +#endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, +#ifndef OPENSSL_NO_TS + {FT_general, "ts", ts_main, ts_options}, +#endif + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, +#ifndef OPENSSL_NO_MD2 + {FT_md, "md2", dgst_main}, +#endif +#ifndef OPENSSL_NO_MD4 + {FT_md, "md4", dgst_main}, +#endif + {FT_md, "md5", dgst_main}, +#ifndef OPENSSL_NO_GOST + {FT_md, "gost", dgst_main}, +#endif + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, +#ifndef OPENSSL_NO_MDC2 + {FT_md, "mdc2", dgst_main}, +#endif +#ifndef OPENSSL_NO_RMD160 + {FT_md, "rmd160", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2b512", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2s256", dgst_main}, +#endif +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, +#ifdef ZLIB + {FT_cipher, "zlib", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "desx", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4-40", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} +}; +#endif diff --git a/noarch/include/node/openssl/archs/linux-ppc64le/no-asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/linux-ppc64le/no-asm/crypto/buildinf.h index 74db60cb..bf39be59 100644 --- a/noarch/include/node/openssl/archs/linux-ppc64le/no-asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/linux-ppc64le/no-asm/crypto/buildinf.h @@ -1,23 +1,29 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux-ppc64le" +#define DATE "built on: Thu Jun 13 19:28:46 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','D', - 'D','S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E', - '_','D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U', - 'G',' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E', - 'A','D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O', - '_','D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ', - '-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D', - 'O','P','E','N','S','S','L','D','I','R','=','"','\\','"','/','u', - 's','r','/','l','o','c','a','l','/','s','s','l','\\','"','"',' ', - '-','D','E','N','G','I','N','E','S','D','I','R','=','"','\\','"', - '/','u','s','r','/','l','o','c','a','l','/','l','i','b','/','e', - 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f', + 'P','I','C',' ','-','p','t','h','r','e','a','d',' ','-','m','6', + '4',' ','-','W','a','l','l',' ','-','O','3',' ','-','D','O','P', + 'E','N','S','S','L','_','U','S','E','_','N','O','D','E','L','E', + 'T','E',' ','-','D','L','_','E','N','D','I','A','N',' ','-','D', + 'O','P','E','N','S','S','L','_','P','I','C',' ','-','D','N','D', + 'E','B','U','G','\0' }; -#define PLATFORM "platform: linux-ppc64le" -#define DATE "built on: Tue Aug 14 23:13:32 2018" diff --git a/noarch/include/node/openssl/archs/linux-ppc64le/no-asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/linux-ppc64le/no-asm/crypto/include/internal/dso_conf.h index 7a52dd1f..252266ec 100644 --- a/noarch/include/node/openssl/archs/linux-ppc64le/no-asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/linux-ppc64le/no-asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".so" #endif diff --git a/noarch/include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/opensslconf.h index 08bf3d43..fc142601 100644 --- a/noarch/include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -34,6 +36,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -49,12 +54,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -88,6 +99,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -106,15 +120,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -138,6 +148,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -156,8 +178,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif - - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/linux-ppc64le/no-asm/include/progs.h b/noarch/include/node/openssl/archs/linux-ppc64le/no-asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/linux-ppc64le/no-asm/include/progs.h +++ b/noarch/include/node/openssl/archs/linux-ppc64le/no-asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/linux-x32/asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/linux-x32/asm/crypto/buildinf.h index 96db051a..87c0533b 100644 --- a/noarch/include/node/openssl/archs/linux-x32/asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/linux-x32/asm/crypto/buildinf.h @@ -1,38 +1,47 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux-x32" +#define DATE "built on: Thu Jun 13 19:25:32 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','D', - 'D','S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E', - '_','D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U', - 'G',' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E', - 'A','D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O', - '_','D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ', - '-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D', - 'O','P','E','N','S','S','L','_','I','A','3','2','_','S','S','E', - '2',' ','-','D','O','P','E','N','S','S','L','_','B','N','_','A', - 'S','M','_','M','O','N','T',' ','-','D','O','P','E','N','S','S', - 'L','_','B','N','_','A','S','M','_','M','O','N','T','5',' ','-', - 'D','O','P','E','N','S','S','L','_','B','N','_','A','S','M','_', - 'G','F','2','m',' ','-','D','S','H','A','1','_','A','S','M',' ', - '-','D','S','H','A','2','5','6','_','A','S','M',' ','-','D','S', - 'H','A','5','1','2','_','A','S','M',' ','-','D','R','C','4','_', - 'A','S','M',' ','-','D','M','D','5','_','A','S','M',' ','-','D', - 'A','E','S','_','A','S','M',' ','-','D','V','P','A','E','S','_', - 'A','S','M',' ','-','D','B','S','A','E','S','_','A','S','M',' ', - '-','D','G','H','A','S','H','_','A','S','M',' ','-','D','E','C', - 'P','_','N','I','S','T','Z','2','5','6','_','A','S','M',' ','-', - 'D','P','A','D','L','O','C','K','_','A','S','M',' ','-','D','P', - 'O','L','Y','1','3','0','5','_','A','S','M',' ','-','D','O','P', - 'E','N','S','S','L','D','I','R','=','"','\\','"','/','u','s','r', - '/','l','o','c','a','l','/','s','s','l','\\','"','"',' ','-','D', - 'E','N','G','I','N','E','S','D','I','R','=','"','\\','"','/','u', - 's','r','/','l','o','c','a','l','/','l','i','b','/','e','n','g', - 'i','n','e','s','-','1','.','1','\\','"','"',' ','\0' +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f', + 'P','I','C',' ','-','p','t','h','r','e','a','d',' ','-','m','x', + '3','2',' ','-','W','a',',','-','-','n','o','e','x','e','c','s', + 't','a','c','k',' ','-','W','a','l','l',' ','-','O','3',' ','-', + 'D','O','P','E','N','S','S','L','_','U','S','E','_','N','O','D', + 'E','L','E','T','E',' ','-','D','L','_','E','N','D','I','A','N', + ' ','-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-', + 'D','O','P','E','N','S','S','L','_','C','P','U','I','D','_','O', + 'B','J',' ','-','D','O','P','E','N','S','S','L','_','I','A','3', + '2','_','S','S','E','2',' ','-','D','O','P','E','N','S','S','L', + '_','B','N','_','A','S','M','_','M','O','N','T',' ','-','D','O', + 'P','E','N','S','S','L','_','B','N','_','A','S','M','_','M','O', + 'N','T','5',' ','-','D','O','P','E','N','S','S','L','_','B','N', + '_','A','S','M','_','G','F','2','m',' ','-','D','S','H','A','1', + '_','A','S','M',' ','-','D','S','H','A','2','5','6','_','A','S', + 'M',' ','-','D','S','H','A','5','1','2','_','A','S','M',' ','-', + 'D','K','E','C','C','A','K','1','6','0','0','_','A','S','M',' ', + '-','D','R','C','4','_','A','S','M',' ','-','D','M','D','5','_', + 'A','S','M',' ','-','D','A','E','S','_','A','S','M',' ','-','D', + 'V','P','A','E','S','_','A','S','M',' ','-','D','B','S','A','E', + 'S','_','A','S','M',' ','-','D','G','H','A','S','H','_','A','S', + 'M',' ','-','D','E','C','P','_','N','I','S','T','Z','2','5','6', + '_','A','S','M',' ','-','D','X','2','5','5','1','9','_','A','S', + 'M',' ','-','D','P','O','L','Y','1','3','0','5','_','A','S','M', + ' ','-','D','N','D','E','B','U','G','\0' }; -#define PLATFORM "platform: linux-x32" -#define DATE "built on: Tue Aug 14 23:13:18 2018" diff --git a/noarch/include/node/openssl/archs/linux-x32/asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/linux-x32/asm/crypto/include/internal/dso_conf.h index 7a52dd1f..252266ec 100644 --- a/noarch/include/node/openssl/archs/linux-x32/asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/linux-x32/asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".so" #endif diff --git a/noarch/include/node/openssl/archs/linux-x32/asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/linux-x32/asm/include/openssl/opensslconf.h index 546f0771..9f5814eb 100644 --- a/noarch/include/node/openssl/archs/linux-x32/asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/linux-x32/asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -34,6 +36,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -46,12 +51,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -85,6 +96,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -103,15 +117,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -135,6 +145,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -153,8 +175,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif -#define OPENSSL_CPUID_OBJ - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/linux-x32/asm/include/progs.h b/noarch/include/node/openssl/archs/linux-x32/asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/linux-x32/asm/include/progs.h +++ b/noarch/include/node/openssl/archs/linux-x32/asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/linux-x32/asm_avx2/crypto/buildinf.h b/noarch/include/node/openssl/archs/linux-x32/asm_avx2/crypto/buildinf.h new file mode 100644 index 00000000..cff5ec8f --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-x32/asm_avx2/crypto/buildinf.h @@ -0,0 +1,48 @@ +/* + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux-x32" +#define DATE "built on: Thu Jun 13 19:25:58 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a + * workaround for the situation where CFLAGS gets too long for a C90 string + * literal + */ +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','.','.','/','c','o','n', + 'f','i','g','/','f','a','k','e','_','g','c','c','.','p','l',' ', + '-','f','P','I','C',' ','-','p','t','h','r','e','a','d',' ','-', + 'm','x','3','2',' ','-','W','a',',','-','-','n','o','e','x','e', + 'c','s','t','a','c','k',' ','-','W','a','l','l',' ','-','O','3', + ' ','-','D','O','P','E','N','S','S','L','_','U','S','E','_','N', + 'O','D','E','L','E','T','E',' ','-','D','L','_','E','N','D','I', + 'A','N',' ','-','D','O','P','E','N','S','S','L','_','P','I','C', + ' ','-','D','O','P','E','N','S','S','L','_','C','P','U','I','D', + '_','O','B','J',' ','-','D','O','P','E','N','S','S','L','_','I', + 'A','3','2','_','S','S','E','2',' ','-','D','O','P','E','N','S', + 'S','L','_','B','N','_','A','S','M','_','M','O','N','T',' ','-', + 'D','O','P','E','N','S','S','L','_','B','N','_','A','S','M','_', + 'M','O','N','T','5',' ','-','D','O','P','E','N','S','S','L','_', + 'B','N','_','A','S','M','_','G','F','2','m',' ','-','D','S','H', + 'A','1','_','A','S','M',' ','-','D','S','H','A','2','5','6','_', + 'A','S','M',' ','-','D','S','H','A','5','1','2','_','A','S','M', + ' ','-','D','K','E','C','C','A','K','1','6','0','0','_','A','S', + 'M',' ','-','D','R','C','4','_','A','S','M',' ','-','D','M','D', + '5','_','A','S','M',' ','-','D','A','E','S','_','A','S','M',' ', + '-','D','V','P','A','E','S','_','A','S','M',' ','-','D','B','S', + 'A','E','S','_','A','S','M',' ','-','D','G','H','A','S','H','_', + 'A','S','M',' ','-','D','E','C','P','_','N','I','S','T','Z','2', + '5','6','_','A','S','M',' ','-','D','X','2','5','5','1','9','_', + 'A','S','M',' ','-','D','P','O','L','Y','1','3','0','5','_','A', + 'S','M',' ','-','D','N','D','E','B','U','G','\0' +}; diff --git a/noarch/include/node/openssl/archs/linux-x32/asm_avx2/crypto/include/internal/bn_conf.h b/noarch/include/node/openssl/archs/linux-x32/asm_avx2/crypto/include/internal/bn_conf.h new file mode 100644 index 00000000..0d071bda --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-x32/asm_avx2/crypto/include/internal/bn_conf.h @@ -0,0 +1,28 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/bn_conf.h.in */ +/* + * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BN_CONF_H +# define HEADER_BN_CONF_H + +/* + * The contents of this file are not used in the UEFI build, as + * both 32-bit and 64-bit builds are supported from a single run + * of the Configure script. + */ + +/* Should we define BN_DIV2W here? */ + +/* Only one for the following should be defined */ +#undef SIXTY_FOUR_BIT_LONG +#define SIXTY_FOUR_BIT +#undef THIRTY_TWO_BIT + +#endif diff --git a/noarch/include/node/openssl/archs/linux-x32/asm_avx2/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/linux-x32/asm_avx2/crypto/include/internal/dso_conf.h new file mode 100644 index 00000000..252266ec --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-x32/asm_avx2/crypto/include/internal/dso_conf.h @@ -0,0 +1,17 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ +/* + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DSO_CONF_H +# define HEADER_DSO_CONF_H +# define DSO_DLFCN +# define HAVE_DLFCN_H +# define DSO_EXTENSION ".so" +#endif diff --git a/noarch/include/node/openssl/archs/linux-x32/asm_avx2/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/linux-x32/asm_avx2/include/openssl/opensslconf.h new file mode 100644 index 00000000..9f5814eb --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-x32/asm_avx2/include/openssl/opensslconf.h @@ -0,0 +1,201 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/opensslconf.h.in + * + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef OPENSSL_ALGORITHM_DEFINES +# error OPENSSL_ALGORITHM_DEFINES no longer supported +#endif + +/* + * OpenSSL was configured with the following options: + */ + +#ifndef OPENSSL_NO_COMP +# define OPENSSL_NO_COMP +#endif +#ifndef OPENSSL_NO_MD2 +# define OPENSSL_NO_MD2 +#endif +#ifndef OPENSSL_NO_RC5 +# define OPENSSL_NO_RC5 +#endif +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif +#ifndef OPENSSL_NO_ASAN +# define OPENSSL_NO_ASAN +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG +# define OPENSSL_NO_CRYPTO_MDEBUG +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +#endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif +#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +# define OPENSSL_NO_EC_NISTP_64_GCC_128 +#endif +#ifndef OPENSSL_NO_EGD +# define OPENSSL_NO_EGD +#endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif +#ifndef OPENSSL_NO_FUZZ_AFL +# define OPENSSL_NO_FUZZ_AFL +#endif +#ifndef OPENSSL_NO_FUZZ_LIBFUZZER +# define OPENSSL_NO_FUZZ_LIBFUZZER +#endif +#ifndef OPENSSL_NO_HEARTBEATS +# define OPENSSL_NO_HEARTBEATS +#endif +#ifndef OPENSSL_NO_MSAN +# define OPENSSL_NO_MSAN +#endif +#ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +#endif +#ifndef OPENSSL_NO_SSL_TRACE +# define OPENSSL_NO_SSL_TRACE +#endif +#ifndef OPENSSL_NO_SSL3 +# define OPENSSL_NO_SSL3 +#endif +#ifndef OPENSSL_NO_SSL3_METHOD +# define OPENSSL_NO_SSL3_METHOD +#endif +#ifndef OPENSSL_NO_UBSAN +# define OPENSSL_NO_UBSAN +#endif +#ifndef OPENSSL_NO_UNIT_TEST +# define OPENSSL_NO_UNIT_TEST +#endif +#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS +# define OPENSSL_NO_WEAK_SSL_CIPHERS +#endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif + + +/* + * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers + * don't like that. This will hopefully silence them. + */ +#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; + +/* + * Applications should use -DOPENSSL_API_COMPAT= to suppress the + * declarations of functions deprecated in or before . Otherwise, they + * still won't see them if the library has been built to disable deprecated + * functions. + */ +#ifndef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +#endif + +#ifndef OPENSSL_FILE +# ifdef OPENSSL_NO_FILENAMES +# define OPENSSL_FILE "" +# define OPENSSL_LINE 0 +# else +# define OPENSSL_FILE __FILE__ +# define OPENSSL_LINE __LINE__ +# endif +#endif + +#ifndef OPENSSL_MIN_API +# define OPENSSL_MIN_API 0 +#endif + +#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API +# undef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT OPENSSL_MIN_API +#endif + +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10100000L +# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_1_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10000000L +# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_0_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x00908000L +# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_0_9_8(f) +#endif + +/* Generate 80386 code? */ +#undef I386_ONLY + +#undef OPENSSL_UNISTD +#define OPENSSL_UNISTD + +#undef OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* + * The following are cipher-specific, but are part of the public API. + */ +#if !defined(OPENSSL_SYS_UEFI) +# undef BN_LLONG +/* Only one for the following should be defined */ +# undef SIXTY_FOUR_BIT_LONG +# define SIXTY_FOUR_BIT +# undef THIRTY_TWO_BIT +#endif + +#define RC4_INT unsigned int + +#ifdef __cplusplus +} +#endif diff --git a/noarch/include/node/openssl/archs/linux-x32/asm_avx2/include/progs.h b/noarch/include/node/openssl/archs/linux-x32/asm_avx2/include/progs.h new file mode 100644 index 00000000..9b3d270e --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-x32/asm_avx2/include/progs.h @@ -0,0 +1,507 @@ +/* + * WARNING: do not edit! + * Generated by apps/progs.pl + * + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +typedef enum FUNC_TYPE { + FT_none, FT_general, FT_md, FT_cipher, FT_pkey, + FT_md_alg, FT_cipher_alg +} FUNC_TYPE; + +typedef struct function_st { + FUNC_TYPE type; + const char *name; + int (*func)(int argc, char *argv[]); + const OPTIONS *help; +} FUNCTION; + +DEFINE_LHASH_OF(FUNCTION); + +extern int asn1parse_main(int argc, char *argv[]); +extern int ca_main(int argc, char *argv[]); +extern int ciphers_main(int argc, char *argv[]); +extern int cms_main(int argc, char *argv[]); +extern int crl_main(int argc, char *argv[]); +extern int crl2pkcs7_main(int argc, char *argv[]); +extern int dgst_main(int argc, char *argv[]); +extern int dhparam_main(int argc, char *argv[]); +extern int dsa_main(int argc, char *argv[]); +extern int dsaparam_main(int argc, char *argv[]); +extern int ec_main(int argc, char *argv[]); +extern int ecparam_main(int argc, char *argv[]); +extern int enc_main(int argc, char *argv[]); +extern int engine_main(int argc, char *argv[]); +extern int errstr_main(int argc, char *argv[]); +extern int gendsa_main(int argc, char *argv[]); +extern int genpkey_main(int argc, char *argv[]); +extern int genrsa_main(int argc, char *argv[]); +extern int help_main(int argc, char *argv[]); +extern int list_main(int argc, char *argv[]); +extern int nseq_main(int argc, char *argv[]); +extern int ocsp_main(int argc, char *argv[]); +extern int passwd_main(int argc, char *argv[]); +extern int pkcs12_main(int argc, char *argv[]); +extern int pkcs7_main(int argc, char *argv[]); +extern int pkcs8_main(int argc, char *argv[]); +extern int pkey_main(int argc, char *argv[]); +extern int pkeyparam_main(int argc, char *argv[]); +extern int pkeyutl_main(int argc, char *argv[]); +extern int prime_main(int argc, char *argv[]); +extern int rand_main(int argc, char *argv[]); +extern int rehash_main(int argc, char *argv[]); +extern int req_main(int argc, char *argv[]); +extern int rsa_main(int argc, char *argv[]); +extern int rsautl_main(int argc, char *argv[]); +extern int s_client_main(int argc, char *argv[]); +extern int s_server_main(int argc, char *argv[]); +extern int s_time_main(int argc, char *argv[]); +extern int sess_id_main(int argc, char *argv[]); +extern int smime_main(int argc, char *argv[]); +extern int speed_main(int argc, char *argv[]); +extern int spkac_main(int argc, char *argv[]); +extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); +extern int ts_main(int argc, char *argv[]); +extern int verify_main(int argc, char *argv[]); +extern int version_main(int argc, char *argv[]); +extern int x509_main(int argc, char *argv[]); + +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; + +#ifdef INCLUDE_FUNCTION_TABLE +static FUNCTION functions[] = { + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, +#ifndef OPENSSL_NO_SOCK + {FT_general, "ciphers", ciphers_main, ciphers_options}, +#endif +#ifndef OPENSSL_NO_CMS + {FT_general, "cms", cms_main, cms_options}, +#endif + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, +#ifndef OPENSSL_NO_DH + {FT_general, "dhparam", dhparam_main, dhparam_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsa", dsa_main, dsa_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ec", ec_main, ec_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ecparam", ecparam_main, ecparam_options}, +#endif + {FT_general, "enc", enc_main, enc_options}, +#ifndef OPENSSL_NO_ENGINE + {FT_general, "engine", engine_main, engine_options}, +#endif + {FT_general, "errstr", errstr_main, errstr_options}, +#ifndef OPENSSL_NO_DSA + {FT_general, "gendsa", gendsa_main, gendsa_options}, +#endif + {FT_general, "genpkey", genpkey_main, genpkey_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "genrsa", genrsa_main, genrsa_options}, +#endif + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, +#ifndef OPENSSL_NO_OCSP + {FT_general, "ocsp", ocsp_main, ocsp_options}, +#endif + {FT_general, "passwd", passwd_main, passwd_options}, +#ifndef OPENSSL_NO_DES + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, +#endif + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "rsautl", rsautl_main, rsautl_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_client", s_client_main, s_client_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_server", s_server_main, s_server_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_time", s_time_main, s_time_options}, +#endif + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, +#ifndef OPENSSL_NO_SRP + {FT_general, "srp", srp_main, srp_options}, +#endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, +#ifndef OPENSSL_NO_TS + {FT_general, "ts", ts_main, ts_options}, +#endif + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, +#ifndef OPENSSL_NO_MD2 + {FT_md, "md2", dgst_main}, +#endif +#ifndef OPENSSL_NO_MD4 + {FT_md, "md4", dgst_main}, +#endif + {FT_md, "md5", dgst_main}, +#ifndef OPENSSL_NO_GOST + {FT_md, "gost", dgst_main}, +#endif + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, +#ifndef OPENSSL_NO_MDC2 + {FT_md, "mdc2", dgst_main}, +#endif +#ifndef OPENSSL_NO_RMD160 + {FT_md, "rmd160", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2b512", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2s256", dgst_main}, +#endif +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, +#ifdef ZLIB + {FT_cipher, "zlib", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "desx", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4-40", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} +}; +#endif diff --git a/noarch/include/node/openssl/archs/linux-x32/no-asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/linux-x32/no-asm/crypto/buildinf.h index ebbfd1af..6aba725c 100644 --- a/noarch/include/node/openssl/archs/linux-x32/no-asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/linux-x32/no-asm/crypto/buildinf.h @@ -1,23 +1,29 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux-x32" +#define DATE "built on: Thu Jun 13 19:26:25 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','D', - 'D','S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E', - '_','D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U', - 'G',' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E', - 'A','D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O', - '_','D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ', - '-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D', - 'O','P','E','N','S','S','L','D','I','R','=','"','\\','"','/','u', - 's','r','/','l','o','c','a','l','/','s','s','l','\\','"','"',' ', - '-','D','E','N','G','I','N','E','S','D','I','R','=','"','\\','"', - '/','u','s','r','/','l','o','c','a','l','/','l','i','b','/','e', - 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f', + 'P','I','C',' ','-','p','t','h','r','e','a','d',' ','-','m','x', + '3','2',' ','-','W','a','l','l',' ','-','O','3',' ','-','D','O', + 'P','E','N','S','S','L','_','U','S','E','_','N','O','D','E','L', + 'E','T','E',' ','-','D','L','_','E','N','D','I','A','N',' ','-', + 'D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D','N', + 'D','E','B','U','G','\0' }; -#define PLATFORM "platform: linux-x32" -#define DATE "built on: Tue Aug 14 23:13:21 2018" diff --git a/noarch/include/node/openssl/archs/linux-x32/no-asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/linux-x32/no-asm/crypto/include/internal/dso_conf.h index 7a52dd1f..252266ec 100644 --- a/noarch/include/node/openssl/archs/linux-x32/no-asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/linux-x32/no-asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".so" #endif diff --git a/noarch/include/node/openssl/archs/linux-x32/no-asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/linux-x32/no-asm/include/openssl/opensslconf.h index 95400327..92a64be5 100644 --- a/noarch/include/node/openssl/archs/linux-x32/no-asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/linux-x32/no-asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -34,6 +36,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -49,12 +54,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -88,6 +99,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -106,15 +120,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -138,6 +148,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -156,8 +178,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif - - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/linux-x32/no-asm/include/progs.h b/noarch/include/node/openssl/archs/linux-x32/no-asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/linux-x32/no-asm/include/progs.h +++ b/noarch/include/node/openssl/archs/linux-x32/no-asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/linux-x86_64/asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/linux-x86_64/asm/crypto/buildinf.h index 3adfc6b9..05e83544 100644 --- a/noarch/include/node/openssl/archs/linux-x86_64/asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/linux-x86_64/asm/crypto/buildinf.h @@ -1,38 +1,47 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux-x86_64" +#define DATE "built on: Thu Jun 13 19:26:32 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','D', - 'D','S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E', - '_','D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U', - 'G',' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E', - 'A','D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O', - '_','D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ', +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f', + 'P','I','C',' ','-','p','t','h','r','e','a','d',' ','-','m','6', + '4',' ','-','W','a',',','-','-','n','o','e','x','e','c','s','t', + 'a','c','k',' ','-','W','a','l','l',' ','-','O','3',' ','-','D', + 'O','P','E','N','S','S','L','_','U','S','E','_','N','O','D','E', + 'L','E','T','E',' ','-','D','L','_','E','N','D','I','A','N',' ', '-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D', - 'O','P','E','N','S','S','L','_','I','A','3','2','_','S','S','E', - '2',' ','-','D','O','P','E','N','S','S','L','_','B','N','_','A', - 'S','M','_','M','O','N','T',' ','-','D','O','P','E','N','S','S', - 'L','_','B','N','_','A','S','M','_','M','O','N','T','5',' ','-', - 'D','O','P','E','N','S','S','L','_','B','N','_','A','S','M','_', - 'G','F','2','m',' ','-','D','S','H','A','1','_','A','S','M',' ', - '-','D','S','H','A','2','5','6','_','A','S','M',' ','-','D','S', - 'H','A','5','1','2','_','A','S','M',' ','-','D','R','C','4','_', - 'A','S','M',' ','-','D','M','D','5','_','A','S','M',' ','-','D', - 'A','E','S','_','A','S','M',' ','-','D','V','P','A','E','S','_', - 'A','S','M',' ','-','D','B','S','A','E','S','_','A','S','M',' ', - '-','D','G','H','A','S','H','_','A','S','M',' ','-','D','E','C', - 'P','_','N','I','S','T','Z','2','5','6','_','A','S','M',' ','-', - 'D','P','A','D','L','O','C','K','_','A','S','M',' ','-','D','P', - 'O','L','Y','1','3','0','5','_','A','S','M',' ','-','D','O','P', - 'E','N','S','S','L','D','I','R','=','"','\\','"','/','u','s','r', - '/','l','o','c','a','l','/','s','s','l','\\','"','"',' ','-','D', - 'E','N','G','I','N','E','S','D','I','R','=','"','\\','"','/','u', - 's','r','/','l','o','c','a','l','/','l','i','b','/','e','n','g', - 'i','n','e','s','-','1','.','1','\\','"','"',' ','\0' + 'O','P','E','N','S','S','L','_','C','P','U','I','D','_','O','B', + 'J',' ','-','D','O','P','E','N','S','S','L','_','I','A','3','2', + '_','S','S','E','2',' ','-','D','O','P','E','N','S','S','L','_', + 'B','N','_','A','S','M','_','M','O','N','T',' ','-','D','O','P', + 'E','N','S','S','L','_','B','N','_','A','S','M','_','M','O','N', + 'T','5',' ','-','D','O','P','E','N','S','S','L','_','B','N','_', + 'A','S','M','_','G','F','2','m',' ','-','D','S','H','A','1','_', + 'A','S','M',' ','-','D','S','H','A','2','5','6','_','A','S','M', + ' ','-','D','S','H','A','5','1','2','_','A','S','M',' ','-','D', + 'K','E','C','C','A','K','1','6','0','0','_','A','S','M',' ','-', + 'D','R','C','4','_','A','S','M',' ','-','D','M','D','5','_','A', + 'S','M',' ','-','D','A','E','S','_','A','S','M',' ','-','D','V', + 'P','A','E','S','_','A','S','M',' ','-','D','B','S','A','E','S', + '_','A','S','M',' ','-','D','G','H','A','S','H','_','A','S','M', + ' ','-','D','E','C','P','_','N','I','S','T','Z','2','5','6','_', + 'A','S','M',' ','-','D','X','2','5','5','1','9','_','A','S','M', + ' ','-','D','P','O','L','Y','1','3','0','5','_','A','S','M',' ', + '-','D','N','D','E','B','U','G','\0' }; -#define PLATFORM "platform: linux-x86_64" -#define DATE "built on: Tue Aug 14 23:13:22 2018" diff --git a/noarch/include/node/openssl/archs/linux-x86_64/asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/linux-x86_64/asm/crypto/include/internal/dso_conf.h index 7a52dd1f..252266ec 100644 --- a/noarch/include/node/openssl/archs/linux-x86_64/asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/linux-x86_64/asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".so" #endif diff --git a/noarch/include/node/openssl/archs/linux-x86_64/asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/linux-x86_64/asm/include/openssl/opensslconf.h index 7dd21010..0e8c6f50 100644 --- a/noarch/include/node/openssl/archs/linux-x86_64/asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/linux-x86_64/asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -34,6 +36,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -46,12 +51,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -85,6 +96,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -103,15 +117,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -135,6 +145,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -153,8 +175,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif -#define OPENSSL_CPUID_OBJ - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/linux-x86_64/asm/include/progs.h b/noarch/include/node/openssl/archs/linux-x86_64/asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/linux-x86_64/asm/include/progs.h +++ b/noarch/include/node/openssl/archs/linux-x86_64/asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/linux-x86_64/asm_avx2/crypto/buildinf.h b/noarch/include/node/openssl/archs/linux-x86_64/asm_avx2/crypto/buildinf.h new file mode 100644 index 00000000..7e02072c --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-x86_64/asm_avx2/crypto/buildinf.h @@ -0,0 +1,48 @@ +/* + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux-x86_64" +#define DATE "built on: Thu Jun 13 19:26:59 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a + * workaround for the situation where CFLAGS gets too long for a C90 string + * literal + */ +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','.','.','/','c','o','n', + 'f','i','g','/','f','a','k','e','_','g','c','c','.','p','l',' ', + '-','f','P','I','C',' ','-','p','t','h','r','e','a','d',' ','-', + 'm','6','4',' ','-','W','a',',','-','-','n','o','e','x','e','c', + 's','t','a','c','k',' ','-','W','a','l','l',' ','-','O','3',' ', + '-','D','O','P','E','N','S','S','L','_','U','S','E','_','N','O', + 'D','E','L','E','T','E',' ','-','D','L','_','E','N','D','I','A', + 'N',' ','-','D','O','P','E','N','S','S','L','_','P','I','C',' ', + '-','D','O','P','E','N','S','S','L','_','C','P','U','I','D','_', + 'O','B','J',' ','-','D','O','P','E','N','S','S','L','_','I','A', + '3','2','_','S','S','E','2',' ','-','D','O','P','E','N','S','S', + 'L','_','B','N','_','A','S','M','_','M','O','N','T',' ','-','D', + 'O','P','E','N','S','S','L','_','B','N','_','A','S','M','_','M', + 'O','N','T','5',' ','-','D','O','P','E','N','S','S','L','_','B', + 'N','_','A','S','M','_','G','F','2','m',' ','-','D','S','H','A', + '1','_','A','S','M',' ','-','D','S','H','A','2','5','6','_','A', + 'S','M',' ','-','D','S','H','A','5','1','2','_','A','S','M',' ', + '-','D','K','E','C','C','A','K','1','6','0','0','_','A','S','M', + ' ','-','D','R','C','4','_','A','S','M',' ','-','D','M','D','5', + '_','A','S','M',' ','-','D','A','E','S','_','A','S','M',' ','-', + 'D','V','P','A','E','S','_','A','S','M',' ','-','D','B','S','A', + 'E','S','_','A','S','M',' ','-','D','G','H','A','S','H','_','A', + 'S','M',' ','-','D','E','C','P','_','N','I','S','T','Z','2','5', + '6','_','A','S','M',' ','-','D','X','2','5','5','1','9','_','A', + 'S','M',' ','-','D','P','O','L','Y','1','3','0','5','_','A','S', + 'M',' ','-','D','N','D','E','B','U','G','\0' +}; diff --git a/noarch/include/node/openssl/archs/linux-x86_64/asm_avx2/crypto/include/internal/bn_conf.h b/noarch/include/node/openssl/archs/linux-x86_64/asm_avx2/crypto/include/internal/bn_conf.h new file mode 100644 index 00000000..34bd8b78 --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-x86_64/asm_avx2/crypto/include/internal/bn_conf.h @@ -0,0 +1,28 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/bn_conf.h.in */ +/* + * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BN_CONF_H +# define HEADER_BN_CONF_H + +/* + * The contents of this file are not used in the UEFI build, as + * both 32-bit and 64-bit builds are supported from a single run + * of the Configure script. + */ + +/* Should we define BN_DIV2W here? */ + +/* Only one for the following should be defined */ +#define SIXTY_FOUR_BIT_LONG +#undef SIXTY_FOUR_BIT +#undef THIRTY_TWO_BIT + +#endif diff --git a/noarch/include/node/openssl/archs/linux-x86_64/asm_avx2/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/linux-x86_64/asm_avx2/crypto/include/internal/dso_conf.h new file mode 100644 index 00000000..252266ec --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-x86_64/asm_avx2/crypto/include/internal/dso_conf.h @@ -0,0 +1,17 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ +/* + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DSO_CONF_H +# define HEADER_DSO_CONF_H +# define DSO_DLFCN +# define HAVE_DLFCN_H +# define DSO_EXTENSION ".so" +#endif diff --git a/noarch/include/node/openssl/archs/linux-x86_64/asm_avx2/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/linux-x86_64/asm_avx2/include/openssl/opensslconf.h new file mode 100644 index 00000000..0e8c6f50 --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-x86_64/asm_avx2/include/openssl/opensslconf.h @@ -0,0 +1,201 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/opensslconf.h.in + * + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef OPENSSL_ALGORITHM_DEFINES +# error OPENSSL_ALGORITHM_DEFINES no longer supported +#endif + +/* + * OpenSSL was configured with the following options: + */ + +#ifndef OPENSSL_NO_COMP +# define OPENSSL_NO_COMP +#endif +#ifndef OPENSSL_NO_MD2 +# define OPENSSL_NO_MD2 +#endif +#ifndef OPENSSL_NO_RC5 +# define OPENSSL_NO_RC5 +#endif +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif +#ifndef OPENSSL_NO_ASAN +# define OPENSSL_NO_ASAN +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG +# define OPENSSL_NO_CRYPTO_MDEBUG +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +#endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif +#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +# define OPENSSL_NO_EC_NISTP_64_GCC_128 +#endif +#ifndef OPENSSL_NO_EGD +# define OPENSSL_NO_EGD +#endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif +#ifndef OPENSSL_NO_FUZZ_AFL +# define OPENSSL_NO_FUZZ_AFL +#endif +#ifndef OPENSSL_NO_FUZZ_LIBFUZZER +# define OPENSSL_NO_FUZZ_LIBFUZZER +#endif +#ifndef OPENSSL_NO_HEARTBEATS +# define OPENSSL_NO_HEARTBEATS +#endif +#ifndef OPENSSL_NO_MSAN +# define OPENSSL_NO_MSAN +#endif +#ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +#endif +#ifndef OPENSSL_NO_SSL_TRACE +# define OPENSSL_NO_SSL_TRACE +#endif +#ifndef OPENSSL_NO_SSL3 +# define OPENSSL_NO_SSL3 +#endif +#ifndef OPENSSL_NO_SSL3_METHOD +# define OPENSSL_NO_SSL3_METHOD +#endif +#ifndef OPENSSL_NO_UBSAN +# define OPENSSL_NO_UBSAN +#endif +#ifndef OPENSSL_NO_UNIT_TEST +# define OPENSSL_NO_UNIT_TEST +#endif +#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS +# define OPENSSL_NO_WEAK_SSL_CIPHERS +#endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif + + +/* + * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers + * don't like that. This will hopefully silence them. + */ +#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; + +/* + * Applications should use -DOPENSSL_API_COMPAT= to suppress the + * declarations of functions deprecated in or before . Otherwise, they + * still won't see them if the library has been built to disable deprecated + * functions. + */ +#ifndef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +#endif + +#ifndef OPENSSL_FILE +# ifdef OPENSSL_NO_FILENAMES +# define OPENSSL_FILE "" +# define OPENSSL_LINE 0 +# else +# define OPENSSL_FILE __FILE__ +# define OPENSSL_LINE __LINE__ +# endif +#endif + +#ifndef OPENSSL_MIN_API +# define OPENSSL_MIN_API 0 +#endif + +#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API +# undef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT OPENSSL_MIN_API +#endif + +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10100000L +# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_1_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10000000L +# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_0_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x00908000L +# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_0_9_8(f) +#endif + +/* Generate 80386 code? */ +#undef I386_ONLY + +#undef OPENSSL_UNISTD +#define OPENSSL_UNISTD + +#undef OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* + * The following are cipher-specific, but are part of the public API. + */ +#if !defined(OPENSSL_SYS_UEFI) +# undef BN_LLONG +/* Only one for the following should be defined */ +# define SIXTY_FOUR_BIT_LONG +# undef SIXTY_FOUR_BIT +# undef THIRTY_TWO_BIT +#endif + +#define RC4_INT unsigned int + +#ifdef __cplusplus +} +#endif diff --git a/noarch/include/node/openssl/archs/linux-x86_64/asm_avx2/include/progs.h b/noarch/include/node/openssl/archs/linux-x86_64/asm_avx2/include/progs.h new file mode 100644 index 00000000..9b3d270e --- /dev/null +++ b/noarch/include/node/openssl/archs/linux-x86_64/asm_avx2/include/progs.h @@ -0,0 +1,507 @@ +/* + * WARNING: do not edit! + * Generated by apps/progs.pl + * + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +typedef enum FUNC_TYPE { + FT_none, FT_general, FT_md, FT_cipher, FT_pkey, + FT_md_alg, FT_cipher_alg +} FUNC_TYPE; + +typedef struct function_st { + FUNC_TYPE type; + const char *name; + int (*func)(int argc, char *argv[]); + const OPTIONS *help; +} FUNCTION; + +DEFINE_LHASH_OF(FUNCTION); + +extern int asn1parse_main(int argc, char *argv[]); +extern int ca_main(int argc, char *argv[]); +extern int ciphers_main(int argc, char *argv[]); +extern int cms_main(int argc, char *argv[]); +extern int crl_main(int argc, char *argv[]); +extern int crl2pkcs7_main(int argc, char *argv[]); +extern int dgst_main(int argc, char *argv[]); +extern int dhparam_main(int argc, char *argv[]); +extern int dsa_main(int argc, char *argv[]); +extern int dsaparam_main(int argc, char *argv[]); +extern int ec_main(int argc, char *argv[]); +extern int ecparam_main(int argc, char *argv[]); +extern int enc_main(int argc, char *argv[]); +extern int engine_main(int argc, char *argv[]); +extern int errstr_main(int argc, char *argv[]); +extern int gendsa_main(int argc, char *argv[]); +extern int genpkey_main(int argc, char *argv[]); +extern int genrsa_main(int argc, char *argv[]); +extern int help_main(int argc, char *argv[]); +extern int list_main(int argc, char *argv[]); +extern int nseq_main(int argc, char *argv[]); +extern int ocsp_main(int argc, char *argv[]); +extern int passwd_main(int argc, char *argv[]); +extern int pkcs12_main(int argc, char *argv[]); +extern int pkcs7_main(int argc, char *argv[]); +extern int pkcs8_main(int argc, char *argv[]); +extern int pkey_main(int argc, char *argv[]); +extern int pkeyparam_main(int argc, char *argv[]); +extern int pkeyutl_main(int argc, char *argv[]); +extern int prime_main(int argc, char *argv[]); +extern int rand_main(int argc, char *argv[]); +extern int rehash_main(int argc, char *argv[]); +extern int req_main(int argc, char *argv[]); +extern int rsa_main(int argc, char *argv[]); +extern int rsautl_main(int argc, char *argv[]); +extern int s_client_main(int argc, char *argv[]); +extern int s_server_main(int argc, char *argv[]); +extern int s_time_main(int argc, char *argv[]); +extern int sess_id_main(int argc, char *argv[]); +extern int smime_main(int argc, char *argv[]); +extern int speed_main(int argc, char *argv[]); +extern int spkac_main(int argc, char *argv[]); +extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); +extern int ts_main(int argc, char *argv[]); +extern int verify_main(int argc, char *argv[]); +extern int version_main(int argc, char *argv[]); +extern int x509_main(int argc, char *argv[]); + +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; + +#ifdef INCLUDE_FUNCTION_TABLE +static FUNCTION functions[] = { + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, +#ifndef OPENSSL_NO_SOCK + {FT_general, "ciphers", ciphers_main, ciphers_options}, +#endif +#ifndef OPENSSL_NO_CMS + {FT_general, "cms", cms_main, cms_options}, +#endif + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, +#ifndef OPENSSL_NO_DH + {FT_general, "dhparam", dhparam_main, dhparam_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsa", dsa_main, dsa_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ec", ec_main, ec_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ecparam", ecparam_main, ecparam_options}, +#endif + {FT_general, "enc", enc_main, enc_options}, +#ifndef OPENSSL_NO_ENGINE + {FT_general, "engine", engine_main, engine_options}, +#endif + {FT_general, "errstr", errstr_main, errstr_options}, +#ifndef OPENSSL_NO_DSA + {FT_general, "gendsa", gendsa_main, gendsa_options}, +#endif + {FT_general, "genpkey", genpkey_main, genpkey_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "genrsa", genrsa_main, genrsa_options}, +#endif + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, +#ifndef OPENSSL_NO_OCSP + {FT_general, "ocsp", ocsp_main, ocsp_options}, +#endif + {FT_general, "passwd", passwd_main, passwd_options}, +#ifndef OPENSSL_NO_DES + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, +#endif + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "rsautl", rsautl_main, rsautl_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_client", s_client_main, s_client_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_server", s_server_main, s_server_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_time", s_time_main, s_time_options}, +#endif + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, +#ifndef OPENSSL_NO_SRP + {FT_general, "srp", srp_main, srp_options}, +#endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, +#ifndef OPENSSL_NO_TS + {FT_general, "ts", ts_main, ts_options}, +#endif + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, +#ifndef OPENSSL_NO_MD2 + {FT_md, "md2", dgst_main}, +#endif +#ifndef OPENSSL_NO_MD4 + {FT_md, "md4", dgst_main}, +#endif + {FT_md, "md5", dgst_main}, +#ifndef OPENSSL_NO_GOST + {FT_md, "gost", dgst_main}, +#endif + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, +#ifndef OPENSSL_NO_MDC2 + {FT_md, "mdc2", dgst_main}, +#endif +#ifndef OPENSSL_NO_RMD160 + {FT_md, "rmd160", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2b512", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2s256", dgst_main}, +#endif +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, +#ifdef ZLIB + {FT_cipher, "zlib", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "desx", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4-40", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} +}; +#endif diff --git a/noarch/include/node/openssl/archs/linux-x86_64/no-asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/linux-x86_64/no-asm/crypto/buildinf.h index d3c92d27..72652c6a 100644 --- a/noarch/include/node/openssl/archs/linux-x86_64/no-asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/linux-x86_64/no-asm/crypto/buildinf.h @@ -1,23 +1,29 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux-x86_64" +#define DATE "built on: Thu Jun 13 19:27:27 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','D', - 'D','S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E', - '_','D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U', - 'G',' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E', - 'A','D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O', - '_','D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ', - '-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D', - 'O','P','E','N','S','S','L','D','I','R','=','"','\\','"','/','u', - 's','r','/','l','o','c','a','l','/','s','s','l','\\','"','"',' ', - '-','D','E','N','G','I','N','E','S','D','I','R','=','"','\\','"', - '/','u','s','r','/','l','o','c','a','l','/','l','i','b','/','e', - 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f', + 'P','I','C',' ','-','p','t','h','r','e','a','d',' ','-','m','6', + '4',' ','-','W','a','l','l',' ','-','O','3',' ','-','D','O','P', + 'E','N','S','S','L','_','U','S','E','_','N','O','D','E','L','E', + 'T','E',' ','-','D','L','_','E','N','D','I','A','N',' ','-','D', + 'O','P','E','N','S','S','L','_','P','I','C',' ','-','D','N','D', + 'E','B','U','G','\0' }; -#define PLATFORM "platform: linux-x86_64" -#define DATE "built on: Tue Aug 14 23:13:26 2018" diff --git a/noarch/include/node/openssl/archs/linux-x86_64/no-asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/linux-x86_64/no-asm/crypto/include/internal/dso_conf.h index 7a52dd1f..252266ec 100644 --- a/noarch/include/node/openssl/archs/linux-x86_64/no-asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/linux-x86_64/no-asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".so" #endif diff --git a/noarch/include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/opensslconf.h index 7b122bd8..42e625f3 100644 --- a/noarch/include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -34,6 +36,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -49,12 +54,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -88,6 +99,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -106,15 +120,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -138,6 +148,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -156,8 +178,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif - - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/linux-x86_64/no-asm/include/progs.h b/noarch/include/node/openssl/archs/linux-x86_64/no-asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/linux-x86_64/no-asm/include/progs.h +++ b/noarch/include/node/openssl/archs/linux-x86_64/no-asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/linux32-s390x/asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/linux32-s390x/asm/crypto/buildinf.h index a9705431..4216b7ad 100644 --- a/noarch/include/node/openssl/archs/linux32-s390x/asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/linux32-s390x/asm/crypto/buildinf.h @@ -1,33 +1,43 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux32-s390x" +#define DATE "built on: Thu Jun 13 19:28:52 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','D', - 'D','S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E', - '_','D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U', - 'G',' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E', - 'A','D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O', - '_','D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ', - '-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D', +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f', + 'P','I','C',' ','-','p','t','h','r','e','a','d',' ','-','m','3', + '1',' ','-','W','a',',','-','m','z','a','r','c','h',' ','-','W', + 'a',',','-','-','n','o','e','x','e','c','s','t','a','c','k',' ', + '-','W','a','l','l',' ','-','O','3',' ','-','D','O','P','E','N', + 'S','S','L','_','U','S','E','_','N','O','D','E','L','E','T','E', + ' ','-','D','B','_','E','N','D','I','A','N',' ','-','D','O','P', + 'E','N','S','S','L','_','P','I','C',' ','-','D','O','P','E','N', + 'S','S','L','_','C','P','U','I','D','_','O','B','J',' ','-','D', 'O','P','E','N','S','S','L','_','B','N','_','A','S','M','_','M', 'O','N','T',' ','-','D','O','P','E','N','S','S','L','_','B','N', '_','A','S','M','_','G','F','2','m',' ','-','D','S','H','A','1', '_','A','S','M',' ','-','D','S','H','A','2','5','6','_','A','S', 'M',' ','-','D','S','H','A','5','1','2','_','A','S','M',' ','-', - 'D','R','C','4','_','A','S','M',' ','-','D','A','E','S','_','A', - 'S','M',' ','-','D','A','E','S','_','C','T','R','_','A','S','M', - ' ','-','D','A','E','S','_','X','T','S','_','A','S','M',' ','-', - 'D','G','H','A','S','H','_','A','S','M',' ','-','D','P','O','L', - 'Y','1','3','0','5','_','A','S','M',' ','-','D','O','P','E','N', - 'S','S','L','D','I','R','=','"','\\','"','/','u','s','r','/','l', - 'o','c','a','l','/','s','s','l','\\','"','"',' ','-','D','E','N', - 'G','I','N','E','S','D','I','R','=','"','\\','"','/','u','s','r', - '/','l','o','c','a','l','/','l','i','b','/','e','n','g','i','n', - 'e','s','-','1','.','1','\\','"','"',' ','\0' + 'D','K','E','C','C','A','K','1','6','0','0','_','A','S','M',' ', + '-','D','R','C','4','_','A','S','M',' ','-','D','A','E','S','_', + 'A','S','M',' ','-','D','A','E','S','_','C','T','R','_','A','S', + 'M',' ','-','D','A','E','S','_','X','T','S','_','A','S','M',' ', + '-','D','G','H','A','S','H','_','A','S','M',' ','-','D','P','O', + 'L','Y','1','3','0','5','_','A','S','M',' ','-','D','N','D','E', + 'B','U','G','\0' }; -#define PLATFORM "platform: linux32-s390x" -#define DATE "built on: Tue Aug 14 23:13:32 2018" diff --git a/noarch/include/node/openssl/archs/linux32-s390x/asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/linux32-s390x/asm/crypto/include/internal/dso_conf.h index 7a52dd1f..252266ec 100644 --- a/noarch/include/node/openssl/archs/linux32-s390x/asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/linux32-s390x/asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".so" #endif diff --git a/noarch/include/node/openssl/archs/linux32-s390x/asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/linux32-s390x/asm/include/openssl/opensslconf.h index 21dd8cc6..fbc0ff24 100644 --- a/noarch/include/node/openssl/archs/linux32-s390x/asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/linux32-s390x/asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -34,6 +36,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -46,12 +51,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -85,6 +96,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -103,15 +117,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -135,6 +145,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -153,8 +175,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif -#define OPENSSL_CPUID_OBJ - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/linux32-s390x/asm/include/progs.h b/noarch/include/node/openssl/archs/linux32-s390x/asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/linux32-s390x/asm/include/progs.h +++ b/noarch/include/node/openssl/archs/linux32-s390x/asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/linux32-s390x/asm_avx2/crypto/buildinf.h b/noarch/include/node/openssl/archs/linux32-s390x/asm_avx2/crypto/buildinf.h new file mode 100644 index 00000000..9835d9ec --- /dev/null +++ b/noarch/include/node/openssl/archs/linux32-s390x/asm_avx2/crypto/buildinf.h @@ -0,0 +1,44 @@ +/* + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux32-s390x" +#define DATE "built on: Thu Jun 13 19:28:58 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a + * workaround for the situation where CFLAGS gets too long for a C90 string + * literal + */ +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','.','.','/','c','o','n', + 'f','i','g','/','f','a','k','e','_','g','c','c','.','p','l',' ', + '-','f','P','I','C',' ','-','p','t','h','r','e','a','d',' ','-', + 'm','3','1',' ','-','W','a',',','-','m','z','a','r','c','h',' ', + '-','W','a',',','-','-','n','o','e','x','e','c','s','t','a','c', + 'k',' ','-','W','a','l','l',' ','-','O','3',' ','-','D','O','P', + 'E','N','S','S','L','_','U','S','E','_','N','O','D','E','L','E', + 'T','E',' ','-','D','B','_','E','N','D','I','A','N',' ','-','D', + 'O','P','E','N','S','S','L','_','P','I','C',' ','-','D','O','P', + 'E','N','S','S','L','_','C','P','U','I','D','_','O','B','J',' ', + '-','D','O','P','E','N','S','S','L','_','B','N','_','A','S','M', + '_','M','O','N','T',' ','-','D','O','P','E','N','S','S','L','_', + 'B','N','_','A','S','M','_','G','F','2','m',' ','-','D','S','H', + 'A','1','_','A','S','M',' ','-','D','S','H','A','2','5','6','_', + 'A','S','M',' ','-','D','S','H','A','5','1','2','_','A','S','M', + ' ','-','D','K','E','C','C','A','K','1','6','0','0','_','A','S', + 'M',' ','-','D','R','C','4','_','A','S','M',' ','-','D','A','E', + 'S','_','A','S','M',' ','-','D','A','E','S','_','C','T','R','_', + 'A','S','M',' ','-','D','A','E','S','_','X','T','S','_','A','S', + 'M',' ','-','D','G','H','A','S','H','_','A','S','M',' ','-','D', + 'P','O','L','Y','1','3','0','5','_','A','S','M',' ','-','D','N', + 'D','E','B','U','G','\0' +}; diff --git a/noarch/include/node/openssl/archs/linux32-s390x/asm_avx2/crypto/include/internal/bn_conf.h b/noarch/include/node/openssl/archs/linux32-s390x/asm_avx2/crypto/include/internal/bn_conf.h new file mode 100644 index 00000000..fb52156b --- /dev/null +++ b/noarch/include/node/openssl/archs/linux32-s390x/asm_avx2/crypto/include/internal/bn_conf.h @@ -0,0 +1,28 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/bn_conf.h.in */ +/* + * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BN_CONF_H +# define HEADER_BN_CONF_H + +/* + * The contents of this file are not used in the UEFI build, as + * both 32-bit and 64-bit builds are supported from a single run + * of the Configure script. + */ + +/* Should we define BN_DIV2W here? */ + +/* Only one for the following should be defined */ +#undef SIXTY_FOUR_BIT_LONG +#undef SIXTY_FOUR_BIT +#define THIRTY_TWO_BIT + +#endif diff --git a/noarch/include/node/openssl/archs/linux32-s390x/asm_avx2/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/linux32-s390x/asm_avx2/crypto/include/internal/dso_conf.h new file mode 100644 index 00000000..252266ec --- /dev/null +++ b/noarch/include/node/openssl/archs/linux32-s390x/asm_avx2/crypto/include/internal/dso_conf.h @@ -0,0 +1,17 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ +/* + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DSO_CONF_H +# define HEADER_DSO_CONF_H +# define DSO_DLFCN +# define HAVE_DLFCN_H +# define DSO_EXTENSION ".so" +#endif diff --git a/noarch/include/node/openssl/archs/linux32-s390x/asm_avx2/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/linux32-s390x/asm_avx2/include/openssl/opensslconf.h new file mode 100644 index 00000000..fbc0ff24 --- /dev/null +++ b/noarch/include/node/openssl/archs/linux32-s390x/asm_avx2/include/openssl/opensslconf.h @@ -0,0 +1,201 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/opensslconf.h.in + * + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef OPENSSL_ALGORITHM_DEFINES +# error OPENSSL_ALGORITHM_DEFINES no longer supported +#endif + +/* + * OpenSSL was configured with the following options: + */ + +#ifndef OPENSSL_NO_COMP +# define OPENSSL_NO_COMP +#endif +#ifndef OPENSSL_NO_MD2 +# define OPENSSL_NO_MD2 +#endif +#ifndef OPENSSL_NO_RC5 +# define OPENSSL_NO_RC5 +#endif +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif +#ifndef OPENSSL_NO_ASAN +# define OPENSSL_NO_ASAN +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG +# define OPENSSL_NO_CRYPTO_MDEBUG +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +#endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif +#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +# define OPENSSL_NO_EC_NISTP_64_GCC_128 +#endif +#ifndef OPENSSL_NO_EGD +# define OPENSSL_NO_EGD +#endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif +#ifndef OPENSSL_NO_FUZZ_AFL +# define OPENSSL_NO_FUZZ_AFL +#endif +#ifndef OPENSSL_NO_FUZZ_LIBFUZZER +# define OPENSSL_NO_FUZZ_LIBFUZZER +#endif +#ifndef OPENSSL_NO_HEARTBEATS +# define OPENSSL_NO_HEARTBEATS +#endif +#ifndef OPENSSL_NO_MSAN +# define OPENSSL_NO_MSAN +#endif +#ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +#endif +#ifndef OPENSSL_NO_SSL_TRACE +# define OPENSSL_NO_SSL_TRACE +#endif +#ifndef OPENSSL_NO_SSL3 +# define OPENSSL_NO_SSL3 +#endif +#ifndef OPENSSL_NO_SSL3_METHOD +# define OPENSSL_NO_SSL3_METHOD +#endif +#ifndef OPENSSL_NO_UBSAN +# define OPENSSL_NO_UBSAN +#endif +#ifndef OPENSSL_NO_UNIT_TEST +# define OPENSSL_NO_UNIT_TEST +#endif +#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS +# define OPENSSL_NO_WEAK_SSL_CIPHERS +#endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif + + +/* + * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers + * don't like that. This will hopefully silence them. + */ +#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; + +/* + * Applications should use -DOPENSSL_API_COMPAT= to suppress the + * declarations of functions deprecated in or before . Otherwise, they + * still won't see them if the library has been built to disable deprecated + * functions. + */ +#ifndef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +#endif + +#ifndef OPENSSL_FILE +# ifdef OPENSSL_NO_FILENAMES +# define OPENSSL_FILE "" +# define OPENSSL_LINE 0 +# else +# define OPENSSL_FILE __FILE__ +# define OPENSSL_LINE __LINE__ +# endif +#endif + +#ifndef OPENSSL_MIN_API +# define OPENSSL_MIN_API 0 +#endif + +#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API +# undef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT OPENSSL_MIN_API +#endif + +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10100000L +# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_1_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10000000L +# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_0_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x00908000L +# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_0_9_8(f) +#endif + +/* Generate 80386 code? */ +#undef I386_ONLY + +#undef OPENSSL_UNISTD +#define OPENSSL_UNISTD + +#undef OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* + * The following are cipher-specific, but are part of the public API. + */ +#if !defined(OPENSSL_SYS_UEFI) +# define BN_LLONG +/* Only one for the following should be defined */ +# undef SIXTY_FOUR_BIT_LONG +# undef SIXTY_FOUR_BIT +# define THIRTY_TWO_BIT +#endif + +#define RC4_INT unsigned char + +#ifdef __cplusplus +} +#endif diff --git a/noarch/include/node/openssl/archs/linux32-s390x/asm_avx2/include/progs.h b/noarch/include/node/openssl/archs/linux32-s390x/asm_avx2/include/progs.h new file mode 100644 index 00000000..9b3d270e --- /dev/null +++ b/noarch/include/node/openssl/archs/linux32-s390x/asm_avx2/include/progs.h @@ -0,0 +1,507 @@ +/* + * WARNING: do not edit! + * Generated by apps/progs.pl + * + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +typedef enum FUNC_TYPE { + FT_none, FT_general, FT_md, FT_cipher, FT_pkey, + FT_md_alg, FT_cipher_alg +} FUNC_TYPE; + +typedef struct function_st { + FUNC_TYPE type; + const char *name; + int (*func)(int argc, char *argv[]); + const OPTIONS *help; +} FUNCTION; + +DEFINE_LHASH_OF(FUNCTION); + +extern int asn1parse_main(int argc, char *argv[]); +extern int ca_main(int argc, char *argv[]); +extern int ciphers_main(int argc, char *argv[]); +extern int cms_main(int argc, char *argv[]); +extern int crl_main(int argc, char *argv[]); +extern int crl2pkcs7_main(int argc, char *argv[]); +extern int dgst_main(int argc, char *argv[]); +extern int dhparam_main(int argc, char *argv[]); +extern int dsa_main(int argc, char *argv[]); +extern int dsaparam_main(int argc, char *argv[]); +extern int ec_main(int argc, char *argv[]); +extern int ecparam_main(int argc, char *argv[]); +extern int enc_main(int argc, char *argv[]); +extern int engine_main(int argc, char *argv[]); +extern int errstr_main(int argc, char *argv[]); +extern int gendsa_main(int argc, char *argv[]); +extern int genpkey_main(int argc, char *argv[]); +extern int genrsa_main(int argc, char *argv[]); +extern int help_main(int argc, char *argv[]); +extern int list_main(int argc, char *argv[]); +extern int nseq_main(int argc, char *argv[]); +extern int ocsp_main(int argc, char *argv[]); +extern int passwd_main(int argc, char *argv[]); +extern int pkcs12_main(int argc, char *argv[]); +extern int pkcs7_main(int argc, char *argv[]); +extern int pkcs8_main(int argc, char *argv[]); +extern int pkey_main(int argc, char *argv[]); +extern int pkeyparam_main(int argc, char *argv[]); +extern int pkeyutl_main(int argc, char *argv[]); +extern int prime_main(int argc, char *argv[]); +extern int rand_main(int argc, char *argv[]); +extern int rehash_main(int argc, char *argv[]); +extern int req_main(int argc, char *argv[]); +extern int rsa_main(int argc, char *argv[]); +extern int rsautl_main(int argc, char *argv[]); +extern int s_client_main(int argc, char *argv[]); +extern int s_server_main(int argc, char *argv[]); +extern int s_time_main(int argc, char *argv[]); +extern int sess_id_main(int argc, char *argv[]); +extern int smime_main(int argc, char *argv[]); +extern int speed_main(int argc, char *argv[]); +extern int spkac_main(int argc, char *argv[]); +extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); +extern int ts_main(int argc, char *argv[]); +extern int verify_main(int argc, char *argv[]); +extern int version_main(int argc, char *argv[]); +extern int x509_main(int argc, char *argv[]); + +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; + +#ifdef INCLUDE_FUNCTION_TABLE +static FUNCTION functions[] = { + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, +#ifndef OPENSSL_NO_SOCK + {FT_general, "ciphers", ciphers_main, ciphers_options}, +#endif +#ifndef OPENSSL_NO_CMS + {FT_general, "cms", cms_main, cms_options}, +#endif + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, +#ifndef OPENSSL_NO_DH + {FT_general, "dhparam", dhparam_main, dhparam_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsa", dsa_main, dsa_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ec", ec_main, ec_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ecparam", ecparam_main, ecparam_options}, +#endif + {FT_general, "enc", enc_main, enc_options}, +#ifndef OPENSSL_NO_ENGINE + {FT_general, "engine", engine_main, engine_options}, +#endif + {FT_general, "errstr", errstr_main, errstr_options}, +#ifndef OPENSSL_NO_DSA + {FT_general, "gendsa", gendsa_main, gendsa_options}, +#endif + {FT_general, "genpkey", genpkey_main, genpkey_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "genrsa", genrsa_main, genrsa_options}, +#endif + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, +#ifndef OPENSSL_NO_OCSP + {FT_general, "ocsp", ocsp_main, ocsp_options}, +#endif + {FT_general, "passwd", passwd_main, passwd_options}, +#ifndef OPENSSL_NO_DES + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, +#endif + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "rsautl", rsautl_main, rsautl_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_client", s_client_main, s_client_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_server", s_server_main, s_server_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_time", s_time_main, s_time_options}, +#endif + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, +#ifndef OPENSSL_NO_SRP + {FT_general, "srp", srp_main, srp_options}, +#endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, +#ifndef OPENSSL_NO_TS + {FT_general, "ts", ts_main, ts_options}, +#endif + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, +#ifndef OPENSSL_NO_MD2 + {FT_md, "md2", dgst_main}, +#endif +#ifndef OPENSSL_NO_MD4 + {FT_md, "md4", dgst_main}, +#endif + {FT_md, "md5", dgst_main}, +#ifndef OPENSSL_NO_GOST + {FT_md, "gost", dgst_main}, +#endif + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, +#ifndef OPENSSL_NO_MDC2 + {FT_md, "mdc2", dgst_main}, +#endif +#ifndef OPENSSL_NO_RMD160 + {FT_md, "rmd160", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2b512", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2s256", dgst_main}, +#endif +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, +#ifdef ZLIB + {FT_cipher, "zlib", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "desx", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4-40", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} +}; +#endif diff --git a/noarch/include/node/openssl/archs/linux32-s390x/no-asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/linux32-s390x/no-asm/crypto/buildinf.h index a54f1633..c4e08556 100644 --- a/noarch/include/node/openssl/archs/linux32-s390x/no-asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/linux32-s390x/no-asm/crypto/buildinf.h @@ -1,23 +1,29 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux32-s390x" +#define DATE "built on: Thu Jun 13 19:29:03 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','D', - 'D','S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E', - '_','D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U', - 'G',' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E', - 'A','D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O', - '_','D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ', - '-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D', - 'O','P','E','N','S','S','L','D','I','R','=','"','\\','"','/','u', - 's','r','/','l','o','c','a','l','/','s','s','l','\\','"','"',' ', - '-','D','E','N','G','I','N','E','S','D','I','R','=','"','\\','"', - '/','u','s','r','/','l','o','c','a','l','/','l','i','b','/','e', - 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f', + 'P','I','C',' ','-','p','t','h','r','e','a','d',' ','-','m','3', + '1',' ','-','W','a',',','-','m','z','a','r','c','h',' ','-','W', + 'a','l','l',' ','-','O','3',' ','-','D','O','P','E','N','S','S', + 'L','_','U','S','E','_','N','O','D','E','L','E','T','E',' ','-', + 'D','B','_','E','N','D','I','A','N',' ','-','D','O','P','E','N', + 'S','S','L','_','P','I','C',' ','-','D','N','D','E','B','U','G','\0' }; -#define PLATFORM "platform: linux32-s390x" -#define DATE "built on: Tue Aug 14 23:13:33 2018" diff --git a/noarch/include/node/openssl/archs/linux32-s390x/no-asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/linux32-s390x/no-asm/crypto/include/internal/dso_conf.h index 7a52dd1f..252266ec 100644 --- a/noarch/include/node/openssl/archs/linux32-s390x/no-asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/linux32-s390x/no-asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".so" #endif diff --git a/noarch/include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/opensslconf.h index 5ba3b88d..d7206a94 100644 --- a/noarch/include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -34,6 +36,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -49,12 +54,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -88,6 +99,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -106,15 +120,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -138,6 +148,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -156,8 +178,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif - - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/linux32-s390x/no-asm/include/progs.h b/noarch/include/node/openssl/archs/linux32-s390x/no-asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/linux32-s390x/no-asm/include/progs.h +++ b/noarch/include/node/openssl/archs/linux32-s390x/no-asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/linux64-s390x/asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/linux64-s390x/asm/crypto/buildinf.h index 6358018f..f65ee546 100644 --- a/noarch/include/node/openssl/archs/linux64-s390x/asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/linux64-s390x/asm/crypto/buildinf.h @@ -1,33 +1,42 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux64-s390x" +#define DATE "built on: Thu Jun 13 19:29:08 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','D', - 'D','S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E', - '_','D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U', - 'G',' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E', - 'A','D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O', - '_','D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ', +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f', + 'P','I','C',' ','-','p','t','h','r','e','a','d',' ','-','m','6', + '4',' ','-','W','a',',','-','-','n','o','e','x','e','c','s','t', + 'a','c','k',' ','-','W','a','l','l',' ','-','O','3',' ','-','D', + 'O','P','E','N','S','S','L','_','U','S','E','_','N','O','D','E', + 'L','E','T','E',' ','-','D','B','_','E','N','D','I','A','N',' ', '-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D', - 'O','P','E','N','S','S','L','_','B','N','_','A','S','M','_','M', - 'O','N','T',' ','-','D','O','P','E','N','S','S','L','_','B','N', - '_','A','S','M','_','G','F','2','m',' ','-','D','S','H','A','1', - '_','A','S','M',' ','-','D','S','H','A','2','5','6','_','A','S', - 'M',' ','-','D','S','H','A','5','1','2','_','A','S','M',' ','-', - 'D','R','C','4','_','A','S','M',' ','-','D','A','E','S','_','A', - 'S','M',' ','-','D','A','E','S','_','C','T','R','_','A','S','M', - ' ','-','D','A','E','S','_','X','T','S','_','A','S','M',' ','-', - 'D','G','H','A','S','H','_','A','S','M',' ','-','D','P','O','L', - 'Y','1','3','0','5','_','A','S','M',' ','-','D','O','P','E','N', - 'S','S','L','D','I','R','=','"','\\','"','/','u','s','r','/','l', - 'o','c','a','l','/','s','s','l','\\','"','"',' ','-','D','E','N', - 'G','I','N','E','S','D','I','R','=','"','\\','"','/','u','s','r', - '/','l','o','c','a','l','/','l','i','b','/','e','n','g','i','n', - 'e','s','-','1','.','1','\\','"','"',' ','\0' + 'O','P','E','N','S','S','L','_','C','P','U','I','D','_','O','B', + 'J',' ','-','D','O','P','E','N','S','S','L','_','B','N','_','A', + 'S','M','_','M','O','N','T',' ','-','D','O','P','E','N','S','S', + 'L','_','B','N','_','A','S','M','_','G','F','2','m',' ','-','D', + 'S','H','A','1','_','A','S','M',' ','-','D','S','H','A','2','5', + '6','_','A','S','M',' ','-','D','S','H','A','5','1','2','_','A', + 'S','M',' ','-','D','K','E','C','C','A','K','1','6','0','0','_', + 'A','S','M',' ','-','D','R','C','4','_','A','S','M',' ','-','D', + 'A','E','S','_','A','S','M',' ','-','D','A','E','S','_','C','T', + 'R','_','A','S','M',' ','-','D','A','E','S','_','X','T','S','_', + 'A','S','M',' ','-','D','G','H','A','S','H','_','A','S','M',' ', + '-','D','P','O','L','Y','1','3','0','5','_','A','S','M',' ','-', + 'D','N','D','E','B','U','G','\0' }; -#define PLATFORM "platform: linux64-s390x" -#define DATE "built on: Tue Aug 14 23:13:34 2018" diff --git a/noarch/include/node/openssl/archs/linux64-s390x/asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/linux64-s390x/asm/crypto/include/internal/dso_conf.h index 7a52dd1f..252266ec 100644 --- a/noarch/include/node/openssl/archs/linux64-s390x/asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/linux64-s390x/asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".so" #endif diff --git a/noarch/include/node/openssl/archs/linux64-s390x/asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/linux64-s390x/asm/include/openssl/opensslconf.h index 8bd973e7..f1faeec1 100644 --- a/noarch/include/node/openssl/archs/linux64-s390x/asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/linux64-s390x/asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -34,6 +36,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -46,12 +51,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -85,6 +96,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -103,15 +117,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -135,6 +145,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -153,8 +175,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif -#define OPENSSL_CPUID_OBJ - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/linux64-s390x/asm/include/progs.h b/noarch/include/node/openssl/archs/linux64-s390x/asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/linux64-s390x/asm/include/progs.h +++ b/noarch/include/node/openssl/archs/linux64-s390x/asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/linux64-s390x/asm_avx2/crypto/buildinf.h b/noarch/include/node/openssl/archs/linux64-s390x/asm_avx2/crypto/buildinf.h new file mode 100644 index 00000000..425ebffe --- /dev/null +++ b/noarch/include/node/openssl/archs/linux64-s390x/asm_avx2/crypto/buildinf.h @@ -0,0 +1,43 @@ +/* + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux64-s390x" +#define DATE "built on: Thu Jun 13 19:29:15 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a + * workaround for the situation where CFLAGS gets too long for a C90 string + * literal + */ +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','.','.','/','c','o','n', + 'f','i','g','/','f','a','k','e','_','g','c','c','.','p','l',' ', + '-','f','P','I','C',' ','-','p','t','h','r','e','a','d',' ','-', + 'm','6','4',' ','-','W','a',',','-','-','n','o','e','x','e','c', + 's','t','a','c','k',' ','-','W','a','l','l',' ','-','O','3',' ', + '-','D','O','P','E','N','S','S','L','_','U','S','E','_','N','O', + 'D','E','L','E','T','E',' ','-','D','B','_','E','N','D','I','A', + 'N',' ','-','D','O','P','E','N','S','S','L','_','P','I','C',' ', + '-','D','O','P','E','N','S','S','L','_','C','P','U','I','D','_', + 'O','B','J',' ','-','D','O','P','E','N','S','S','L','_','B','N', + '_','A','S','M','_','M','O','N','T',' ','-','D','O','P','E','N', + 'S','S','L','_','B','N','_','A','S','M','_','G','F','2','m',' ', + '-','D','S','H','A','1','_','A','S','M',' ','-','D','S','H','A', + '2','5','6','_','A','S','M',' ','-','D','S','H','A','5','1','2', + '_','A','S','M',' ','-','D','K','E','C','C','A','K','1','6','0', + '0','_','A','S','M',' ','-','D','R','C','4','_','A','S','M',' ', + '-','D','A','E','S','_','A','S','M',' ','-','D','A','E','S','_', + 'C','T','R','_','A','S','M',' ','-','D','A','E','S','_','X','T', + 'S','_','A','S','M',' ','-','D','G','H','A','S','H','_','A','S', + 'M',' ','-','D','P','O','L','Y','1','3','0','5','_','A','S','M', + ' ','-','D','N','D','E','B','U','G','\0' +}; diff --git a/noarch/include/node/openssl/archs/linux64-s390x/asm_avx2/crypto/include/internal/bn_conf.h b/noarch/include/node/openssl/archs/linux64-s390x/asm_avx2/crypto/include/internal/bn_conf.h new file mode 100644 index 00000000..34bd8b78 --- /dev/null +++ b/noarch/include/node/openssl/archs/linux64-s390x/asm_avx2/crypto/include/internal/bn_conf.h @@ -0,0 +1,28 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/bn_conf.h.in */ +/* + * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BN_CONF_H +# define HEADER_BN_CONF_H + +/* + * The contents of this file are not used in the UEFI build, as + * both 32-bit and 64-bit builds are supported from a single run + * of the Configure script. + */ + +/* Should we define BN_DIV2W here? */ + +/* Only one for the following should be defined */ +#define SIXTY_FOUR_BIT_LONG +#undef SIXTY_FOUR_BIT +#undef THIRTY_TWO_BIT + +#endif diff --git a/noarch/include/node/openssl/archs/linux64-s390x/asm_avx2/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/linux64-s390x/asm_avx2/crypto/include/internal/dso_conf.h new file mode 100644 index 00000000..252266ec --- /dev/null +++ b/noarch/include/node/openssl/archs/linux64-s390x/asm_avx2/crypto/include/internal/dso_conf.h @@ -0,0 +1,17 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ +/* + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DSO_CONF_H +# define HEADER_DSO_CONF_H +# define DSO_DLFCN +# define HAVE_DLFCN_H +# define DSO_EXTENSION ".so" +#endif diff --git a/noarch/include/node/openssl/archs/linux64-s390x/asm_avx2/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/linux64-s390x/asm_avx2/include/openssl/opensslconf.h new file mode 100644 index 00000000..f1faeec1 --- /dev/null +++ b/noarch/include/node/openssl/archs/linux64-s390x/asm_avx2/include/openssl/opensslconf.h @@ -0,0 +1,201 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/opensslconf.h.in + * + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef OPENSSL_ALGORITHM_DEFINES +# error OPENSSL_ALGORITHM_DEFINES no longer supported +#endif + +/* + * OpenSSL was configured with the following options: + */ + +#ifndef OPENSSL_NO_COMP +# define OPENSSL_NO_COMP +#endif +#ifndef OPENSSL_NO_MD2 +# define OPENSSL_NO_MD2 +#endif +#ifndef OPENSSL_NO_RC5 +# define OPENSSL_NO_RC5 +#endif +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif +#ifndef OPENSSL_NO_ASAN +# define OPENSSL_NO_ASAN +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG +# define OPENSSL_NO_CRYPTO_MDEBUG +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +#endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif +#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +# define OPENSSL_NO_EC_NISTP_64_GCC_128 +#endif +#ifndef OPENSSL_NO_EGD +# define OPENSSL_NO_EGD +#endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif +#ifndef OPENSSL_NO_FUZZ_AFL +# define OPENSSL_NO_FUZZ_AFL +#endif +#ifndef OPENSSL_NO_FUZZ_LIBFUZZER +# define OPENSSL_NO_FUZZ_LIBFUZZER +#endif +#ifndef OPENSSL_NO_HEARTBEATS +# define OPENSSL_NO_HEARTBEATS +#endif +#ifndef OPENSSL_NO_MSAN +# define OPENSSL_NO_MSAN +#endif +#ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +#endif +#ifndef OPENSSL_NO_SSL_TRACE +# define OPENSSL_NO_SSL_TRACE +#endif +#ifndef OPENSSL_NO_SSL3 +# define OPENSSL_NO_SSL3 +#endif +#ifndef OPENSSL_NO_SSL3_METHOD +# define OPENSSL_NO_SSL3_METHOD +#endif +#ifndef OPENSSL_NO_UBSAN +# define OPENSSL_NO_UBSAN +#endif +#ifndef OPENSSL_NO_UNIT_TEST +# define OPENSSL_NO_UNIT_TEST +#endif +#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS +# define OPENSSL_NO_WEAK_SSL_CIPHERS +#endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif + + +/* + * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers + * don't like that. This will hopefully silence them. + */ +#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; + +/* + * Applications should use -DOPENSSL_API_COMPAT= to suppress the + * declarations of functions deprecated in or before . Otherwise, they + * still won't see them if the library has been built to disable deprecated + * functions. + */ +#ifndef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +#endif + +#ifndef OPENSSL_FILE +# ifdef OPENSSL_NO_FILENAMES +# define OPENSSL_FILE "" +# define OPENSSL_LINE 0 +# else +# define OPENSSL_FILE __FILE__ +# define OPENSSL_LINE __LINE__ +# endif +#endif + +#ifndef OPENSSL_MIN_API +# define OPENSSL_MIN_API 0 +#endif + +#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API +# undef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT OPENSSL_MIN_API +#endif + +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10100000L +# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_1_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10000000L +# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_0_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x00908000L +# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_0_9_8(f) +#endif + +/* Generate 80386 code? */ +#undef I386_ONLY + +#undef OPENSSL_UNISTD +#define OPENSSL_UNISTD + +#undef OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* + * The following are cipher-specific, but are part of the public API. + */ +#if !defined(OPENSSL_SYS_UEFI) +# undef BN_LLONG +/* Only one for the following should be defined */ +# define SIXTY_FOUR_BIT_LONG +# undef SIXTY_FOUR_BIT +# undef THIRTY_TWO_BIT +#endif + +#define RC4_INT unsigned char + +#ifdef __cplusplus +} +#endif diff --git a/noarch/include/node/openssl/archs/linux64-s390x/asm_avx2/include/progs.h b/noarch/include/node/openssl/archs/linux64-s390x/asm_avx2/include/progs.h new file mode 100644 index 00000000..9b3d270e --- /dev/null +++ b/noarch/include/node/openssl/archs/linux64-s390x/asm_avx2/include/progs.h @@ -0,0 +1,507 @@ +/* + * WARNING: do not edit! + * Generated by apps/progs.pl + * + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +typedef enum FUNC_TYPE { + FT_none, FT_general, FT_md, FT_cipher, FT_pkey, + FT_md_alg, FT_cipher_alg +} FUNC_TYPE; + +typedef struct function_st { + FUNC_TYPE type; + const char *name; + int (*func)(int argc, char *argv[]); + const OPTIONS *help; +} FUNCTION; + +DEFINE_LHASH_OF(FUNCTION); + +extern int asn1parse_main(int argc, char *argv[]); +extern int ca_main(int argc, char *argv[]); +extern int ciphers_main(int argc, char *argv[]); +extern int cms_main(int argc, char *argv[]); +extern int crl_main(int argc, char *argv[]); +extern int crl2pkcs7_main(int argc, char *argv[]); +extern int dgst_main(int argc, char *argv[]); +extern int dhparam_main(int argc, char *argv[]); +extern int dsa_main(int argc, char *argv[]); +extern int dsaparam_main(int argc, char *argv[]); +extern int ec_main(int argc, char *argv[]); +extern int ecparam_main(int argc, char *argv[]); +extern int enc_main(int argc, char *argv[]); +extern int engine_main(int argc, char *argv[]); +extern int errstr_main(int argc, char *argv[]); +extern int gendsa_main(int argc, char *argv[]); +extern int genpkey_main(int argc, char *argv[]); +extern int genrsa_main(int argc, char *argv[]); +extern int help_main(int argc, char *argv[]); +extern int list_main(int argc, char *argv[]); +extern int nseq_main(int argc, char *argv[]); +extern int ocsp_main(int argc, char *argv[]); +extern int passwd_main(int argc, char *argv[]); +extern int pkcs12_main(int argc, char *argv[]); +extern int pkcs7_main(int argc, char *argv[]); +extern int pkcs8_main(int argc, char *argv[]); +extern int pkey_main(int argc, char *argv[]); +extern int pkeyparam_main(int argc, char *argv[]); +extern int pkeyutl_main(int argc, char *argv[]); +extern int prime_main(int argc, char *argv[]); +extern int rand_main(int argc, char *argv[]); +extern int rehash_main(int argc, char *argv[]); +extern int req_main(int argc, char *argv[]); +extern int rsa_main(int argc, char *argv[]); +extern int rsautl_main(int argc, char *argv[]); +extern int s_client_main(int argc, char *argv[]); +extern int s_server_main(int argc, char *argv[]); +extern int s_time_main(int argc, char *argv[]); +extern int sess_id_main(int argc, char *argv[]); +extern int smime_main(int argc, char *argv[]); +extern int speed_main(int argc, char *argv[]); +extern int spkac_main(int argc, char *argv[]); +extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); +extern int ts_main(int argc, char *argv[]); +extern int verify_main(int argc, char *argv[]); +extern int version_main(int argc, char *argv[]); +extern int x509_main(int argc, char *argv[]); + +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; + +#ifdef INCLUDE_FUNCTION_TABLE +static FUNCTION functions[] = { + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, +#ifndef OPENSSL_NO_SOCK + {FT_general, "ciphers", ciphers_main, ciphers_options}, +#endif +#ifndef OPENSSL_NO_CMS + {FT_general, "cms", cms_main, cms_options}, +#endif + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, +#ifndef OPENSSL_NO_DH + {FT_general, "dhparam", dhparam_main, dhparam_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsa", dsa_main, dsa_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ec", ec_main, ec_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ecparam", ecparam_main, ecparam_options}, +#endif + {FT_general, "enc", enc_main, enc_options}, +#ifndef OPENSSL_NO_ENGINE + {FT_general, "engine", engine_main, engine_options}, +#endif + {FT_general, "errstr", errstr_main, errstr_options}, +#ifndef OPENSSL_NO_DSA + {FT_general, "gendsa", gendsa_main, gendsa_options}, +#endif + {FT_general, "genpkey", genpkey_main, genpkey_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "genrsa", genrsa_main, genrsa_options}, +#endif + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, +#ifndef OPENSSL_NO_OCSP + {FT_general, "ocsp", ocsp_main, ocsp_options}, +#endif + {FT_general, "passwd", passwd_main, passwd_options}, +#ifndef OPENSSL_NO_DES + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, +#endif + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "rsautl", rsautl_main, rsautl_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_client", s_client_main, s_client_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_server", s_server_main, s_server_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_time", s_time_main, s_time_options}, +#endif + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, +#ifndef OPENSSL_NO_SRP + {FT_general, "srp", srp_main, srp_options}, +#endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, +#ifndef OPENSSL_NO_TS + {FT_general, "ts", ts_main, ts_options}, +#endif + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, +#ifndef OPENSSL_NO_MD2 + {FT_md, "md2", dgst_main}, +#endif +#ifndef OPENSSL_NO_MD4 + {FT_md, "md4", dgst_main}, +#endif + {FT_md, "md5", dgst_main}, +#ifndef OPENSSL_NO_GOST + {FT_md, "gost", dgst_main}, +#endif + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, +#ifndef OPENSSL_NO_MDC2 + {FT_md, "mdc2", dgst_main}, +#endif +#ifndef OPENSSL_NO_RMD160 + {FT_md, "rmd160", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2b512", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2s256", dgst_main}, +#endif +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, +#ifdef ZLIB + {FT_cipher, "zlib", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "desx", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4-40", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} +}; +#endif diff --git a/noarch/include/node/openssl/archs/linux64-s390x/no-asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/linux64-s390x/no-asm/crypto/buildinf.h index 3295c8aa..a7ee8888 100644 --- a/noarch/include/node/openssl/archs/linux64-s390x/no-asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/linux64-s390x/no-asm/crypto/buildinf.h @@ -1,23 +1,29 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux64-s390x" +#define DATE "built on: Thu Jun 13 19:29:22 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','D', - 'D','S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E', - '_','D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U', - 'G',' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E', - 'A','D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O', - '_','D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ', - '-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D', - 'O','P','E','N','S','S','L','D','I','R','=','"','\\','"','/','u', - 's','r','/','l','o','c','a','l','/','s','s','l','\\','"','"',' ', - '-','D','E','N','G','I','N','E','S','D','I','R','=','"','\\','"', - '/','u','s','r','/','l','o','c','a','l','/','l','i','b','/','e', - 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f', + 'P','I','C',' ','-','p','t','h','r','e','a','d',' ','-','m','6', + '4',' ','-','W','a','l','l',' ','-','O','3',' ','-','D','O','P', + 'E','N','S','S','L','_','U','S','E','_','N','O','D','E','L','E', + 'T','E',' ','-','D','B','_','E','N','D','I','A','N',' ','-','D', + 'O','P','E','N','S','S','L','_','P','I','C',' ','-','D','N','D', + 'E','B','U','G','\0' }; -#define PLATFORM "platform: linux64-s390x" -#define DATE "built on: Tue Aug 14 23:13:35 2018" diff --git a/noarch/include/node/openssl/archs/linux64-s390x/no-asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/linux64-s390x/no-asm/crypto/include/internal/dso_conf.h index 7a52dd1f..252266ec 100644 --- a/noarch/include/node/openssl/archs/linux64-s390x/no-asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/linux64-s390x/no-asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".so" #endif diff --git a/noarch/include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/opensslconf.h index 08bf3d43..fc142601 100644 --- a/noarch/include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -34,6 +36,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -49,12 +54,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -88,6 +99,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -106,15 +120,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -138,6 +148,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -156,8 +178,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif - - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/linux64-s390x/no-asm/include/progs.h b/noarch/include/node/openssl/archs/linux64-s390x/no-asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/linux64-s390x/no-asm/include/progs.h +++ b/noarch/include/node/openssl/archs/linux64-s390x/no-asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/solaris-x86-gcc/asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/solaris-x86-gcc/asm/crypto/buildinf.h index f3e98cfc..eb4e7e45 100644 --- a/noarch/include/node/openssl/archs/solaris-x86-gcc/asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/solaris-x86-gcc/asm/crypto/buildinf.h @@ -1,40 +1,47 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: solaris-x86-gcc" +#define DATE "built on: Thu Jun 13 19:29:28 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','D', - 'D','S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E', - '_','D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U', - 'G',' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E', - 'A','D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O', - '_','D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ', - '-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D', - 'O','P','E','N','S','S','L','_','B','N','_','A','S','M','_','P', - 'A','R','T','_','W','O','R','D','S',' ','-','D','O','P','E','N', - 'S','S','L','_','I','A','3','2','_','S','S','E','2',' ','-','D', - 'O','P','E','N','S','S','L','_','B','N','_','A','S','M','_','M', - 'O','N','T',' ','-','D','O','P','E','N','S','S','L','_','B','N', - '_','A','S','M','_','G','F','2','m',' ','-','D','S','H','A','1', - '_','A','S','M',' ','-','D','S','H','A','2','5','6','_','A','S', - 'M',' ','-','D','S','H','A','5','1','2','_','A','S','M',' ','-', - 'D','R','C','4','_','A','S','M',' ','-','D','M','D','5','_','A', - 'S','M',' ','-','D','R','M','D','1','6','0','_','A','S','M',' ', - '-','D','A','E','S','_','A','S','M',' ','-','D','V','P','A','E', - 'S','_','A','S','M',' ','-','D','W','H','I','R','L','P','O','O', - 'L','_','A','S','M',' ','-','D','G','H','A','S','H','_','A','S', - 'M',' ','-','D','E','C','P','_','N','I','S','T','Z','2','5','6', - '_','A','S','M',' ','-','D','P','A','D','L','O','C','K','_','A', - 'S','M',' ','-','D','P','O','L','Y','1','3','0','5','_','A','S', - 'M',' ','-','D','O','P','E','N','S','S','L','D','I','R','=','"', - '\\','"','/','u','s','r','/','l','o','c','a','l','/','s','s','l', - '\\','"','"',' ','-','D','E','N','G','I','N','E','S','D','I','R', - '=','"','\\','"','/','u','s','r','/','l','o','c','a','l','/','l', - 'i','b','/','e','n','g','i','n','e','s','-','1','.','1','\\','"', - '"',' ','\0' +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f', + 'P','I','C',' ','-','p','t','h','r','e','a','d',' ','-','W','a', + ',','-','-','n','o','e','x','e','c','s','t','a','c','k',' ','-', + 'W','a','l','l',' ','-','O','3',' ','-','f','o','m','i','t','-', + 'f','r','a','m','e','-','p','o','i','n','t','e','r',' ','-','D', + 'F','I','L','I','O','_','H',' ','-','D','L','_','E','N','D','I', + 'A','N',' ','-','D','O','P','E','N','S','S','L','_','P','I','C', + ' ','-','D','O','P','E','N','S','S','L','_','C','P','U','I','D', + '_','O','B','J',' ','-','D','O','P','E','N','S','S','L','_','B', + 'N','_','A','S','M','_','P','A','R','T','_','W','O','R','D','S', + ' ','-','D','O','P','E','N','S','S','L','_','I','A','3','2','_', + 'S','S','E','2',' ','-','D','O','P','E','N','S','S','L','_','B', + 'N','_','A','S','M','_','M','O','N','T',' ','-','D','O','P','E', + 'N','S','S','L','_','B','N','_','A','S','M','_','G','F','2','m', + ' ','-','D','S','H','A','1','_','A','S','M',' ','-','D','S','H', + 'A','2','5','6','_','A','S','M',' ','-','D','S','H','A','5','1', + '2','_','A','S','M',' ','-','D','R','C','4','_','A','S','M',' ', + '-','D','M','D','5','_','A','S','M',' ','-','D','R','M','D','1', + '6','0','_','A','S','M',' ','-','D','A','E','S','_','A','S','M', + ' ','-','D','V','P','A','E','S','_','A','S','M',' ','-','D','W', + 'H','I','R','L','P','O','O','L','_','A','S','M',' ','-','D','G', + 'H','A','S','H','_','A','S','M',' ','-','D','E','C','P','_','N', + 'I','S','T','Z','2','5','6','_','A','S','M',' ','-','D','P','O', + 'L','Y','1','3','0','5','_','A','S','M',' ','-','D','N','D','E', + 'B','U','G','\0' }; -#define PLATFORM "platform: solaris-x86-gcc" -#define DATE "built on: Tue Aug 14 23:13:35 2018" diff --git a/noarch/include/node/openssl/archs/solaris-x86-gcc/asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/solaris-x86-gcc/asm/crypto/include/internal/dso_conf.h index 7a52dd1f..252266ec 100644 --- a/noarch/include/node/openssl/archs/solaris-x86-gcc/asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/solaris-x86-gcc/asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".so" #endif diff --git a/noarch/include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/opensslconf.h index b9d6509c..3d593ae0 100644 --- a/noarch/include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -34,6 +36,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -46,12 +51,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -85,6 +96,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -103,15 +117,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -135,6 +145,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -153,8 +175,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif -#define OPENSSL_CPUID_OBJ - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/solaris-x86-gcc/asm/include/progs.h b/noarch/include/node/openssl/archs/solaris-x86-gcc/asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/solaris-x86-gcc/asm/include/progs.h +++ b/noarch/include/node/openssl/archs/solaris-x86-gcc/asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/solaris-x86-gcc/asm_avx2/crypto/buildinf.h b/noarch/include/node/openssl/archs/solaris-x86-gcc/asm_avx2/crypto/buildinf.h new file mode 100644 index 00000000..aafbbd26 --- /dev/null +++ b/noarch/include/node/openssl/archs/solaris-x86-gcc/asm_avx2/crypto/buildinf.h @@ -0,0 +1,48 @@ +/* + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: solaris-x86-gcc" +#define DATE "built on: Thu Jun 13 19:29:36 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a + * workaround for the situation where CFLAGS gets too long for a C90 string + * literal + */ +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','.','.','/','c','o','n', + 'f','i','g','/','f','a','k','e','_','g','c','c','.','p','l',' ', + '-','f','P','I','C',' ','-','p','t','h','r','e','a','d',' ','-', + 'W','a',',','-','-','n','o','e','x','e','c','s','t','a','c','k', + ' ','-','W','a','l','l',' ','-','O','3',' ','-','f','o','m','i', + 't','-','f','r','a','m','e','-','p','o','i','n','t','e','r',' ', + '-','D','F','I','L','I','O','_','H',' ','-','D','L','_','E','N', + 'D','I','A','N',' ','-','D','O','P','E','N','S','S','L','_','P', + 'I','C',' ','-','D','O','P','E','N','S','S','L','_','C','P','U', + 'I','D','_','O','B','J',' ','-','D','O','P','E','N','S','S','L', + '_','B','N','_','A','S','M','_','P','A','R','T','_','W','O','R', + 'D','S',' ','-','D','O','P','E','N','S','S','L','_','I','A','3', + '2','_','S','S','E','2',' ','-','D','O','P','E','N','S','S','L', + '_','B','N','_','A','S','M','_','M','O','N','T',' ','-','D','O', + 'P','E','N','S','S','L','_','B','N','_','A','S','M','_','G','F', + '2','m',' ','-','D','S','H','A','1','_','A','S','M',' ','-','D', + 'S','H','A','2','5','6','_','A','S','M',' ','-','D','S','H','A', + '5','1','2','_','A','S','M',' ','-','D','R','C','4','_','A','S', + 'M',' ','-','D','M','D','5','_','A','S','M',' ','-','D','R','M', + 'D','1','6','0','_','A','S','M',' ','-','D','A','E','S','_','A', + 'S','M',' ','-','D','V','P','A','E','S','_','A','S','M',' ','-', + 'D','W','H','I','R','L','P','O','O','L','_','A','S','M',' ','-', + 'D','G','H','A','S','H','_','A','S','M',' ','-','D','E','C','P', + '_','N','I','S','T','Z','2','5','6','_','A','S','M',' ','-','D', + 'P','O','L','Y','1','3','0','5','_','A','S','M',' ','-','D','N', + 'D','E','B','U','G','\0' +}; diff --git a/noarch/include/node/openssl/archs/solaris-x86-gcc/asm_avx2/crypto/include/internal/bn_conf.h b/noarch/include/node/openssl/archs/solaris-x86-gcc/asm_avx2/crypto/include/internal/bn_conf.h new file mode 100644 index 00000000..fb52156b --- /dev/null +++ b/noarch/include/node/openssl/archs/solaris-x86-gcc/asm_avx2/crypto/include/internal/bn_conf.h @@ -0,0 +1,28 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/bn_conf.h.in */ +/* + * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BN_CONF_H +# define HEADER_BN_CONF_H + +/* + * The contents of this file are not used in the UEFI build, as + * both 32-bit and 64-bit builds are supported from a single run + * of the Configure script. + */ + +/* Should we define BN_DIV2W here? */ + +/* Only one for the following should be defined */ +#undef SIXTY_FOUR_BIT_LONG +#undef SIXTY_FOUR_BIT +#define THIRTY_TWO_BIT + +#endif diff --git a/noarch/include/node/openssl/archs/solaris-x86-gcc/asm_avx2/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/solaris-x86-gcc/asm_avx2/crypto/include/internal/dso_conf.h new file mode 100644 index 00000000..252266ec --- /dev/null +++ b/noarch/include/node/openssl/archs/solaris-x86-gcc/asm_avx2/crypto/include/internal/dso_conf.h @@ -0,0 +1,17 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ +/* + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DSO_CONF_H +# define HEADER_DSO_CONF_H +# define DSO_DLFCN +# define HAVE_DLFCN_H +# define DSO_EXTENSION ".so" +#endif diff --git a/noarch/include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/openssl/opensslconf.h new file mode 100644 index 00000000..3d593ae0 --- /dev/null +++ b/noarch/include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/openssl/opensslconf.h @@ -0,0 +1,201 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/opensslconf.h.in + * + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef OPENSSL_ALGORITHM_DEFINES +# error OPENSSL_ALGORITHM_DEFINES no longer supported +#endif + +/* + * OpenSSL was configured with the following options: + */ + +#ifndef OPENSSL_NO_COMP +# define OPENSSL_NO_COMP +#endif +#ifndef OPENSSL_NO_MD2 +# define OPENSSL_NO_MD2 +#endif +#ifndef OPENSSL_NO_RC5 +# define OPENSSL_NO_RC5 +#endif +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif +#ifndef OPENSSL_NO_ASAN +# define OPENSSL_NO_ASAN +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG +# define OPENSSL_NO_CRYPTO_MDEBUG +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +#endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif +#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +# define OPENSSL_NO_EC_NISTP_64_GCC_128 +#endif +#ifndef OPENSSL_NO_EGD +# define OPENSSL_NO_EGD +#endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif +#ifndef OPENSSL_NO_FUZZ_AFL +# define OPENSSL_NO_FUZZ_AFL +#endif +#ifndef OPENSSL_NO_FUZZ_LIBFUZZER +# define OPENSSL_NO_FUZZ_LIBFUZZER +#endif +#ifndef OPENSSL_NO_HEARTBEATS +# define OPENSSL_NO_HEARTBEATS +#endif +#ifndef OPENSSL_NO_MSAN +# define OPENSSL_NO_MSAN +#endif +#ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +#endif +#ifndef OPENSSL_NO_SSL_TRACE +# define OPENSSL_NO_SSL_TRACE +#endif +#ifndef OPENSSL_NO_SSL3 +# define OPENSSL_NO_SSL3 +#endif +#ifndef OPENSSL_NO_SSL3_METHOD +# define OPENSSL_NO_SSL3_METHOD +#endif +#ifndef OPENSSL_NO_UBSAN +# define OPENSSL_NO_UBSAN +#endif +#ifndef OPENSSL_NO_UNIT_TEST +# define OPENSSL_NO_UNIT_TEST +#endif +#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS +# define OPENSSL_NO_WEAK_SSL_CIPHERS +#endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif + + +/* + * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers + * don't like that. This will hopefully silence them. + */ +#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; + +/* + * Applications should use -DOPENSSL_API_COMPAT= to suppress the + * declarations of functions deprecated in or before . Otherwise, they + * still won't see them if the library has been built to disable deprecated + * functions. + */ +#ifndef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +#endif + +#ifndef OPENSSL_FILE +# ifdef OPENSSL_NO_FILENAMES +# define OPENSSL_FILE "" +# define OPENSSL_LINE 0 +# else +# define OPENSSL_FILE __FILE__ +# define OPENSSL_LINE __LINE__ +# endif +#endif + +#ifndef OPENSSL_MIN_API +# define OPENSSL_MIN_API 0 +#endif + +#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API +# undef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT OPENSSL_MIN_API +#endif + +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10100000L +# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_1_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10000000L +# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_0_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x00908000L +# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_0_9_8(f) +#endif + +/* Generate 80386 code? */ +#undef I386_ONLY + +#undef OPENSSL_UNISTD +#define OPENSSL_UNISTD + +#undef OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* + * The following are cipher-specific, but are part of the public API. + */ +#if !defined(OPENSSL_SYS_UEFI) +# define BN_LLONG +/* Only one for the following should be defined */ +# undef SIXTY_FOUR_BIT_LONG +# undef SIXTY_FOUR_BIT +# define THIRTY_TWO_BIT +#endif + +#define RC4_INT unsigned int + +#ifdef __cplusplus +} +#endif diff --git a/noarch/include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/progs.h b/noarch/include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/progs.h new file mode 100644 index 00000000..9b3d270e --- /dev/null +++ b/noarch/include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/progs.h @@ -0,0 +1,507 @@ +/* + * WARNING: do not edit! + * Generated by apps/progs.pl + * + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +typedef enum FUNC_TYPE { + FT_none, FT_general, FT_md, FT_cipher, FT_pkey, + FT_md_alg, FT_cipher_alg +} FUNC_TYPE; + +typedef struct function_st { + FUNC_TYPE type; + const char *name; + int (*func)(int argc, char *argv[]); + const OPTIONS *help; +} FUNCTION; + +DEFINE_LHASH_OF(FUNCTION); + +extern int asn1parse_main(int argc, char *argv[]); +extern int ca_main(int argc, char *argv[]); +extern int ciphers_main(int argc, char *argv[]); +extern int cms_main(int argc, char *argv[]); +extern int crl_main(int argc, char *argv[]); +extern int crl2pkcs7_main(int argc, char *argv[]); +extern int dgst_main(int argc, char *argv[]); +extern int dhparam_main(int argc, char *argv[]); +extern int dsa_main(int argc, char *argv[]); +extern int dsaparam_main(int argc, char *argv[]); +extern int ec_main(int argc, char *argv[]); +extern int ecparam_main(int argc, char *argv[]); +extern int enc_main(int argc, char *argv[]); +extern int engine_main(int argc, char *argv[]); +extern int errstr_main(int argc, char *argv[]); +extern int gendsa_main(int argc, char *argv[]); +extern int genpkey_main(int argc, char *argv[]); +extern int genrsa_main(int argc, char *argv[]); +extern int help_main(int argc, char *argv[]); +extern int list_main(int argc, char *argv[]); +extern int nseq_main(int argc, char *argv[]); +extern int ocsp_main(int argc, char *argv[]); +extern int passwd_main(int argc, char *argv[]); +extern int pkcs12_main(int argc, char *argv[]); +extern int pkcs7_main(int argc, char *argv[]); +extern int pkcs8_main(int argc, char *argv[]); +extern int pkey_main(int argc, char *argv[]); +extern int pkeyparam_main(int argc, char *argv[]); +extern int pkeyutl_main(int argc, char *argv[]); +extern int prime_main(int argc, char *argv[]); +extern int rand_main(int argc, char *argv[]); +extern int rehash_main(int argc, char *argv[]); +extern int req_main(int argc, char *argv[]); +extern int rsa_main(int argc, char *argv[]); +extern int rsautl_main(int argc, char *argv[]); +extern int s_client_main(int argc, char *argv[]); +extern int s_server_main(int argc, char *argv[]); +extern int s_time_main(int argc, char *argv[]); +extern int sess_id_main(int argc, char *argv[]); +extern int smime_main(int argc, char *argv[]); +extern int speed_main(int argc, char *argv[]); +extern int spkac_main(int argc, char *argv[]); +extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); +extern int ts_main(int argc, char *argv[]); +extern int verify_main(int argc, char *argv[]); +extern int version_main(int argc, char *argv[]); +extern int x509_main(int argc, char *argv[]); + +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; + +#ifdef INCLUDE_FUNCTION_TABLE +static FUNCTION functions[] = { + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, +#ifndef OPENSSL_NO_SOCK + {FT_general, "ciphers", ciphers_main, ciphers_options}, +#endif +#ifndef OPENSSL_NO_CMS + {FT_general, "cms", cms_main, cms_options}, +#endif + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, +#ifndef OPENSSL_NO_DH + {FT_general, "dhparam", dhparam_main, dhparam_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsa", dsa_main, dsa_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ec", ec_main, ec_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ecparam", ecparam_main, ecparam_options}, +#endif + {FT_general, "enc", enc_main, enc_options}, +#ifndef OPENSSL_NO_ENGINE + {FT_general, "engine", engine_main, engine_options}, +#endif + {FT_general, "errstr", errstr_main, errstr_options}, +#ifndef OPENSSL_NO_DSA + {FT_general, "gendsa", gendsa_main, gendsa_options}, +#endif + {FT_general, "genpkey", genpkey_main, genpkey_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "genrsa", genrsa_main, genrsa_options}, +#endif + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, +#ifndef OPENSSL_NO_OCSP + {FT_general, "ocsp", ocsp_main, ocsp_options}, +#endif + {FT_general, "passwd", passwd_main, passwd_options}, +#ifndef OPENSSL_NO_DES + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, +#endif + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "rsautl", rsautl_main, rsautl_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_client", s_client_main, s_client_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_server", s_server_main, s_server_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_time", s_time_main, s_time_options}, +#endif + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, +#ifndef OPENSSL_NO_SRP + {FT_general, "srp", srp_main, srp_options}, +#endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, +#ifndef OPENSSL_NO_TS + {FT_general, "ts", ts_main, ts_options}, +#endif + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, +#ifndef OPENSSL_NO_MD2 + {FT_md, "md2", dgst_main}, +#endif +#ifndef OPENSSL_NO_MD4 + {FT_md, "md4", dgst_main}, +#endif + {FT_md, "md5", dgst_main}, +#ifndef OPENSSL_NO_GOST + {FT_md, "gost", dgst_main}, +#endif + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, +#ifndef OPENSSL_NO_MDC2 + {FT_md, "mdc2", dgst_main}, +#endif +#ifndef OPENSSL_NO_RMD160 + {FT_md, "rmd160", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2b512", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2s256", dgst_main}, +#endif +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, +#ifdef ZLIB + {FT_cipher, "zlib", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "desx", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4-40", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} +}; +#endif diff --git a/noarch/include/node/openssl/archs/solaris-x86-gcc/no-asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/solaris-x86-gcc/no-asm/crypto/buildinf.h index 7b32dc7d..b992e8dc 100644 --- a/noarch/include/node/openssl/archs/solaris-x86-gcc/no-asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/solaris-x86-gcc/no-asm/crypto/buildinf.h @@ -1,23 +1,29 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: solaris-x86-gcc" +#define DATE "built on: Thu Jun 13 19:29:45 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','D', - 'D','S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E', - '_','D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U', - 'G',' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E', - 'A','D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O', - '_','D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ', - '-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D', - 'O','P','E','N','S','S','L','D','I','R','=','"','\\','"','/','u', - 's','r','/','l','o','c','a','l','/','s','s','l','\\','"','"',' ', - '-','D','E','N','G','I','N','E','S','D','I','R','=','"','\\','"', - '/','u','s','r','/','l','o','c','a','l','/','l','i','b','/','e', - 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f', + 'P','I','C',' ','-','p','t','h','r','e','a','d',' ','-','W','a', + 'l','l',' ','-','O','3',' ','-','f','o','m','i','t','-','f','r', + 'a','m','e','-','p','o','i','n','t','e','r',' ','-','D','F','I', + 'L','I','O','_','H',' ','-','D','L','_','E','N','D','I','A','N', + ' ','-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-', + 'D','N','D','E','B','U','G','\0' }; -#define PLATFORM "platform: solaris-x86-gcc" -#define DATE "built on: Tue Aug 14 23:13:37 2018" diff --git a/noarch/include/node/openssl/archs/solaris-x86-gcc/no-asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/solaris-x86-gcc/no-asm/crypto/include/internal/dso_conf.h index 7a52dd1f..252266ec 100644 --- a/noarch/include/node/openssl/archs/solaris-x86-gcc/no-asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/solaris-x86-gcc/no-asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".so" #endif diff --git a/noarch/include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/opensslconf.h index d0fb48f4..8982dce8 100644 --- a/noarch/include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -34,6 +36,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -49,12 +54,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -88,6 +99,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -106,15 +120,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -138,6 +148,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -156,8 +178,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif - - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/solaris-x86-gcc/no-asm/include/progs.h b/noarch/include/node/openssl/archs/solaris-x86-gcc/no-asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/solaris-x86-gcc/no-asm/include/progs.h +++ b/noarch/include/node/openssl/archs/solaris-x86-gcc/no-asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm/crypto/buildinf.h index 357c109a..1af0846d 100644 --- a/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm/crypto/buildinf.h @@ -1,38 +1,46 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: solaris64-x86_64-gcc" +#define DATE "built on: Thu Jun 13 19:29:50 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','D', - 'D','S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E', - '_','D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U', - 'G',' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E', - 'A','D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O', - '_','D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ', - '-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D', - 'O','P','E','N','S','S','L','_','I','A','3','2','_','S','S','E', - '2',' ','-','D','O','P','E','N','S','S','L','_','B','N','_','A', - 'S','M','_','M','O','N','T',' ','-','D','O','P','E','N','S','S', - 'L','_','B','N','_','A','S','M','_','M','O','N','T','5',' ','-', +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f', + 'P','I','C',' ','-','m','6','4',' ','-','p','t','h','r','e','a', + 'd',' ','-','W','a',',','-','-','n','o','e','x','e','c','s','t', + 'a','c','k',' ','-','W','a','l','l',' ','-','O','3',' ','-','D', + 'F','I','L','I','O','_','H',' ','-','D','L','_','E','N','D','I', + 'A','N',' ','-','D','O','P','E','N','S','S','L','_','P','I','C', + ' ','-','D','O','P','E','N','S','S','L','_','C','P','U','I','D', + '_','O','B','J',' ','-','D','O','P','E','N','S','S','L','_','I', + 'A','3','2','_','S','S','E','2',' ','-','D','O','P','E','N','S', + 'S','L','_','B','N','_','A','S','M','_','M','O','N','T',' ','-', 'D','O','P','E','N','S','S','L','_','B','N','_','A','S','M','_', - 'G','F','2','m',' ','-','D','S','H','A','1','_','A','S','M',' ', - '-','D','S','H','A','2','5','6','_','A','S','M',' ','-','D','S', - 'H','A','5','1','2','_','A','S','M',' ','-','D','R','C','4','_', - 'A','S','M',' ','-','D','M','D','5','_','A','S','M',' ','-','D', - 'A','E','S','_','A','S','M',' ','-','D','V','P','A','E','S','_', - 'A','S','M',' ','-','D','B','S','A','E','S','_','A','S','M',' ', - '-','D','G','H','A','S','H','_','A','S','M',' ','-','D','E','C', - 'P','_','N','I','S','T','Z','2','5','6','_','A','S','M',' ','-', - 'D','P','A','D','L','O','C','K','_','A','S','M',' ','-','D','P', - 'O','L','Y','1','3','0','5','_','A','S','M',' ','-','D','O','P', - 'E','N','S','S','L','D','I','R','=','"','\\','"','/','u','s','r', - '/','l','o','c','a','l','/','s','s','l','\\','"','"',' ','-','D', - 'E','N','G','I','N','E','S','D','I','R','=','"','\\','"','/','u', - 's','r','/','l','o','c','a','l','/','l','i','b','/','e','n','g', - 'i','n','e','s','-','1','.','1','\\','"','"',' ','\0' + 'M','O','N','T','5',' ','-','D','O','P','E','N','S','S','L','_', + 'B','N','_','A','S','M','_','G','F','2','m',' ','-','D','S','H', + 'A','1','_','A','S','M',' ','-','D','S','H','A','2','5','6','_', + 'A','S','M',' ','-','D','S','H','A','5','1','2','_','A','S','M', + ' ','-','D','K','E','C','C','A','K','1','6','0','0','_','A','S', + 'M',' ','-','D','R','C','4','_','A','S','M',' ','-','D','M','D', + '5','_','A','S','M',' ','-','D','A','E','S','_','A','S','M',' ', + '-','D','V','P','A','E','S','_','A','S','M',' ','-','D','B','S', + 'A','E','S','_','A','S','M',' ','-','D','G','H','A','S','H','_', + 'A','S','M',' ','-','D','E','C','P','_','N','I','S','T','Z','2', + '5','6','_','A','S','M',' ','-','D','X','2','5','5','1','9','_', + 'A','S','M',' ','-','D','P','O','L','Y','1','3','0','5','_','A', + 'S','M',' ','-','D','N','D','E','B','U','G','\0' }; -#define PLATFORM "platform: solaris64-x86_64-gcc" -#define DATE "built on: Tue Aug 14 23:13:38 2018" diff --git a/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm/crypto/include/internal/dso_conf.h index 7a52dd1f..252266ec 100644 --- a/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".so" #endif diff --git a/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/opensslconf.h index 7dd21010..0e8c6f50 100644 --- a/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -34,6 +36,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -46,12 +51,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -85,6 +96,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -103,15 +117,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -135,6 +145,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -153,8 +175,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif -#define OPENSSL_CPUID_OBJ - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/progs.h b/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/progs.h +++ b/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/crypto/buildinf.h b/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/crypto/buildinf.h new file mode 100644 index 00000000..845ddc82 --- /dev/null +++ b/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/crypto/buildinf.h @@ -0,0 +1,47 @@ +/* + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: solaris64-x86_64-gcc" +#define DATE "built on: Thu Jun 13 19:30:18 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a + * workaround for the situation where CFLAGS gets too long for a C90 string + * literal + */ +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','.','.','/','c','o','n', + 'f','i','g','/','f','a','k','e','_','g','c','c','.','p','l',' ', + '-','f','P','I','C',' ','-','m','6','4',' ','-','p','t','h','r', + 'e','a','d',' ','-','W','a',',','-','-','n','o','e','x','e','c', + 's','t','a','c','k',' ','-','W','a','l','l',' ','-','O','3',' ', + '-','D','F','I','L','I','O','_','H',' ','-','D','L','_','E','N', + 'D','I','A','N',' ','-','D','O','P','E','N','S','S','L','_','P', + 'I','C',' ','-','D','O','P','E','N','S','S','L','_','C','P','U', + 'I','D','_','O','B','J',' ','-','D','O','P','E','N','S','S','L', + '_','I','A','3','2','_','S','S','E','2',' ','-','D','O','P','E', + 'N','S','S','L','_','B','N','_','A','S','M','_','M','O','N','T', + ' ','-','D','O','P','E','N','S','S','L','_','B','N','_','A','S', + 'M','_','M','O','N','T','5',' ','-','D','O','P','E','N','S','S', + 'L','_','B','N','_','A','S','M','_','G','F','2','m',' ','-','D', + 'S','H','A','1','_','A','S','M',' ','-','D','S','H','A','2','5', + '6','_','A','S','M',' ','-','D','S','H','A','5','1','2','_','A', + 'S','M',' ','-','D','K','E','C','C','A','K','1','6','0','0','_', + 'A','S','M',' ','-','D','R','C','4','_','A','S','M',' ','-','D', + 'M','D','5','_','A','S','M',' ','-','D','A','E','S','_','A','S', + 'M',' ','-','D','V','P','A','E','S','_','A','S','M',' ','-','D', + 'B','S','A','E','S','_','A','S','M',' ','-','D','G','H','A','S', + 'H','_','A','S','M',' ','-','D','E','C','P','_','N','I','S','T', + 'Z','2','5','6','_','A','S','M',' ','-','D','X','2','5','5','1', + '9','_','A','S','M',' ','-','D','P','O','L','Y','1','3','0','5', + '_','A','S','M',' ','-','D','N','D','E','B','U','G','\0' +}; diff --git a/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/crypto/include/internal/bn_conf.h b/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/crypto/include/internal/bn_conf.h new file mode 100644 index 00000000..34bd8b78 --- /dev/null +++ b/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/crypto/include/internal/bn_conf.h @@ -0,0 +1,28 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/bn_conf.h.in */ +/* + * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BN_CONF_H +# define HEADER_BN_CONF_H + +/* + * The contents of this file are not used in the UEFI build, as + * both 32-bit and 64-bit builds are supported from a single run + * of the Configure script. + */ + +/* Should we define BN_DIV2W here? */ + +/* Only one for the following should be defined */ +#define SIXTY_FOUR_BIT_LONG +#undef SIXTY_FOUR_BIT +#undef THIRTY_TWO_BIT + +#endif diff --git a/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/crypto/include/internal/dso_conf.h new file mode 100644 index 00000000..252266ec --- /dev/null +++ b/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/crypto/include/internal/dso_conf.h @@ -0,0 +1,17 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ +/* + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DSO_CONF_H +# define HEADER_DSO_CONF_H +# define DSO_DLFCN +# define HAVE_DLFCN_H +# define DSO_EXTENSION ".so" +#endif diff --git a/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/opensslconf.h new file mode 100644 index 00000000..0e8c6f50 --- /dev/null +++ b/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/opensslconf.h @@ -0,0 +1,201 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/opensslconf.h.in + * + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef OPENSSL_ALGORITHM_DEFINES +# error OPENSSL_ALGORITHM_DEFINES no longer supported +#endif + +/* + * OpenSSL was configured with the following options: + */ + +#ifndef OPENSSL_NO_COMP +# define OPENSSL_NO_COMP +#endif +#ifndef OPENSSL_NO_MD2 +# define OPENSSL_NO_MD2 +#endif +#ifndef OPENSSL_NO_RC5 +# define OPENSSL_NO_RC5 +#endif +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif +#ifndef OPENSSL_NO_ASAN +# define OPENSSL_NO_ASAN +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG +# define OPENSSL_NO_CRYPTO_MDEBUG +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +#endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif +#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +# define OPENSSL_NO_EC_NISTP_64_GCC_128 +#endif +#ifndef OPENSSL_NO_EGD +# define OPENSSL_NO_EGD +#endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif +#ifndef OPENSSL_NO_FUZZ_AFL +# define OPENSSL_NO_FUZZ_AFL +#endif +#ifndef OPENSSL_NO_FUZZ_LIBFUZZER +# define OPENSSL_NO_FUZZ_LIBFUZZER +#endif +#ifndef OPENSSL_NO_HEARTBEATS +# define OPENSSL_NO_HEARTBEATS +#endif +#ifndef OPENSSL_NO_MSAN +# define OPENSSL_NO_MSAN +#endif +#ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +#endif +#ifndef OPENSSL_NO_SSL_TRACE +# define OPENSSL_NO_SSL_TRACE +#endif +#ifndef OPENSSL_NO_SSL3 +# define OPENSSL_NO_SSL3 +#endif +#ifndef OPENSSL_NO_SSL3_METHOD +# define OPENSSL_NO_SSL3_METHOD +#endif +#ifndef OPENSSL_NO_UBSAN +# define OPENSSL_NO_UBSAN +#endif +#ifndef OPENSSL_NO_UNIT_TEST +# define OPENSSL_NO_UNIT_TEST +#endif +#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS +# define OPENSSL_NO_WEAK_SSL_CIPHERS +#endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif + + +/* + * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers + * don't like that. This will hopefully silence them. + */ +#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; + +/* + * Applications should use -DOPENSSL_API_COMPAT= to suppress the + * declarations of functions deprecated in or before . Otherwise, they + * still won't see them if the library has been built to disable deprecated + * functions. + */ +#ifndef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +#endif + +#ifndef OPENSSL_FILE +# ifdef OPENSSL_NO_FILENAMES +# define OPENSSL_FILE "" +# define OPENSSL_LINE 0 +# else +# define OPENSSL_FILE __FILE__ +# define OPENSSL_LINE __LINE__ +# endif +#endif + +#ifndef OPENSSL_MIN_API +# define OPENSSL_MIN_API 0 +#endif + +#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API +# undef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT OPENSSL_MIN_API +#endif + +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10100000L +# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_1_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10000000L +# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_0_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x00908000L +# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_0_9_8(f) +#endif + +/* Generate 80386 code? */ +#undef I386_ONLY + +#undef OPENSSL_UNISTD +#define OPENSSL_UNISTD + +#undef OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* + * The following are cipher-specific, but are part of the public API. + */ +#if !defined(OPENSSL_SYS_UEFI) +# undef BN_LLONG +/* Only one for the following should be defined */ +# define SIXTY_FOUR_BIT_LONG +# undef SIXTY_FOUR_BIT +# undef THIRTY_TWO_BIT +#endif + +#define RC4_INT unsigned int + +#ifdef __cplusplus +} +#endif diff --git a/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/progs.h b/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/progs.h new file mode 100644 index 00000000..9b3d270e --- /dev/null +++ b/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/progs.h @@ -0,0 +1,507 @@ +/* + * WARNING: do not edit! + * Generated by apps/progs.pl + * + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +typedef enum FUNC_TYPE { + FT_none, FT_general, FT_md, FT_cipher, FT_pkey, + FT_md_alg, FT_cipher_alg +} FUNC_TYPE; + +typedef struct function_st { + FUNC_TYPE type; + const char *name; + int (*func)(int argc, char *argv[]); + const OPTIONS *help; +} FUNCTION; + +DEFINE_LHASH_OF(FUNCTION); + +extern int asn1parse_main(int argc, char *argv[]); +extern int ca_main(int argc, char *argv[]); +extern int ciphers_main(int argc, char *argv[]); +extern int cms_main(int argc, char *argv[]); +extern int crl_main(int argc, char *argv[]); +extern int crl2pkcs7_main(int argc, char *argv[]); +extern int dgst_main(int argc, char *argv[]); +extern int dhparam_main(int argc, char *argv[]); +extern int dsa_main(int argc, char *argv[]); +extern int dsaparam_main(int argc, char *argv[]); +extern int ec_main(int argc, char *argv[]); +extern int ecparam_main(int argc, char *argv[]); +extern int enc_main(int argc, char *argv[]); +extern int engine_main(int argc, char *argv[]); +extern int errstr_main(int argc, char *argv[]); +extern int gendsa_main(int argc, char *argv[]); +extern int genpkey_main(int argc, char *argv[]); +extern int genrsa_main(int argc, char *argv[]); +extern int help_main(int argc, char *argv[]); +extern int list_main(int argc, char *argv[]); +extern int nseq_main(int argc, char *argv[]); +extern int ocsp_main(int argc, char *argv[]); +extern int passwd_main(int argc, char *argv[]); +extern int pkcs12_main(int argc, char *argv[]); +extern int pkcs7_main(int argc, char *argv[]); +extern int pkcs8_main(int argc, char *argv[]); +extern int pkey_main(int argc, char *argv[]); +extern int pkeyparam_main(int argc, char *argv[]); +extern int pkeyutl_main(int argc, char *argv[]); +extern int prime_main(int argc, char *argv[]); +extern int rand_main(int argc, char *argv[]); +extern int rehash_main(int argc, char *argv[]); +extern int req_main(int argc, char *argv[]); +extern int rsa_main(int argc, char *argv[]); +extern int rsautl_main(int argc, char *argv[]); +extern int s_client_main(int argc, char *argv[]); +extern int s_server_main(int argc, char *argv[]); +extern int s_time_main(int argc, char *argv[]); +extern int sess_id_main(int argc, char *argv[]); +extern int smime_main(int argc, char *argv[]); +extern int speed_main(int argc, char *argv[]); +extern int spkac_main(int argc, char *argv[]); +extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); +extern int ts_main(int argc, char *argv[]); +extern int verify_main(int argc, char *argv[]); +extern int version_main(int argc, char *argv[]); +extern int x509_main(int argc, char *argv[]); + +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; + +#ifdef INCLUDE_FUNCTION_TABLE +static FUNCTION functions[] = { + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, +#ifndef OPENSSL_NO_SOCK + {FT_general, "ciphers", ciphers_main, ciphers_options}, +#endif +#ifndef OPENSSL_NO_CMS + {FT_general, "cms", cms_main, cms_options}, +#endif + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, +#ifndef OPENSSL_NO_DH + {FT_general, "dhparam", dhparam_main, dhparam_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsa", dsa_main, dsa_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ec", ec_main, ec_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ecparam", ecparam_main, ecparam_options}, +#endif + {FT_general, "enc", enc_main, enc_options}, +#ifndef OPENSSL_NO_ENGINE + {FT_general, "engine", engine_main, engine_options}, +#endif + {FT_general, "errstr", errstr_main, errstr_options}, +#ifndef OPENSSL_NO_DSA + {FT_general, "gendsa", gendsa_main, gendsa_options}, +#endif + {FT_general, "genpkey", genpkey_main, genpkey_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "genrsa", genrsa_main, genrsa_options}, +#endif + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, +#ifndef OPENSSL_NO_OCSP + {FT_general, "ocsp", ocsp_main, ocsp_options}, +#endif + {FT_general, "passwd", passwd_main, passwd_options}, +#ifndef OPENSSL_NO_DES + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, +#endif + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "rsautl", rsautl_main, rsautl_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_client", s_client_main, s_client_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_server", s_server_main, s_server_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_time", s_time_main, s_time_options}, +#endif + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, +#ifndef OPENSSL_NO_SRP + {FT_general, "srp", srp_main, srp_options}, +#endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, +#ifndef OPENSSL_NO_TS + {FT_general, "ts", ts_main, ts_options}, +#endif + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, +#ifndef OPENSSL_NO_MD2 + {FT_md, "md2", dgst_main}, +#endif +#ifndef OPENSSL_NO_MD4 + {FT_md, "md4", dgst_main}, +#endif + {FT_md, "md5", dgst_main}, +#ifndef OPENSSL_NO_GOST + {FT_md, "gost", dgst_main}, +#endif + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, +#ifndef OPENSSL_NO_MDC2 + {FT_md, "mdc2", dgst_main}, +#endif +#ifndef OPENSSL_NO_RMD160 + {FT_md, "rmd160", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2b512", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2s256", dgst_main}, +#endif +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, +#ifdef ZLIB + {FT_cipher, "zlib", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "desx", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4-40", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} +}; +#endif diff --git a/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/crypto/buildinf.h b/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/crypto/buildinf.h index 118391ea..9d9bcab6 100644 --- a/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/crypto/buildinf.h +++ b/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/crypto/buildinf.h @@ -1,23 +1,28 @@ -/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ -#define CFLAGS cflags /* - * Generate CFLAGS as an array of individual characters. This is a + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: solaris64-x86_64-gcc" +#define DATE "built on: Thu Jun 13 19:30:48 2019 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a * workaround for the situation where CFLAGS gets too long for a C90 string * literal */ -static const char cflags[] = { - 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','D', - 'D','S','O','_','D','L','F','C','N',' ','-','D','H','A','V','E', - '_','D','L','F','C','N','_','H',' ','-','D','N','D','E','B','U', - 'G',' ','-','D','O','P','E','N','S','S','L','_','T','H','R','E', - 'A','D','S',' ','-','D','O','P','E','N','S','S','L','_','N','O', - '_','D','Y','N','A','M','I','C','_','E','N','G','I','N','E',' ', - '-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D', - 'O','P','E','N','S','S','L','D','I','R','=','"','\\','"','/','u', - 's','r','/','l','o','c','a','l','/','s','s','l','\\','"','"',' ', - '-','D','E','N','G','I','N','E','S','D','I','R','=','"','\\','"', - '/','u','s','r','/','l','o','c','a','l','/','l','i','b','/','e', - 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f', + 'P','I','C',' ','-','m','6','4',' ','-','p','t','h','r','e','a', + 'd',' ','-','W','a','l','l',' ','-','O','3',' ','-','D','F','I', + 'L','I','O','_','H',' ','-','D','L','_','E','N','D','I','A','N', + ' ','-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-', + 'D','N','D','E','B','U','G','\0' }; -#define PLATFORM "platform: solaris64-x86_64-gcc" -#define DATE "built on: Tue Aug 14 23:13:42 2018" diff --git a/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/crypto/include/internal/dso_conf.h b/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/crypto/include/internal/dso_conf.h index 7a52dd1f..252266ec 100644 --- a/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/crypto/include/internal/dso_conf.h +++ b/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/crypto/include/internal/dso_conf.h @@ -1,7 +1,7 @@ /* WARNING: do not edit! */ /* Generated by Makefile from crypto/include/internal/dso_conf.h.in */ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,6 +11,7 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +# define DSO_DLFCN +# define HAVE_DLFCN_H # define DSO_EXTENSION ".so" #endif diff --git a/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/opensslconf.h b/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/opensslconf.h index 7b122bd8..42e625f3 100644 --- a/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/opensslconf.h +++ b/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/opensslconf.h @@ -10,6 +10,8 @@ * https://www.openssl.org/source/license.html */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -34,6 +36,9 @@ extern "C" { #ifndef OPENSSL_THREADS # define OPENSSL_THREADS #endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -49,12 +54,18 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif #ifndef OPENSSL_NO_EGD # define OPENSSL_NO_EGD #endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif #ifndef OPENSSL_NO_FUZZ_AFL # define OPENSSL_NO_FUZZ_AFL #endif @@ -88,6 +99,9 @@ extern "C" { #ifndef OPENSSL_NO_WEAK_SSL_CIPHERS # define OPENSSL_NO_WEAK_SSL_CIPHERS #endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif #ifndef OPENSSL_NO_AFALGENG # define OPENSSL_NO_AFALGENG #endif @@ -106,15 +120,11 @@ extern "C" { * functions. */ #ifndef DECLARE_DEPRECATED -# if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -# else -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); # endif # endif #endif @@ -138,6 +148,18 @@ extern "C" { # define OPENSSL_API_COMPAT OPENSSL_MIN_API #endif +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + #if OPENSSL_API_COMPAT < 0x10100000L # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) #else @@ -156,8 +178,6 @@ extern "C" { # define DEPRECATEDIN_0_9_8(f) #endif - - /* Generate 80386 code? */ #undef I386_ONLY diff --git a/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/progs.h b/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/progs.h index 6f7ebc3c..9b3d270e 100644 --- a/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/progs.h +++ b/noarch/include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/progs.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by apps/progs.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,6 @@ extern int ecparam_main(int argc, char *argv[]); extern int enc_main(int argc, char *argv[]); extern int engine_main(int argc, char *argv[]); extern int errstr_main(int argc, char *argv[]); -extern int exit_main(int argc, char *argv[]); extern int gendsa_main(int argc, char *argv[]); extern int genpkey_main(int argc, char *argv[]); extern int genrsa_main(int argc, char *argv[]); @@ -68,351 +67,441 @@ extern int smime_main(int argc, char *argv[]); extern int speed_main(int argc, char *argv[]); extern int spkac_main(int argc, char *argv[]); extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); extern int ts_main(int argc, char *argv[]); extern int verify_main(int argc, char *argv[]); extern int version_main(int argc, char *argv[]); extern int x509_main(int argc, char *argv[]); -extern OPTIONS asn1parse_options[]; -extern OPTIONS ca_options[]; -extern OPTIONS ciphers_options[]; -extern OPTIONS cms_options[]; -extern OPTIONS crl_options[]; -extern OPTIONS crl2pkcs7_options[]; -extern OPTIONS dgst_options[]; -extern OPTIONS dhparam_options[]; -extern OPTIONS dsa_options[]; -extern OPTIONS dsaparam_options[]; -extern OPTIONS ec_options[]; -extern OPTIONS ecparam_options[]; -extern OPTIONS enc_options[]; -extern OPTIONS engine_options[]; -extern OPTIONS errstr_options[]; -extern OPTIONS exit_options[]; -extern OPTIONS gendsa_options[]; -extern OPTIONS genpkey_options[]; -extern OPTIONS genrsa_options[]; -extern OPTIONS help_options[]; -extern OPTIONS list_options[]; -extern OPTIONS nseq_options[]; -extern OPTIONS ocsp_options[]; -extern OPTIONS passwd_options[]; -extern OPTIONS pkcs12_options[]; -extern OPTIONS pkcs7_options[]; -extern OPTIONS pkcs8_options[]; -extern OPTIONS pkey_options[]; -extern OPTIONS pkeyparam_options[]; -extern OPTIONS pkeyutl_options[]; -extern OPTIONS prime_options[]; -extern OPTIONS rand_options[]; -extern OPTIONS rehash_options[]; -extern OPTIONS req_options[]; -extern OPTIONS rsa_options[]; -extern OPTIONS rsautl_options[]; -extern OPTIONS s_client_options[]; -extern OPTIONS s_server_options[]; -extern OPTIONS s_time_options[]; -extern OPTIONS sess_id_options[]; -extern OPTIONS smime_options[]; -extern OPTIONS speed_options[]; -extern OPTIONS spkac_options[]; -extern OPTIONS srp_options[]; -extern OPTIONS ts_options[]; -extern OPTIONS verify_options[]; -extern OPTIONS version_options[]; -extern OPTIONS x509_options[]; +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; #ifdef INCLUDE_FUNCTION_TABLE static FUNCTION functions[] = { - { FT_general, "asn1parse", asn1parse_main, asn1parse_options }, - { FT_general, "ca", ca_main, ca_options }, + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, #ifndef OPENSSL_NO_SOCK - { FT_general, "ciphers", ciphers_main, ciphers_options }, + {FT_general, "ciphers", ciphers_main, ciphers_options}, #endif #ifndef OPENSSL_NO_CMS - { FT_general, "cms", cms_main, cms_options }, + {FT_general, "cms", cms_main, cms_options}, #endif - { FT_general, "crl", crl_main, crl_options }, - { FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options }, - { FT_general, "dgst", dgst_main, dgst_options }, + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, #ifndef OPENSSL_NO_DH - { FT_general, "dhparam", dhparam_main, dhparam_options }, + {FT_general, "dhparam", dhparam_main, dhparam_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsa", dsa_main, dsa_options }, + {FT_general, "dsa", dsa_main, dsa_options}, #endif #ifndef OPENSSL_NO_DSA - { FT_general, "dsaparam", dsaparam_main, dsaparam_options }, + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ec", ec_main, ec_options }, + {FT_general, "ec", ec_main, ec_options}, #endif #ifndef OPENSSL_NO_EC - { FT_general, "ecparam", ecparam_main, ecparam_options }, + {FT_general, "ecparam", ecparam_main, ecparam_options}, #endif - { FT_general, "enc", enc_main, enc_options }, + {FT_general, "enc", enc_main, enc_options}, #ifndef OPENSSL_NO_ENGINE - { FT_general, "engine", engine_main, engine_options }, + {FT_general, "engine", engine_main, engine_options}, #endif - { FT_general, "errstr", errstr_main, errstr_options }, - { FT_general, "exit", exit_main, exit_options }, + {FT_general, "errstr", errstr_main, errstr_options}, #ifndef OPENSSL_NO_DSA - { FT_general, "gendsa", gendsa_main, gendsa_options }, + {FT_general, "gendsa", gendsa_main, gendsa_options}, #endif - { FT_general, "genpkey", genpkey_main, genpkey_options }, + {FT_general, "genpkey", genpkey_main, genpkey_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "genrsa", genrsa_main, genrsa_options }, + {FT_general, "genrsa", genrsa_main, genrsa_options}, #endif - { FT_general, "help", help_main, help_options }, - { FT_general, "list", list_main, list_options }, - { FT_general, "nseq", nseq_main, nseq_options }, + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, #ifndef OPENSSL_NO_OCSP - { FT_general, "ocsp", ocsp_main, ocsp_options }, + {FT_general, "ocsp", ocsp_main, ocsp_options}, #endif - { FT_general, "passwd", passwd_main, passwd_options }, + {FT_general, "passwd", passwd_main, passwd_options}, #ifndef OPENSSL_NO_DES - { FT_general, "pkcs12", pkcs12_main, pkcs12_options }, + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, #endif - { FT_general, "pkcs7", pkcs7_main, pkcs7_options }, - { FT_general, "pkcs8", pkcs8_main, pkcs8_options }, - { FT_general, "pkey", pkey_main, pkey_options }, - { FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options }, - { FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options }, - { FT_general, "prime", prime_main, prime_options }, - { FT_general, "rand", rand_main, rand_options }, - { FT_general, "rehash", rehash_main, rehash_options }, - { FT_general, "req", req_main, req_options }, - { FT_general, "rsa", rsa_main, rsa_options }, + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, #ifndef OPENSSL_NO_RSA - { FT_general, "rsautl", rsautl_main, rsautl_options }, + {FT_general, "rsautl", rsautl_main, rsautl_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_client", s_client_main, s_client_options }, + {FT_general, "s_client", s_client_main, s_client_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_server", s_server_main, s_server_options }, + {FT_general, "s_server", s_server_main, s_server_options}, #endif #ifndef OPENSSL_NO_SOCK - { FT_general, "s_time", s_time_main, s_time_options }, + {FT_general, "s_time", s_time_main, s_time_options}, #endif - { FT_general, "sess_id", sess_id_main, sess_id_options }, - { FT_general, "smime", smime_main, smime_options }, - { FT_general, "speed", speed_main, speed_options }, - { FT_general, "spkac", spkac_main, spkac_options }, + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, #ifndef OPENSSL_NO_SRP - { FT_general, "srp", srp_main, srp_options }, + {FT_general, "srp", srp_main, srp_options}, #endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, #ifndef OPENSSL_NO_TS - { FT_general, "ts", ts_main, ts_options }, + {FT_general, "ts", ts_main, ts_options}, #endif - { FT_general, "verify", verify_main, verify_options }, - { FT_general, "version", version_main, version_options }, - { FT_general, "x509", x509_main, x509_options }, + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, #ifndef OPENSSL_NO_MD2 - { FT_md, "md2", dgst_main}, + {FT_md, "md2", dgst_main}, #endif #ifndef OPENSSL_NO_MD4 - { FT_md, "md4", dgst_main}, + {FT_md, "md4", dgst_main}, #endif - { FT_md, "md5", dgst_main}, + {FT_md, "md5", dgst_main}, #ifndef OPENSSL_NO_GOST - { FT_md, "gost", dgst_main}, + {FT_md, "gost", dgst_main}, #endif - { FT_md, "sha1", dgst_main}, - { FT_md, "sha224", dgst_main}, - { FT_md, "sha256", dgst_main}, - { FT_md, "sha384", dgst_main}, - { FT_md, "sha512", dgst_main}, + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, #ifndef OPENSSL_NO_MDC2 - { FT_md, "mdc2", dgst_main}, + {FT_md, "mdc2", dgst_main}, #endif #ifndef OPENSSL_NO_RMD160 - { FT_md, "rmd160", dgst_main}, + {FT_md, "rmd160", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2b512", dgst_main}, + {FT_md, "blake2b512", dgst_main}, #endif #ifndef OPENSSL_NO_BLAKE2 - { FT_md, "blake2s256", dgst_main}, + {FT_md, "blake2s256", dgst_main}, #endif - { FT_cipher, "aes-128-cbc", enc_main, enc_options }, - { FT_cipher, "aes-128-ecb", enc_main, enc_options }, - { FT_cipher, "aes-192-cbc", enc_main, enc_options }, - { FT_cipher, "aes-192-ecb", enc_main, enc_options }, - { FT_cipher, "aes-256-cbc", enc_main, enc_options }, - { FT_cipher, "aes-256-ecb", enc_main, enc_options }, -#ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-cbc", enc_main, enc_options }, +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-128-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-192-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-cbc", enc_main, enc_options }, + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAMELLIA - { FT_cipher, "camellia-256-ecb", enc_main, enc_options }, + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, #endif - { FT_cipher, "base64", enc_main, enc_options }, +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, #ifdef ZLIB - { FT_cipher, "zlib", enc_main, enc_options }, + {FT_cipher, "zlib", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des", enc_main, enc_options }, + {FT_cipher, "des", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des3", enc_main, enc_options }, + {FT_cipher, "des3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "desx", enc_main, enc_options }, + {FT_cipher, "desx", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea", enc_main, enc_options }, + {FT_cipher, "idea", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed", enc_main, enc_options }, + {FT_cipher, "seed", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4", enc_main, enc_options }, + {FT_cipher, "rc4", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC4 - { FT_cipher, "rc4-40", enc_main, enc_options }, + {FT_cipher, "rc4-40", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2", enc_main, enc_options }, + {FT_cipher, "rc2", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf", enc_main, enc_options }, + {FT_cipher, "bf", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast", enc_main, enc_options }, + {FT_cipher, "cast", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5", enc_main, enc_options }, + {FT_cipher, "rc5", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ecb", enc_main, enc_options }, + {FT_cipher, "des-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede", enc_main, enc_options }, + {FT_cipher, "des-ede", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3", enc_main, enc_options }, + {FT_cipher, "des-ede3", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cbc", enc_main, enc_options }, + {FT_cipher, "des-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cbc", enc_main, enc_options }, + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-cfb", enc_main, enc_options }, + {FT_cipher, "des-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-cfb", enc_main, enc_options }, + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ofb", enc_main, enc_options }, + {FT_cipher, "des-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_DES - { FT_cipher, "des-ede3-ofb", enc_main, enc_options }, + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cbc", enc_main, enc_options }, + {FT_cipher, "idea-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ecb", enc_main, enc_options }, + {FT_cipher, "idea-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-cfb", enc_main, enc_options }, + {FT_cipher, "idea-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_IDEA - { FT_cipher, "idea-ofb", enc_main, enc_options }, + {FT_cipher, "idea-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cbc", enc_main, enc_options }, + {FT_cipher, "seed-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ecb", enc_main, enc_options }, + {FT_cipher, "seed-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-cfb", enc_main, enc_options }, + {FT_cipher, "seed-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_SEED - { FT_cipher, "seed-ofb", enc_main, enc_options }, + {FT_cipher, "seed-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ecb", enc_main, enc_options }, + {FT_cipher, "rc2-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-cfb", enc_main, enc_options }, + {FT_cipher, "rc2-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-ofb", enc_main, enc_options }, + {FT_cipher, "rc2-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-64-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC2 - { FT_cipher, "rc2-40-cbc", enc_main, enc_options }, + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cbc", enc_main, enc_options }, + {FT_cipher, "bf-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ecb", enc_main, enc_options }, + {FT_cipher, "bf-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-cfb", enc_main, enc_options }, + {FT_cipher, "bf-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_BF - { FT_cipher, "bf-ofb", enc_main, enc_options }, + {FT_cipher, "bf-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cbc", enc_main, enc_options }, + {FT_cipher, "cast5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ecb", enc_main, enc_options }, + {FT_cipher, "cast5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-cfb", enc_main, enc_options }, + {FT_cipher, "cast5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast5-ofb", enc_main, enc_options }, + {FT_cipher, "cast5-ofb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_CAST - { FT_cipher, "cast-cbc", enc_main, enc_options }, + {FT_cipher, "cast-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cbc", enc_main, enc_options }, + {FT_cipher, "rc5-cbc", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ecb", enc_main, enc_options }, + {FT_cipher, "rc5-ecb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-cfb", enc_main, enc_options }, + {FT_cipher, "rc5-cfb", enc_main, enc_options}, #endif #ifndef OPENSSL_NO_RC5 - { FT_cipher, "rc5-ofb", enc_main, enc_options }, + {FT_cipher, "rc5-ofb", enc_main, enc_options}, #endif - { 0, NULL, NULL} +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} }; #endif diff --git a/noarch/include/node/openssl/asn1.h b/noarch/include/node/openssl/asn1.h index d0b1099a..9522eec1 100644 --- a/noarch/include/node/openssl/asn1.h +++ b/noarch/include/node/openssl/asn1.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -14,9 +14,8 @@ # include # include # include -# include # include - +# include # include # include @@ -40,7 +39,7 @@ extern "C" { # define V_ASN1_CONSTRUCTED 0x20 # define V_ASN1_PRIMITIVE_TAG 0x1f -# define V_ASN1_PRIMATIVE_TAG 0x1f +# define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG # define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ # define V_ASN1_OTHER -3/* used in ASN1_TYPE */ @@ -141,6 +140,8 @@ DEFINE_STACK_OF(X509_ALGOR) # define ASN1_STRING_FLAG_MSTRING 0x040 /* String is embedded and only content should be freed */ # define ASN1_STRING_FLAG_EMBED 0x080 +/* String should be parsed in RFC 5280's time format */ +# define ASN1_STRING_FLAG_X509_TIME 0x100 /* This is the base type that holds just about everything :-) */ struct asn1_string_st { int length; @@ -588,6 +589,7 @@ ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_adj(ASN1_GENERALIZEDTIME *s, time_t t, int offset_day, long offset_sec); int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, const char *str); + int ASN1_TIME_diff(int *pday, int *psec, const ASN1_TIME *from, const ASN1_TIME *to); @@ -628,6 +630,11 @@ int ASN1_TIME_check(const ASN1_TIME *t); ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(const ASN1_TIME *t, ASN1_GENERALIZEDTIME **out); int ASN1_TIME_set_string(ASN1_TIME *s, const char *str); +int ASN1_TIME_set_string_X509(ASN1_TIME *s, const char *str); +int ASN1_TIME_to_tm(const ASN1_TIME *s, struct tm *tm); +int ASN1_TIME_normalize(ASN1_TIME *s); +int ASN1_TIME_cmp_time_t(const ASN1_TIME *s, time_t t); +int ASN1_TIME_compare(const ASN1_TIME *a, const ASN1_TIME *b); int i2a_ASN1_INTEGER(BIO *bp, const ASN1_INTEGER *a); int a2i_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *bs, char *buf, int size); @@ -870,231 +877,8 @@ ASN1_VALUE *SMIME_read_ASN1(BIO *bio, BIO **bcont, const ASN1_ITEM *it); int SMIME_crlf_copy(BIO *in, BIO *out, int flags); int SMIME_text(BIO *in, BIO *out); -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_ASN1_strings(void); - -/* Error codes for the ASN1 functions. */ - -/* Function codes. */ -# define ASN1_F_A2D_ASN1_OBJECT 100 -# define ASN1_F_A2I_ASN1_INTEGER 102 -# define ASN1_F_A2I_ASN1_STRING 103 -# define ASN1_F_APPEND_EXP 176 -# define ASN1_F_ASN1_BIT_STRING_SET_BIT 183 -# define ASN1_F_ASN1_CB 177 -# define ASN1_F_ASN1_CHECK_TLEN 104 -# define ASN1_F_ASN1_COLLECT 106 -# define ASN1_F_ASN1_D2I_EX_PRIMITIVE 108 -# define ASN1_F_ASN1_D2I_FP 109 -# define ASN1_F_ASN1_D2I_READ_BIO 107 -# define ASN1_F_ASN1_DIGEST 184 -# define ASN1_F_ASN1_DO_ADB 110 -# define ASN1_F_ASN1_DO_LOCK 233 -# define ASN1_F_ASN1_DUP 111 -# define ASN1_F_ASN1_EX_C2I 204 -# define ASN1_F_ASN1_FIND_END 190 -# define ASN1_F_ASN1_GENERALIZEDTIME_ADJ 216 -# define ASN1_F_ASN1_GENERATE_V3 178 -# define ASN1_F_ASN1_GET_INT64 224 -# define ASN1_F_ASN1_GET_OBJECT 114 -# define ASN1_F_ASN1_GET_UINT64 225 -# define ASN1_F_ASN1_I2D_BIO 116 -# define ASN1_F_ASN1_I2D_FP 117 -# define ASN1_F_ASN1_ITEM_D2I_FP 206 -# define ASN1_F_ASN1_ITEM_DUP 191 -# define ASN1_F_ASN1_ITEM_EMBED_D2I 120 -# define ASN1_F_ASN1_ITEM_EMBED_NEW 121 -# define ASN1_F_ASN1_ITEM_I2D_BIO 192 -# define ASN1_F_ASN1_ITEM_I2D_FP 193 -# define ASN1_F_ASN1_ITEM_PACK 198 -# define ASN1_F_ASN1_ITEM_SIGN 195 -# define ASN1_F_ASN1_ITEM_SIGN_CTX 220 -# define ASN1_F_ASN1_ITEM_UNPACK 199 -# define ASN1_F_ASN1_ITEM_VERIFY 197 -# define ASN1_F_ASN1_MBSTRING_NCOPY 122 -# define ASN1_F_ASN1_OBJECT_NEW 123 -# define ASN1_F_ASN1_OUTPUT_DATA 214 -# define ASN1_F_ASN1_PCTX_NEW 205 -# define ASN1_F_ASN1_SCTX_NEW 221 -# define ASN1_F_ASN1_SIGN 128 -# define ASN1_F_ASN1_STR2TYPE 179 -# define ASN1_F_ASN1_STRING_GET_INT64 227 -# define ASN1_F_ASN1_STRING_GET_UINT64 230 -# define ASN1_F_ASN1_STRING_SET 186 -# define ASN1_F_ASN1_STRING_TABLE_ADD 129 -# define ASN1_F_ASN1_STRING_TO_BN 228 -# define ASN1_F_ASN1_STRING_TYPE_NEW 130 -# define ASN1_F_ASN1_TEMPLATE_EX_D2I 132 -# define ASN1_F_ASN1_TEMPLATE_NEW 133 -# define ASN1_F_ASN1_TEMPLATE_NOEXP_D2I 131 -# define ASN1_F_ASN1_TIME_ADJ 217 -# define ASN1_F_ASN1_TYPE_GET_INT_OCTETSTRING 134 -# define ASN1_F_ASN1_TYPE_GET_OCTETSTRING 135 -# define ASN1_F_ASN1_UTCTIME_ADJ 218 -# define ASN1_F_ASN1_VERIFY 137 -# define ASN1_F_B64_READ_ASN1 209 -# define ASN1_F_B64_WRITE_ASN1 210 -# define ASN1_F_BIO_NEW_NDEF 208 -# define ASN1_F_BITSTR_CB 180 -# define ASN1_F_BN_TO_ASN1_STRING 229 -# define ASN1_F_C2I_ASN1_BIT_STRING 189 -# define ASN1_F_C2I_ASN1_INTEGER 194 -# define ASN1_F_C2I_ASN1_OBJECT 196 -# define ASN1_F_C2I_IBUF 226 -# define ASN1_F_C2I_UINT64_INT 101 -# define ASN1_F_COLLECT_DATA 140 -# define ASN1_F_D2I_ASN1_OBJECT 147 -# define ASN1_F_D2I_ASN1_UINTEGER 150 -# define ASN1_F_D2I_AUTOPRIVATEKEY 207 -# define ASN1_F_D2I_PRIVATEKEY 154 -# define ASN1_F_D2I_PUBLICKEY 155 -# define ASN1_F_DO_BUF 142 -# define ASN1_F_DO_TCREATE 222 -# define ASN1_F_I2D_ASN1_BIO_STREAM 211 -# define ASN1_F_I2D_ASN1_OBJECT 143 -# define ASN1_F_I2D_DSA_PUBKEY 161 -# define ASN1_F_I2D_EC_PUBKEY 181 -# define ASN1_F_I2D_PRIVATEKEY 163 -# define ASN1_F_I2D_PUBLICKEY 164 -# define ASN1_F_I2D_RSA_PUBKEY 165 -# define ASN1_F_LONG_C2I 166 -# define ASN1_F_OID_MODULE_INIT 174 -# define ASN1_F_PARSE_TAGGING 182 -# define ASN1_F_PKCS5_PBE2_SET_IV 167 -# define ASN1_F_PKCS5_PBE2_SET_SCRYPT 231 -# define ASN1_F_PKCS5_PBE_SET 202 -# define ASN1_F_PKCS5_PBE_SET0_ALGOR 215 -# define ASN1_F_PKCS5_PBKDF2_SET 219 -# define ASN1_F_PKCS5_SCRYPT_SET 232 -# define ASN1_F_SMIME_READ_ASN1 212 -# define ASN1_F_SMIME_TEXT 213 -# define ASN1_F_STBL_MODULE_INIT 223 -# define ASN1_F_UINT32_C2I 105 -# define ASN1_F_UINT64_C2I 112 -# define ASN1_F_X509_CRL_ADD0_REVOKED 169 -# define ASN1_F_X509_INFO_NEW 170 -# define ASN1_F_X509_NAME_ENCODE 203 -# define ASN1_F_X509_NAME_EX_D2I 158 -# define ASN1_F_X509_NAME_EX_NEW 171 -# define ASN1_F_X509_PKEY_NEW 173 - -/* Reason codes. */ -# define ASN1_R_ADDING_OBJECT 171 -# define ASN1_R_ASN1_PARSE_ERROR 203 -# define ASN1_R_ASN1_SIG_PARSE_ERROR 204 -# define ASN1_R_AUX_ERROR 100 -# define ASN1_R_BAD_OBJECT_HEADER 102 -# define ASN1_R_BMPSTRING_IS_WRONG_LENGTH 214 -# define ASN1_R_BN_LIB 105 -# define ASN1_R_BOOLEAN_IS_WRONG_LENGTH 106 -# define ASN1_R_BUFFER_TOO_SMALL 107 -# define ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 108 -# define ASN1_R_CONTEXT_NOT_INITIALISED 217 -# define ASN1_R_DATA_IS_WRONG 109 -# define ASN1_R_DECODE_ERROR 110 -# define ASN1_R_DEPTH_EXCEEDED 174 -# define ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED 198 -# define ASN1_R_ENCODE_ERROR 112 -# define ASN1_R_ERROR_GETTING_TIME 173 -# define ASN1_R_ERROR_LOADING_SECTION 172 -# define ASN1_R_ERROR_SETTING_CIPHER_PARAMS 114 -# define ASN1_R_EXPECTING_AN_INTEGER 115 -# define ASN1_R_EXPECTING_AN_OBJECT 116 -# define ASN1_R_EXPLICIT_LENGTH_MISMATCH 119 -# define ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED 120 -# define ASN1_R_FIELD_MISSING 121 -# define ASN1_R_FIRST_NUM_TOO_LARGE 122 -# define ASN1_R_HEADER_TOO_LONG 123 -# define ASN1_R_ILLEGAL_BITSTRING_FORMAT 175 -# define ASN1_R_ILLEGAL_BOOLEAN 176 -# define ASN1_R_ILLEGAL_CHARACTERS 124 -# define ASN1_R_ILLEGAL_FORMAT 177 -# define ASN1_R_ILLEGAL_HEX 178 -# define ASN1_R_ILLEGAL_IMPLICIT_TAG 179 -# define ASN1_R_ILLEGAL_INTEGER 180 -# define ASN1_R_ILLEGAL_NEGATIVE_VALUE 226 -# define ASN1_R_ILLEGAL_NESTED_TAGGING 181 -# define ASN1_R_ILLEGAL_NULL 125 -# define ASN1_R_ILLEGAL_NULL_VALUE 182 -# define ASN1_R_ILLEGAL_OBJECT 183 -# define ASN1_R_ILLEGAL_OPTIONAL_ANY 126 -# define ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE 170 -# define ASN1_R_ILLEGAL_PADDING 221 -# define ASN1_R_ILLEGAL_TAGGED_ANY 127 -# define ASN1_R_ILLEGAL_TIME_VALUE 184 -# define ASN1_R_ILLEGAL_ZERO_CONTENT 222 -# define ASN1_R_INTEGER_NOT_ASCII_FORMAT 185 -# define ASN1_R_INTEGER_TOO_LARGE_FOR_LONG 128 -# define ASN1_R_INVALID_BIT_STRING_BITS_LEFT 220 -# define ASN1_R_INVALID_BMPSTRING_LENGTH 129 -# define ASN1_R_INVALID_DIGIT 130 -# define ASN1_R_INVALID_MIME_TYPE 205 -# define ASN1_R_INVALID_MODIFIER 186 -# define ASN1_R_INVALID_NUMBER 187 -# define ASN1_R_INVALID_OBJECT_ENCODING 216 -# define ASN1_R_INVALID_SCRYPT_PARAMETERS 227 -# define ASN1_R_INVALID_SEPARATOR 131 -# define ASN1_R_INVALID_STRING_TABLE_VALUE 218 -# define ASN1_R_INVALID_UNIVERSALSTRING_LENGTH 133 -# define ASN1_R_INVALID_UTF8STRING 134 -# define ASN1_R_INVALID_VALUE 219 -# define ASN1_R_LIST_ERROR 188 -# define ASN1_R_MIME_NO_CONTENT_TYPE 206 -# define ASN1_R_MIME_PARSE_ERROR 207 -# define ASN1_R_MIME_SIG_PARSE_ERROR 208 -# define ASN1_R_MISSING_EOC 137 -# define ASN1_R_MISSING_SECOND_NUMBER 138 -# define ASN1_R_MISSING_VALUE 189 -# define ASN1_R_MSTRING_NOT_UNIVERSAL 139 -# define ASN1_R_MSTRING_WRONG_TAG 140 -# define ASN1_R_NESTED_ASN1_STRING 197 -# define ASN1_R_NESTED_TOO_DEEP 201 -# define ASN1_R_NON_HEX_CHARACTERS 141 -# define ASN1_R_NOT_ASCII_FORMAT 190 -# define ASN1_R_NOT_ENOUGH_DATA 142 -# define ASN1_R_NO_CONTENT_TYPE 209 -# define ASN1_R_NO_MATCHING_CHOICE_TYPE 143 -# define ASN1_R_NO_MULTIPART_BODY_FAILURE 210 -# define ASN1_R_NO_MULTIPART_BOUNDARY 211 -# define ASN1_R_NO_SIG_CONTENT_TYPE 212 -# define ASN1_R_NULL_IS_WRONG_LENGTH 144 -# define ASN1_R_OBJECT_NOT_ASCII_FORMAT 191 -# define ASN1_R_ODD_NUMBER_OF_CHARS 145 -# define ASN1_R_SECOND_NUMBER_TOO_LARGE 147 -# define ASN1_R_SEQUENCE_LENGTH_MISMATCH 148 -# define ASN1_R_SEQUENCE_NOT_CONSTRUCTED 149 -# define ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG 192 -# define ASN1_R_SHORT_LINE 150 -# define ASN1_R_SIG_INVALID_MIME_TYPE 213 -# define ASN1_R_STREAMING_NOT_SUPPORTED 202 -# define ASN1_R_STRING_TOO_LONG 151 -# define ASN1_R_STRING_TOO_SHORT 152 -# define ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 154 -# define ASN1_R_TIME_NOT_ASCII_FORMAT 193 -# define ASN1_R_TOO_LARGE 223 -# define ASN1_R_TOO_LONG 155 -# define ASN1_R_TOO_SMALL 224 -# define ASN1_R_TYPE_NOT_CONSTRUCTED 156 -# define ASN1_R_TYPE_NOT_PRIMITIVE 195 -# define ASN1_R_UNEXPECTED_EOC 159 -# define ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH 215 -# define ASN1_R_UNKNOWN_FORMAT 160 -# define ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM 161 -# define ASN1_R_UNKNOWN_OBJECT_TYPE 162 -# define ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE 163 -# define ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM 199 -# define ASN1_R_UNKNOWN_TAG 194 -# define ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE 164 -# define ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE 167 -# define ASN1_R_UNSUPPORTED_TYPE 196 -# define ASN1_R_WRONG_INTEGER_TYPE 225 -# define ASN1_R_WRONG_PUBLIC_KEY_TYPE 200 -# define ASN1_R_WRONG_TAG 168 +const ASN1_ITEM *ASN1_ITEM_lookup(const char *name); +const ASN1_ITEM *ASN1_ITEM_get(size_t i); # ifdef __cplusplus } diff --git a/noarch/include/node/openssl/asn1err.h b/noarch/include/node/openssl/asn1err.h new file mode 100644 index 00000000..5a91126d --- /dev/null +++ b/noarch/include/node/openssl/asn1err.h @@ -0,0 +1,252 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_ASN1ERR_H +# define HEADER_ASN1ERR_H + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_ASN1_strings(void); + +/* + * ASN1 function codes. + */ +# define ASN1_F_A2D_ASN1_OBJECT 100 +# define ASN1_F_A2I_ASN1_INTEGER 102 +# define ASN1_F_A2I_ASN1_STRING 103 +# define ASN1_F_APPEND_EXP 176 +# define ASN1_F_ASN1_BIO_INIT 113 +# define ASN1_F_ASN1_BIT_STRING_SET_BIT 183 +# define ASN1_F_ASN1_CB 177 +# define ASN1_F_ASN1_CHECK_TLEN 104 +# define ASN1_F_ASN1_COLLECT 106 +# define ASN1_F_ASN1_D2I_EX_PRIMITIVE 108 +# define ASN1_F_ASN1_D2I_FP 109 +# define ASN1_F_ASN1_D2I_READ_BIO 107 +# define ASN1_F_ASN1_DIGEST 184 +# define ASN1_F_ASN1_DO_ADB 110 +# define ASN1_F_ASN1_DO_LOCK 233 +# define ASN1_F_ASN1_DUP 111 +# define ASN1_F_ASN1_ENC_SAVE 115 +# define ASN1_F_ASN1_EX_C2I 204 +# define ASN1_F_ASN1_FIND_END 190 +# define ASN1_F_ASN1_GENERALIZEDTIME_ADJ 216 +# define ASN1_F_ASN1_GENERATE_V3 178 +# define ASN1_F_ASN1_GET_INT64 224 +# define ASN1_F_ASN1_GET_OBJECT 114 +# define ASN1_F_ASN1_GET_UINT64 225 +# define ASN1_F_ASN1_I2D_BIO 116 +# define ASN1_F_ASN1_I2D_FP 117 +# define ASN1_F_ASN1_ITEM_D2I_FP 206 +# define ASN1_F_ASN1_ITEM_DUP 191 +# define ASN1_F_ASN1_ITEM_EMBED_D2I 120 +# define ASN1_F_ASN1_ITEM_EMBED_NEW 121 +# define ASN1_F_ASN1_ITEM_FLAGS_I2D 118 +# define ASN1_F_ASN1_ITEM_I2D_BIO 192 +# define ASN1_F_ASN1_ITEM_I2D_FP 193 +# define ASN1_F_ASN1_ITEM_PACK 198 +# define ASN1_F_ASN1_ITEM_SIGN 195 +# define ASN1_F_ASN1_ITEM_SIGN_CTX 220 +# define ASN1_F_ASN1_ITEM_UNPACK 199 +# define ASN1_F_ASN1_ITEM_VERIFY 197 +# define ASN1_F_ASN1_MBSTRING_NCOPY 122 +# define ASN1_F_ASN1_OBJECT_NEW 123 +# define ASN1_F_ASN1_OUTPUT_DATA 214 +# define ASN1_F_ASN1_PCTX_NEW 205 +# define ASN1_F_ASN1_PRIMITIVE_NEW 119 +# define ASN1_F_ASN1_SCTX_NEW 221 +# define ASN1_F_ASN1_SIGN 128 +# define ASN1_F_ASN1_STR2TYPE 179 +# define ASN1_F_ASN1_STRING_GET_INT64 227 +# define ASN1_F_ASN1_STRING_GET_UINT64 230 +# define ASN1_F_ASN1_STRING_SET 186 +# define ASN1_F_ASN1_STRING_TABLE_ADD 129 +# define ASN1_F_ASN1_STRING_TO_BN 228 +# define ASN1_F_ASN1_STRING_TYPE_NEW 130 +# define ASN1_F_ASN1_TEMPLATE_EX_D2I 132 +# define ASN1_F_ASN1_TEMPLATE_NEW 133 +# define ASN1_F_ASN1_TEMPLATE_NOEXP_D2I 131 +# define ASN1_F_ASN1_TIME_ADJ 217 +# define ASN1_F_ASN1_TYPE_GET_INT_OCTETSTRING 134 +# define ASN1_F_ASN1_TYPE_GET_OCTETSTRING 135 +# define ASN1_F_ASN1_UTCTIME_ADJ 218 +# define ASN1_F_ASN1_VERIFY 137 +# define ASN1_F_B64_READ_ASN1 209 +# define ASN1_F_B64_WRITE_ASN1 210 +# define ASN1_F_BIO_NEW_NDEF 208 +# define ASN1_F_BITSTR_CB 180 +# define ASN1_F_BN_TO_ASN1_STRING 229 +# define ASN1_F_C2I_ASN1_BIT_STRING 189 +# define ASN1_F_C2I_ASN1_INTEGER 194 +# define ASN1_F_C2I_ASN1_OBJECT 196 +# define ASN1_F_C2I_IBUF 226 +# define ASN1_F_C2I_UINT64_INT 101 +# define ASN1_F_COLLECT_DATA 140 +# define ASN1_F_D2I_ASN1_OBJECT 147 +# define ASN1_F_D2I_ASN1_UINTEGER 150 +# define ASN1_F_D2I_AUTOPRIVATEKEY 207 +# define ASN1_F_D2I_PRIVATEKEY 154 +# define ASN1_F_D2I_PUBLICKEY 155 +# define ASN1_F_DO_BUF 142 +# define ASN1_F_DO_CREATE 124 +# define ASN1_F_DO_DUMP 125 +# define ASN1_F_DO_TCREATE 222 +# define ASN1_F_I2A_ASN1_OBJECT 126 +# define ASN1_F_I2D_ASN1_BIO_STREAM 211 +# define ASN1_F_I2D_ASN1_OBJECT 143 +# define ASN1_F_I2D_DSA_PUBKEY 161 +# define ASN1_F_I2D_EC_PUBKEY 181 +# define ASN1_F_I2D_PRIVATEKEY 163 +# define ASN1_F_I2D_PUBLICKEY 164 +# define ASN1_F_I2D_RSA_PUBKEY 165 +# define ASN1_F_LONG_C2I 166 +# define ASN1_F_NDEF_PREFIX 127 +# define ASN1_F_NDEF_SUFFIX 136 +# define ASN1_F_OID_MODULE_INIT 174 +# define ASN1_F_PARSE_TAGGING 182 +# define ASN1_F_PKCS5_PBE2_SET_IV 167 +# define ASN1_F_PKCS5_PBE2_SET_SCRYPT 231 +# define ASN1_F_PKCS5_PBE_SET 202 +# define ASN1_F_PKCS5_PBE_SET0_ALGOR 215 +# define ASN1_F_PKCS5_PBKDF2_SET 219 +# define ASN1_F_PKCS5_SCRYPT_SET 232 +# define ASN1_F_SMIME_READ_ASN1 212 +# define ASN1_F_SMIME_TEXT 213 +# define ASN1_F_STABLE_GET 138 +# define ASN1_F_STBL_MODULE_INIT 223 +# define ASN1_F_UINT32_C2I 105 +# define ASN1_F_UINT32_NEW 139 +# define ASN1_F_UINT64_C2I 112 +# define ASN1_F_UINT64_NEW 141 +# define ASN1_F_X509_CRL_ADD0_REVOKED 169 +# define ASN1_F_X509_INFO_NEW 170 +# define ASN1_F_X509_NAME_ENCODE 203 +# define ASN1_F_X509_NAME_EX_D2I 158 +# define ASN1_F_X509_NAME_EX_NEW 171 +# define ASN1_F_X509_PKEY_NEW 173 + +/* + * ASN1 reason codes. + */ +# define ASN1_R_ADDING_OBJECT 171 +# define ASN1_R_ASN1_PARSE_ERROR 203 +# define ASN1_R_ASN1_SIG_PARSE_ERROR 204 +# define ASN1_R_AUX_ERROR 100 +# define ASN1_R_BAD_OBJECT_HEADER 102 +# define ASN1_R_BMPSTRING_IS_WRONG_LENGTH 214 +# define ASN1_R_BN_LIB 105 +# define ASN1_R_BOOLEAN_IS_WRONG_LENGTH 106 +# define ASN1_R_BUFFER_TOO_SMALL 107 +# define ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 108 +# define ASN1_R_CONTEXT_NOT_INITIALISED 217 +# define ASN1_R_DATA_IS_WRONG 109 +# define ASN1_R_DECODE_ERROR 110 +# define ASN1_R_DEPTH_EXCEEDED 174 +# define ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED 198 +# define ASN1_R_ENCODE_ERROR 112 +# define ASN1_R_ERROR_GETTING_TIME 173 +# define ASN1_R_ERROR_LOADING_SECTION 172 +# define ASN1_R_ERROR_SETTING_CIPHER_PARAMS 114 +# define ASN1_R_EXPECTING_AN_INTEGER 115 +# define ASN1_R_EXPECTING_AN_OBJECT 116 +# define ASN1_R_EXPLICIT_LENGTH_MISMATCH 119 +# define ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED 120 +# define ASN1_R_FIELD_MISSING 121 +# define ASN1_R_FIRST_NUM_TOO_LARGE 122 +# define ASN1_R_HEADER_TOO_LONG 123 +# define ASN1_R_ILLEGAL_BITSTRING_FORMAT 175 +# define ASN1_R_ILLEGAL_BOOLEAN 176 +# define ASN1_R_ILLEGAL_CHARACTERS 124 +# define ASN1_R_ILLEGAL_FORMAT 177 +# define ASN1_R_ILLEGAL_HEX 178 +# define ASN1_R_ILLEGAL_IMPLICIT_TAG 179 +# define ASN1_R_ILLEGAL_INTEGER 180 +# define ASN1_R_ILLEGAL_NEGATIVE_VALUE 226 +# define ASN1_R_ILLEGAL_NESTED_TAGGING 181 +# define ASN1_R_ILLEGAL_NULL 125 +# define ASN1_R_ILLEGAL_NULL_VALUE 182 +# define ASN1_R_ILLEGAL_OBJECT 183 +# define ASN1_R_ILLEGAL_OPTIONAL_ANY 126 +# define ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE 170 +# define ASN1_R_ILLEGAL_PADDING 221 +# define ASN1_R_ILLEGAL_TAGGED_ANY 127 +# define ASN1_R_ILLEGAL_TIME_VALUE 184 +# define ASN1_R_ILLEGAL_ZERO_CONTENT 222 +# define ASN1_R_INTEGER_NOT_ASCII_FORMAT 185 +# define ASN1_R_INTEGER_TOO_LARGE_FOR_LONG 128 +# define ASN1_R_INVALID_BIT_STRING_BITS_LEFT 220 +# define ASN1_R_INVALID_BMPSTRING_LENGTH 129 +# define ASN1_R_INVALID_DIGIT 130 +# define ASN1_R_INVALID_MIME_TYPE 205 +# define ASN1_R_INVALID_MODIFIER 186 +# define ASN1_R_INVALID_NUMBER 187 +# define ASN1_R_INVALID_OBJECT_ENCODING 216 +# define ASN1_R_INVALID_SCRYPT_PARAMETERS 227 +# define ASN1_R_INVALID_SEPARATOR 131 +# define ASN1_R_INVALID_STRING_TABLE_VALUE 218 +# define ASN1_R_INVALID_UNIVERSALSTRING_LENGTH 133 +# define ASN1_R_INVALID_UTF8STRING 134 +# define ASN1_R_INVALID_VALUE 219 +# define ASN1_R_LIST_ERROR 188 +# define ASN1_R_MIME_NO_CONTENT_TYPE 206 +# define ASN1_R_MIME_PARSE_ERROR 207 +# define ASN1_R_MIME_SIG_PARSE_ERROR 208 +# define ASN1_R_MISSING_EOC 137 +# define ASN1_R_MISSING_SECOND_NUMBER 138 +# define ASN1_R_MISSING_VALUE 189 +# define ASN1_R_MSTRING_NOT_UNIVERSAL 139 +# define ASN1_R_MSTRING_WRONG_TAG 140 +# define ASN1_R_NESTED_ASN1_STRING 197 +# define ASN1_R_NESTED_TOO_DEEP 201 +# define ASN1_R_NON_HEX_CHARACTERS 141 +# define ASN1_R_NOT_ASCII_FORMAT 190 +# define ASN1_R_NOT_ENOUGH_DATA 142 +# define ASN1_R_NO_CONTENT_TYPE 209 +# define ASN1_R_NO_MATCHING_CHOICE_TYPE 143 +# define ASN1_R_NO_MULTIPART_BODY_FAILURE 210 +# define ASN1_R_NO_MULTIPART_BOUNDARY 211 +# define ASN1_R_NO_SIG_CONTENT_TYPE 212 +# define ASN1_R_NULL_IS_WRONG_LENGTH 144 +# define ASN1_R_OBJECT_NOT_ASCII_FORMAT 191 +# define ASN1_R_ODD_NUMBER_OF_CHARS 145 +# define ASN1_R_SECOND_NUMBER_TOO_LARGE 147 +# define ASN1_R_SEQUENCE_LENGTH_MISMATCH 148 +# define ASN1_R_SEQUENCE_NOT_CONSTRUCTED 149 +# define ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG 192 +# define ASN1_R_SHORT_LINE 150 +# define ASN1_R_SIG_INVALID_MIME_TYPE 213 +# define ASN1_R_STREAMING_NOT_SUPPORTED 202 +# define ASN1_R_STRING_TOO_LONG 151 +# define ASN1_R_STRING_TOO_SHORT 152 +# define ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 154 +# define ASN1_R_TIME_NOT_ASCII_FORMAT 193 +# define ASN1_R_TOO_LARGE 223 +# define ASN1_R_TOO_LONG 155 +# define ASN1_R_TOO_SMALL 224 +# define ASN1_R_TYPE_NOT_CONSTRUCTED 156 +# define ASN1_R_TYPE_NOT_PRIMITIVE 195 +# define ASN1_R_UNEXPECTED_EOC 159 +# define ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH 215 +# define ASN1_R_UNKNOWN_FORMAT 160 +# define ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM 161 +# define ASN1_R_UNKNOWN_OBJECT_TYPE 162 +# define ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE 163 +# define ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM 199 +# define ASN1_R_UNKNOWN_TAG 194 +# define ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE 164 +# define ASN1_R_UNSUPPORTED_CIPHER 228 +# define ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE 167 +# define ASN1_R_UNSUPPORTED_TYPE 196 +# define ASN1_R_WRONG_INTEGER_TYPE 225 +# define ASN1_R_WRONG_PUBLIC_KEY_TYPE 200 +# define ASN1_R_WRONG_TAG 168 + +#endif diff --git a/noarch/include/node/openssl/asn1t.h b/noarch/include/node/openssl/asn1t.h index a5248293..a450ba0d 100644 --- a/noarch/include/node/openssl/asn1t.h +++ b/noarch/include/node/openssl/asn1t.h @@ -33,7 +33,7 @@ extern "C" { /* Macros for start and end of ASN1_ITEM definition */ # define ASN1_ITEM_start(itname) \ - OPENSSL_GLOBAL const ASN1_ITEM itname##_it = { + const ASN1_ITEM itname##_it = { # define static_ASN1_ITEM_start(itname) \ static const ASN1_ITEM itname##_it = { @@ -44,7 +44,7 @@ extern "C" { # else /* Macro to obtain ASN1_ADB pointer from a type (only used internally) */ -# define ASN1_ADB_ptr(iptr) ((const ASN1_ADB *)(iptr())) +# define ASN1_ADB_ptr(iptr) ((const ASN1_ADB *)((iptr)())) /* Macros for start and end of ASN1_ITEM definition */ @@ -130,7 +130,7 @@ extern "C" { sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ NULL,\ sizeof(stname),\ - #stname \ + #tname \ ASN1_ITEM_end(tname) # define static_ASN1_SEQUENCE_END_name(stname, tname) \ @@ -208,7 +208,7 @@ extern "C" { sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ &tname##_aux,\ sizeof(stname),\ - #stname \ + #tname \ ASN1_ITEM_end(tname) # define static_ASN1_SEQUENCE_END_ref(stname, tname) \ ;\ @@ -325,10 +325,10 @@ extern "C" { /* implicit and explicit helper macros */ # define ASN1_IMP_EX(stname, field, type, tag, ex) \ - ASN1_EX_TYPE(ASN1_TFLG_IMPLICIT | ex, tag, stname, field, type) + ASN1_EX_TYPE(ASN1_TFLG_IMPLICIT | (ex), tag, stname, field, type) # define ASN1_EXP_EX(stname, field, type, tag, ex) \ - ASN1_EX_TYPE(ASN1_TFLG_EXPLICIT | ex, tag, stname, field, type) + ASN1_EX_TYPE(ASN1_TFLG_EXPLICIT | (ex), tag, stname, field, type) /* Any defined by macros: the field used is in the table itself */ @@ -531,10 +531,10 @@ struct ASN1_ADB_TABLE_st { # define ASN1_TFLG_TAG_MASK (0x3 << 3) /* context specific IMPLICIT */ -# define ASN1_TFLG_IMPLICIT ASN1_TFLG_IMPTAG|ASN1_TFLG_CONTEXT +# define ASN1_TFLG_IMPLICIT (ASN1_TFLG_IMPTAG|ASN1_TFLG_CONTEXT) /* context specific EXPLICIT */ -# define ASN1_TFLG_EXPLICIT ASN1_TFLG_EXPTAG|ASN1_TFLG_CONTEXT +# define ASN1_TFLG_EXPLICIT (ASN1_TFLG_EXPTAG|ASN1_TFLG_CONTEXT) /* * If tagging is in force these determine the type of tag to use. Otherwise @@ -906,8 +906,24 @@ DECLARE_ASN1_ITEM(ASN1_FBOOLEAN) DECLARE_ASN1_ITEM(ASN1_SEQUENCE) DECLARE_ASN1_ITEM(CBIGNUM) DECLARE_ASN1_ITEM(BIGNUM) +DECLARE_ASN1_ITEM(INT32) +DECLARE_ASN1_ITEM(ZINT32) +DECLARE_ASN1_ITEM(UINT32) +DECLARE_ASN1_ITEM(ZUINT32) +DECLARE_ASN1_ITEM(INT64) +DECLARE_ASN1_ITEM(ZINT64) +DECLARE_ASN1_ITEM(UINT64) +DECLARE_ASN1_ITEM(ZUINT64) + +# if OPENSSL_API_COMPAT < 0x10200000L +/* + * LONG and ZLONG are strongly discouraged for use as stored data, as the + * underlying C type (long) differs in size depending on the architecture. + * They are designed with 32-bit longs in mind. + */ DECLARE_ASN1_ITEM(LONG) DECLARE_ASN1_ITEM(ZLONG) +# endif DEFINE_STACK_OF(ASN1_VALUE) diff --git a/noarch/include/node/openssl/async.h b/noarch/include/node/openssl/async.h index 5b2e496d..7052b890 100644 --- a/noarch/include/node/openssl/async.h +++ b/noarch/include/node/openssl/async.h @@ -1,5 +1,5 @@ /* - * Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -22,6 +22,7 @@ #define OSSL_ASYNC_FD int #define OSSL_BAD_ASYNC_FD -1 #endif +# include # ifdef __cplusplus @@ -68,29 +69,6 @@ ASYNC_WAIT_CTX *ASYNC_get_wait_ctx(ASYNC_JOB *job); void ASYNC_block_pause(void); void ASYNC_unblock_pause(void); -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_ASYNC_strings(void); - -/* Error codes for the ASYNC functions. */ - -/* Function codes. */ -# define ASYNC_F_ASYNC_CTX_NEW 100 -# define ASYNC_F_ASYNC_INIT_THREAD 101 -# define ASYNC_F_ASYNC_JOB_NEW 102 -# define ASYNC_F_ASYNC_PAUSE_JOB 103 -# define ASYNC_F_ASYNC_START_FUNC 104 -# define ASYNC_F_ASYNC_START_JOB 105 - -/* Reason codes. */ -# define ASYNC_R_FAILED_TO_SET_POOL 101 -# define ASYNC_R_FAILED_TO_SWAP_CONTEXT 102 -# define ASYNC_R_INIT_FAILED 105 -# define ASYNC_R_INVALID_POOL_SIZE 103 # ifdef __cplusplus } diff --git a/noarch/include/node/openssl/asyncerr.h b/noarch/include/node/openssl/asyncerr.h new file mode 100644 index 00000000..5497ba75 --- /dev/null +++ b/noarch/include/node/openssl/asyncerr.h @@ -0,0 +1,38 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_ASYNCERR_H +# define HEADER_ASYNCERR_H + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_ASYNC_strings(void); + +/* + * ASYNC function codes. + */ +# define ASYNC_F_ASYNC_CTX_NEW 100 +# define ASYNC_F_ASYNC_INIT_THREAD 101 +# define ASYNC_F_ASYNC_JOB_NEW 102 +# define ASYNC_F_ASYNC_PAUSE_JOB 103 +# define ASYNC_F_ASYNC_START_FUNC 104 +# define ASYNC_F_ASYNC_START_JOB 105 +# define ASYNC_F_ASYNC_WAIT_CTX_SET_WAIT_FD 106 + +/* + * ASYNC reason codes. + */ +# define ASYNC_R_FAILED_TO_SET_POOL 101 +# define ASYNC_R_FAILED_TO_SWAP_CONTEXT 102 +# define ASYNC_R_INIT_FAILED 105 +# define ASYNC_R_INVALID_POOL_SIZE 103 + +#endif diff --git a/noarch/include/node/openssl/bio.h b/noarch/include/node/openssl/bio.h index 3a728625..2888b42d 100644 --- a/noarch/include/node/openssl/bio.h +++ b/noarch/include/node/openssl/bio.h @@ -18,6 +18,7 @@ # include # include +# include # ifndef OPENSSL_NO_SCTP # include @@ -87,6 +88,7 @@ extern "C" { # define BIO_CTRL_SET_CALLBACK 14/* opt - set callback function */ # define BIO_CTRL_GET_CALLBACK 15/* opt - set callback function */ +# define BIO_CTRL_PEEK 29/* BIO_f_buffer special */ # define BIO_CTRL_SET_FILENAME 30/* BIO_s_file special */ /* dgram BIO stuff */ @@ -236,8 +238,15 @@ void BIO_clear_flags(BIO *b, int flags); typedef long (*BIO_callback_fn)(BIO *b, int oper, const char *argp, int argi, long argl, long ret); +typedef long (*BIO_callback_fn_ex)(BIO *b, int oper, const char *argp, + size_t len, int argi, + long argl, int ret, size_t *processed); BIO_callback_fn BIO_get_callback(const BIO *b); void BIO_set_callback(BIO *b, BIO_callback_fn callback); + +BIO_callback_fn_ex BIO_get_callback_ex(const BIO *b); +void BIO_set_callback_ex(BIO *b, BIO_callback_fn_ex callback); + char *BIO_get_callback_arg(const BIO *b); void BIO_set_callback_arg(BIO *b, char *arg); @@ -359,9 +368,12 @@ struct bio_dgram_sctp_prinfo { # define BIO_FAMILY_IPANY 256 /* BIO_s_connect() */ -# define BIO_set_conn_hostname(b,name) BIO_ctrl(b,BIO_C_SET_CONNECT,0,(char *)name) -# define BIO_set_conn_port(b,port) BIO_ctrl(b,BIO_C_SET_CONNECT,1,(char *)port) -# define BIO_set_conn_address(b,addr) BIO_ctrl(b,BIO_C_SET_CONNECT,2,(char *)addr) +# define BIO_set_conn_hostname(b,name) BIO_ctrl(b,BIO_C_SET_CONNECT,0, \ + (char *)(name)) +# define BIO_set_conn_port(b,port) BIO_ctrl(b,BIO_C_SET_CONNECT,1, \ + (char *)(port)) +# define BIO_set_conn_address(b,addr) BIO_ctrl(b,BIO_C_SET_CONNECT,2, \ + (char *)(addr)) # define BIO_set_conn_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_CONNECT,3,f) # define BIO_get_conn_hostname(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,0)) # define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) @@ -370,15 +382,18 @@ struct bio_dgram_sctp_prinfo { # define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) /* BIO_s_accept() */ -# define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0,(char *)name) -# define BIO_set_accept_port(b,port) BIO_ctrl(b,BIO_C_SET_ACCEPT,1,(char *)port) +# define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ + (char *)(name)) +# define BIO_set_accept_port(b,port) BIO_ctrl(b,BIO_C_SET_ACCEPT,1, \ + (char *)(port)) # define BIO_get_accept_name(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,0)) # define BIO_get_accept_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,1)) # define BIO_get_peer_name(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,2)) # define BIO_get_peer_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,3)) /* #define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) */ # define BIO_set_nbio_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,2,(n)?(void *)"a":NULL) -# define BIO_set_accept_bios(b,bio) BIO_ctrl(b,BIO_C_SET_ACCEPT,3,(char *)bio) +# define BIO_set_accept_bios(b,bio) BIO_ctrl(b,BIO_C_SET_ACCEPT,3, \ + (char *)(bio)) # define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) # define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) @@ -398,11 +413,11 @@ struct bio_dgram_sctp_prinfo { /* BIO_s_datagram(), BIO_s_fd(), BIO_s_socket(), BIO_s_accept() and BIO_s_connect() */ # define BIO_set_fd(b,fd,c) BIO_int_ctrl(b,BIO_C_SET_FD,c,fd) -# define BIO_get_fd(b,c) BIO_ctrl(b,BIO_C_GET_FD,0,(char *)c) +# define BIO_get_fd(b,c) BIO_ctrl(b,BIO_C_GET_FD,0,(char *)(c)) /* BIO_s_file() */ -# define BIO_set_fp(b,fp,c) BIO_ctrl(b,BIO_C_SET_FILE_PTR,c,(char *)fp) -# define BIO_get_fp(b,fpp) BIO_ctrl(b,BIO_C_GET_FILE_PTR,0,(char *)fpp) +# define BIO_set_fp(b,fp,c) BIO_ctrl(b,BIO_C_SET_FILE_PTR,c,(char *)(fp)) +# define BIO_get_fp(b,fpp) BIO_ctrl(b,BIO_C_GET_FILE_PTR,0,(char *)(fpp)) /* BIO_s_fd() and BIO_s_file() */ # define BIO_seek(b,ofs) (int)BIO_ctrl(b,BIO_C_FILE_SEEK,ofs,NULL) @@ -420,7 +435,7 @@ struct bio_dgram_sctp_prinfo { int BIO_read_filename(BIO *b, const char *name); # else # define BIO_read_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ - BIO_CLOSE|BIO_FP_READ,(char *)name) + BIO_CLOSE|BIO_FP_READ,(char *)(name)) # endif # define BIO_write_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ BIO_CLOSE|BIO_FP_WRITE,name) @@ -435,8 +450,8 @@ int BIO_read_filename(BIO *b, const char *name); * next_bio field in the bio. So when you free the BIO, make sure you are * doing a BIO_free_all() to catch the underlying BIO. */ -# define BIO_set_ssl(b,ssl,c) BIO_ctrl(b,BIO_C_SET_SSL,c,(char *)ssl) -# define BIO_get_ssl(b,sslp) BIO_ctrl(b,BIO_C_GET_SSL,0,(char *)sslp) +# define BIO_set_ssl(b,ssl,c) BIO_ctrl(b,BIO_C_SET_SSL,c,(char *)(ssl)) +# define BIO_get_ssl(b,sslp) BIO_ctrl(b,BIO_C_GET_SSL,0,(char *)(sslp)) # define BIO_set_ssl_mode(b,client) BIO_ctrl(b,BIO_C_SSL_MODE,client,NULL) # define BIO_set_ssl_renegotiate_bytes(b,num) \ BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_BYTES,num,NULL) @@ -446,11 +461,12 @@ int BIO_read_filename(BIO *b, const char *name); BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT,seconds,NULL) /* defined in evp.h */ -/* #define BIO_set_md(b,md) BIO_ctrl(b,BIO_C_SET_MD,1,(char *)md) */ +/* #define BIO_set_md(b,md) BIO_ctrl(b,BIO_C_SET_MD,1,(char *)(md)) */ -# define BIO_get_mem_data(b,pp) BIO_ctrl(b,BIO_CTRL_INFO,0,(char *)pp) -# define BIO_set_mem_buf(b,bm,c) BIO_ctrl(b,BIO_C_SET_BUF_MEM,c,(char *)bm) -# define BIO_get_mem_ptr(b,pp) BIO_ctrl(b,BIO_C_GET_BUF_MEM_PTR,0,(char *)pp) +# define BIO_get_mem_data(b,pp) BIO_ctrl(b,BIO_CTRL_INFO,0,(char *)(pp)) +# define BIO_set_mem_buf(b,bm,c) BIO_ctrl(b,BIO_C_SET_BUF_MEM,c,(char *)(bm)) +# define BIO_get_mem_ptr(b,pp) BIO_ctrl(b,BIO_C_GET_BUF_MEM_PTR,0, \ + (char *)(pp)) # define BIO_set_mem_eof_return(b,v) \ BIO_ctrl(b,BIO_C_SET_BUF_MEM_EOF_RETURN,v,NULL) @@ -480,6 +496,7 @@ size_t BIO_ctrl_wpending(BIO *b); /* For the BIO_f_buffer() type */ # define BIO_buffer_get_num_lines(b) BIO_ctrl(b,BIO_CTRL_GET,0,NULL) +# define BIO_buffer_peek(b,s,l) BIO_ctrl(b,BIO_CTRL_PEEK,(l),(s)) /* For BIO_s_bio() */ # define BIO_set_write_buf_size(b,size) (int)BIO_ctrl(b,BIO_C_SET_WRITE_BUF_SIZE,size,NULL) @@ -496,17 +513,17 @@ int BIO_ctrl_reset_read_request(BIO *b); /* ctrl macros for dgram */ # define BIO_ctrl_dgram_connect(b,peer) \ - (int)BIO_ctrl(b,BIO_CTRL_DGRAM_CONNECT,0, (char *)peer) + (int)BIO_ctrl(b,BIO_CTRL_DGRAM_CONNECT,0, (char *)(peer)) # define BIO_ctrl_set_connected(b,peer) \ - (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_CONNECTED, 0, (char *)peer) + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_CONNECTED, 0, (char *)(peer)) # define BIO_dgram_recv_timedout(b) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP, 0, NULL) # define BIO_dgram_send_timedout(b) \ (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP, 0, NULL) # define BIO_dgram_get_peer(b,peer) \ - (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)peer) + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) # define BIO_dgram_set_peer(b,peer) \ - (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)peer) + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) # define BIO_dgram_get_mtu_overhead(b) \ (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) @@ -542,9 +559,11 @@ void BIO_set_shutdown(BIO *a, int shut); int BIO_get_shutdown(BIO *a); void BIO_vfree(BIO *a); int BIO_up_ref(BIO *a); -int BIO_read(BIO *b, void *data, int len); +int BIO_read(BIO *b, void *data, int dlen); +int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); int BIO_gets(BIO *bp, char *buf, int size); -int BIO_write(BIO *b, const void *data, int len); +int BIO_write(BIO *b, const void *data, int dlen); +int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); int BIO_puts(BIO *bp, const char *buf); int BIO_indent(BIO *b, int indent, int max); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); @@ -655,6 +674,9 @@ enum BIO_lookup_type { int BIO_lookup(const char *host, const char *service, enum BIO_lookup_type lookup_type, int family, int socktype, BIO_ADDRINFO **res); +int BIO_lookup_ex(const char *host, const char *service, + int lookup_type, int family, int socktype, int protocol, + BIO_ADDRINFO **res); int BIO_sock_error(int sock); int BIO_socket_ioctl(int fd, long type, void *arg); int BIO_socket_nbio(int fd, int mode); @@ -687,6 +709,7 @@ int BIO_sock_info(int sock, int BIO_socket(int domain, int socktype, int protocol, int options); int BIO_connect(int sock, const BIO_ADDR *addr, int options); +int BIO_bind(int sock, const BIO_ADDR *addr, int options); int BIO_listen(int sock, const BIO_ADDR *addr, int options); int BIO_accept_ex(int accept_sock, BIO_ADDR *addr, int options); int BIO_closesocket(int sock); @@ -712,30 +735,50 @@ void BIO_copy_next_retry(BIO *b); * long BIO_ghbn_ctrl(int cmd,int iarg,char *parg); */ -# ifdef __GNUC__ -# define __bio_h__attr__ __attribute__ -# else -# define __bio_h__attr__(x) +# define ossl_bio__attr__(x) +# if defined(__GNUC__) && defined(__STDC_VERSION__) \ + && !defined(__APPLE__) + /* + * Because we support the 'z' modifier, which made its appearance in C99, + * we can't use __attribute__ with pre C99 dialects. + */ +# if __STDC_VERSION__ >= 199901L +# undef ossl_bio__attr__ +# define ossl_bio__attr__ __attribute__ +# if __GNUC__*10 + __GNUC_MINOR__ >= 44 +# define ossl_bio__printf__ __gnu_printf__ +# else +# define ossl_bio__printf__ __printf__ +# endif +# endif # endif int BIO_printf(BIO *bio, const char *format, ...) -__bio_h__attr__((__format__(__printf__, 2, 3))); +ossl_bio__attr__((__format__(ossl_bio__printf__, 2, 3))); int BIO_vprintf(BIO *bio, const char *format, va_list args) -__bio_h__attr__((__format__(__printf__, 2, 0))); +ossl_bio__attr__((__format__(ossl_bio__printf__, 2, 0))); int BIO_snprintf(char *buf, size_t n, const char *format, ...) -__bio_h__attr__((__format__(__printf__, 3, 4))); +ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 4))); int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args) -__bio_h__attr__((__format__(__printf__, 3, 0))); -# undef __bio_h__attr__ +ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); +# undef ossl_bio__attr__ +# undef ossl_bio__printf__ BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); +int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, + size_t *); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); +int BIO_meth_set_write_ex(BIO_METHOD *biom, + int (*bwrite) (BIO *, const char *, size_t, size_t *)); int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); +int BIO_meth_set_read_ex(BIO_METHOD *biom, + int (*bread) (BIO *, char *, size_t, size_t *)); int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); @@ -755,97 +798,6 @@ int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, BIO_info_cb *)); -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_BIO_strings(void); - -/* Error codes for the BIO functions. */ - -/* Function codes. */ -# define BIO_F_ACPT_STATE 100 -# define BIO_F_ADDR_STRINGS 134 -# define BIO_F_BIO_ACCEPT 101 -# define BIO_F_BIO_ACCEPT_EX 137 -# define BIO_F_BIO_ADDR_NEW 144 -# define BIO_F_BIO_CALLBACK_CTRL 131 -# define BIO_F_BIO_CONNECT 138 -# define BIO_F_BIO_CTRL 103 -# define BIO_F_BIO_GETS 104 -# define BIO_F_BIO_GET_HOST_IP 106 -# define BIO_F_BIO_GET_NEW_INDEX 102 -# define BIO_F_BIO_GET_PORT 107 -# define BIO_F_BIO_LISTEN 139 -# define BIO_F_BIO_LOOKUP 135 -# define BIO_F_BIO_MAKE_PAIR 121 -# define BIO_F_BIO_METH_NEW 146 -# define BIO_F_BIO_NEW 108 -# define BIO_F_BIO_NEW_FILE 109 -# define BIO_F_BIO_NEW_MEM_BUF 126 -# define BIO_F_BIO_NREAD 123 -# define BIO_F_BIO_NREAD0 124 -# define BIO_F_BIO_NWRITE 125 -# define BIO_F_BIO_NWRITE0 122 -# define BIO_F_BIO_PARSE_HOSTSERV 136 -# define BIO_F_BIO_PUTS 110 -# define BIO_F_BIO_READ 111 -# define BIO_F_BIO_SOCKET 140 -# define BIO_F_BIO_SOCKET_NBIO 142 -# define BIO_F_BIO_SOCK_INFO 141 -# define BIO_F_BIO_SOCK_INIT 112 -# define BIO_F_BIO_WRITE 113 -# define BIO_F_BUFFER_CTRL 114 -# define BIO_F_CONN_CTRL 127 -# define BIO_F_CONN_STATE 115 -# define BIO_F_DGRAM_SCTP_READ 132 -# define BIO_F_DGRAM_SCTP_WRITE 133 -# define BIO_F_FILE_CTRL 116 -# define BIO_F_FILE_READ 130 -# define BIO_F_LINEBUFFER_CTRL 129 -# define BIO_F_MEM_WRITE 117 -# define BIO_F_SSL_NEW 118 - -/* Reason codes. */ -# define BIO_R_ACCEPT_ERROR 100 -# define BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET 141 -# define BIO_R_AMBIGUOUS_HOST_OR_SERVICE 129 -# define BIO_R_BAD_FOPEN_MODE 101 -# define BIO_R_BROKEN_PIPE 124 -# define BIO_R_CONNECT_ERROR 103 -# define BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET 107 -# define BIO_R_GETSOCKNAME_ERROR 132 -# define BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS 133 -# define BIO_R_GETTING_SOCKTYPE 134 -# define BIO_R_INVALID_ARGUMENT 125 -# define BIO_R_INVALID_SOCKET 135 -# define BIO_R_IN_USE 123 -# define BIO_R_LISTEN_V6_ONLY 136 -# define BIO_R_LOOKUP_RETURNED_NOTHING 142 -# define BIO_R_MALFORMED_HOST_OR_SERVICE 130 -# define BIO_R_NBIO_CONNECT_ERROR 110 -# define BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED 143 -# define BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED 144 -# define BIO_R_NO_PORT_DEFINED 113 -# define BIO_R_NO_SUCH_FILE 128 -# define BIO_R_NULL_PARAMETER 115 -# define BIO_R_UNABLE_TO_BIND_SOCKET 117 -# define BIO_R_UNABLE_TO_CREATE_SOCKET 118 -# define BIO_R_UNABLE_TO_KEEPALIVE 137 -# define BIO_R_UNABLE_TO_LISTEN_SOCKET 119 -# define BIO_R_UNABLE_TO_NODELAY 138 -# define BIO_R_UNABLE_TO_REUSEADDR 139 -# define BIO_R_UNAVAILABLE_IP_FAMILY 145 -# define BIO_R_UNINITIALIZED 120 -# define BIO_R_UNKNOWN_INFO_TYPE 140 -# define BIO_R_UNSUPPORTED_IP_FAMILY 146 -# define BIO_R_UNSUPPORTED_METHOD 121 -# define BIO_R_UNSUPPORTED_PROTOCOL_FAMILY 131 -# define BIO_R_WRITE_TO_READ_ONLY_BIO 126 -# define BIO_R_WSASTARTUP 122 - # ifdef __cplusplus } # endif diff --git a/noarch/include/node/openssl/bioerr.h b/noarch/include/node/openssl/bioerr.h new file mode 100644 index 00000000..f119a59c --- /dev/null +++ b/noarch/include/node/openssl/bioerr.h @@ -0,0 +1,120 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BIOERR_H +# define HEADER_BIOERR_H + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_BIO_strings(void); + +/* + * BIO function codes. + */ +# define BIO_F_ACPT_STATE 100 +# define BIO_F_ADDRINFO_WRAP 148 +# define BIO_F_ADDR_STRINGS 134 +# define BIO_F_BIO_ACCEPT 101 +# define BIO_F_BIO_ACCEPT_EX 137 +# define BIO_F_BIO_ACCEPT_NEW 152 +# define BIO_F_BIO_ADDR_NEW 144 +# define BIO_F_BIO_BIND 147 +# define BIO_F_BIO_CALLBACK_CTRL 131 +# define BIO_F_BIO_CONNECT 138 +# define BIO_F_BIO_CONNECT_NEW 153 +# define BIO_F_BIO_CTRL 103 +# define BIO_F_BIO_GETS 104 +# define BIO_F_BIO_GET_HOST_IP 106 +# define BIO_F_BIO_GET_NEW_INDEX 102 +# define BIO_F_BIO_GET_PORT 107 +# define BIO_F_BIO_LISTEN 139 +# define BIO_F_BIO_LOOKUP 135 +# define BIO_F_BIO_LOOKUP_EX 143 +# define BIO_F_BIO_MAKE_PAIR 121 +# define BIO_F_BIO_METH_NEW 146 +# define BIO_F_BIO_NEW 108 +# define BIO_F_BIO_NEW_DGRAM_SCTP 145 +# define BIO_F_BIO_NEW_FILE 109 +# define BIO_F_BIO_NEW_MEM_BUF 126 +# define BIO_F_BIO_NREAD 123 +# define BIO_F_BIO_NREAD0 124 +# define BIO_F_BIO_NWRITE 125 +# define BIO_F_BIO_NWRITE0 122 +# define BIO_F_BIO_PARSE_HOSTSERV 136 +# define BIO_F_BIO_PUTS 110 +# define BIO_F_BIO_READ 111 +# define BIO_F_BIO_READ_EX 105 +# define BIO_F_BIO_READ_INTERN 120 +# define BIO_F_BIO_SOCKET 140 +# define BIO_F_BIO_SOCKET_NBIO 142 +# define BIO_F_BIO_SOCK_INFO 141 +# define BIO_F_BIO_SOCK_INIT 112 +# define BIO_F_BIO_WRITE 113 +# define BIO_F_BIO_WRITE_EX 119 +# define BIO_F_BIO_WRITE_INTERN 128 +# define BIO_F_BUFFER_CTRL 114 +# define BIO_F_CONN_CTRL 127 +# define BIO_F_CONN_STATE 115 +# define BIO_F_DGRAM_SCTP_NEW 149 +# define BIO_F_DGRAM_SCTP_READ 132 +# define BIO_F_DGRAM_SCTP_WRITE 133 +# define BIO_F_DOAPR_OUTCH 150 +# define BIO_F_FILE_CTRL 116 +# define BIO_F_FILE_READ 130 +# define BIO_F_LINEBUFFER_CTRL 129 +# define BIO_F_LINEBUFFER_NEW 151 +# define BIO_F_MEM_WRITE 117 +# define BIO_F_NBIOF_NEW 154 +# define BIO_F_SLG_WRITE 155 +# define BIO_F_SSL_NEW 118 + +/* + * BIO reason codes. + */ +# define BIO_R_ACCEPT_ERROR 100 +# define BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET 141 +# define BIO_R_AMBIGUOUS_HOST_OR_SERVICE 129 +# define BIO_R_BAD_FOPEN_MODE 101 +# define BIO_R_BROKEN_PIPE 124 +# define BIO_R_CONNECT_ERROR 103 +# define BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET 107 +# define BIO_R_GETSOCKNAME_ERROR 132 +# define BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS 133 +# define BIO_R_GETTING_SOCKTYPE 134 +# define BIO_R_INVALID_ARGUMENT 125 +# define BIO_R_INVALID_SOCKET 135 +# define BIO_R_IN_USE 123 +# define BIO_R_LENGTH_TOO_LONG 102 +# define BIO_R_LISTEN_V6_ONLY 136 +# define BIO_R_LOOKUP_RETURNED_NOTHING 142 +# define BIO_R_MALFORMED_HOST_OR_SERVICE 130 +# define BIO_R_NBIO_CONNECT_ERROR 110 +# define BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED 143 +# define BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED 144 +# define BIO_R_NO_PORT_DEFINED 113 +# define BIO_R_NO_SUCH_FILE 128 +# define BIO_R_NULL_PARAMETER 115 +# define BIO_R_UNABLE_TO_BIND_SOCKET 117 +# define BIO_R_UNABLE_TO_CREATE_SOCKET 118 +# define BIO_R_UNABLE_TO_KEEPALIVE 137 +# define BIO_R_UNABLE_TO_LISTEN_SOCKET 119 +# define BIO_R_UNABLE_TO_NODELAY 138 +# define BIO_R_UNABLE_TO_REUSEADDR 139 +# define BIO_R_UNAVAILABLE_IP_FAMILY 145 +# define BIO_R_UNINITIALIZED 120 +# define BIO_R_UNKNOWN_INFO_TYPE 140 +# define BIO_R_UNSUPPORTED_IP_FAMILY 146 +# define BIO_R_UNSUPPORTED_METHOD 121 +# define BIO_R_UNSUPPORTED_PROTOCOL_FAMILY 131 +# define BIO_R_WRITE_TO_READ_ONLY_BIO 126 +# define BIO_R_WSASTARTUP 122 + +#endif diff --git a/noarch/include/node/openssl/bn.h b/noarch/include/node/openssl/bn.h index 301edd52..8af05d00 100644 --- a/noarch/include/node/openssl/bn.h +++ b/noarch/include/node/openssl/bn.h @@ -1,5 +1,6 @@ /* * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -7,20 +8,6 @@ * https://www.openssl.org/source/license.html */ -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * - * Portions of the attached software ("Contribution") are developed by - * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. - * - * The Contribution is licensed pursuant to the Eric Young open source - * license provided above. - * - * The binary polynomial arithmetic software is originally written by - * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. - * - */ - #ifndef HEADER_BN_H # define HEADER_BN_H @@ -31,6 +18,7 @@ # include # include # include +# include #ifdef __cplusplus extern "C" { @@ -217,8 +205,10 @@ void BN_CTX_start(BN_CTX *ctx); BIGNUM *BN_CTX_get(BN_CTX *ctx); void BN_CTX_end(BN_CTX *ctx); int BN_rand(BIGNUM *rnd, int bits, int top, int bottom); -int BN_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom); +int BN_priv_rand(BIGNUM *rnd, int bits, int top, int bottom); int BN_rand_range(BIGNUM *rnd, const BIGNUM *range); +int BN_priv_rand_range(BIGNUM *rnd, const BIGNUM *range); +int BN_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom); int BN_pseudo_rand_range(BIGNUM *rnd, const BIGNUM *range); int BN_num_bits(const BIGNUM *a); int BN_num_bits_word(BN_ULONG l); @@ -542,83 +532,6 @@ BIGNUM *BN_get_rfc3526_prime_8192(BIGNUM *bn); int BN_bntest_rand(BIGNUM *rnd, int bits, int top, int bottom); -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_BN_strings(void); - -/* Error codes for the BN functions. */ - -/* Function codes. */ -# define BN_F_BNRAND 127 -# define BN_F_BN_BLINDING_CONVERT_EX 100 -# define BN_F_BN_BLINDING_CREATE_PARAM 128 -# define BN_F_BN_BLINDING_INVERT_EX 101 -# define BN_F_BN_BLINDING_NEW 102 -# define BN_F_BN_BLINDING_UPDATE 103 -# define BN_F_BN_BN2DEC 104 -# define BN_F_BN_BN2HEX 105 -# define BN_F_BN_COMPUTE_WNAF 142 -# define BN_F_BN_CTX_GET 116 -# define BN_F_BN_CTX_NEW 106 -# define BN_F_BN_CTX_START 129 -# define BN_F_BN_DIV 107 -# define BN_F_BN_DIV_RECP 130 -# define BN_F_BN_EXP 123 -# define BN_F_BN_EXPAND_INTERNAL 120 -# define BN_F_BN_GENCB_NEW 143 -# define BN_F_BN_GENERATE_DSA_NONCE 140 -# define BN_F_BN_GENERATE_PRIME_EX 141 -# define BN_F_BN_GF2M_MOD 131 -# define BN_F_BN_GF2M_MOD_EXP 132 -# define BN_F_BN_GF2M_MOD_MUL 133 -# define BN_F_BN_GF2M_MOD_SOLVE_QUAD 134 -# define BN_F_BN_GF2M_MOD_SOLVE_QUAD_ARR 135 -# define BN_F_BN_GF2M_MOD_SQR 136 -# define BN_F_BN_GF2M_MOD_SQRT 137 -# define BN_F_BN_LSHIFT 145 -# define BN_F_BN_MOD_EXP2_MONT 118 -# define BN_F_BN_MOD_EXP_MONT 109 -# define BN_F_BN_MOD_EXP_MONT_CONSTTIME 124 -# define BN_F_BN_MOD_EXP_MONT_WORD 117 -# define BN_F_BN_MOD_EXP_RECP 125 -# define BN_F_BN_MOD_EXP_SIMPLE 126 -# define BN_F_BN_MOD_INVERSE 110 -# define BN_F_BN_MOD_INVERSE_NO_BRANCH 139 -# define BN_F_BN_MOD_LSHIFT_QUICK 119 -# define BN_F_BN_MOD_SQRT 121 -# define BN_F_BN_MPI2BN 112 -# define BN_F_BN_NEW 113 -# define BN_F_BN_RAND 114 -# define BN_F_BN_RAND_RANGE 122 -# define BN_F_BN_RSHIFT 146 -# define BN_F_BN_SET_WORDS 144 -# define BN_F_BN_USUB 115 - -/* Reason codes. */ -# define BN_R_ARG2_LT_ARG3 100 -# define BN_R_BAD_RECIPROCAL 101 -# define BN_R_BIGNUM_TOO_LONG 114 -# define BN_R_BITS_TOO_SMALL 118 -# define BN_R_CALLED_WITH_EVEN_MODULUS 102 -# define BN_R_DIV_BY_ZERO 103 -# define BN_R_ENCODING_ERROR 104 -# define BN_R_EXPAND_ON_STATIC_BIGNUM_DATA 105 -# define BN_R_INPUT_NOT_REDUCED 110 -# define BN_R_INVALID_LENGTH 106 -# define BN_R_INVALID_RANGE 115 -# define BN_R_INVALID_SHIFT 119 -# define BN_R_NOT_A_SQUARE 111 -# define BN_R_NOT_INITIALIZED 107 -# define BN_R_NO_INVERSE 108 -# define BN_R_NO_SOLUTION 116 -# define BN_R_PRIVATE_KEY_TOO_LARGE 117 -# define BN_R_P_IS_NOT_PRIME 112 -# define BN_R_TOO_MANY_ITERATIONS 113 -# define BN_R_TOO_MANY_TEMPORARY_VARIABLES 109 # ifdef __cplusplus } diff --git a/noarch/include/node/openssl/bn_conf_no-asm.h b/noarch/include/node/openssl/bn_conf_no-asm.h index d577b15c..e7cbb88d 100644 --- a/noarch/include/node/openssl/bn_conf_no-asm.h +++ b/noarch/include/node/openssl/bn_conf_no-asm.h @@ -21,6 +21,8 @@ # include "./archs/VC-WIN32/no-asm/crypto/include/internal/bn_conf.h" #elif defined(_WIN32) && defined(_M_X64) # include "./archs/VC-WIN64A/no-asm/crypto/include/internal/bn_conf.h" +#elif defined(_WIN32) && defined(_M_ARM64) +# include "./archs/VC-WIN64-ARM/no-asm/crypto/include/internal/bn_conf.h" #elif (defined(__FreeBSD__) || defined(__OpenBSD__)) && defined(__i386__) # include "./archs/BSD-x86/no-asm/crypto/include/internal/bn_conf.h" #elif (defined(__FreeBSD__) || defined(__OpenBSD__)) && defined(__x86_64__) diff --git a/noarch/include/node/openssl/bnerr.h b/noarch/include/node/openssl/bnerr.h new file mode 100644 index 00000000..8a022cc0 --- /dev/null +++ b/noarch/include/node/openssl/bnerr.h @@ -0,0 +1,96 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BNERR_H +# define HEADER_BNERR_H + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_BN_strings(void); + +/* + * BN function codes. + */ +# define BN_F_BNRAND 127 +# define BN_F_BNRAND_RANGE 138 +# define BN_F_BN_BLINDING_CONVERT_EX 100 +# define BN_F_BN_BLINDING_CREATE_PARAM 128 +# define BN_F_BN_BLINDING_INVERT_EX 101 +# define BN_F_BN_BLINDING_NEW 102 +# define BN_F_BN_BLINDING_UPDATE 103 +# define BN_F_BN_BN2DEC 104 +# define BN_F_BN_BN2HEX 105 +# define BN_F_BN_COMPUTE_WNAF 142 +# define BN_F_BN_CTX_GET 116 +# define BN_F_BN_CTX_NEW 106 +# define BN_F_BN_CTX_START 129 +# define BN_F_BN_DIV 107 +# define BN_F_BN_DIV_RECP 130 +# define BN_F_BN_EXP 123 +# define BN_F_BN_EXPAND_INTERNAL 120 +# define BN_F_BN_GENCB_NEW 143 +# define BN_F_BN_GENERATE_DSA_NONCE 140 +# define BN_F_BN_GENERATE_PRIME_EX 141 +# define BN_F_BN_GF2M_MOD 131 +# define BN_F_BN_GF2M_MOD_EXP 132 +# define BN_F_BN_GF2M_MOD_MUL 133 +# define BN_F_BN_GF2M_MOD_SOLVE_QUAD 134 +# define BN_F_BN_GF2M_MOD_SOLVE_QUAD_ARR 135 +# define BN_F_BN_GF2M_MOD_SQR 136 +# define BN_F_BN_GF2M_MOD_SQRT 137 +# define BN_F_BN_LSHIFT 145 +# define BN_F_BN_MOD_EXP2_MONT 118 +# define BN_F_BN_MOD_EXP_MONT 109 +# define BN_F_BN_MOD_EXP_MONT_CONSTTIME 124 +# define BN_F_BN_MOD_EXP_MONT_WORD 117 +# define BN_F_BN_MOD_EXP_RECP 125 +# define BN_F_BN_MOD_EXP_SIMPLE 126 +# define BN_F_BN_MOD_INVERSE 110 +# define BN_F_BN_MOD_INVERSE_NO_BRANCH 139 +# define BN_F_BN_MOD_LSHIFT_QUICK 119 +# define BN_F_BN_MOD_SQRT 121 +# define BN_F_BN_MONT_CTX_NEW 149 +# define BN_F_BN_MPI2BN 112 +# define BN_F_BN_NEW 113 +# define BN_F_BN_POOL_GET 147 +# define BN_F_BN_RAND 114 +# define BN_F_BN_RAND_RANGE 122 +# define BN_F_BN_RECP_CTX_NEW 150 +# define BN_F_BN_RSHIFT 146 +# define BN_F_BN_SET_WORDS 144 +# define BN_F_BN_STACK_PUSH 148 +# define BN_F_BN_USUB 115 + +/* + * BN reason codes. + */ +# define BN_R_ARG2_LT_ARG3 100 +# define BN_R_BAD_RECIPROCAL 101 +# define BN_R_BIGNUM_TOO_LONG 114 +# define BN_R_BITS_TOO_SMALL 118 +# define BN_R_CALLED_WITH_EVEN_MODULUS 102 +# define BN_R_DIV_BY_ZERO 103 +# define BN_R_ENCODING_ERROR 104 +# define BN_R_EXPAND_ON_STATIC_BIGNUM_DATA 105 +# define BN_R_INPUT_NOT_REDUCED 110 +# define BN_R_INVALID_LENGTH 106 +# define BN_R_INVALID_RANGE 115 +# define BN_R_INVALID_SHIFT 119 +# define BN_R_NOT_A_SQUARE 111 +# define BN_R_NOT_INITIALIZED 107 +# define BN_R_NO_INVERSE 108 +# define BN_R_NO_SOLUTION 116 +# define BN_R_PRIVATE_KEY_TOO_LARGE 117 +# define BN_R_P_IS_NOT_PRIME 112 +# define BN_R_TOO_MANY_ITERATIONS 113 +# define BN_R_TOO_MANY_TEMPORARY_VARIABLES 109 + +#endif diff --git a/noarch/include/node/openssl/buffer.h b/noarch/include/node/openssl/buffer.h index 35160b4f..d2765766 100644 --- a/noarch/include/node/openssl/buffer.h +++ b/noarch/include/node/openssl/buffer.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -14,6 +14,7 @@ # ifndef HEADER_CRYPTO_H # include # endif +# include #ifdef __cplusplus @@ -50,22 +51,6 @@ size_t BUF_MEM_grow(BUF_MEM *str, size_t len); size_t BUF_MEM_grow_clean(BUF_MEM *str, size_t len); void BUF_reverse(unsigned char *out, const unsigned char *in, size_t siz); -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_BUF_strings(void); - -/* Error codes for the BUF functions. */ - -/* Function codes. */ -# define BUF_F_BUF_MEM_GROW 100 -# define BUF_F_BUF_MEM_GROW_CLEAN 105 -# define BUF_F_BUF_MEM_NEW 101 - -/* Reason codes. */ # ifdef __cplusplus } diff --git a/noarch/include/node/openssl/buffererr.h b/noarch/include/node/openssl/buffererr.h new file mode 100644 index 00000000..3aee1323 --- /dev/null +++ b/noarch/include/node/openssl/buffererr.h @@ -0,0 +1,30 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BUFERR_H +# define HEADER_BUFERR_H + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_BUF_strings(void); + +/* + * BUF function codes. + */ +# define BUF_F_BUF_MEM_GROW 100 +# define BUF_F_BUF_MEM_GROW_CLEAN 105 +# define BUF_F_BUF_MEM_NEW 101 + +/* + * BUF reason codes. + */ + +#endif diff --git a/noarch/include/node/openssl/cms.h b/noarch/include/node/openssl/cms.h index 7e534e0d..ddf37e56 100644 --- a/noarch/include/node/openssl/cms.h +++ b/noarch/include/node/openssl/cms.h @@ -1,5 +1,5 @@ /* - * Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -15,6 +15,7 @@ # ifndef OPENSSL_NO_CMS # include # include +# include # ifdef __cplusplus extern "C" { # endif @@ -329,181 +330,10 @@ int CMS_RecipientInfo_kari_decrypt(CMS_ContentInfo *cms, int CMS_SharedInfo_encode(unsigned char **pder, X509_ALGOR *kekalg, ASN1_OCTET_STRING *ukm, int keylen); -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_CMS_strings(void); - -/* Error codes for the CMS functions. */ - -/* Function codes. */ -# define CMS_F_CHECK_CONTENT 99 -# define CMS_F_CMS_ADD0_CERT 164 -# define CMS_F_CMS_ADD0_RECIPIENT_KEY 100 -# define CMS_F_CMS_ADD0_RECIPIENT_PASSWORD 165 -# define CMS_F_CMS_ADD1_RECEIPTREQUEST 158 -# define CMS_F_CMS_ADD1_RECIPIENT_CERT 101 -# define CMS_F_CMS_ADD1_SIGNER 102 -# define CMS_F_CMS_ADD1_SIGNINGTIME 103 -# define CMS_F_CMS_COMPRESS 104 -# define CMS_F_CMS_COMPRESSEDDATA_CREATE 105 -# define CMS_F_CMS_COMPRESSEDDATA_INIT_BIO 106 -# define CMS_F_CMS_COPY_CONTENT 107 -# define CMS_F_CMS_COPY_MESSAGEDIGEST 108 -# define CMS_F_CMS_DATA 109 -# define CMS_F_CMS_DATAFINAL 110 -# define CMS_F_CMS_DATAINIT 111 -# define CMS_F_CMS_DECRYPT 112 -# define CMS_F_CMS_DECRYPT_SET1_KEY 113 -# define CMS_F_CMS_DECRYPT_SET1_PASSWORD 166 -# define CMS_F_CMS_DECRYPT_SET1_PKEY 114 -# define CMS_F_CMS_DIGESTALGORITHM_FIND_CTX 115 -# define CMS_F_CMS_DIGESTALGORITHM_INIT_BIO 116 -# define CMS_F_CMS_DIGESTEDDATA_DO_FINAL 117 -# define CMS_F_CMS_DIGEST_VERIFY 118 -# define CMS_F_CMS_ENCODE_RECEIPT 161 -# define CMS_F_CMS_ENCRYPT 119 -# define CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO 120 -# define CMS_F_CMS_ENCRYPTEDDATA_DECRYPT 121 -# define CMS_F_CMS_ENCRYPTEDDATA_ENCRYPT 122 -# define CMS_F_CMS_ENCRYPTEDDATA_SET1_KEY 123 -# define CMS_F_CMS_ENVELOPEDDATA_CREATE 124 -# define CMS_F_CMS_ENVELOPEDDATA_INIT_BIO 125 -# define CMS_F_CMS_ENVELOPED_DATA_INIT 126 -# define CMS_F_CMS_ENV_ASN1_CTRL 171 -# define CMS_F_CMS_FINAL 127 -# define CMS_F_CMS_GET0_CERTIFICATE_CHOICES 128 -# define CMS_F_CMS_GET0_CONTENT 129 -# define CMS_F_CMS_GET0_ECONTENT_TYPE 130 -# define CMS_F_CMS_GET0_ENVELOPED 131 -# define CMS_F_CMS_GET0_REVOCATION_CHOICES 132 -# define CMS_F_CMS_GET0_SIGNED 133 -# define CMS_F_CMS_MSGSIGDIGEST_ADD1 162 -# define CMS_F_CMS_RECEIPTREQUEST_CREATE0 159 -# define CMS_F_CMS_RECEIPT_VERIFY 160 -# define CMS_F_CMS_RECIPIENTINFO_DECRYPT 134 -# define CMS_F_CMS_RECIPIENTINFO_ENCRYPT 169 -# define CMS_F_CMS_RECIPIENTINFO_KARI_ENCRYPT 178 -# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ALG 175 -# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ORIG_ID 173 -# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_REKS 172 -# define CMS_F_CMS_RECIPIENTINFO_KARI_ORIG_ID_CMP 174 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_DECRYPT 135 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_ENCRYPT 136 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_GET0_ID 137 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_ID_CMP 138 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_CERT_CMP 139 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_DECRYPT 140 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_ENCRYPT 141 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_ALGS 142 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_SIGNER_ID 143 -# define CMS_F_CMS_RECIPIENTINFO_PWRI_CRYPT 167 -# define CMS_F_CMS_RECIPIENTINFO_SET0_KEY 144 -# define CMS_F_CMS_RECIPIENTINFO_SET0_PASSWORD 168 -# define CMS_F_CMS_RECIPIENTINFO_SET0_PKEY 145 -# define CMS_F_CMS_SD_ASN1_CTRL 170 -# define CMS_F_CMS_SET1_IAS 176 -# define CMS_F_CMS_SET1_KEYID 177 -# define CMS_F_CMS_SET1_SIGNERIDENTIFIER 146 -# define CMS_F_CMS_SET_DETACHED 147 -# define CMS_F_CMS_SIGN 148 -# define CMS_F_CMS_SIGNED_DATA_INIT 149 -# define CMS_F_CMS_SIGNERINFO_CONTENT_SIGN 150 -# define CMS_F_CMS_SIGNERINFO_SIGN 151 -# define CMS_F_CMS_SIGNERINFO_VERIFY 152 -# define CMS_F_CMS_SIGNERINFO_VERIFY_CERT 153 -# define CMS_F_CMS_SIGNERINFO_VERIFY_CONTENT 154 -# define CMS_F_CMS_SIGN_RECEIPT 163 -# define CMS_F_CMS_STREAM 155 -# define CMS_F_CMS_UNCOMPRESS 156 -# define CMS_F_CMS_VERIFY 157 - -/* Reason codes. */ -# define CMS_R_ADD_SIGNER_ERROR 99 -# define CMS_R_CERTIFICATE_ALREADY_PRESENT 175 -# define CMS_R_CERTIFICATE_HAS_NO_KEYID 160 -# define CMS_R_CERTIFICATE_VERIFY_ERROR 100 -# define CMS_R_CIPHER_INITIALISATION_ERROR 101 -# define CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR 102 -# define CMS_R_CMS_DATAFINAL_ERROR 103 -# define CMS_R_CMS_LIB 104 -# define CMS_R_CONTENTIDENTIFIER_MISMATCH 170 -# define CMS_R_CONTENT_NOT_FOUND 105 -# define CMS_R_CONTENT_TYPE_MISMATCH 171 -# define CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA 106 -# define CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA 107 -# define CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA 108 -# define CMS_R_CONTENT_VERIFY_ERROR 109 -# define CMS_R_CTRL_ERROR 110 -# define CMS_R_CTRL_FAILURE 111 -# define CMS_R_DECRYPT_ERROR 112 -# define CMS_R_ERROR_GETTING_PUBLIC_KEY 113 -# define CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE 114 -# define CMS_R_ERROR_SETTING_KEY 115 -# define CMS_R_ERROR_SETTING_RECIPIENTINFO 116 -# define CMS_R_INVALID_ENCRYPTED_KEY_LENGTH 117 -# define CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER 176 -# define CMS_R_INVALID_KEY_LENGTH 118 -# define CMS_R_MD_BIO_INIT_ERROR 119 -# define CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH 120 -# define CMS_R_MESSAGEDIGEST_WRONG_LENGTH 121 -# define CMS_R_MSGSIGDIGEST_ERROR 172 -# define CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE 162 -# define CMS_R_MSGSIGDIGEST_WRONG_LENGTH 163 -# define CMS_R_NEED_ONE_SIGNER 164 -# define CMS_R_NOT_A_SIGNED_RECEIPT 165 -# define CMS_R_NOT_ENCRYPTED_DATA 122 -# define CMS_R_NOT_KEK 123 -# define CMS_R_NOT_KEY_AGREEMENT 181 -# define CMS_R_NOT_KEY_TRANSPORT 124 -# define CMS_R_NOT_PWRI 177 -# define CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 125 -# define CMS_R_NO_CIPHER 126 -# define CMS_R_NO_CONTENT 127 -# define CMS_R_NO_CONTENT_TYPE 173 -# define CMS_R_NO_DEFAULT_DIGEST 128 -# define CMS_R_NO_DIGEST_SET 129 -# define CMS_R_NO_KEY 130 -# define CMS_R_NO_KEY_OR_CERT 174 -# define CMS_R_NO_MATCHING_DIGEST 131 -# define CMS_R_NO_MATCHING_RECIPIENT 132 -# define CMS_R_NO_MATCHING_SIGNATURE 166 -# define CMS_R_NO_MSGSIGDIGEST 167 -# define CMS_R_NO_PASSWORD 178 -# define CMS_R_NO_PRIVATE_KEY 133 -# define CMS_R_NO_PUBLIC_KEY 134 -# define CMS_R_NO_RECEIPT_REQUEST 168 -# define CMS_R_NO_SIGNERS 135 -# define CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 136 -# define CMS_R_RECEIPT_DECODE_ERROR 169 -# define CMS_R_RECIPIENT_ERROR 137 -# define CMS_R_SIGNER_CERTIFICATE_NOT_FOUND 138 -# define CMS_R_SIGNFINAL_ERROR 139 -# define CMS_R_SMIME_TEXT_ERROR 140 -# define CMS_R_STORE_INIT_ERROR 141 -# define CMS_R_TYPE_NOT_COMPRESSED_DATA 142 -# define CMS_R_TYPE_NOT_DATA 143 -# define CMS_R_TYPE_NOT_DIGESTED_DATA 144 -# define CMS_R_TYPE_NOT_ENCRYPTED_DATA 145 -# define CMS_R_TYPE_NOT_ENVELOPED_DATA 146 -# define CMS_R_UNABLE_TO_FINALIZE_CONTEXT 147 -# define CMS_R_UNKNOWN_CIPHER 148 -# define CMS_R_UNKNOWN_DIGEST_ALGORIHM 149 -# define CMS_R_UNKNOWN_ID 150 -# define CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM 151 -# define CMS_R_UNSUPPORTED_CONTENT_TYPE 152 -# define CMS_R_UNSUPPORTED_KEK_ALGORITHM 153 -# define CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM 179 -# define CMS_R_UNSUPPORTED_RECIPIENT_TYPE 154 -# define CMS_R_UNSUPPORTED_RECPIENTINFO_TYPE 155 -# define CMS_R_UNSUPPORTED_TYPE 156 -# define CMS_R_UNWRAP_ERROR 157 -# define CMS_R_UNWRAP_FAILURE 180 -# define CMS_R_VERIFICATION_FAILURE 158 -# define CMS_R_WRAP_ERROR 159 +/* Backward compatibility for spelling errors. */ +# define CMS_R_UNKNOWN_DIGEST_ALGORITM CMS_R_UNKNOWN_DIGEST_ALGORITHM +# define CMS_R_UNSUPPORTED_RECPIENTINFO_TYPE \ + CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE # ifdef __cplusplus } diff --git a/noarch/include/node/openssl/cmserr.h b/noarch/include/node/openssl/cmserr.h new file mode 100644 index 00000000..3f8ae26d --- /dev/null +++ b/noarch/include/node/openssl/cmserr.h @@ -0,0 +1,196 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_CMSERR_H +# define HEADER_CMSERR_H + +# include + +# ifndef OPENSSL_NO_CMS + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_CMS_strings(void); + +/* + * CMS function codes. + */ +# define CMS_F_CHECK_CONTENT 99 +# define CMS_F_CMS_ADD0_CERT 164 +# define CMS_F_CMS_ADD0_RECIPIENT_KEY 100 +# define CMS_F_CMS_ADD0_RECIPIENT_PASSWORD 165 +# define CMS_F_CMS_ADD1_RECEIPTREQUEST 158 +# define CMS_F_CMS_ADD1_RECIPIENT_CERT 101 +# define CMS_F_CMS_ADD1_SIGNER 102 +# define CMS_F_CMS_ADD1_SIGNINGTIME 103 +# define CMS_F_CMS_COMPRESS 104 +# define CMS_F_CMS_COMPRESSEDDATA_CREATE 105 +# define CMS_F_CMS_COMPRESSEDDATA_INIT_BIO 106 +# define CMS_F_CMS_COPY_CONTENT 107 +# define CMS_F_CMS_COPY_MESSAGEDIGEST 108 +# define CMS_F_CMS_DATA 109 +# define CMS_F_CMS_DATAFINAL 110 +# define CMS_F_CMS_DATAINIT 111 +# define CMS_F_CMS_DECRYPT 112 +# define CMS_F_CMS_DECRYPT_SET1_KEY 113 +# define CMS_F_CMS_DECRYPT_SET1_PASSWORD 166 +# define CMS_F_CMS_DECRYPT_SET1_PKEY 114 +# define CMS_F_CMS_DIGESTALGORITHM_FIND_CTX 115 +# define CMS_F_CMS_DIGESTALGORITHM_INIT_BIO 116 +# define CMS_F_CMS_DIGESTEDDATA_DO_FINAL 117 +# define CMS_F_CMS_DIGEST_VERIFY 118 +# define CMS_F_CMS_ENCODE_RECEIPT 161 +# define CMS_F_CMS_ENCRYPT 119 +# define CMS_F_CMS_ENCRYPTEDCONTENT_INIT 179 +# define CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO 120 +# define CMS_F_CMS_ENCRYPTEDDATA_DECRYPT 121 +# define CMS_F_CMS_ENCRYPTEDDATA_ENCRYPT 122 +# define CMS_F_CMS_ENCRYPTEDDATA_SET1_KEY 123 +# define CMS_F_CMS_ENVELOPEDDATA_CREATE 124 +# define CMS_F_CMS_ENVELOPEDDATA_INIT_BIO 125 +# define CMS_F_CMS_ENVELOPED_DATA_INIT 126 +# define CMS_F_CMS_ENV_ASN1_CTRL 171 +# define CMS_F_CMS_FINAL 127 +# define CMS_F_CMS_GET0_CERTIFICATE_CHOICES 128 +# define CMS_F_CMS_GET0_CONTENT 129 +# define CMS_F_CMS_GET0_ECONTENT_TYPE 130 +# define CMS_F_CMS_GET0_ENVELOPED 131 +# define CMS_F_CMS_GET0_REVOCATION_CHOICES 132 +# define CMS_F_CMS_GET0_SIGNED 133 +# define CMS_F_CMS_MSGSIGDIGEST_ADD1 162 +# define CMS_F_CMS_RECEIPTREQUEST_CREATE0 159 +# define CMS_F_CMS_RECEIPT_VERIFY 160 +# define CMS_F_CMS_RECIPIENTINFO_DECRYPT 134 +# define CMS_F_CMS_RECIPIENTINFO_ENCRYPT 169 +# define CMS_F_CMS_RECIPIENTINFO_KARI_ENCRYPT 178 +# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ALG 175 +# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ORIG_ID 173 +# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_REKS 172 +# define CMS_F_CMS_RECIPIENTINFO_KARI_ORIG_ID_CMP 174 +# define CMS_F_CMS_RECIPIENTINFO_KEKRI_DECRYPT 135 +# define CMS_F_CMS_RECIPIENTINFO_KEKRI_ENCRYPT 136 +# define CMS_F_CMS_RECIPIENTINFO_KEKRI_GET0_ID 137 +# define CMS_F_CMS_RECIPIENTINFO_KEKRI_ID_CMP 138 +# define CMS_F_CMS_RECIPIENTINFO_KTRI_CERT_CMP 139 +# define CMS_F_CMS_RECIPIENTINFO_KTRI_DECRYPT 140 +# define CMS_F_CMS_RECIPIENTINFO_KTRI_ENCRYPT 141 +# define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_ALGS 142 +# define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_SIGNER_ID 143 +# define CMS_F_CMS_RECIPIENTINFO_PWRI_CRYPT 167 +# define CMS_F_CMS_RECIPIENTINFO_SET0_KEY 144 +# define CMS_F_CMS_RECIPIENTINFO_SET0_PASSWORD 168 +# define CMS_F_CMS_RECIPIENTINFO_SET0_PKEY 145 +# define CMS_F_CMS_SD_ASN1_CTRL 170 +# define CMS_F_CMS_SET1_IAS 176 +# define CMS_F_CMS_SET1_KEYID 177 +# define CMS_F_CMS_SET1_SIGNERIDENTIFIER 146 +# define CMS_F_CMS_SET_DETACHED 147 +# define CMS_F_CMS_SIGN 148 +# define CMS_F_CMS_SIGNED_DATA_INIT 149 +# define CMS_F_CMS_SIGNERINFO_CONTENT_SIGN 150 +# define CMS_F_CMS_SIGNERINFO_SIGN 151 +# define CMS_F_CMS_SIGNERINFO_VERIFY 152 +# define CMS_F_CMS_SIGNERINFO_VERIFY_CERT 153 +# define CMS_F_CMS_SIGNERINFO_VERIFY_CONTENT 154 +# define CMS_F_CMS_SIGN_RECEIPT 163 +# define CMS_F_CMS_STREAM 155 +# define CMS_F_CMS_UNCOMPRESS 156 +# define CMS_F_CMS_VERIFY 157 +# define CMS_F_KEK_UNWRAP_KEY 180 + +/* + * CMS reason codes. + */ +# define CMS_R_ADD_SIGNER_ERROR 99 +# define CMS_R_CERTIFICATE_ALREADY_PRESENT 175 +# define CMS_R_CERTIFICATE_HAS_NO_KEYID 160 +# define CMS_R_CERTIFICATE_VERIFY_ERROR 100 +# define CMS_R_CIPHER_INITIALISATION_ERROR 101 +# define CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR 102 +# define CMS_R_CMS_DATAFINAL_ERROR 103 +# define CMS_R_CMS_LIB 104 +# define CMS_R_CONTENTIDENTIFIER_MISMATCH 170 +# define CMS_R_CONTENT_NOT_FOUND 105 +# define CMS_R_CONTENT_TYPE_MISMATCH 171 +# define CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA 106 +# define CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA 107 +# define CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA 108 +# define CMS_R_CONTENT_VERIFY_ERROR 109 +# define CMS_R_CTRL_ERROR 110 +# define CMS_R_CTRL_FAILURE 111 +# define CMS_R_DECRYPT_ERROR 112 +# define CMS_R_ERROR_GETTING_PUBLIC_KEY 113 +# define CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE 114 +# define CMS_R_ERROR_SETTING_KEY 115 +# define CMS_R_ERROR_SETTING_RECIPIENTINFO 116 +# define CMS_R_INVALID_ENCRYPTED_KEY_LENGTH 117 +# define CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER 176 +# define CMS_R_INVALID_KEY_LENGTH 118 +# define CMS_R_MD_BIO_INIT_ERROR 119 +# define CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH 120 +# define CMS_R_MESSAGEDIGEST_WRONG_LENGTH 121 +# define CMS_R_MSGSIGDIGEST_ERROR 172 +# define CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE 162 +# define CMS_R_MSGSIGDIGEST_WRONG_LENGTH 163 +# define CMS_R_NEED_ONE_SIGNER 164 +# define CMS_R_NOT_A_SIGNED_RECEIPT 165 +# define CMS_R_NOT_ENCRYPTED_DATA 122 +# define CMS_R_NOT_KEK 123 +# define CMS_R_NOT_KEY_AGREEMENT 181 +# define CMS_R_NOT_KEY_TRANSPORT 124 +# define CMS_R_NOT_PWRI 177 +# define CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 125 +# define CMS_R_NO_CIPHER 126 +# define CMS_R_NO_CONTENT 127 +# define CMS_R_NO_CONTENT_TYPE 173 +# define CMS_R_NO_DEFAULT_DIGEST 128 +# define CMS_R_NO_DIGEST_SET 129 +# define CMS_R_NO_KEY 130 +# define CMS_R_NO_KEY_OR_CERT 174 +# define CMS_R_NO_MATCHING_DIGEST 131 +# define CMS_R_NO_MATCHING_RECIPIENT 132 +# define CMS_R_NO_MATCHING_SIGNATURE 166 +# define CMS_R_NO_MSGSIGDIGEST 167 +# define CMS_R_NO_PASSWORD 178 +# define CMS_R_NO_PRIVATE_KEY 133 +# define CMS_R_NO_PUBLIC_KEY 134 +# define CMS_R_NO_RECEIPT_REQUEST 168 +# define CMS_R_NO_SIGNERS 135 +# define CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 136 +# define CMS_R_RECEIPT_DECODE_ERROR 169 +# define CMS_R_RECIPIENT_ERROR 137 +# define CMS_R_SIGNER_CERTIFICATE_NOT_FOUND 138 +# define CMS_R_SIGNFINAL_ERROR 139 +# define CMS_R_SMIME_TEXT_ERROR 140 +# define CMS_R_STORE_INIT_ERROR 141 +# define CMS_R_TYPE_NOT_COMPRESSED_DATA 142 +# define CMS_R_TYPE_NOT_DATA 143 +# define CMS_R_TYPE_NOT_DIGESTED_DATA 144 +# define CMS_R_TYPE_NOT_ENCRYPTED_DATA 145 +# define CMS_R_TYPE_NOT_ENVELOPED_DATA 146 +# define CMS_R_UNABLE_TO_FINALIZE_CONTEXT 147 +# define CMS_R_UNKNOWN_CIPHER 148 +# define CMS_R_UNKNOWN_DIGEST_ALGORITHM 149 +# define CMS_R_UNKNOWN_ID 150 +# define CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM 151 +# define CMS_R_UNSUPPORTED_CONTENT_TYPE 152 +# define CMS_R_UNSUPPORTED_KEK_ALGORITHM 153 +# define CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM 179 +# define CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE 155 +# define CMS_R_UNSUPPORTED_RECIPIENT_TYPE 154 +# define CMS_R_UNSUPPORTED_TYPE 156 +# define CMS_R_UNWRAP_ERROR 157 +# define CMS_R_UNWRAP_FAILURE 180 +# define CMS_R_VERIFICATION_FAILURE 158 +# define CMS_R_WRAP_ERROR 159 + +# endif +#endif diff --git a/noarch/include/node/openssl/comp.h b/noarch/include/node/openssl/comp.h index 260ff1e0..d814d3cf 100644 --- a/noarch/include/node/openssl/comp.h +++ b/noarch/include/node/openssl/comp.h @@ -1,5 +1,5 @@ /* - * Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -14,6 +14,7 @@ # ifndef OPENSSL_NO_COMP # include +# include # ifdef __cplusplus extern "C" { # endif @@ -44,26 +45,6 @@ const BIO_METHOD *BIO_f_zlib(void); # endif # endif -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_COMP_strings(void); - -/* Error codes for the COMP functions. */ - -/* Function codes. */ -# define COMP_F_BIO_ZLIB_FLUSH 99 -# define COMP_F_BIO_ZLIB_NEW 100 -# define COMP_F_BIO_ZLIB_READ 101 -# define COMP_F_BIO_ZLIB_WRITE 102 - -/* Reason codes. */ -# define COMP_R_ZLIB_DEFLATE_ERROR 99 -# define COMP_R_ZLIB_INFLATE_ERROR 100 -# define COMP_R_ZLIB_NOT_SUPPORTED 101 # ifdef __cplusplus } diff --git a/noarch/include/node/openssl/comperr.h b/noarch/include/node/openssl/comperr.h new file mode 100644 index 00000000..edea63a6 --- /dev/null +++ b/noarch/include/node/openssl/comperr.h @@ -0,0 +1,40 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_COMPERR_H +# define HEADER_COMPERR_H + +# include + +# ifndef OPENSSL_NO_COMP + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_COMP_strings(void); + +/* + * COMP function codes. + */ +# define COMP_F_BIO_ZLIB_FLUSH 99 +# define COMP_F_BIO_ZLIB_NEW 100 +# define COMP_F_BIO_ZLIB_READ 101 +# define COMP_F_BIO_ZLIB_WRITE 102 +# define COMP_F_COMP_CTX_NEW 103 + +/* + * COMP reason codes. + */ +# define COMP_R_ZLIB_DEFLATE_ERROR 99 +# define COMP_R_ZLIB_INFLATE_ERROR 100 +# define COMP_R_ZLIB_NOT_SUPPORTED 101 + +# endif +#endif diff --git a/noarch/include/node/openssl/conf.h b/noarch/include/node/openssl/conf.h index e0539e31..7336cd2f 100644 --- a/noarch/include/node/openssl/conf.h +++ b/noarch/include/node/openssl/conf.h @@ -12,11 +12,10 @@ # include # include -# include # include # include - # include +# include #ifdef __cplusplus extern "C" { @@ -162,59 +161,6 @@ int CONF_parse_list(const char *list, int sep, int nospc, void OPENSSL_load_builtin_modules(void); -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_CONF_strings(void); - -/* Error codes for the CONF functions. */ - -/* Function codes. */ -# define CONF_F_CONF_DUMP_FP 104 -# define CONF_F_CONF_LOAD 100 -# define CONF_F_CONF_LOAD_FP 103 -# define CONF_F_CONF_PARSE_LIST 119 -# define CONF_F_DEF_LOAD 120 -# define CONF_F_DEF_LOAD_BIO 121 -# define CONF_F_MODULE_INIT 115 -# define CONF_F_MODULE_LOAD_DSO 117 -# define CONF_F_MODULE_RUN 118 -# define CONF_F_NCONF_DUMP_BIO 105 -# define CONF_F_NCONF_DUMP_FP 106 -# define CONF_F_NCONF_GET_NUMBER_E 112 -# define CONF_F_NCONF_GET_SECTION 108 -# define CONF_F_NCONF_GET_STRING 109 -# define CONF_F_NCONF_LOAD 113 -# define CONF_F_NCONF_LOAD_BIO 110 -# define CONF_F_NCONF_LOAD_FP 114 -# define CONF_F_NCONF_NEW 111 -# define CONF_F_SSL_MODULE_INIT 123 -# define CONF_F_STR_COPY 101 - -/* Reason codes. */ -# define CONF_R_ERROR_LOADING_DSO 110 -# define CONF_R_LIST_CANNOT_BE_NULL 115 -# define CONF_R_MISSING_CLOSE_SQUARE_BRACKET 100 -# define CONF_R_MISSING_EQUAL_SIGN 101 -# define CONF_R_MISSING_INIT_FUNCTION 112 -# define CONF_R_MODULE_INITIALIZATION_ERROR 109 -# define CONF_R_NO_CLOSE_BRACE 102 -# define CONF_R_NO_CONF 105 -# define CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE 106 -# define CONF_R_NO_SECTION 107 -# define CONF_R_NO_SUCH_FILE 114 -# define CONF_R_NO_VALUE 108 -# define CONF_R_SSL_COMMAND_SECTION_EMPTY 117 -# define CONF_R_SSL_COMMAND_SECTION_NOT_FOUND 118 -# define CONF_R_SSL_SECTION_EMPTY 119 -# define CONF_R_SSL_SECTION_NOT_FOUND 120 -# define CONF_R_UNABLE_TO_CREATE_NEW_SECTION 103 -# define CONF_R_UNKNOWN_MODULE_NAME 113 -# define CONF_R_VARIABLE_EXPANSION_TOO_LONG 116 -# define CONF_R_VARIABLE_HAS_NO_VALUE 104 # ifdef __cplusplus } diff --git a/noarch/include/node/openssl/conferr.h b/noarch/include/node/openssl/conferr.h new file mode 100644 index 00000000..d1c92f45 --- /dev/null +++ b/noarch/include/node/openssl/conferr.h @@ -0,0 +1,72 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_CONFERR_H +# define HEADER_CONFERR_H + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_CONF_strings(void); + +/* + * CONF function codes. + */ +# define CONF_F_CONF_DUMP_FP 104 +# define CONF_F_CONF_LOAD 100 +# define CONF_F_CONF_LOAD_FP 103 +# define CONF_F_CONF_PARSE_LIST 119 +# define CONF_F_DEF_LOAD 120 +# define CONF_F_DEF_LOAD_BIO 121 +# define CONF_F_GET_NEXT_FILE 107 +# define CONF_F_MODULE_ADD 122 +# define CONF_F_MODULE_INIT 115 +# define CONF_F_MODULE_LOAD_DSO 117 +# define CONF_F_MODULE_RUN 118 +# define CONF_F_NCONF_DUMP_BIO 105 +# define CONF_F_NCONF_DUMP_FP 106 +# define CONF_F_NCONF_GET_NUMBER_E 112 +# define CONF_F_NCONF_GET_SECTION 108 +# define CONF_F_NCONF_GET_STRING 109 +# define CONF_F_NCONF_LOAD 113 +# define CONF_F_NCONF_LOAD_BIO 110 +# define CONF_F_NCONF_LOAD_FP 114 +# define CONF_F_NCONF_NEW 111 +# define CONF_F_PROCESS_INCLUDE 116 +# define CONF_F_SSL_MODULE_INIT 123 +# define CONF_F_STR_COPY 101 + +/* + * CONF reason codes. + */ +# define CONF_R_ERROR_LOADING_DSO 110 +# define CONF_R_LIST_CANNOT_BE_NULL 115 +# define CONF_R_MISSING_CLOSE_SQUARE_BRACKET 100 +# define CONF_R_MISSING_EQUAL_SIGN 101 +# define CONF_R_MISSING_INIT_FUNCTION 112 +# define CONF_R_MODULE_INITIALIZATION_ERROR 109 +# define CONF_R_NO_CLOSE_BRACE 102 +# define CONF_R_NO_CONF 105 +# define CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE 106 +# define CONF_R_NO_SECTION 107 +# define CONF_R_NO_SUCH_FILE 114 +# define CONF_R_NO_VALUE 108 +# define CONF_R_NUMBER_TOO_LARGE 121 +# define CONF_R_RECURSIVE_DIRECTORY_INCLUDE 111 +# define CONF_R_SSL_COMMAND_SECTION_EMPTY 117 +# define CONF_R_SSL_COMMAND_SECTION_NOT_FOUND 118 +# define CONF_R_SSL_SECTION_EMPTY 119 +# define CONF_R_SSL_SECTION_NOT_FOUND 120 +# define CONF_R_UNABLE_TO_CREATE_NEW_SECTION 103 +# define CONF_R_UNKNOWN_MODULE_NAME 113 +# define CONF_R_VARIABLE_EXPANSION_TOO_LONG 116 +# define CONF_R_VARIABLE_HAS_NO_VALUE 104 + +#endif diff --git a/noarch/include/node/openssl/crypto.h b/noarch/include/node/openssl/crypto.h index fa3f12af..7d0b5262 100644 --- a/noarch/include/node/openssl/crypto.h +++ b/noarch/include/node/openssl/crypto.h @@ -1,5 +1,6 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -7,12 +8,6 @@ * https://www.openssl.org/source/license.html */ -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * ECDH support in OpenSSL originally developed by - * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. - */ - #ifndef HEADER_CRYPTO_H # define HEADER_CRYPTO_H @@ -25,11 +20,11 @@ # include # endif -# include # include # include # include # include +# include # ifdef CHARSET_EBCDIC # include @@ -110,15 +105,12 @@ DEFINE_STACK_OF(void) # define CRYPTO_EX_INDEX_UI 11 # define CRYPTO_EX_INDEX_BIO 12 # define CRYPTO_EX_INDEX_APP 13 -# define CRYPTO_EX_INDEX__COUNT 14 +# define CRYPTO_EX_INDEX_UI_METHOD 14 +# define CRYPTO_EX_INDEX_DRBG 15 +# define CRYPTO_EX_INDEX__COUNT 16 -/* - * This is the default callbacks, but we can have others as well: this is - * needed in Win32 where the application malloc and the library malloc may - * not be the same. - */ -#define OPENSSL_malloc_init() \ - CRYPTO_set_mem_functions(CRYPTO_malloc, CRYPTO_realloc, CRYPTO_free) +/* No longer needed, so this is a no-op */ +#define OPENSSL_malloc_init() while(0) continue int CRYPTO_mem_ctrl(int mode); @@ -211,7 +203,7 @@ void *CRYPTO_get_ex_data(const CRYPTO_EX_DATA *ad, int idx); * The old locking functions have been removed completely without compatibility * macros. This is because the old functions either could not properly report * errors, or the returned error values were not clearly documented. - * Replacing the locking functions with with no-ops would cause race condition + * Replacing the locking functions with no-ops would cause race condition * issues in the affected applications. It is far better for them to fail at * compile time. * On the other hand, the locking callbacks are no longer used. Consequently, @@ -303,6 +295,7 @@ void OPENSSL_cleanse(void *ptr, size_t len); CRYPTO_mem_debug_pop() int CRYPTO_mem_debug_push(const char *info, const char *file, int line); int CRYPTO_mem_debug_pop(void); +void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); /*- * Debugging functions (enabled by CRYPTO_set_mem_debug(1)) @@ -317,6 +310,8 @@ void CRYPTO_mem_debug_realloc(void *addr1, void *addr2, size_t num, int flag, void CRYPTO_mem_debug_free(void *addr, int flag, const char *file, int line); +int CRYPTO_mem_leaks_cb(int (*cb) (const char *str, size_t len, void *u), + void *u); # ifndef OPENSSL_NO_STDIO int CRYPTO_mem_leaks_fp(FILE *); # endif @@ -337,6 +332,11 @@ int FIPS_mode(void); int FIPS_mode_set(int r); void OPENSSL_init(void); +# ifdef OPENSSL_SYS_UNIX +void OPENSSL_fork_prepare(void); +void OPENSSL_fork_parent(void); +void OPENSSL_fork_child(void); +# endif struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result); int OPENSSL_gmtime_adj(struct tm *tm, int offset_day, long offset_sec); @@ -350,9 +350,7 @@ int OPENSSL_gmtime_diff(int *pday, int *psec, * into a defined order as the return value when a != b is undefined, other * than to be non-zero. */ -int CRYPTO_memcmp(const volatile void * volatile in_a, - const volatile void * volatile in_b, - size_t len); +int CRYPTO_memcmp(const void * in_a, const void * in_b, size_t len); /* Standard initialisation options */ # define OPENSSL_INIT_NO_LOAD_CRYPTO_STRINGS 0x00000001L @@ -372,8 +370,9 @@ int CRYPTO_memcmp(const volatile void * volatile in_a, # define OPENSSL_INIT_ENGINE_PADLOCK 0x00004000L # define OPENSSL_INIT_ENGINE_AFALG 0x00008000L /* OPENSSL_INIT_ZLIB 0x00010000L */ -/* currently unused 0x00020000L */ +# define OPENSSL_INIT_ATFORK 0x00020000L /* OPENSSL_INIT_BASE_ONLY 0x00040000L */ +# define OPENSSL_INIT_NO_ATEXIT 0x00080000L /* OPENSSL_INIT flag range 0xfff00000 reserved for OPENSSL_init_ssl() */ /* Max OPENSSL_INIT flag value is 0x80000000 */ @@ -393,8 +392,12 @@ void OPENSSL_thread_stop(void); /* Low-level control of initialization */ OPENSSL_INIT_SETTINGS *OPENSSL_INIT_new(void); # ifndef OPENSSL_NO_STDIO +int OPENSSL_INIT_set_config_filename(OPENSSL_INIT_SETTINGS *settings, + const char *config_filename); +void OPENSSL_INIT_set_config_file_flags(OPENSSL_INIT_SETTINGS *settings, + unsigned long flags); int OPENSSL_INIT_set_config_appname(OPENSSL_INIT_SETTINGS *settings, - const char *config_file); + const char *config_appname); # endif void OPENSSL_INIT_free(OPENSSL_INIT_SETTINGS *settings); @@ -435,33 +438,6 @@ int CRYPTO_THREAD_cleanup_local(CRYPTO_THREAD_LOCAL *key); CRYPTO_THREAD_ID CRYPTO_THREAD_get_current_id(void); int CRYPTO_THREAD_compare_id(CRYPTO_THREAD_ID a, CRYPTO_THREAD_ID b); -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_CRYPTO_strings(void); - -/* Error codes for the CRYPTO functions. */ - -/* Function codes. */ -# define CRYPTO_F_CRYPTO_DUP_EX_DATA 110 -# define CRYPTO_F_CRYPTO_FREE_EX_DATA 111 -# define CRYPTO_F_CRYPTO_GET_EX_NEW_INDEX 100 -# define CRYPTO_F_CRYPTO_MEMDUP 115 -# define CRYPTO_F_CRYPTO_NEW_EX_DATA 112 -# define CRYPTO_F_CRYPTO_SET_EX_DATA 102 -# define CRYPTO_F_FIPS_MODE_SET 109 -# define CRYPTO_F_GET_AND_LOCK 113 -# define CRYPTO_F_OPENSSL_BUF2HEXSTR 117 -# define CRYPTO_F_OPENSSL_HEXSTR2BUF 118 -# define CRYPTO_F_OPENSSL_INIT_CRYPTO 116 - -/* Reason codes. */ -# define CRYPTO_R_FIPS_MODE_NOT_SUPPORTED 101 -# define CRYPTO_R_ILLEGAL_HEX_DIGIT 102 -# define CRYPTO_R_ODD_NUMBER_OF_DIGITS 103 # ifdef __cplusplus } diff --git a/noarch/include/node/openssl/cryptoerr.h b/noarch/include/node/openssl/cryptoerr.h new file mode 100644 index 00000000..10723d04 --- /dev/null +++ b/noarch/include/node/openssl/cryptoerr.h @@ -0,0 +1,56 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_CRYPTOERR_H +# define HEADER_CRYPTOERR_H + +# ifdef __cplusplus +extern "C" +# endif + +# include + +int ERR_load_CRYPTO_strings(void); + +/* + * CRYPTO function codes. + */ +# define CRYPTO_F_CMAC_CTX_NEW 120 +# define CRYPTO_F_CRYPTO_DUP_EX_DATA 110 +# define CRYPTO_F_CRYPTO_FREE_EX_DATA 111 +# define CRYPTO_F_CRYPTO_GET_EX_NEW_INDEX 100 +# define CRYPTO_F_CRYPTO_MEMDUP 115 +# define CRYPTO_F_CRYPTO_NEW_EX_DATA 112 +# define CRYPTO_F_CRYPTO_OCB128_COPY_CTX 121 +# define CRYPTO_F_CRYPTO_OCB128_INIT 122 +# define CRYPTO_F_CRYPTO_SET_EX_DATA 102 +# define CRYPTO_F_FIPS_MODE_SET 109 +# define CRYPTO_F_GET_AND_LOCK 113 +# define CRYPTO_F_OPENSSL_ATEXIT 114 +# define CRYPTO_F_OPENSSL_BUF2HEXSTR 117 +# define CRYPTO_F_OPENSSL_FOPEN 119 +# define CRYPTO_F_OPENSSL_HEXSTR2BUF 118 +# define CRYPTO_F_OPENSSL_INIT_CRYPTO 116 +# define CRYPTO_F_OPENSSL_LH_NEW 126 +# define CRYPTO_F_OPENSSL_SK_DEEP_COPY 127 +# define CRYPTO_F_OPENSSL_SK_DUP 128 +# define CRYPTO_F_PKEY_HMAC_INIT 123 +# define CRYPTO_F_PKEY_POLY1305_INIT 124 +# define CRYPTO_F_PKEY_SIPHASH_INIT 125 +# define CRYPTO_F_SK_RESERVE 129 + +/* + * CRYPTO reason codes. + */ +# define CRYPTO_R_FIPS_MODE_NOT_SUPPORTED 101 +# define CRYPTO_R_ILLEGAL_HEX_DIGIT 102 +# define CRYPTO_R_ODD_NUMBER_OF_DIGITS 103 + +#endif diff --git a/noarch/include/node/openssl/ct.h b/noarch/include/node/openssl/ct.h index bf29fbab..d4262fa0 100644 --- a/noarch/include/node/openssl/ct.h +++ b/noarch/include/node/openssl/ct.h @@ -1,5 +1,5 @@ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -16,6 +16,7 @@ # include # include # include +# include # ifdef __cplusplus extern "C" { # endif @@ -468,64 +469,6 @@ __owur int CTLOG_STORE_load_file(CTLOG_STORE *store, const char *file); */ __owur int CTLOG_STORE_load_default_file(CTLOG_STORE *store); -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_CT_strings(void); - -/* Error codes for the CT functions. */ - -/* Function codes. */ -# define CT_F_CTLOG_NEW 117 -# define CT_F_CTLOG_NEW_FROM_BASE64 118 -# define CT_F_CTLOG_NEW_FROM_CONF 119 -# define CT_F_CTLOG_STORE_LOAD_CTX_NEW 122 -# define CT_F_CTLOG_STORE_LOAD_FILE 123 -# define CT_F_CTLOG_STORE_LOAD_LOG 130 -# define CT_F_CTLOG_STORE_NEW 131 -# define CT_F_CT_BASE64_DECODE 124 -# define CT_F_CT_POLICY_EVAL_CTX_NEW 133 -# define CT_F_CT_V1_LOG_ID_FROM_PKEY 125 -# define CT_F_I2O_SCT 107 -# define CT_F_I2O_SCT_LIST 108 -# define CT_F_I2O_SCT_SIGNATURE 109 -# define CT_F_O2I_SCT 110 -# define CT_F_O2I_SCT_LIST 111 -# define CT_F_O2I_SCT_SIGNATURE 112 -# define CT_F_SCT_CTX_NEW 126 -# define CT_F_SCT_CTX_VERIFY 128 -# define CT_F_SCT_NEW 100 -# define CT_F_SCT_NEW_FROM_BASE64 127 -# define CT_F_SCT_SET0_LOG_ID 101 -# define CT_F_SCT_SET1_EXTENSIONS 114 -# define CT_F_SCT_SET1_LOG_ID 115 -# define CT_F_SCT_SET1_SIGNATURE 116 -# define CT_F_SCT_SET_LOG_ENTRY_TYPE 102 -# define CT_F_SCT_SET_SIGNATURE_NID 103 -# define CT_F_SCT_SET_VERSION 104 - -/* Reason codes. */ -# define CT_R_BASE64_DECODE_ERROR 108 -# define CT_R_INVALID_LOG_ID_LENGTH 100 -# define CT_R_LOG_CONF_INVALID 109 -# define CT_R_LOG_CONF_INVALID_KEY 110 -# define CT_R_LOG_CONF_MISSING_DESCRIPTION 111 -# define CT_R_LOG_CONF_MISSING_KEY 112 -# define CT_R_LOG_KEY_INVALID 113 -# define CT_R_SCT_FUTURE_TIMESTAMP 116 -# define CT_R_SCT_INVALID 104 -# define CT_R_SCT_INVALID_SIGNATURE 107 -# define CT_R_SCT_LIST_INVALID 105 -# define CT_R_SCT_LOG_ID_MISMATCH 114 -# define CT_R_SCT_NOT_SET 106 -# define CT_R_SCT_UNSUPPORTED_VERSION 115 -# define CT_R_UNRECOGNIZED_SIGNATURE_NID 101 -# define CT_R_UNSUPPORTED_ENTRY_TYPE 102 -# define CT_R_UNSUPPORTED_VERSION 103 - # ifdef __cplusplus } # endif diff --git a/noarch/include/node/openssl/cterr.h b/noarch/include/node/openssl/cterr.h new file mode 100644 index 00000000..764e1a22 --- /dev/null +++ b/noarch/include/node/openssl/cterr.h @@ -0,0 +1,76 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_CTERR_H +# define HEADER_CTERR_H + +# include + +# ifndef OPENSSL_NO_CT + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_CT_strings(void); + +/* + * CT function codes. + */ +# define CT_F_CTLOG_NEW 117 +# define CT_F_CTLOG_NEW_FROM_BASE64 118 +# define CT_F_CTLOG_NEW_FROM_CONF 119 +# define CT_F_CTLOG_STORE_LOAD_CTX_NEW 122 +# define CT_F_CTLOG_STORE_LOAD_FILE 123 +# define CT_F_CTLOG_STORE_LOAD_LOG 130 +# define CT_F_CTLOG_STORE_NEW 131 +# define CT_F_CT_BASE64_DECODE 124 +# define CT_F_CT_POLICY_EVAL_CTX_NEW 133 +# define CT_F_CT_V1_LOG_ID_FROM_PKEY 125 +# define CT_F_I2O_SCT 107 +# define CT_F_I2O_SCT_LIST 108 +# define CT_F_I2O_SCT_SIGNATURE 109 +# define CT_F_O2I_SCT 110 +# define CT_F_O2I_SCT_LIST 111 +# define CT_F_O2I_SCT_SIGNATURE 112 +# define CT_F_SCT_CTX_NEW 126 +# define CT_F_SCT_CTX_VERIFY 128 +# define CT_F_SCT_NEW 100 +# define CT_F_SCT_NEW_FROM_BASE64 127 +# define CT_F_SCT_SET0_LOG_ID 101 +# define CT_F_SCT_SET1_EXTENSIONS 114 +# define CT_F_SCT_SET1_LOG_ID 115 +# define CT_F_SCT_SET1_SIGNATURE 116 +# define CT_F_SCT_SET_LOG_ENTRY_TYPE 102 +# define CT_F_SCT_SET_SIGNATURE_NID 103 +# define CT_F_SCT_SET_VERSION 104 + +/* + * CT reason codes. + */ +# define CT_R_BASE64_DECODE_ERROR 108 +# define CT_R_INVALID_LOG_ID_LENGTH 100 +# define CT_R_LOG_CONF_INVALID 109 +# define CT_R_LOG_CONF_INVALID_KEY 110 +# define CT_R_LOG_CONF_MISSING_DESCRIPTION 111 +# define CT_R_LOG_CONF_MISSING_KEY 112 +# define CT_R_LOG_KEY_INVALID 113 +# define CT_R_SCT_FUTURE_TIMESTAMP 116 +# define CT_R_SCT_INVALID 104 +# define CT_R_SCT_INVALID_SIGNATURE 107 +# define CT_R_SCT_LIST_INVALID 105 +# define CT_R_SCT_LOG_ID_MISMATCH 114 +# define CT_R_SCT_NOT_SET 106 +# define CT_R_SCT_UNSUPPORTED_VERSION 115 +# define CT_R_UNRECOGNIZED_SIGNATURE_NID 101 +# define CT_R_UNSUPPORTED_ENTRY_TYPE 102 +# define CT_R_UNSUPPORTED_VERSION 103 + +# endif +#endif diff --git a/noarch/include/node/openssl/dh.h b/noarch/include/node/openssl/dh.h index 8cf879e1..3527540c 100644 --- a/noarch/include/node/openssl/dh.h +++ b/noarch/include/node/openssl/dh.h @@ -20,6 +20,7 @@ # if OPENSSL_API_COMPAT < 0x10100000L # include # endif +# include # ifdef __cplusplus extern "C" { @@ -141,6 +142,9 @@ DEPRECATEDIN_0_9_8(DH *DH_generate_parameters(int prime_len, int generator, int DH_generate_parameters_ex(DH *dh, int prime_len, int generator, BN_GENCB *cb); +int DH_check_params_ex(const DH *dh); +int DH_check_ex(const DH *dh); +int DH_check_pub_key_ex(const DH *dh, const BIGNUM *pub_key); int DH_check_params(const DH *dh, int *ret); int DH_check(const DH *dh, int *codes); int DH_check_pub_key(const DH *dh, const BIGNUM *pub_key, int *codes); @@ -161,6 +165,10 @@ DH *DH_get_1024_160(void); DH *DH_get_2048_224(void); DH *DH_get_2048_256(void); +/* Named parameters, currently RFC7919 */ +DH *DH_new_by_nid(int nid); +int DH_get_nid(const DH *dh); + # ifndef OPENSSL_NO_CMS /* RFC2631 KDF */ int DH_KDF_X9_42(unsigned char *out, size_t outlen, @@ -175,6 +183,11 @@ int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g); void DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key); int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key); +const BIGNUM *DH_get0_p(const DH *dh); +const BIGNUM *DH_get0_q(const DH *dh); +const BIGNUM *DH_get0_g(const DH *dh); +const BIGNUM *DH_get0_priv_key(const DH *dh); +const BIGNUM *DH_get0_pub_key(const DH *dh); void DH_clear_flags(DH *dh, int flags); int DH_test_flags(const DH *dh, int flags); void DH_set_flags(DH *dh, int flags); @@ -237,6 +250,15 @@ int DH_meth_set_generate_params(DH_METHOD *dhm, EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, EVP_PKEY_OP_PARAMGEN, \ EVP_PKEY_CTRL_DH_RFC5114, gen, NULL) +# define EVP_PKEY_CTX_set_dh_nid(ctx, nid) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, \ + EVP_PKEY_OP_PARAMGEN | EVP_PKEY_OP_KEYGEN, \ + EVP_PKEY_CTRL_DH_NID, nid, NULL) + +# define EVP_PKEY_CTX_set_dh_pad(ctx, pad) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_DH_PAD, pad, NULL) + # define EVP_PKEY_CTX_set_dh_kdf_type(ctx, kdf) \ EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ EVP_PKEY_OP_DERIVE, \ @@ -250,22 +272,22 @@ int DH_meth_set_generate_params(DH_METHOD *dhm, # define EVP_PKEY_CTX_set0_dh_kdf_oid(ctx, oid) \ EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_DH_KDF_OID, 0, (void *)oid) + EVP_PKEY_CTRL_DH_KDF_OID, 0, (void *)(oid)) # define EVP_PKEY_CTX_get0_dh_kdf_oid(ctx, poid) \ EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_GET_DH_KDF_OID, 0, (void *)poid) + EVP_PKEY_CTRL_GET_DH_KDF_OID, 0, (void *)(poid)) # define EVP_PKEY_CTX_set_dh_kdf_md(ctx, md) \ EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_DH_KDF_MD, 0, (void *)md) + EVP_PKEY_CTRL_DH_KDF_MD, 0, (void *)(md)) # define EVP_PKEY_CTX_get_dh_kdf_md(ctx, pmd) \ EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_GET_DH_KDF_MD, 0, (void *)pmd) + EVP_PKEY_CTRL_GET_DH_KDF_MD, 0, (void *)(pmd)) # define EVP_PKEY_CTX_set_dh_kdf_outlen(ctx, len) \ EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ @@ -275,17 +297,17 @@ int DH_meth_set_generate_params(DH_METHOD *dhm, # define EVP_PKEY_CTX_get_dh_kdf_outlen(ctx, plen) \ EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_GET_DH_KDF_OUTLEN, 0, (void *)plen) + EVP_PKEY_CTRL_GET_DH_KDF_OUTLEN, 0, (void *)(plen)) # define EVP_PKEY_CTX_set0_dh_kdf_ukm(ctx, p, plen) \ EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_DH_KDF_UKM, plen, (void *)p) + EVP_PKEY_CTRL_DH_KDF_UKM, plen, (void *)(p)) # define EVP_PKEY_CTX_get0_dh_kdf_ukm(ctx, p) \ EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_GET_DH_KDF_UKM, 0, (void *)p) + EVP_PKEY_CTRL_GET_DH_KDF_UKM, 0, (void *)(p)) # define EVP_PKEY_CTRL_DH_PARAMGEN_PRIME_LEN (EVP_PKEY_ALG_CTRL + 1) # define EVP_PKEY_CTRL_DH_PARAMGEN_GENERATOR (EVP_PKEY_ALG_CTRL + 2) @@ -301,6 +323,8 @@ int DH_meth_set_generate_params(DH_METHOD *dhm, # define EVP_PKEY_CTRL_GET_DH_KDF_UKM (EVP_PKEY_ALG_CTRL + 12) # define EVP_PKEY_CTRL_DH_KDF_OID (EVP_PKEY_ALG_CTRL + 13) # define EVP_PKEY_CTRL_GET_DH_KDF_OID (EVP_PKEY_ALG_CTRL + 14) +# define EVP_PKEY_CTRL_DH_NID (EVP_PKEY_ALG_CTRL + 15) +# define EVP_PKEY_CTRL_DH_PAD (EVP_PKEY_ALG_CTRL + 16) /* KDF types */ # define EVP_PKEY_DH_KDF_NONE 1 @@ -308,51 +332,6 @@ int DH_meth_set_generate_params(DH_METHOD *dhm, # define EVP_PKEY_DH_KDF_X9_42 2 # endif -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_DH_strings(void); - -/* Error codes for the DH functions. */ - -/* Function codes. */ -# define DH_F_COMPUTE_KEY 102 -# define DH_F_DHPARAMS_PRINT_FP 101 -# define DH_F_DH_BUILTIN_GENPARAMS 106 -# define DH_F_DH_CMS_DECRYPT 114 -# define DH_F_DH_CMS_SET_PEERKEY 115 -# define DH_F_DH_CMS_SET_SHARED_INFO 116 -# define DH_F_DH_METH_DUP 117 -# define DH_F_DH_METH_NEW 118 -# define DH_F_DH_METH_SET1_NAME 119 -# define DH_F_DH_NEW_METHOD 105 -# define DH_F_DH_PARAM_DECODE 107 -# define DH_F_DH_PRIV_DECODE 110 -# define DH_F_DH_PRIV_ENCODE 111 -# define DH_F_DH_PUB_DECODE 108 -# define DH_F_DH_PUB_ENCODE 109 -# define DH_F_DO_DH_PRINT 100 -# define DH_F_GENERATE_KEY 103 -# define DH_F_PKEY_DH_DERIVE 112 -# define DH_F_PKEY_DH_KEYGEN 113 - -/* Reason codes. */ -# define DH_R_BAD_GENERATOR 101 -# define DH_R_BN_DECODE_ERROR 109 -# define DH_R_BN_ERROR 106 -# define DH_R_DECODE_ERROR 104 -# define DH_R_INVALID_PUBKEY 102 -# define DH_R_KDF_PARAMETER_ERROR 112 -# define DH_R_KEYS_NOT_SET 108 -# define DH_R_MODULUS_TOO_LARGE 103 -# define DH_R_NO_PARAMETERS_SET 107 -# define DH_R_NO_PRIVATE_VALUE 100 -# define DH_R_PARAMETER_ENCODING_ERROR 105 -# define DH_R_PEER_KEY_ERROR 111 -# define DH_R_SHARED_INFO_ERROR 113 # ifdef __cplusplus } diff --git a/noarch/include/node/openssl/dherr.h b/noarch/include/node/openssl/dherr.h new file mode 100644 index 00000000..81e73f75 --- /dev/null +++ b/noarch/include/node/openssl/dherr.h @@ -0,0 +1,84 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DHERR_H +# define HEADER_DHERR_H + +# include + +# ifndef OPENSSL_NO_DH + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_DH_strings(void); + +/* + * DH function codes. + */ +# define DH_F_COMPUTE_KEY 102 +# define DH_F_DHPARAMS_PRINT_FP 101 +# define DH_F_DH_BUILTIN_GENPARAMS 106 +# define DH_F_DH_CHECK_EX 121 +# define DH_F_DH_CHECK_PARAMS_EX 122 +# define DH_F_DH_CHECK_PUB_KEY_EX 123 +# define DH_F_DH_CMS_DECRYPT 114 +# define DH_F_DH_CMS_SET_PEERKEY 115 +# define DH_F_DH_CMS_SET_SHARED_INFO 116 +# define DH_F_DH_METH_DUP 117 +# define DH_F_DH_METH_NEW 118 +# define DH_F_DH_METH_SET1_NAME 119 +# define DH_F_DH_NEW_BY_NID 104 +# define DH_F_DH_NEW_METHOD 105 +# define DH_F_DH_PARAM_DECODE 107 +# define DH_F_DH_PKEY_PUBLIC_CHECK 124 +# define DH_F_DH_PRIV_DECODE 110 +# define DH_F_DH_PRIV_ENCODE 111 +# define DH_F_DH_PUB_DECODE 108 +# define DH_F_DH_PUB_ENCODE 109 +# define DH_F_DO_DH_PRINT 100 +# define DH_F_GENERATE_KEY 103 +# define DH_F_PKEY_DH_CTRL_STR 120 +# define DH_F_PKEY_DH_DERIVE 112 +# define DH_F_PKEY_DH_INIT 125 +# define DH_F_PKEY_DH_KEYGEN 113 + +/* + * DH reason codes. + */ +# define DH_R_BAD_GENERATOR 101 +# define DH_R_BN_DECODE_ERROR 109 +# define DH_R_BN_ERROR 106 +# define DH_R_CHECK_INVALID_J_VALUE 115 +# define DH_R_CHECK_INVALID_Q_VALUE 116 +# define DH_R_CHECK_PUBKEY_INVALID 122 +# define DH_R_CHECK_PUBKEY_TOO_LARGE 123 +# define DH_R_CHECK_PUBKEY_TOO_SMALL 124 +# define DH_R_CHECK_P_NOT_PRIME 117 +# define DH_R_CHECK_P_NOT_SAFE_PRIME 118 +# define DH_R_CHECK_Q_NOT_PRIME 119 +# define DH_R_DECODE_ERROR 104 +# define DH_R_INVALID_PARAMETER_NAME 110 +# define DH_R_INVALID_PARAMETER_NID 114 +# define DH_R_INVALID_PUBKEY 102 +# define DH_R_KDF_PARAMETER_ERROR 112 +# define DH_R_KEYS_NOT_SET 108 +# define DH_R_MISSING_PUBKEY 125 +# define DH_R_MODULUS_TOO_LARGE 103 +# define DH_R_NOT_SUITABLE_GENERATOR 120 +# define DH_R_NO_PARAMETERS_SET 107 +# define DH_R_NO_PRIVATE_VALUE 100 +# define DH_R_PARAMETER_ENCODING_ERROR 105 +# define DH_R_PEER_KEY_ERROR 111 +# define DH_R_SHARED_INFO_ERROR 113 +# define DH_R_UNABLE_TO_CHECK_GENERATOR 121 + +# endif +#endif diff --git a/noarch/include/node/openssl/dsa.h b/noarch/include/node/openssl/dsa.h index 3a7b1a62..822eff34 100644 --- a/noarch/include/node/openssl/dsa.h +++ b/noarch/include/node/openssl/dsa.h @@ -7,11 +7,6 @@ * https://www.openssl.org/source/license.html */ -/* - * The DSS routines are based on patches supplied by - * Steven Schoch . - */ - #ifndef HEADER_DSA_H # define HEADER_DSA_H @@ -25,11 +20,11 @@ extern "C" { # include # include # include -# include # include # if OPENSSL_API_COMPAT < 0x10100000L # include # endif +# include # ifndef OPENSSL_DSA_MAX_MODULUS_BITS # define OPENSSL_DSA_MAX_MODULUS_BITS 10000 @@ -104,7 +99,7 @@ int DSA_size(const DSA *); int DSA_bits(const DSA *d); int DSA_security_bits(const DSA *d); /* next 4 return -1 on error */ -int DSA_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp); +DEPRECATEDIN_1_2_0(int DSA_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp)) int DSA_sign(int type, const unsigned char *dgst, int dlen, unsigned char *sig, unsigned int *siglen, DSA *dsa); int DSA_verify(int type, const unsigned char *dgst, int dgst_len, @@ -178,6 +173,11 @@ int DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g); void DSA_get0_key(const DSA *d, const BIGNUM **pub_key, const BIGNUM **priv_key); int DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key); +const BIGNUM *DSA_get0_p(const DSA *d); +const BIGNUM *DSA_get0_q(const DSA *d); +const BIGNUM *DSA_get0_g(const DSA *d); +const BIGNUM *DSA_get0_pub_key(const DSA *d); +const BIGNUM *DSA_get0_priv_key(const DSA *d); void DSA_clear_flags(DSA *d, int flags); int DSA_test_flags(const DSA *d, int flags); void DSA_set_flags(DSA *d, int flags); @@ -201,7 +201,7 @@ int (*DSA_meth_get_sign_setup(const DSA_METHOD *dsam)) int DSA_meth_set_sign_setup(DSA_METHOD *dsam, int (*sign_setup) (DSA *, BN_CTX *, BIGNUM **, BIGNUM **)); int (*DSA_meth_get_verify(const DSA_METHOD *dsam)) - (const unsigned char *, int , DSA_SIG *, DSA *); + (const unsigned char *, int, DSA_SIG *, DSA *); int DSA_meth_set_verify(DSA_METHOD *dsam, int (*verify) (const unsigned char *, int, DSA_SIG *, DSA *)); int (*DSA_meth_get_mod_exp(const DSA_METHOD *dsam)) @@ -230,54 +230,6 @@ int DSA_meth_set_paramgen(DSA_METHOD *dsam, int (*DSA_meth_get_keygen(const DSA_METHOD *dsam)) (DSA *); int DSA_meth_set_keygen(DSA_METHOD *dsam, int (*keygen) (DSA *)); -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_DSA_strings(void); - -/* Error codes for the DSA functions. */ - -/* Function codes. */ -# define DSA_F_DSAPARAMS_PRINT 100 -# define DSA_F_DSAPARAMS_PRINT_FP 101 -# define DSA_F_DSA_BUILTIN_PARAMGEN 125 -# define DSA_F_DSA_BUILTIN_PARAMGEN2 126 -# define DSA_F_DSA_DO_SIGN 112 -# define DSA_F_DSA_DO_VERIFY 113 -# define DSA_F_DSA_METH_DUP 127 -# define DSA_F_DSA_METH_NEW 128 -# define DSA_F_DSA_METH_SET1_NAME 129 -# define DSA_F_DSA_NEW_METHOD 103 -# define DSA_F_DSA_PARAM_DECODE 119 -# define DSA_F_DSA_PRINT_FP 105 -# define DSA_F_DSA_PRIV_DECODE 115 -# define DSA_F_DSA_PRIV_ENCODE 116 -# define DSA_F_DSA_PUB_DECODE 117 -# define DSA_F_DSA_PUB_ENCODE 118 -# define DSA_F_DSA_SIGN 106 -# define DSA_F_DSA_SIGN_SETUP 107 -# define DSA_F_DSA_SIG_NEW 102 -# define DSA_F_OLD_DSA_PRIV_DECODE 122 -# define DSA_F_PKEY_DSA_CTRL 120 -# define DSA_F_PKEY_DSA_CTRL_STR 104 -# define DSA_F_PKEY_DSA_KEYGEN 121 - -/* Reason codes. */ -# define DSA_R_BAD_Q_VALUE 102 -# define DSA_R_BN_DECODE_ERROR 108 -# define DSA_R_BN_ERROR 109 -# define DSA_R_DECODE_ERROR 104 -# define DSA_R_INVALID_DIGEST_TYPE 106 -# define DSA_R_INVALID_PARAMETERS 112 -# define DSA_R_MISSING_PARAMETERS 101 -# define DSA_R_MODULUS_TOO_LARGE 103 -# define DSA_R_NO_PARAMETERS_SET 107 -# define DSA_R_PARAMETER_ENCODING_ERROR 105 -# define DSA_R_Q_NOT_PRIME 113 -# define DSA_R_SEED_LEN_SMALL 110 # ifdef __cplusplus } diff --git a/noarch/include/node/openssl/dsaerr.h b/noarch/include/node/openssl/dsaerr.h new file mode 100644 index 00000000..d94f97bb --- /dev/null +++ b/noarch/include/node/openssl/dsaerr.h @@ -0,0 +1,67 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DSAERR_H +# define HEADER_DSAERR_H + +# include + +# ifndef OPENSSL_NO_DSA + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_DSA_strings(void); + +/* + * DSA function codes. + */ +# define DSA_F_DSAPARAMS_PRINT 100 +# define DSA_F_DSAPARAMS_PRINT_FP 101 +# define DSA_F_DSA_BUILTIN_PARAMGEN 125 +# define DSA_F_DSA_BUILTIN_PARAMGEN2 126 +# define DSA_F_DSA_DO_SIGN 112 +# define DSA_F_DSA_DO_VERIFY 113 +# define DSA_F_DSA_METH_DUP 127 +# define DSA_F_DSA_METH_NEW 128 +# define DSA_F_DSA_METH_SET1_NAME 129 +# define DSA_F_DSA_NEW_METHOD 103 +# define DSA_F_DSA_PARAM_DECODE 119 +# define DSA_F_DSA_PRINT_FP 105 +# define DSA_F_DSA_PRIV_DECODE 115 +# define DSA_F_DSA_PRIV_ENCODE 116 +# define DSA_F_DSA_PUB_DECODE 117 +# define DSA_F_DSA_PUB_ENCODE 118 +# define DSA_F_DSA_SIGN 106 +# define DSA_F_DSA_SIGN_SETUP 107 +# define DSA_F_DSA_SIG_NEW 102 +# define DSA_F_OLD_DSA_PRIV_DECODE 122 +# define DSA_F_PKEY_DSA_CTRL 120 +# define DSA_F_PKEY_DSA_CTRL_STR 104 +# define DSA_F_PKEY_DSA_KEYGEN 121 + +/* + * DSA reason codes. + */ +# define DSA_R_BAD_Q_VALUE 102 +# define DSA_R_BN_DECODE_ERROR 108 +# define DSA_R_BN_ERROR 109 +# define DSA_R_DECODE_ERROR 104 +# define DSA_R_INVALID_DIGEST_TYPE 106 +# define DSA_R_INVALID_PARAMETERS 112 +# define DSA_R_MISSING_PARAMETERS 101 +# define DSA_R_MODULUS_TOO_LARGE 103 +# define DSA_R_NO_PARAMETERS_SET 107 +# define DSA_R_PARAMETER_ENCODING_ERROR 105 +# define DSA_R_Q_NOT_PRIME 113 +# define DSA_R_SEED_LEN_SMALL 110 + +# endif +#endif diff --git a/noarch/include/node/openssl/dso_conf_no-asm.h b/noarch/include/node/openssl/dso_conf_no-asm.h index 9d0e3e0e..c3507ce3 100644 --- a/noarch/include/node/openssl/dso_conf_no-asm.h +++ b/noarch/include/node/openssl/dso_conf_no-asm.h @@ -21,6 +21,8 @@ # include "./archs/VC-WIN32/no-asm/crypto/include/internal/dso_conf.h" #elif defined(_WIN32) && defined(_M_X64) # include "./archs/VC-WIN64A/no-asm/crypto/include/internal/dso_conf.h" +#elif defined(_WIN32) && defined(_M_ARM64) +# include "./archs/VC-WIN64-ARM/no-asm/crypto/include/internal/dso_conf.h" #elif (defined(__FreeBSD__) || defined(__OpenBSD__)) && defined(__i386__) # include "./archs/BSD-x86/no-asm/crypto/include/internal/dso_conf.h" #elif (defined(__FreeBSD__) || defined(__OpenBSD__)) && defined(__x86_64__) diff --git a/noarch/include/node/openssl/dtls1.h b/noarch/include/node/openssl/dtls1.h index f4769f83..a312e386 100644 --- a/noarch/include/node/openssl/dtls1.h +++ b/noarch/include/node/openssl/dtls1.h @@ -1,5 +1,5 @@ /* - * Copyright 2005-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2005-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -26,6 +26,10 @@ extern "C" { # define DTLS_ANY_VERSION 0x1FFFF /* lengths of messages */ +/* + * Actually the max cookie length in DTLS is 255. But we can't change this now + * due to compatibility concerns. + */ # define DTLS1_COOKIE_LENGTH 256 # define DTLS1_RT_HEADER_LENGTH 13 @@ -37,12 +41,7 @@ extern "C" { # define DTLS1_CCS_HEADER_LENGTH 1 -# ifdef DTLS1_AD_MISSING_HANDSHAKE_MESSAGE -# define DTLS1_AL_HEADER_LENGTH 7 -# else -# define DTLS1_AL_HEADER_LENGTH 2 -# endif - +# define DTLS1_AL_HEADER_LENGTH 2 /* Timeout multipliers (timeout slice is defined in apps/timeouts.h */ # define DTLS1_TMO_READ_COUNT 2 diff --git a/noarch/include/node/openssl/e_os2.h b/noarch/include/node/openssl/e_os2.h index 9800e154..97a776cd 100644 --- a/noarch/include/node/openssl/e_os2.h +++ b/noarch/include/node/openssl/e_os2.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -146,36 +146,30 @@ extern "C" { # endif /*- - * Definitions of OPENSSL_GLOBAL and OPENSSL_EXTERN, to define and declare - * certain global symbols that, with some compilers under VMS, have to be - * defined and declared explicitly with globaldef and globalref. - * Definitions of OPENSSL_EXPORT and OPENSSL_IMPORT, to define and declare - * DLL exports and imports for compilers under Win32. These are a little - * more complicated to use. Basically, for any library that exports some - * global variables, the following code must be present in the header file - * that declares them, before OPENSSL_EXTERN is used: + * OPENSSL_EXTERN is normally used to declare a symbol with possible extra + * attributes to handle its presence in a shared library. + * OPENSSL_EXPORT is used to define a symbol with extra possible attributes + * to make it visible in a shared library. + * Care needs to be taken when a header file is used both to declare and + * define symbols. Basically, for any library that exports some global + * variables, the following code must be present in the header file that + * declares them, before OPENSSL_EXTERN is used: * * #ifdef SOME_BUILD_FLAG_MACRO * # undef OPENSSL_EXTERN * # define OPENSSL_EXTERN OPENSSL_EXPORT * #endif * - * The default is to have OPENSSL_EXPORT, OPENSSL_EXTERN and OPENSSL_GLOBAL + * The default is to have OPENSSL_EXPORT and OPENSSL_EXTERN * have some generally sensible values. */ -# if defined(OPENSSL_SYS_VMS_NODECC) -# define OPENSSL_EXPORT globalref -# define OPENSSL_EXTERN globalref -# define OPENSSL_GLOBAL globaldef -# elif defined(OPENSSL_SYS_WINDOWS) && defined(OPENSSL_OPT_WINDLL) +# if defined(OPENSSL_SYS_WINDOWS) && defined(OPENSSL_OPT_WINDLL) # define OPENSSL_EXPORT extern __declspec(dllexport) # define OPENSSL_EXTERN extern __declspec(dllimport) -# define OPENSSL_GLOBAL # else # define OPENSSL_EXPORT extern # define OPENSSL_EXTERN extern -# define OPENSSL_GLOBAL # endif /*- @@ -196,7 +190,7 @@ extern "C" { # define OPENSSL_DECLARE_GLOBAL(type,name) type *_shadow_##name(void) # define OPENSSL_GLOBAL_REF(name) (*(_shadow_##name())) # else -# define OPENSSL_IMPLEMENT_GLOBAL(type,name,value) OPENSSL_GLOBAL type _shadow_##name=value; +# define OPENSSL_IMPLEMENT_GLOBAL(type,name,value) type _shadow_##name=value; # define OPENSSL_DECLARE_GLOBAL(type,name) OPENSSL_EXPORT type _shadow_##name # define OPENSSL_GLOBAL_REF(name) _shadow_##name # endif @@ -222,6 +216,8 @@ extern "C" { # define OSSL_SSIZE_MAX SSIZE_MAX # elif defined(_POSIX_SSIZE_MAX) # define OSSL_SSIZE_MAX _POSIX_SSIZE_MAX +# else +# define OSSL_SSIZE_MAX ((ssize_t)(SIZE_MAX>>1)) # endif # endif @@ -291,6 +287,13 @@ typedef unsigned __int64 uint64_t; # define ossl_noreturn # endif +/* ossl_unused: portable unused attribute for use in public headers */ +# if defined(__GNUC__) +# define ossl_unused __attribute__((unused)) +# else +# define ossl_unused +# endif + #ifdef __cplusplus } #endif diff --git a/noarch/include/node/openssl/ec.h b/noarch/include/node/openssl/ec.h index f06680a7..347cfb6d 100644 --- a/noarch/include/node/openssl/ec.h +++ b/noarch/include/node/openssl/ec.h @@ -1,5 +1,6 @@ /* - * Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2002-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -7,20 +8,6 @@ * https://www.openssl.org/source/license.html */ -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * - * Portions of the attached software ("Contribution") are developed by - * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. - * - * The Contribution is licensed pursuant to the OpenSSL open source - * license provided above. - * - * The elliptic curve binary polynomial software is originally written by - * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. - * - */ - #ifndef HEADER_EC_H # define HEADER_EC_H @@ -32,6 +19,7 @@ # if OPENSSL_API_COMPAT < 0x10100000L # include # endif +# include # ifdef __cplusplus extern "C" { # endif @@ -235,50 +223,84 @@ unsigned char *EC_GROUP_get0_seed(const EC_GROUP *x); size_t EC_GROUP_get_seed_len(const EC_GROUP *); size_t EC_GROUP_set_seed(EC_GROUP *, const unsigned char *, size_t len); -/** Sets the parameter of a ec over GFp defined by y^2 = x^3 + a*x + b +/** Sets the parameters of a ec curve defined by y^2 = x^3 + a*x + b (for GFp) + * or y^2 + x*y = x^3 + a*x^2 + b (for GF2m) * \param group EC_GROUP object - * \param p BIGNUM with the prime number + * \param p BIGNUM with the prime number (GFp) or the polynomial + * defining the underlying field (GF2m) * \param a BIGNUM with parameter a of the equation * \param b BIGNUM with parameter b of the equation * \param ctx BN_CTX object (optional) * \return 1 on success and 0 if an error occurred */ -int EC_GROUP_set_curve_GFp(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, - const BIGNUM *b, BN_CTX *ctx); +int EC_GROUP_set_curve(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, + const BIGNUM *b, BN_CTX *ctx); -/** Gets the parameter of the ec over GFp defined by y^2 = x^3 + a*x + b +/** Gets the parameters of the ec curve defined by y^2 = x^3 + a*x + b (for GFp) + * or y^2 + x*y = x^3 + a*x^2 + b (for GF2m) * \param group EC_GROUP object - * \param p BIGNUM for the prime number + * \param p BIGNUM with the prime number (GFp) or the polynomial + * defining the underlying field (GF2m) * \param a BIGNUM for parameter a of the equation * \param b BIGNUM for parameter b of the equation * \param ctx BN_CTX object (optional) * \return 1 on success and 0 if an error occurred */ -int EC_GROUP_get_curve_GFp(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, - BIGNUM *b, BN_CTX *ctx); +int EC_GROUP_get_curve(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, BIGNUM *b, + BN_CTX *ctx); + +/** Sets the parameters of an ec curve. Synonym for EC_GROUP_set_curve + * \param group EC_GROUP object + * \param p BIGNUM with the prime number (GFp) or the polynomial + * defining the underlying field (GF2m) + * \param a BIGNUM with parameter a of the equation + * \param b BIGNUM with parameter b of the equation + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ +DEPRECATEDIN_1_2_0(int EC_GROUP_set_curve_GFp(EC_GROUP *group, const BIGNUM *p, + const BIGNUM *a, const BIGNUM *b, + BN_CTX *ctx)) + +/** Gets the parameters of an ec curve. Synonym for EC_GROUP_get_curve + * \param group EC_GROUP object + * \param p BIGNUM with the prime number (GFp) or the polynomial + * defining the underlying field (GF2m) + * \param a BIGNUM for parameter a of the equation + * \param b BIGNUM for parameter b of the equation + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ +DEPRECATEDIN_1_2_0(int EC_GROUP_get_curve_GFp(const EC_GROUP *group, BIGNUM *p, + BIGNUM *a, BIGNUM *b, + BN_CTX *ctx)) # ifndef OPENSSL_NO_EC2M -/** Sets the parameter of a ec over GF2m defined by y^2 + x*y = x^3 + a*x^2 + b +/** Sets the parameter of an ec curve. Synonym for EC_GROUP_set_curve * \param group EC_GROUP object - * \param p BIGNUM with the polynomial defining the underlying field + * \param p BIGNUM with the prime number (GFp) or the polynomial + * defining the underlying field (GF2m) * \param a BIGNUM with parameter a of the equation * \param b BIGNUM with parameter b of the equation * \param ctx BN_CTX object (optional) * \return 1 on success and 0 if an error occurred */ -int EC_GROUP_set_curve_GF2m(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, - const BIGNUM *b, BN_CTX *ctx); +DEPRECATEDIN_1_2_0(int EC_GROUP_set_curve_GF2m(EC_GROUP *group, const BIGNUM *p, + const BIGNUM *a, const BIGNUM *b, + BN_CTX *ctx)) -/** Gets the parameter of the ec over GF2m defined by y^2 + x*y = x^3 + a*x^2 + b +/** Gets the parameters of an ec curve. Synonym for EC_GROUP_get_curve * \param group EC_GROUP object - * \param p BIGNUM for the polynomial defining the underlying field + * \param p BIGNUM with the prime number (GFp) or the polynomial + * defining the underlying field (GF2m) * \param a BIGNUM for parameter a of the equation * \param b BIGNUM for parameter b of the equation * \param ctx BN_CTX object (optional) * \return 1 on success and 0 if an error occurred */ -int EC_GROUP_get_curve_GF2m(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, - BIGNUM *b, BN_CTX *ctx); +DEPRECATEDIN_1_2_0(int EC_GROUP_get_curve_GF2m(const EC_GROUP *group, BIGNUM *p, + BIGNUM *a, BIGNUM *b, + BN_CTX *ctx)) # endif /** Returns the number of bits needed to represent a field element * \param group EC_GROUP object @@ -350,7 +372,7 @@ EC_GROUP *EC_GROUP_new_by_curve_name(int nid); */ EC_GROUP *EC_GROUP_new_from_ecparameters(const ECPARAMETERS *params); -/** Creates an ECPARAMETERS object for the the given EC_GROUP object. +/** Creates an ECPARAMETERS object for the given EC_GROUP object. * \param group pointer to the EC_GROUP object * \param params pointer to an existing ECPARAMETERS object or NULL * \return pointer to the new ECPARAMETERS object or NULL @@ -366,7 +388,7 @@ ECPARAMETERS *EC_GROUP_get_ecparameters(const EC_GROUP *group, */ EC_GROUP *EC_GROUP_new_from_ecpkparameters(const ECPKPARAMETERS *params); -/** Creates an ECPKPARAMETERS object for the the given EC_GROUP object. +/** Creates an ECPKPARAMETERS object for the given EC_GROUP object. * \param group pointer to the EC_GROUP object * \param params pointer to an existing ECPKPARAMETERS object or NULL * \return pointer to the new ECPKPARAMETERS object or NULL @@ -471,7 +493,7 @@ int EC_POINT_get_Jprojective_coordinates_GFp(const EC_GROUP *group, BIGNUM *y, BIGNUM *z, BN_CTX *ctx); -/** Sets the affine coordinates of a EC_POINT over GFp +/** Sets the affine coordinates of an EC_POINT * \param group underlying EC_GROUP object * \param p EC_POINT object * \param x BIGNUM with the x-coordinate @@ -479,23 +501,65 @@ int EC_POINT_get_Jprojective_coordinates_GFp(const EC_GROUP *group, * \param ctx BN_CTX object (optional) * \return 1 on success and 0 if an error occurred */ -int EC_POINT_set_affine_coordinates_GFp(const EC_GROUP *group, EC_POINT *p, - const BIGNUM *x, const BIGNUM *y, +int EC_POINT_set_affine_coordinates(const EC_GROUP *group, EC_POINT *p, + const BIGNUM *x, const BIGNUM *y, + BN_CTX *ctx); + +/** Gets the affine coordinates of an EC_POINT. + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param x BIGNUM for the x-coordinate + * \param y BIGNUM for the y-coordinate + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ +int EC_POINT_get_affine_coordinates(const EC_GROUP *group, const EC_POINT *p, + BIGNUM *x, BIGNUM *y, BN_CTX *ctx); + +/** Sets the affine coordinates of an EC_POINT. A synonym of + * EC_POINT_set_affine_coordinates + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param x BIGNUM with the x-coordinate + * \param y BIGNUM with the y-coordinate + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ +DEPRECATEDIN_1_2_0(int EC_POINT_set_affine_coordinates_GFp(const EC_GROUP *group, + EC_POINT *p, + const BIGNUM *x, + const BIGNUM *y, + BN_CTX *ctx)) + +/** Gets the affine coordinates of an EC_POINT. A synonym of + * EC_POINT_get_affine_coordinates + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param x BIGNUM for the x-coordinate + * \param y BIGNUM for the y-coordinate + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ +DEPRECATEDIN_1_2_0(int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group, + const EC_POINT *p, + BIGNUM *x, + BIGNUM *y, + BN_CTX *ctx)) + +/** Sets the x9.62 compressed coordinates of a EC_POINT + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param x BIGNUM with x-coordinate + * \param y_bit integer with the y-Bit (either 0 or 1) + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ +int EC_POINT_set_compressed_coordinates(const EC_GROUP *group, EC_POINT *p, + const BIGNUM *x, int y_bit, BN_CTX *ctx); -/** Gets the affine coordinates of a EC_POINT over GFp - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM for the x-coordinate - * \param y BIGNUM for the y-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group, - const EC_POINT *p, BIGNUM *x, - BIGNUM *y, BN_CTX *ctx); - -/** Sets the x9.62 compressed coordinates of a EC_POINT over GFp +/** Sets the x9.62 compressed coordinates of a EC_POINT. A synonym of + * EC_POINT_set_compressed_coordinates * \param group underlying EC_GROUP object * \param p EC_POINT object * \param x BIGNUM with x-coordinate @@ -503,11 +567,14 @@ int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group, * \param ctx BN_CTX object (optional) * \return 1 on success and 0 if an error occurred */ -int EC_POINT_set_compressed_coordinates_GFp(const EC_GROUP *group, - EC_POINT *p, const BIGNUM *x, - int y_bit, BN_CTX *ctx); +DEPRECATEDIN_1_2_0(int EC_POINT_set_compressed_coordinates_GFp(const EC_GROUP *group, + EC_POINT *p, + const BIGNUM *x, + int y_bit, + BN_CTX *ctx)) # ifndef OPENSSL_NO_EC2M -/** Sets the affine coordinates of a EC_POINT over GF2m +/** Sets the affine coordinates of an EC_POINT. A synonym of + * EC_POINT_set_affine_coordinates * \param group underlying EC_GROUP object * \param p EC_POINT object * \param x BIGNUM with the x-coordinate @@ -515,11 +582,14 @@ int EC_POINT_set_compressed_coordinates_GFp(const EC_GROUP *group, * \param ctx BN_CTX object (optional) * \return 1 on success and 0 if an error occurred */ -int EC_POINT_set_affine_coordinates_GF2m(const EC_GROUP *group, EC_POINT *p, - const BIGNUM *x, const BIGNUM *y, - BN_CTX *ctx); +DEPRECATEDIN_1_2_0(int EC_POINT_set_affine_coordinates_GF2m(const EC_GROUP *group, + EC_POINT *p, + const BIGNUM *x, + const BIGNUM *y, + BN_CTX *ctx)) -/** Gets the affine coordinates of a EC_POINT over GF2m +/** Gets the affine coordinates of an EC_POINT. A synonym of + * EC_POINT_get_affine_coordinates * \param group underlying EC_GROUP object * \param p EC_POINT object * \param x BIGNUM for the x-coordinate @@ -527,11 +597,14 @@ int EC_POINT_set_affine_coordinates_GF2m(const EC_GROUP *group, EC_POINT *p, * \param ctx BN_CTX object (optional) * \return 1 on success and 0 if an error occurred */ -int EC_POINT_get_affine_coordinates_GF2m(const EC_GROUP *group, - const EC_POINT *p, BIGNUM *x, - BIGNUM *y, BN_CTX *ctx); +DEPRECATEDIN_1_2_0(int EC_POINT_get_affine_coordinates_GF2m(const EC_GROUP *group, + const EC_POINT *p, + BIGNUM *x, + BIGNUM *y, + BN_CTX *ctx)) -/** Sets the x9.62 compressed coordinates of a EC_POINT over GF2m +/** Sets the x9.62 compressed coordinates of a EC_POINT. A synonym of + * EC_POINT_set_compressed_coordinates * \param group underlying EC_GROUP object * \param p EC_POINT object * \param x BIGNUM with x-coordinate @@ -539,9 +612,11 @@ int EC_POINT_get_affine_coordinates_GF2m(const EC_GROUP *group, * \param ctx BN_CTX object (optional) * \return 1 on success and 0 if an error occurred */ -int EC_POINT_set_compressed_coordinates_GF2m(const EC_GROUP *group, - EC_POINT *p, const BIGNUM *x, - int y_bit, BN_CTX *ctx); +DEPRECATEDIN_1_2_0(int EC_POINT_set_compressed_coordinates_GF2m(const EC_GROUP *group, + EC_POINT *p, + const BIGNUM *x, + int y_bit, + BN_CTX *ctx)) # endif /** Encodes a EC_POINT object to a octet string * \param group underlying EC_GROUP object @@ -785,6 +860,12 @@ EC_KEY *EC_KEY_dup(const EC_KEY *src); */ int EC_KEY_up_ref(EC_KEY *key); +/** Returns the ENGINE object of a EC_KEY object + * \param eckey EC_KEY object + * \return the ENGINE object (possibly NULL). + */ +ENGINE *EC_KEY_get0_engine(const EC_KEY *eckey); + /** Returns the EC_GROUP object of a EC_KEY object * \param key EC_KEY object * \return the EC_GROUP object (possibly NULL). @@ -1026,6 +1107,11 @@ const EC_KEY_METHOD *EC_KEY_get_method(const EC_KEY *key); int EC_KEY_set_method(EC_KEY *key, const EC_KEY_METHOD *meth); EC_KEY *EC_KEY_new_method(ENGINE *engine); +/** The old name for ecdh_KDF_X9_63 + * The ECDH KDF specification has been mistakingly attributed to ANSI X9.62, + * it is actually specified in ANSI X9.63. + * This identifier is retained for backwards compatibility + */ int ECDH_KDF_X9_62(unsigned char *out, size_t outlen, const unsigned char *Z, size_t Zlen, const unsigned char *sinfo, size_t sinfolen, @@ -1066,14 +1152,24 @@ int i2d_ECDSA_SIG(const ECDSA_SIG *sig, unsigned char **pp); ECDSA_SIG *d2i_ECDSA_SIG(ECDSA_SIG **sig, const unsigned char **pp, long len); /** Accessor for r and s fields of ECDSA_SIG - * \param sig pointer to ECDSA_SIG pointer + * \param sig pointer to ECDSA_SIG structure * \param pr pointer to BIGNUM pointer for r (may be NULL) * \param ps pointer to BIGNUM pointer for s (may be NULL) */ void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps); +/** Accessor for r field of ECDSA_SIG + * \param sig pointer to ECDSA_SIG structure + */ +const BIGNUM *ECDSA_SIG_get0_r(const ECDSA_SIG *sig); + +/** Accessor for s field of ECDSA_SIG + * \param sig pointer to ECDSA_SIG structure + */ +const BIGNUM *ECDSA_SIG_get0_s(const ECDSA_SIG *sig); + /** Setter for r and s fields of ECDSA_SIG - * \param sig pointer to ECDSA_SIG pointer + * \param sig pointer to ECDSA_SIG structure * \param r pointer to BIGNUM for r (may be NULL) * \param s pointer to BIGNUM for s (may be NULL) */ @@ -1310,12 +1406,12 @@ void EC_KEY_METHOD_get_verify(const EC_KEY_METHOD *meth, # define EVP_PKEY_CTX_set_ecdh_kdf_md(ctx, md) \ EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_EC_KDF_MD, 0, (void *)md) + EVP_PKEY_CTRL_EC_KDF_MD, 0, (void *)(md)) # define EVP_PKEY_CTX_get_ecdh_kdf_md(ctx, pmd) \ EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_GET_EC_KDF_MD, 0, (void *)pmd) + EVP_PKEY_CTRL_GET_EC_KDF_MD, 0, (void *)(pmd)) # define EVP_PKEY_CTX_set_ecdh_kdf_outlen(ctx, len) \ EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ @@ -1325,17 +1421,31 @@ void EC_KEY_METHOD_get_verify(const EC_KEY_METHOD *meth, # define EVP_PKEY_CTX_get_ecdh_kdf_outlen(ctx, plen) \ EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_GET_EC_KDF_OUTLEN, 0, (void *)plen) + EVP_PKEY_CTRL_GET_EC_KDF_OUTLEN, 0, \ + (void *)(plen)) # define EVP_PKEY_CTX_set0_ecdh_kdf_ukm(ctx, p, plen) \ EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_EC_KDF_UKM, plen, (void *)p) + EVP_PKEY_CTRL_EC_KDF_UKM, plen, (void *)(p)) # define EVP_PKEY_CTX_get0_ecdh_kdf_ukm(ctx, p) \ EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_GET_EC_KDF_UKM, 0, (void *)p) + EVP_PKEY_CTRL_GET_EC_KDF_UKM, 0, (void *)(p)) + +/* SM2 will skip the operation check so no need to pass operation here */ +# define EVP_PKEY_CTX_set1_id(ctx, id, id_len) \ + EVP_PKEY_CTX_ctrl(ctx, -1, -1, \ + EVP_PKEY_CTRL_SET1_ID, (int)id_len, (void*)(id)) + +# define EVP_PKEY_CTX_get1_id(ctx, id) \ + EVP_PKEY_CTX_ctrl(ctx, -1, -1, \ + EVP_PKEY_CTRL_GET1_ID, 0, (void*)(id)) + +# define EVP_PKEY_CTX_get1_id_len(ctx, id_len) \ + EVP_PKEY_CTX_ctrl(ctx, -1, -1, \ + EVP_PKEY_CTRL_GET1_ID_LEN, 0, (void*)(id_len)) # define EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID (EVP_PKEY_ALG_CTRL + 1) # define EVP_PKEY_CTRL_EC_PARAM_ENC (EVP_PKEY_ALG_CTRL + 2) @@ -1347,227 +1457,19 @@ void EC_KEY_METHOD_get_verify(const EC_KEY_METHOD *meth, # define EVP_PKEY_CTRL_GET_EC_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 8) # define EVP_PKEY_CTRL_EC_KDF_UKM (EVP_PKEY_ALG_CTRL + 9) # define EVP_PKEY_CTRL_GET_EC_KDF_UKM (EVP_PKEY_ALG_CTRL + 10) +# define EVP_PKEY_CTRL_SET1_ID (EVP_PKEY_ALG_CTRL + 11) +# define EVP_PKEY_CTRL_GET1_ID (EVP_PKEY_ALG_CTRL + 12) +# define EVP_PKEY_CTRL_GET1_ID_LEN (EVP_PKEY_ALG_CTRL + 13) /* KDF types */ # define EVP_PKEY_ECDH_KDF_NONE 1 -# define EVP_PKEY_ECDH_KDF_X9_62 2 - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. +# define EVP_PKEY_ECDH_KDF_X9_63 2 +/** The old name for EVP_PKEY_ECDH_KDF_X9_63 + * The ECDH KDF specification has been mistakingly attributed to ANSI X9.62, + * it is actually specified in ANSI X9.63. + * This identifier is retained for backwards compatibility */ +# define EVP_PKEY_ECDH_KDF_X9_62 EVP_PKEY_ECDH_KDF_X9_63 -int ERR_load_EC_strings(void); - -/* Error codes for the EC functions. */ - -/* Function codes. */ -# define EC_F_BN_TO_FELEM 224 -# define EC_F_D2I_ECPARAMETERS 144 -# define EC_F_D2I_ECPKPARAMETERS 145 -# define EC_F_D2I_ECPRIVATEKEY 146 -# define EC_F_DO_EC_KEY_PRINT 221 -# define EC_F_ECDH_CMS_DECRYPT 238 -# define EC_F_ECDH_CMS_SET_SHARED_INFO 239 -# define EC_F_ECDH_COMPUTE_KEY 246 -# define EC_F_ECDH_SIMPLE_COMPUTE_KEY 257 -# define EC_F_ECDSA_DO_SIGN_EX 251 -# define EC_F_ECDSA_DO_VERIFY 252 -# define EC_F_ECDSA_SIGN_EX 254 -# define EC_F_ECDSA_SIGN_SETUP 248 -# define EC_F_ECDSA_SIG_NEW 265 -# define EC_F_ECDSA_VERIFY 253 -# define EC_F_ECKEY_PARAM2TYPE 223 -# define EC_F_ECKEY_PARAM_DECODE 212 -# define EC_F_ECKEY_PRIV_DECODE 213 -# define EC_F_ECKEY_PRIV_ENCODE 214 -# define EC_F_ECKEY_PUB_DECODE 215 -# define EC_F_ECKEY_PUB_ENCODE 216 -# define EC_F_ECKEY_TYPE2PARAM 220 -# define EC_F_ECPARAMETERS_PRINT 147 -# define EC_F_ECPARAMETERS_PRINT_FP 148 -# define EC_F_ECPKPARAMETERS_PRINT 149 -# define EC_F_ECPKPARAMETERS_PRINT_FP 150 -# define EC_F_ECP_NISTZ256_GET_AFFINE 240 -# define EC_F_ECP_NISTZ256_MULT_PRECOMPUTE 243 -# define EC_F_ECP_NISTZ256_POINTS_MUL 241 -# define EC_F_ECP_NISTZ256_PRE_COMP_NEW 244 -# define EC_F_ECP_NISTZ256_WINDOWED_MUL 242 -# define EC_F_ECX_KEY_OP 266 -# define EC_F_ECX_PRIV_ENCODE 267 -# define EC_F_ECX_PUB_ENCODE 268 -# define EC_F_EC_ASN1_GROUP2CURVE 153 -# define EC_F_EC_ASN1_GROUP2FIELDID 154 -# define EC_F_EC_GF2M_MONTGOMERY_POINT_MULTIPLY 208 -# define EC_F_EC_GF2M_SIMPLE_GROUP_CHECK_DISCRIMINANT 159 -# define EC_F_EC_GF2M_SIMPLE_GROUP_SET_CURVE 195 -# define EC_F_EC_GF2M_SIMPLE_OCT2POINT 160 -# define EC_F_EC_GF2M_SIMPLE_POINT2OCT 161 -# define EC_F_EC_GF2M_SIMPLE_POINT_GET_AFFINE_COORDINATES 162 -# define EC_F_EC_GF2M_SIMPLE_POINT_SET_AFFINE_COORDINATES 163 -# define EC_F_EC_GF2M_SIMPLE_SET_COMPRESSED_COORDINATES 164 -# define EC_F_EC_GFP_MONT_FIELD_DECODE 133 -# define EC_F_EC_GFP_MONT_FIELD_ENCODE 134 -# define EC_F_EC_GFP_MONT_FIELD_MUL 131 -# define EC_F_EC_GFP_MONT_FIELD_SET_TO_ONE 209 -# define EC_F_EC_GFP_MONT_FIELD_SQR 132 -# define EC_F_EC_GFP_MONT_GROUP_SET_CURVE 189 -# define EC_F_EC_GFP_NISTP224_GROUP_SET_CURVE 225 -# define EC_F_EC_GFP_NISTP224_POINTS_MUL 228 -# define EC_F_EC_GFP_NISTP224_POINT_GET_AFFINE_COORDINATES 226 -# define EC_F_EC_GFP_NISTP256_GROUP_SET_CURVE 230 -# define EC_F_EC_GFP_NISTP256_POINTS_MUL 231 -# define EC_F_EC_GFP_NISTP256_POINT_GET_AFFINE_COORDINATES 232 -# define EC_F_EC_GFP_NISTP521_GROUP_SET_CURVE 233 -# define EC_F_EC_GFP_NISTP521_POINTS_MUL 234 -# define EC_F_EC_GFP_NISTP521_POINT_GET_AFFINE_COORDINATES 235 -# define EC_F_EC_GFP_NIST_FIELD_MUL 200 -# define EC_F_EC_GFP_NIST_FIELD_SQR 201 -# define EC_F_EC_GFP_NIST_GROUP_SET_CURVE 202 -# define EC_F_EC_GFP_SIMPLE_GROUP_CHECK_DISCRIMINANT 165 -# define EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE 166 -# define EC_F_EC_GFP_SIMPLE_MAKE_AFFINE 102 -# define EC_F_EC_GFP_SIMPLE_OCT2POINT 103 -# define EC_F_EC_GFP_SIMPLE_POINT2OCT 104 -# define EC_F_EC_GFP_SIMPLE_POINTS_MAKE_AFFINE 137 -# define EC_F_EC_GFP_SIMPLE_POINT_GET_AFFINE_COORDINATES 167 -# define EC_F_EC_GFP_SIMPLE_POINT_SET_AFFINE_COORDINATES 168 -# define EC_F_EC_GFP_SIMPLE_SET_COMPRESSED_COORDINATES 169 -# define EC_F_EC_GROUP_CHECK 170 -# define EC_F_EC_GROUP_CHECK_DISCRIMINANT 171 -# define EC_F_EC_GROUP_COPY 106 -# define EC_F_EC_GROUP_GET_CURVE_GF2M 172 -# define EC_F_EC_GROUP_GET_CURVE_GFP 130 -# define EC_F_EC_GROUP_GET_DEGREE 173 -# define EC_F_EC_GROUP_GET_ECPARAMETERS 261 -# define EC_F_EC_GROUP_GET_ECPKPARAMETERS 262 -# define EC_F_EC_GROUP_GET_PENTANOMIAL_BASIS 193 -# define EC_F_EC_GROUP_GET_TRINOMIAL_BASIS 194 -# define EC_F_EC_GROUP_NEW 108 -# define EC_F_EC_GROUP_NEW_BY_CURVE_NAME 174 -# define EC_F_EC_GROUP_NEW_FROM_DATA 175 -# define EC_F_EC_GROUP_NEW_FROM_ECPARAMETERS 263 -# define EC_F_EC_GROUP_NEW_FROM_ECPKPARAMETERS 264 -# define EC_F_EC_GROUP_SET_CURVE_GF2M 176 -# define EC_F_EC_GROUP_SET_CURVE_GFP 109 -# define EC_F_EC_GROUP_SET_GENERATOR 111 -# define EC_F_EC_KEY_CHECK_KEY 177 -# define EC_F_EC_KEY_COPY 178 -# define EC_F_EC_KEY_GENERATE_KEY 179 -# define EC_F_EC_KEY_NEW 182 -# define EC_F_EC_KEY_NEW_METHOD 245 -# define EC_F_EC_KEY_OCT2PRIV 255 -# define EC_F_EC_KEY_PRINT 180 -# define EC_F_EC_KEY_PRINT_FP 181 -# define EC_F_EC_KEY_PRIV2OCT 256 -# define EC_F_EC_KEY_SET_PUBLIC_KEY_AFFINE_COORDINATES 229 -# define EC_F_EC_KEY_SIMPLE_CHECK_KEY 258 -# define EC_F_EC_KEY_SIMPLE_OCT2PRIV 259 -# define EC_F_EC_KEY_SIMPLE_PRIV2OCT 260 -# define EC_F_EC_POINTS_MAKE_AFFINE 136 -# define EC_F_EC_POINT_ADD 112 -# define EC_F_EC_POINT_CMP 113 -# define EC_F_EC_POINT_COPY 114 -# define EC_F_EC_POINT_DBL 115 -# define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GF2M 183 -# define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GFP 116 -# define EC_F_EC_POINT_GET_JPROJECTIVE_COORDINATES_GFP 117 -# define EC_F_EC_POINT_INVERT 210 -# define EC_F_EC_POINT_IS_AT_INFINITY 118 -# define EC_F_EC_POINT_IS_ON_CURVE 119 -# define EC_F_EC_POINT_MAKE_AFFINE 120 -# define EC_F_EC_POINT_NEW 121 -# define EC_F_EC_POINT_OCT2POINT 122 -# define EC_F_EC_POINT_POINT2OCT 123 -# define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GF2M 185 -# define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GFP 124 -# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GF2M 186 -# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GFP 125 -# define EC_F_EC_POINT_SET_JPROJECTIVE_COORDINATES_GFP 126 -# define EC_F_EC_POINT_SET_TO_INFINITY 127 -# define EC_F_EC_PRE_COMP_NEW 196 -# define EC_F_EC_WNAF_MUL 187 -# define EC_F_EC_WNAF_PRECOMPUTE_MULT 188 -# define EC_F_I2D_ECPARAMETERS 190 -# define EC_F_I2D_ECPKPARAMETERS 191 -# define EC_F_I2D_ECPRIVATEKEY 192 -# define EC_F_I2O_ECPUBLICKEY 151 -# define EC_F_NISTP224_PRE_COMP_NEW 227 -# define EC_F_NISTP256_PRE_COMP_NEW 236 -# define EC_F_NISTP521_PRE_COMP_NEW 237 -# define EC_F_O2I_ECPUBLICKEY 152 -# define EC_F_OLD_EC_PRIV_DECODE 222 -# define EC_F_OSSL_ECDH_COMPUTE_KEY 247 -# define EC_F_OSSL_ECDSA_SIGN_SIG 249 -# define EC_F_OSSL_ECDSA_VERIFY_SIG 250 -# define EC_F_PKEY_ECX_DERIVE 269 -# define EC_F_PKEY_EC_CTRL 197 -# define EC_F_PKEY_EC_CTRL_STR 198 -# define EC_F_PKEY_EC_DERIVE 217 -# define EC_F_PKEY_EC_KEYGEN 199 -# define EC_F_PKEY_EC_PARAMGEN 219 -# define EC_F_PKEY_EC_SIGN 218 - -/* Reason codes. */ -# define EC_R_ASN1_ERROR 115 -# define EC_R_BAD_SIGNATURE 156 -# define EC_R_BIGNUM_OUT_OF_RANGE 144 -# define EC_R_BUFFER_TOO_SMALL 100 -# define EC_R_COORDINATES_OUT_OF_RANGE 146 -# define EC_R_CURVE_DOES_NOT_SUPPORT_ECDH 160 -# define EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING 159 -# define EC_R_D2I_ECPKPARAMETERS_FAILURE 117 -# define EC_R_DECODE_ERROR 142 -# define EC_R_DISCRIMINANT_IS_ZERO 118 -# define EC_R_EC_GROUP_NEW_BY_NAME_FAILURE 119 -# define EC_R_FIELD_TOO_LARGE 143 -# define EC_R_GF2M_NOT_SUPPORTED 147 -# define EC_R_GROUP2PKPARAMETERS_FAILURE 120 -# define EC_R_I2D_ECPKPARAMETERS_FAILURE 121 -# define EC_R_INCOMPATIBLE_OBJECTS 101 -# define EC_R_INVALID_ARGUMENT 112 -# define EC_R_INVALID_COMPRESSED_POINT 110 -# define EC_R_INVALID_COMPRESSION_BIT 109 -# define EC_R_INVALID_CURVE 141 -# define EC_R_INVALID_DIGEST 151 -# define EC_R_INVALID_DIGEST_TYPE 138 -# define EC_R_INVALID_ENCODING 102 -# define EC_R_INVALID_FIELD 103 -# define EC_R_INVALID_FORM 104 -# define EC_R_INVALID_GROUP_ORDER 122 -# define EC_R_INVALID_KEY 116 -# define EC_R_INVALID_OUTPUT_LENGTH 161 -# define EC_R_INVALID_PEER_KEY 133 -# define EC_R_INVALID_PENTANOMIAL_BASIS 132 -# define EC_R_INVALID_PRIVATE_KEY 123 -# define EC_R_INVALID_TRINOMIAL_BASIS 137 -# define EC_R_KDF_PARAMETER_ERROR 148 -# define EC_R_KEYS_NOT_SET 140 -# define EC_R_MISSING_PARAMETERS 124 -# define EC_R_MISSING_PRIVATE_KEY 125 -# define EC_R_NEED_NEW_SETUP_VALUES 157 -# define EC_R_NOT_A_NIST_PRIME 135 -# define EC_R_NOT_IMPLEMENTED 126 -# define EC_R_NOT_INITIALIZED 111 -# define EC_R_NO_PARAMETERS_SET 139 -# define EC_R_NO_PRIVATE_VALUE 154 -# define EC_R_OPERATION_NOT_SUPPORTED 152 -# define EC_R_PASSED_NULL_PARAMETER 134 -# define EC_R_PEER_KEY_ERROR 149 -# define EC_R_PKPARAMETERS2GROUP_FAILURE 127 -# define EC_R_POINT_ARITHMETIC_FAILURE 155 -# define EC_R_POINT_AT_INFINITY 106 -# define EC_R_POINT_IS_NOT_ON_CURVE 107 -# define EC_R_RANDOM_NUMBER_GENERATION_FAILED 158 -# define EC_R_SHARED_INFO_ERROR 150 -# define EC_R_SLOT_FULL 108 -# define EC_R_UNDEFINED_GENERATOR 113 -# define EC_R_UNDEFINED_ORDER 128 -# define EC_R_UNKNOWN_GROUP 129 -# define EC_R_UNKNOWN_ORDER 114 -# define EC_R_UNSUPPORTED_FIELD 131 -# define EC_R_WRONG_CURVE_PARAMETERS 145 -# define EC_R_WRONG_ORDER 130 # ifdef __cplusplus } diff --git a/noarch/include/node/openssl/ecerr.h b/noarch/include/node/openssl/ecerr.h new file mode 100644 index 00000000..be313d28 --- /dev/null +++ b/noarch/include/node/openssl/ecerr.h @@ -0,0 +1,271 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_ECERR_H +# define HEADER_ECERR_H + +# include + +# ifndef OPENSSL_NO_EC + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_EC_strings(void); + +/* + * EC function codes. + */ +# define EC_F_BN_TO_FELEM 224 +# define EC_F_D2I_ECPARAMETERS 144 +# define EC_F_D2I_ECPKPARAMETERS 145 +# define EC_F_D2I_ECPRIVATEKEY 146 +# define EC_F_DO_EC_KEY_PRINT 221 +# define EC_F_ECDH_CMS_DECRYPT 238 +# define EC_F_ECDH_CMS_SET_SHARED_INFO 239 +# define EC_F_ECDH_COMPUTE_KEY 246 +# define EC_F_ECDH_SIMPLE_COMPUTE_KEY 257 +# define EC_F_ECDSA_DO_SIGN_EX 251 +# define EC_F_ECDSA_DO_VERIFY 252 +# define EC_F_ECDSA_SIGN_EX 254 +# define EC_F_ECDSA_SIGN_SETUP 248 +# define EC_F_ECDSA_SIG_NEW 265 +# define EC_F_ECDSA_VERIFY 253 +# define EC_F_ECD_ITEM_VERIFY 270 +# define EC_F_ECKEY_PARAM2TYPE 223 +# define EC_F_ECKEY_PARAM_DECODE 212 +# define EC_F_ECKEY_PRIV_DECODE 213 +# define EC_F_ECKEY_PRIV_ENCODE 214 +# define EC_F_ECKEY_PUB_DECODE 215 +# define EC_F_ECKEY_PUB_ENCODE 216 +# define EC_F_ECKEY_TYPE2PARAM 220 +# define EC_F_ECPARAMETERS_PRINT 147 +# define EC_F_ECPARAMETERS_PRINT_FP 148 +# define EC_F_ECPKPARAMETERS_PRINT 149 +# define EC_F_ECPKPARAMETERS_PRINT_FP 150 +# define EC_F_ECP_NISTZ256_GET_AFFINE 240 +# define EC_F_ECP_NISTZ256_INV_MOD_ORD 275 +# define EC_F_ECP_NISTZ256_MULT_PRECOMPUTE 243 +# define EC_F_ECP_NISTZ256_POINTS_MUL 241 +# define EC_F_ECP_NISTZ256_PRE_COMP_NEW 244 +# define EC_F_ECP_NISTZ256_WINDOWED_MUL 242 +# define EC_F_ECX_KEY_OP 266 +# define EC_F_ECX_PRIV_ENCODE 267 +# define EC_F_ECX_PUB_ENCODE 268 +# define EC_F_EC_ASN1_GROUP2CURVE 153 +# define EC_F_EC_ASN1_GROUP2FIELDID 154 +# define EC_F_EC_GF2M_MONTGOMERY_POINT_MULTIPLY 208 +# define EC_F_EC_GF2M_SIMPLE_FIELD_INV 296 +# define EC_F_EC_GF2M_SIMPLE_GROUP_CHECK_DISCRIMINANT 159 +# define EC_F_EC_GF2M_SIMPLE_GROUP_SET_CURVE 195 +# define EC_F_EC_GF2M_SIMPLE_LADDER_POST 285 +# define EC_F_EC_GF2M_SIMPLE_LADDER_PRE 288 +# define EC_F_EC_GF2M_SIMPLE_OCT2POINT 160 +# define EC_F_EC_GF2M_SIMPLE_POINT2OCT 161 +# define EC_F_EC_GF2M_SIMPLE_POINTS_MUL 289 +# define EC_F_EC_GF2M_SIMPLE_POINT_GET_AFFINE_COORDINATES 162 +# define EC_F_EC_GF2M_SIMPLE_POINT_SET_AFFINE_COORDINATES 163 +# define EC_F_EC_GF2M_SIMPLE_SET_COMPRESSED_COORDINATES 164 +# define EC_F_EC_GFP_MONT_FIELD_DECODE 133 +# define EC_F_EC_GFP_MONT_FIELD_ENCODE 134 +# define EC_F_EC_GFP_MONT_FIELD_INV 297 +# define EC_F_EC_GFP_MONT_FIELD_MUL 131 +# define EC_F_EC_GFP_MONT_FIELD_SET_TO_ONE 209 +# define EC_F_EC_GFP_MONT_FIELD_SQR 132 +# define EC_F_EC_GFP_MONT_GROUP_SET_CURVE 189 +# define EC_F_EC_GFP_NISTP224_GROUP_SET_CURVE 225 +# define EC_F_EC_GFP_NISTP224_POINTS_MUL 228 +# define EC_F_EC_GFP_NISTP224_POINT_GET_AFFINE_COORDINATES 226 +# define EC_F_EC_GFP_NISTP256_GROUP_SET_CURVE 230 +# define EC_F_EC_GFP_NISTP256_POINTS_MUL 231 +# define EC_F_EC_GFP_NISTP256_POINT_GET_AFFINE_COORDINATES 232 +# define EC_F_EC_GFP_NISTP521_GROUP_SET_CURVE 233 +# define EC_F_EC_GFP_NISTP521_POINTS_MUL 234 +# define EC_F_EC_GFP_NISTP521_POINT_GET_AFFINE_COORDINATES 235 +# define EC_F_EC_GFP_NIST_FIELD_MUL 200 +# define EC_F_EC_GFP_NIST_FIELD_SQR 201 +# define EC_F_EC_GFP_NIST_GROUP_SET_CURVE 202 +# define EC_F_EC_GFP_SIMPLE_BLIND_COORDINATES 287 +# define EC_F_EC_GFP_SIMPLE_FIELD_INV 298 +# define EC_F_EC_GFP_SIMPLE_GROUP_CHECK_DISCRIMINANT 165 +# define EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE 166 +# define EC_F_EC_GFP_SIMPLE_MAKE_AFFINE 102 +# define EC_F_EC_GFP_SIMPLE_OCT2POINT 103 +# define EC_F_EC_GFP_SIMPLE_POINT2OCT 104 +# define EC_F_EC_GFP_SIMPLE_POINTS_MAKE_AFFINE 137 +# define EC_F_EC_GFP_SIMPLE_POINT_GET_AFFINE_COORDINATES 167 +# define EC_F_EC_GFP_SIMPLE_POINT_SET_AFFINE_COORDINATES 168 +# define EC_F_EC_GFP_SIMPLE_SET_COMPRESSED_COORDINATES 169 +# define EC_F_EC_GROUP_CHECK 170 +# define EC_F_EC_GROUP_CHECK_DISCRIMINANT 171 +# define EC_F_EC_GROUP_COPY 106 +# define EC_F_EC_GROUP_GET_CURVE 291 +# define EC_F_EC_GROUP_GET_CURVE_GF2M 172 +# define EC_F_EC_GROUP_GET_CURVE_GFP 130 +# define EC_F_EC_GROUP_GET_DEGREE 173 +# define EC_F_EC_GROUP_GET_ECPARAMETERS 261 +# define EC_F_EC_GROUP_GET_ECPKPARAMETERS 262 +# define EC_F_EC_GROUP_GET_PENTANOMIAL_BASIS 193 +# define EC_F_EC_GROUP_GET_TRINOMIAL_BASIS 194 +# define EC_F_EC_GROUP_NEW 108 +# define EC_F_EC_GROUP_NEW_BY_CURVE_NAME 174 +# define EC_F_EC_GROUP_NEW_FROM_DATA 175 +# define EC_F_EC_GROUP_NEW_FROM_ECPARAMETERS 263 +# define EC_F_EC_GROUP_NEW_FROM_ECPKPARAMETERS 264 +# define EC_F_EC_GROUP_SET_CURVE 292 +# define EC_F_EC_GROUP_SET_CURVE_GF2M 176 +# define EC_F_EC_GROUP_SET_CURVE_GFP 109 +# define EC_F_EC_GROUP_SET_GENERATOR 111 +# define EC_F_EC_GROUP_SET_SEED 286 +# define EC_F_EC_KEY_CHECK_KEY 177 +# define EC_F_EC_KEY_COPY 178 +# define EC_F_EC_KEY_GENERATE_KEY 179 +# define EC_F_EC_KEY_NEW 182 +# define EC_F_EC_KEY_NEW_METHOD 245 +# define EC_F_EC_KEY_OCT2PRIV 255 +# define EC_F_EC_KEY_PRINT 180 +# define EC_F_EC_KEY_PRINT_FP 181 +# define EC_F_EC_KEY_PRIV2BUF 279 +# define EC_F_EC_KEY_PRIV2OCT 256 +# define EC_F_EC_KEY_SET_PUBLIC_KEY_AFFINE_COORDINATES 229 +# define EC_F_EC_KEY_SIMPLE_CHECK_KEY 258 +# define EC_F_EC_KEY_SIMPLE_OCT2PRIV 259 +# define EC_F_EC_KEY_SIMPLE_PRIV2OCT 260 +# define EC_F_EC_PKEY_CHECK 273 +# define EC_F_EC_PKEY_PARAM_CHECK 274 +# define EC_F_EC_POINTS_MAKE_AFFINE 136 +# define EC_F_EC_POINTS_MUL 290 +# define EC_F_EC_POINT_ADD 112 +# define EC_F_EC_POINT_BN2POINT 280 +# define EC_F_EC_POINT_CMP 113 +# define EC_F_EC_POINT_COPY 114 +# define EC_F_EC_POINT_DBL 115 +# define EC_F_EC_POINT_GET_AFFINE_COORDINATES 293 +# define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GF2M 183 +# define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GFP 116 +# define EC_F_EC_POINT_GET_JPROJECTIVE_COORDINATES_GFP 117 +# define EC_F_EC_POINT_INVERT 210 +# define EC_F_EC_POINT_IS_AT_INFINITY 118 +# define EC_F_EC_POINT_IS_ON_CURVE 119 +# define EC_F_EC_POINT_MAKE_AFFINE 120 +# define EC_F_EC_POINT_NEW 121 +# define EC_F_EC_POINT_OCT2POINT 122 +# define EC_F_EC_POINT_POINT2BUF 281 +# define EC_F_EC_POINT_POINT2OCT 123 +# define EC_F_EC_POINT_SET_AFFINE_COORDINATES 294 +# define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GF2M 185 +# define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GFP 124 +# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES 295 +# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GF2M 186 +# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GFP 125 +# define EC_F_EC_POINT_SET_JPROJECTIVE_COORDINATES_GFP 126 +# define EC_F_EC_POINT_SET_TO_INFINITY 127 +# define EC_F_EC_PRE_COMP_NEW 196 +# define EC_F_EC_SCALAR_MUL_LADDER 284 +# define EC_F_EC_WNAF_MUL 187 +# define EC_F_EC_WNAF_PRECOMPUTE_MULT 188 +# define EC_F_I2D_ECPARAMETERS 190 +# define EC_F_I2D_ECPKPARAMETERS 191 +# define EC_F_I2D_ECPRIVATEKEY 192 +# define EC_F_I2O_ECPUBLICKEY 151 +# define EC_F_NISTP224_PRE_COMP_NEW 227 +# define EC_F_NISTP256_PRE_COMP_NEW 236 +# define EC_F_NISTP521_PRE_COMP_NEW 237 +# define EC_F_O2I_ECPUBLICKEY 152 +# define EC_F_OLD_EC_PRIV_DECODE 222 +# define EC_F_OSSL_ECDH_COMPUTE_KEY 247 +# define EC_F_OSSL_ECDSA_SIGN_SIG 249 +# define EC_F_OSSL_ECDSA_VERIFY_SIG 250 +# define EC_F_PKEY_ECD_CTRL 271 +# define EC_F_PKEY_ECD_DIGESTSIGN 272 +# define EC_F_PKEY_ECD_DIGESTSIGN25519 276 +# define EC_F_PKEY_ECD_DIGESTSIGN448 277 +# define EC_F_PKEY_ECX_DERIVE 269 +# define EC_F_PKEY_EC_CTRL 197 +# define EC_F_PKEY_EC_CTRL_STR 198 +# define EC_F_PKEY_EC_DERIVE 217 +# define EC_F_PKEY_EC_INIT 282 +# define EC_F_PKEY_EC_KDF_DERIVE 283 +# define EC_F_PKEY_EC_KEYGEN 199 +# define EC_F_PKEY_EC_PARAMGEN 219 +# define EC_F_PKEY_EC_SIGN 218 +# define EC_F_VALIDATE_ECX_DERIVE 278 + +/* + * EC reason codes. + */ +# define EC_R_ASN1_ERROR 115 +# define EC_R_BAD_SIGNATURE 156 +# define EC_R_BIGNUM_OUT_OF_RANGE 144 +# define EC_R_BUFFER_TOO_SMALL 100 +# define EC_R_CANNOT_INVERT 165 +# define EC_R_COORDINATES_OUT_OF_RANGE 146 +# define EC_R_CURVE_DOES_NOT_SUPPORT_ECDH 160 +# define EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING 159 +# define EC_R_D2I_ECPKPARAMETERS_FAILURE 117 +# define EC_R_DECODE_ERROR 142 +# define EC_R_DISCRIMINANT_IS_ZERO 118 +# define EC_R_EC_GROUP_NEW_BY_NAME_FAILURE 119 +# define EC_R_FIELD_TOO_LARGE 143 +# define EC_R_GF2M_NOT_SUPPORTED 147 +# define EC_R_GROUP2PKPARAMETERS_FAILURE 120 +# define EC_R_I2D_ECPKPARAMETERS_FAILURE 121 +# define EC_R_INCOMPATIBLE_OBJECTS 101 +# define EC_R_INVALID_ARGUMENT 112 +# define EC_R_INVALID_COMPRESSED_POINT 110 +# define EC_R_INVALID_COMPRESSION_BIT 109 +# define EC_R_INVALID_CURVE 141 +# define EC_R_INVALID_DIGEST 151 +# define EC_R_INVALID_DIGEST_TYPE 138 +# define EC_R_INVALID_ENCODING 102 +# define EC_R_INVALID_FIELD 103 +# define EC_R_INVALID_FORM 104 +# define EC_R_INVALID_GROUP_ORDER 122 +# define EC_R_INVALID_KEY 116 +# define EC_R_INVALID_OUTPUT_LENGTH 161 +# define EC_R_INVALID_PEER_KEY 133 +# define EC_R_INVALID_PENTANOMIAL_BASIS 132 +# define EC_R_INVALID_PRIVATE_KEY 123 +# define EC_R_INVALID_TRINOMIAL_BASIS 137 +# define EC_R_KDF_PARAMETER_ERROR 148 +# define EC_R_KEYS_NOT_SET 140 +# define EC_R_LADDER_POST_FAILURE 136 +# define EC_R_LADDER_PRE_FAILURE 153 +# define EC_R_LADDER_STEP_FAILURE 162 +# define EC_R_MISSING_PARAMETERS 124 +# define EC_R_MISSING_PRIVATE_KEY 125 +# define EC_R_NEED_NEW_SETUP_VALUES 157 +# define EC_R_NOT_A_NIST_PRIME 135 +# define EC_R_NOT_IMPLEMENTED 126 +# define EC_R_NOT_INITIALIZED 111 +# define EC_R_NO_PARAMETERS_SET 139 +# define EC_R_NO_PRIVATE_VALUE 154 +# define EC_R_OPERATION_NOT_SUPPORTED 152 +# define EC_R_PASSED_NULL_PARAMETER 134 +# define EC_R_PEER_KEY_ERROR 149 +# define EC_R_PKPARAMETERS2GROUP_FAILURE 127 +# define EC_R_POINT_ARITHMETIC_FAILURE 155 +# define EC_R_POINT_AT_INFINITY 106 +# define EC_R_POINT_COORDINATES_BLIND_FAILURE 163 +# define EC_R_POINT_IS_NOT_ON_CURVE 107 +# define EC_R_RANDOM_NUMBER_GENERATION_FAILED 158 +# define EC_R_SHARED_INFO_ERROR 150 +# define EC_R_SLOT_FULL 108 +# define EC_R_UNDEFINED_GENERATOR 113 +# define EC_R_UNDEFINED_ORDER 128 +# define EC_R_UNKNOWN_COFACTOR 164 +# define EC_R_UNKNOWN_GROUP 129 +# define EC_R_UNKNOWN_ORDER 114 +# define EC_R_UNSUPPORTED_FIELD 131 +# define EC_R_WRONG_CURVE_PARAMETERS 145 +# define EC_R_WRONG_ORDER 130 + +# endif +#endif diff --git a/noarch/include/node/openssl/engine.h b/noarch/include/node/openssl/engine.h index 26cf7148..0780f0fb 100644 --- a/noarch/include/node/openssl/engine.h +++ b/noarch/include/node/openssl/engine.h @@ -1,5 +1,6 @@ /* - * Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -7,12 +8,6 @@ * https://www.openssl.org/source/license.html */ -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * ECDH support in OpenSSL originally developed by - * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. - */ - #ifndef HEADER_ENGINE_H # define HEADER_ENGINE_H @@ -32,6 +27,7 @@ # include # include # include +# include # ifdef __cplusplus extern "C" { # endif @@ -405,7 +401,7 @@ int ENGINE_register_complete(ENGINE *e); int ENGINE_register_all_complete(void); /* - * Send parametrised control commands to the engine. The possibilities to + * Send parameterised control commands to the engine. The possibilities to * send down an integer, a pointer to data or a function pointer are * provided. Any of the parameters may or may not be NULL, depending on the * command number. In actuality, this function only requires a structural @@ -743,95 +739,10 @@ typedef int (*dynamic_bind_engine) (ENGINE *e, const char *id, */ void *ENGINE_get_static_state(void); -# if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(HAVE_CRYPTODEV) +# if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__DragonFly__) DEPRECATEDIN_1_1_0(void ENGINE_setup_bsd_cryptodev(void)) # endif -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_ENGINE_strings(void); - -/* Error codes for the ENGINE functions. */ - -/* Function codes. */ -# define ENGINE_F_DYNAMIC_CTRL 180 -# define ENGINE_F_DYNAMIC_GET_DATA_CTX 181 -# define ENGINE_F_DYNAMIC_LOAD 182 -# define ENGINE_F_DYNAMIC_SET_DATA_CTX 183 -# define ENGINE_F_ENGINE_ADD 105 -# define ENGINE_F_ENGINE_BY_ID 106 -# define ENGINE_F_ENGINE_CMD_IS_EXECUTABLE 170 -# define ENGINE_F_ENGINE_CTRL 142 -# define ENGINE_F_ENGINE_CTRL_CMD 178 -# define ENGINE_F_ENGINE_CTRL_CMD_STRING 171 -# define ENGINE_F_ENGINE_FINISH 107 -# define ENGINE_F_ENGINE_GET_CIPHER 185 -# define ENGINE_F_ENGINE_GET_DIGEST 186 -# define ENGINE_F_ENGINE_GET_FIRST 195 -# define ENGINE_F_ENGINE_GET_LAST 196 -# define ENGINE_F_ENGINE_GET_NEXT 115 -# define ENGINE_F_ENGINE_GET_PKEY_ASN1_METH 193 -# define ENGINE_F_ENGINE_GET_PKEY_METH 192 -# define ENGINE_F_ENGINE_GET_PREV 116 -# define ENGINE_F_ENGINE_INIT 119 -# define ENGINE_F_ENGINE_LIST_ADD 120 -# define ENGINE_F_ENGINE_LIST_REMOVE 121 -# define ENGINE_F_ENGINE_LOAD_PRIVATE_KEY 150 -# define ENGINE_F_ENGINE_LOAD_PUBLIC_KEY 151 -# define ENGINE_F_ENGINE_LOAD_SSL_CLIENT_CERT 194 -# define ENGINE_F_ENGINE_NEW 122 -# define ENGINE_F_ENGINE_PKEY_ASN1_FIND_STR 197 -# define ENGINE_F_ENGINE_REMOVE 123 -# define ENGINE_F_ENGINE_SET_DEFAULT_STRING 189 -# define ENGINE_F_ENGINE_SET_ID 129 -# define ENGINE_F_ENGINE_SET_NAME 130 -# define ENGINE_F_ENGINE_TABLE_REGISTER 184 -# define ENGINE_F_ENGINE_UNLOCKED_FINISH 191 -# define ENGINE_F_ENGINE_UP_REF 190 -# define ENGINE_F_INT_CTRL_HELPER 172 -# define ENGINE_F_INT_ENGINE_CONFIGURE 188 -# define ENGINE_F_INT_ENGINE_MODULE_INIT 187 - -/* Reason codes. */ -# define ENGINE_R_ALREADY_LOADED 100 -# define ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER 133 -# define ENGINE_R_CMD_NOT_EXECUTABLE 134 -# define ENGINE_R_COMMAND_TAKES_INPUT 135 -# define ENGINE_R_COMMAND_TAKES_NO_INPUT 136 -# define ENGINE_R_CONFLICTING_ENGINE_ID 103 -# define ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED 119 -# define ENGINE_R_DSO_FAILURE 104 -# define ENGINE_R_DSO_NOT_FOUND 132 -# define ENGINE_R_ENGINES_SECTION_ERROR 148 -# define ENGINE_R_ENGINE_CONFIGURATION_ERROR 102 -# define ENGINE_R_ENGINE_IS_NOT_IN_LIST 105 -# define ENGINE_R_ENGINE_SECTION_ERROR 149 -# define ENGINE_R_FAILED_LOADING_PRIVATE_KEY 128 -# define ENGINE_R_FAILED_LOADING_PUBLIC_KEY 129 -# define ENGINE_R_FINISH_FAILED 106 -# define ENGINE_R_ID_OR_NAME_MISSING 108 -# define ENGINE_R_INIT_FAILED 109 -# define ENGINE_R_INTERNAL_LIST_ERROR 110 -# define ENGINE_R_INVALID_ARGUMENT 143 -# define ENGINE_R_INVALID_CMD_NAME 137 -# define ENGINE_R_INVALID_CMD_NUMBER 138 -# define ENGINE_R_INVALID_INIT_VALUE 151 -# define ENGINE_R_INVALID_STRING 150 -# define ENGINE_R_NOT_INITIALISED 117 -# define ENGINE_R_NOT_LOADED 112 -# define ENGINE_R_NO_CONTROL_FUNCTION 120 -# define ENGINE_R_NO_INDEX 144 -# define ENGINE_R_NO_LOAD_FUNCTION 125 -# define ENGINE_R_NO_REFERENCE 130 -# define ENGINE_R_NO_SUCH_ENGINE 116 -# define ENGINE_R_UNIMPLEMENTED_CIPHER 146 -# define ENGINE_R_UNIMPLEMENTED_DIGEST 147 -# define ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD 101 -# define ENGINE_R_VERSION_INCOMPATIBILITY 145 # ifdef __cplusplus } diff --git a/noarch/include/node/openssl/engineerr.h b/noarch/include/node/openssl/engineerr.h new file mode 100644 index 00000000..b4c036b2 --- /dev/null +++ b/noarch/include/node/openssl/engineerr.h @@ -0,0 +1,107 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_ENGINEERR_H +# define HEADER_ENGINEERR_H + +# include + +# ifndef OPENSSL_NO_ENGINE + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_ENGINE_strings(void); + +/* + * ENGINE function codes. + */ +# define ENGINE_F_DIGEST_UPDATE 198 +# define ENGINE_F_DYNAMIC_CTRL 180 +# define ENGINE_F_DYNAMIC_GET_DATA_CTX 181 +# define ENGINE_F_DYNAMIC_LOAD 182 +# define ENGINE_F_DYNAMIC_SET_DATA_CTX 183 +# define ENGINE_F_ENGINE_ADD 105 +# define ENGINE_F_ENGINE_BY_ID 106 +# define ENGINE_F_ENGINE_CMD_IS_EXECUTABLE 170 +# define ENGINE_F_ENGINE_CTRL 142 +# define ENGINE_F_ENGINE_CTRL_CMD 178 +# define ENGINE_F_ENGINE_CTRL_CMD_STRING 171 +# define ENGINE_F_ENGINE_FINISH 107 +# define ENGINE_F_ENGINE_GET_CIPHER 185 +# define ENGINE_F_ENGINE_GET_DIGEST 186 +# define ENGINE_F_ENGINE_GET_FIRST 195 +# define ENGINE_F_ENGINE_GET_LAST 196 +# define ENGINE_F_ENGINE_GET_NEXT 115 +# define ENGINE_F_ENGINE_GET_PKEY_ASN1_METH 193 +# define ENGINE_F_ENGINE_GET_PKEY_METH 192 +# define ENGINE_F_ENGINE_GET_PREV 116 +# define ENGINE_F_ENGINE_INIT 119 +# define ENGINE_F_ENGINE_LIST_ADD 120 +# define ENGINE_F_ENGINE_LIST_REMOVE 121 +# define ENGINE_F_ENGINE_LOAD_PRIVATE_KEY 150 +# define ENGINE_F_ENGINE_LOAD_PUBLIC_KEY 151 +# define ENGINE_F_ENGINE_LOAD_SSL_CLIENT_CERT 194 +# define ENGINE_F_ENGINE_NEW 122 +# define ENGINE_F_ENGINE_PKEY_ASN1_FIND_STR 197 +# define ENGINE_F_ENGINE_REMOVE 123 +# define ENGINE_F_ENGINE_SET_DEFAULT_STRING 189 +# define ENGINE_F_ENGINE_SET_ID 129 +# define ENGINE_F_ENGINE_SET_NAME 130 +# define ENGINE_F_ENGINE_TABLE_REGISTER 184 +# define ENGINE_F_ENGINE_UNLOCKED_FINISH 191 +# define ENGINE_F_ENGINE_UP_REF 190 +# define ENGINE_F_INT_CLEANUP_ITEM 199 +# define ENGINE_F_INT_CTRL_HELPER 172 +# define ENGINE_F_INT_ENGINE_CONFIGURE 188 +# define ENGINE_F_INT_ENGINE_MODULE_INIT 187 +# define ENGINE_F_OSSL_HMAC_INIT 200 + +/* + * ENGINE reason codes. + */ +# define ENGINE_R_ALREADY_LOADED 100 +# define ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER 133 +# define ENGINE_R_CMD_NOT_EXECUTABLE 134 +# define ENGINE_R_COMMAND_TAKES_INPUT 135 +# define ENGINE_R_COMMAND_TAKES_NO_INPUT 136 +# define ENGINE_R_CONFLICTING_ENGINE_ID 103 +# define ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED 119 +# define ENGINE_R_DSO_FAILURE 104 +# define ENGINE_R_DSO_NOT_FOUND 132 +# define ENGINE_R_ENGINES_SECTION_ERROR 148 +# define ENGINE_R_ENGINE_CONFIGURATION_ERROR 102 +# define ENGINE_R_ENGINE_IS_NOT_IN_LIST 105 +# define ENGINE_R_ENGINE_SECTION_ERROR 149 +# define ENGINE_R_FAILED_LOADING_PRIVATE_KEY 128 +# define ENGINE_R_FAILED_LOADING_PUBLIC_KEY 129 +# define ENGINE_R_FINISH_FAILED 106 +# define ENGINE_R_ID_OR_NAME_MISSING 108 +# define ENGINE_R_INIT_FAILED 109 +# define ENGINE_R_INTERNAL_LIST_ERROR 110 +# define ENGINE_R_INVALID_ARGUMENT 143 +# define ENGINE_R_INVALID_CMD_NAME 137 +# define ENGINE_R_INVALID_CMD_NUMBER 138 +# define ENGINE_R_INVALID_INIT_VALUE 151 +# define ENGINE_R_INVALID_STRING 150 +# define ENGINE_R_NOT_INITIALISED 117 +# define ENGINE_R_NOT_LOADED 112 +# define ENGINE_R_NO_CONTROL_FUNCTION 120 +# define ENGINE_R_NO_INDEX 144 +# define ENGINE_R_NO_LOAD_FUNCTION 125 +# define ENGINE_R_NO_REFERENCE 130 +# define ENGINE_R_NO_SUCH_ENGINE 116 +# define ENGINE_R_UNIMPLEMENTED_CIPHER 146 +# define ENGINE_R_UNIMPLEMENTED_DIGEST 147 +# define ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD 101 +# define ENGINE_R_VERSION_INCOMPATIBILITY 145 + +# endif +#endif diff --git a/noarch/include/node/openssl/err.h b/noarch/include/node/openssl/err.h index 29a261ce..b49f8812 100644 --- a/noarch/include/node/openssl/err.h +++ b/noarch/include/node/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -37,6 +37,7 @@ extern "C" { # define ERR_TXT_STRING 0x02 # define ERR_FLAG_MARK 0x01 +# define ERR_FLAG_CLEAR 0x02 # define ERR_NUM_ERRORS 16 typedef struct err_state_st { @@ -84,7 +85,7 @@ typedef struct err_state_st { # define ERR_LIB_COMP 41 # define ERR_LIB_ECDSA 42 # define ERR_LIB_ECDH 43 -# define ERR_LIB_STORE 44 +# define ERR_LIB_OSSL_STORE 44 # define ERR_LIB_FIPS 45 # define ERR_LIB_CMS 46 # define ERR_LIB_TS 47 @@ -93,6 +94,7 @@ typedef struct err_state_st { # define ERR_LIB_CT 50 # define ERR_LIB_ASYNC 51 # define ERR_LIB_KDF 52 +# define ERR_LIB_SM2 53 # define ERR_LIB_USER 128 @@ -123,7 +125,7 @@ typedef struct err_state_st { # define COMPerr(f,r) ERR_PUT_error(ERR_LIB_COMP,(f),(r),OPENSSL_FILE,OPENSSL_LINE) # define ECDSAerr(f,r) ERR_PUT_error(ERR_LIB_ECDSA,(f),(r),OPENSSL_FILE,OPENSSL_LINE) # define ECDHerr(f,r) ERR_PUT_error(ERR_LIB_ECDH,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define STOREerr(f,r) ERR_PUT_error(ERR_LIB_STORE,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define OSSL_STOREerr(f,r) ERR_PUT_error(ERR_LIB_OSSL_STORE,(f),(r),OPENSSL_FILE,OPENSSL_LINE) # define FIPSerr(f,r) ERR_PUT_error(ERR_LIB_FIPS,(f),(r),OPENSSL_FILE,OPENSSL_LINE) # define CMSerr(f,r) ERR_PUT_error(ERR_LIB_CMS,(f),(r),OPENSSL_FILE,OPENSSL_LINE) # define TSerr(f,r) ERR_PUT_error(ERR_LIB_TS,(f),(r),OPENSSL_FILE,OPENSSL_LINE) @@ -131,6 +133,7 @@ typedef struct err_state_st { # define CTerr(f,r) ERR_PUT_error(ERR_LIB_CT,(f),(r),OPENSSL_FILE,OPENSSL_LINE) # define ASYNCerr(f,r) ERR_PUT_error(ERR_LIB_ASYNC,(f),(r),OPENSSL_FILE,OPENSSL_LINE) # define KDFerr(f,r) ERR_PUT_error(ERR_LIB_KDF,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define SM2err(f,r) ERR_PUT_error(ERR_LIB_SM2,(f),(r),OPENSSL_FILE,OPENSSL_LINE) # define ERR_PACK(l,f,r) ( \ (((unsigned int)(l) & 0x0FF) << 24L) | \ @@ -160,6 +163,12 @@ typedef struct err_state_st { # define SYS_F_GETSOCKNAME 16 # define SYS_F_GETHOSTBYNAME 17 # define SYS_F_FFLUSH 18 +# define SYS_F_OPEN 19 +# define SYS_F_CLOSE 20 +# define SYS_F_IOCTL 21 +# define SYS_F_STAT 22 +# define SYS_F_FCNTL 23 +# define SYS_F_FSTAT 24 /* reasons */ # define ERR_R_SYS_LIB ERR_LIB_SYS/* 2 */ @@ -178,7 +187,9 @@ typedef struct err_state_st { # define ERR_R_PKCS7_LIB ERR_LIB_PKCS7/* 33 */ # define ERR_R_X509V3_LIB ERR_LIB_X509V3/* 34 */ # define ERR_R_ENGINE_LIB ERR_LIB_ENGINE/* 38 */ +# define ERR_R_UI_LIB ERR_LIB_UI/* 40 */ # define ERR_R_ECDSA_LIB ERR_LIB_ECDSA/* 42 */ +# define ERR_R_OSSL_STORE_LIB ERR_LIB_OSSL_STORE/* 44 */ # define ERR_R_NESTED_ASN1_ERROR 58 # define ERR_R_MISSING_ASN1_EOS 63 @@ -192,6 +203,7 @@ typedef struct err_state_st { # define ERR_R_DISABLED (5|ERR_R_FATAL) # define ERR_R_INIT_FAIL (6|ERR_R_FATAL) # define ERR_R_PASSED_INVALID_ARGUMENT (7) +# define ERR_R_OPERATION_FAIL (8|ERR_R_FATAL) /* * 99 is the maximum possible ERR_R_... code, higher values are reserved for @@ -234,8 +246,9 @@ void ERR_print_errors_fp(FILE *fp); void ERR_print_errors(BIO *bp); void ERR_add_error_data(int num, ...); void ERR_add_error_vdata(int num, va_list args); -int ERR_load_strings(int lib, ERR_STRING_DATA str[]); -int ERR_unload_strings(int lib, ERR_STRING_DATA str[]); +int ERR_load_strings(int lib, ERR_STRING_DATA *str); +int ERR_load_strings_const(const ERR_STRING_DATA *str); +int ERR_unload_strings(int lib, ERR_STRING_DATA *str); int ERR_load_ERR_strings(void); #if OPENSSL_API_COMPAT < 0x10100000L @@ -252,6 +265,7 @@ int ERR_get_next_error_library(void); int ERR_set_mark(void); int ERR_pop_to_mark(void); +int ERR_clear_last_mark(void); #ifdef __cplusplus } diff --git a/noarch/include/node/openssl/evp.h b/noarch/include/node/openssl/evp.h index 36e29344..dd1117d0 100644 --- a/noarch/include/node/openssl/evp.h +++ b/noarch/include/node/openssl/evp.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -14,6 +14,7 @@ # include # include # include +# include # define EVP_MAX_MD_SIZE 64/* longest known is SHA512 */ # define EVP_MAX_KEY_LENGTH 64 @@ -40,6 +41,7 @@ # define EVP_PKEY_NONE NID_undef # define EVP_PKEY_RSA NID_rsaEncryption # define EVP_PKEY_RSA2 NID_rsa +# define EVP_PKEY_RSA_PSS NID_rsassaPss # define EVP_PKEY_DSA NID_dsa # define EVP_PKEY_DSA1 NID_dsa_2 # define EVP_PKEY_DSA2 NID_dsaWithSHA @@ -48,10 +50,18 @@ # define EVP_PKEY_DH NID_dhKeyAgreement # define EVP_PKEY_DHX NID_dhpublicnumber # define EVP_PKEY_EC NID_X9_62_id_ecPublicKey +# define EVP_PKEY_SM2 NID_sm2 # define EVP_PKEY_HMAC NID_hmac # define EVP_PKEY_CMAC NID_cmac +# define EVP_PKEY_SCRYPT NID_id_scrypt # define EVP_PKEY_TLS1_PRF NID_tls1_prf # define EVP_PKEY_HKDF NID_hkdf +# define EVP_PKEY_POLY1305 NID_poly1305 +# define EVP_PKEY_SIPHASH NID_siphash +# define EVP_PKEY_X25519 NID_X25519 +# define EVP_PKEY_ED25519 NID_ED25519 +# define EVP_PKEY_X448 NID_X448 +# define EVP_PKEY_ED448 NID_ED448 #ifdef __cplusplus extern "C" { @@ -102,6 +112,9 @@ int (*EVP_MD_meth_get_ctrl(const EVP_MD *md))(EVP_MD_CTX *ctx, int cmd, /* digest can only handle a single block */ # define EVP_MD_FLAG_ONESHOT 0x0001 +/* digest is extensible-output function, XOF */ +# define EVP_MD_FLAG_XOF 0x0002 + /* DigestAlgorithmIdentifier flags... */ # define EVP_MD_FLAG_DIGALGID_MASK 0x0018 @@ -125,6 +138,7 @@ int (*EVP_MD_meth_get_ctrl(const EVP_MD *md))(EVP_MD_CTX *ctx, int cmd, # define EVP_MD_CTRL_DIGALGID 0x1 # define EVP_MD_CTRL_MICALG 0x2 +# define EVP_MD_CTRL_XOF_LEN 0x3 /* Minimum Algorithm specific ctrl value */ @@ -166,6 +180,7 @@ int (*EVP_MD_meth_get_ctrl(const EVP_MD *md))(EVP_MD_CTX *ctx, int cmd, * if the following flag is set. */ # define EVP_MD_CTX_FLAG_FINALISE 0x0200 +/* NOTE: 0x0400 is reserved for internal usage in evp_int.h */ EVP_CIPHER *EVP_CIPHER_meth_new(int cipher_type, int block_size, int key_len); EVP_CIPHER *EVP_CIPHER_meth_dup(const EVP_CIPHER *cipher); @@ -364,6 +379,15 @@ typedef struct { # define EVP_CCM_TLS_FIXED_IV_LEN 4 /* Length of explicit part of IV part of TLS records */ # define EVP_CCM_TLS_EXPLICIT_IV_LEN 8 +/* Total length of CCM IV length for TLS */ +# define EVP_CCM_TLS_IV_LEN 12 +/* Length of tag for TLS */ +# define EVP_CCM_TLS_TAG_LEN 16 +/* Length of CCM8 tag for TLS */ +# define EVP_CCM8_TLS_TAG_LEN 8 + +/* Length of tag for TLS */ +# define EVP_CHACHAPOLY_TLS_TAG_LEN 16 typedef struct evp_cipher_info_st { const EVP_CIPHER *cipher; @@ -396,6 +420,15 @@ typedef int (EVP_PBE_KEYGEN) (EVP_CIPHER_CTX *ctx, const char *pass, # define EVP_PKEY_assign_EC_KEY(pkey,eckey) EVP_PKEY_assign((pkey),EVP_PKEY_EC,\ (char *)(eckey)) # endif +# ifndef OPENSSL_NO_SIPHASH +# define EVP_PKEY_assign_SIPHASH(pkey,shkey) EVP_PKEY_assign((pkey),EVP_PKEY_SIPHASH,\ + (char *)(shkey)) +# endif + +# ifndef OPENSSL_NO_POLY1305 +# define EVP_PKEY_assign_POLY1305(pkey,polykey) EVP_PKEY_assign((pkey),EVP_PKEY_POLY1305,\ + (char *)(polykey)) +# endif /* Add some extra combinations */ # define EVP_get_digestbynid(a) EVP_get_digestbyname(OBJ_nid2sn(a)) @@ -421,6 +454,7 @@ void EVP_MD_CTX_set_update_fn(EVP_MD_CTX *ctx, # define EVP_MD_CTX_block_size(e) EVP_MD_block_size(EVP_MD_CTX_md(e)) # define EVP_MD_CTX_type(e) EVP_MD_type(EVP_MD_CTX_md(e)) EVP_PKEY_CTX *EVP_MD_CTX_pkey_ctx(const EVP_MD_CTX *ctx); +void EVP_MD_CTX_set_pkey_ctx(EVP_MD_CTX *ctx, EVP_PKEY_CTX *pctx); void *EVP_MD_CTX_md_data(const EVP_MD_CTX *ctx); int EVP_CIPHER_nid(const EVP_CIPHER *cipher); @@ -455,8 +489,8 @@ void *EVP_CIPHER_CTX_set_cipher_data(EVP_CIPHER_CTX *ctx, void *cipher_data); # endif # define EVP_CIPHER_CTX_mode(c) EVP_CIPHER_mode(EVP_CIPHER_CTX_cipher(c)) -# define EVP_ENCODE_LENGTH(l) (((l+2)/3*4)+(l/48+1)*2+80) -# define EVP_DECODE_LENGTH(l) ((l+3)/4*3+80) +# define EVP_ENCODE_LENGTH(l) ((((l)+2)/3*4)+((l)/48+1)*2+80) +# define EVP_DECODE_LENGTH(l) (((l)+3)/4*3+80) # define EVP_SignInit_ex(a,b,c) EVP_DigestInit_ex(a,b,c) # define EVP_SignInit(a,b) EVP_DigestInit(a,b) @@ -472,13 +506,16 @@ void *EVP_CIPHER_CTX_set_cipher_data(EVP_CIPHER_CTX *ctx, void *cipher_data); # ifdef CONST_STRICT void BIO_set_md(BIO *, const EVP_MD *md); # else -# define BIO_set_md(b,md) BIO_ctrl(b,BIO_C_SET_MD,0,(char *)md) +# define BIO_set_md(b,md) BIO_ctrl(b,BIO_C_SET_MD,0,(char *)(md)) # endif -# define BIO_get_md(b,mdp) BIO_ctrl(b,BIO_C_GET_MD,0,(char *)mdp) -# define BIO_get_md_ctx(b,mdcp) BIO_ctrl(b,BIO_C_GET_MD_CTX,0,(char *)mdcp) -# define BIO_set_md_ctx(b,mdcp) BIO_ctrl(b,BIO_C_SET_MD_CTX,0,(char *)mdcp) -# define BIO_get_cipher_status(b) BIO_ctrl(b,BIO_C_GET_CIPHER_STATUS,0,NULL) -# define BIO_get_cipher_ctx(b,c_pp) BIO_ctrl(b,BIO_C_GET_CIPHER_CTX,0,(char *)c_pp) +# define BIO_get_md(b,mdp) BIO_ctrl(b,BIO_C_GET_MD,0,(char *)(mdp)) +# define BIO_get_md_ctx(b,mdcp) BIO_ctrl(b,BIO_C_GET_MD_CTX,0, \ + (char *)(mdcp)) +# define BIO_set_md_ctx(b,mdcp) BIO_ctrl(b,BIO_C_SET_MD_CTX,0, \ + (char *)(mdcp)) +# define BIO_get_cipher_status(b) BIO_ctrl(b,BIO_C_GET_CIPHER_STATUS,0,NULL) +# define BIO_get_cipher_ctx(b,c_pp) BIO_ctrl(b,BIO_C_GET_CIPHER_CTX,0, \ + (char *)(c_pp)) /*__owur*/ int EVP_Cipher(EVP_CIPHER_CTX *c, unsigned char *out, @@ -518,14 +555,14 @@ __owur int EVP_MD_CTX_copy(EVP_MD_CTX *out, const EVP_MD_CTX *in); __owur int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type); __owur int EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s); +__owur int EVP_DigestFinalXOF(EVP_MD_CTX *ctx, unsigned char *md, + size_t len); -#ifndef OPENSSL_NO_UI int EVP_read_pw_string(char *buf, int length, const char *prompt, int verify); int EVP_read_pw_string_min(char *buf, int minlen, int maxlen, const char *prompt, int verify); void EVP_set_pw_prompt(const char *prompt); char *EVP_get_pw_prompt(void); -#endif __owur int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md, const unsigned char *salt, @@ -579,9 +616,17 @@ __owur int EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, __owur int EVP_SignFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s, EVP_PKEY *pkey); +__owur int EVP_DigestSign(EVP_MD_CTX *ctx, unsigned char *sigret, + size_t *siglen, const unsigned char *tbs, + size_t tbslen); + __owur int EVP_VerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sigbuf, unsigned int siglen, EVP_PKEY *pkey); +__owur int EVP_DigestVerify(EVP_MD_CTX *ctx, const unsigned char *sigret, + size_t siglen, const unsigned char *tbs, + size_t tbslen); + /*__owur*/ int EVP_DigestSignInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey); @@ -662,6 +707,14 @@ const EVP_MD *EVP_sha224(void); const EVP_MD *EVP_sha256(void); const EVP_MD *EVP_sha384(void); const EVP_MD *EVP_sha512(void); +const EVP_MD *EVP_sha512_224(void); +const EVP_MD *EVP_sha512_256(void); +const EVP_MD *EVP_sha3_224(void); +const EVP_MD *EVP_sha3_256(void); +const EVP_MD *EVP_sha3_384(void); +const EVP_MD *EVP_sha3_512(void); +const EVP_MD *EVP_shake128(void); +const EVP_MD *EVP_shake256(void); # ifndef OPENSSL_NO_MDC2 const EVP_MD *EVP_mdc2(void); # endif @@ -671,6 +724,9 @@ const EVP_MD *EVP_ripemd160(void); # ifndef OPENSSL_NO_WHIRLPOOL const EVP_MD *EVP_whirlpool(void); # endif +# ifndef OPENSSL_NO_SM3 +const EVP_MD *EVP_sm3(void); +# endif const EVP_CIPHER *EVP_enc_null(void); /* does nothing :-) */ # ifndef OPENSSL_NO_DES const EVP_CIPHER *EVP_des_ecb(void); @@ -797,6 +853,38 @@ const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha1(void); const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha1(void); const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha256(void); const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha256(void); +# ifndef OPENSSL_NO_ARIA +const EVP_CIPHER *EVP_aria_128_ecb(void); +const EVP_CIPHER *EVP_aria_128_cbc(void); +const EVP_CIPHER *EVP_aria_128_cfb1(void); +const EVP_CIPHER *EVP_aria_128_cfb8(void); +const EVP_CIPHER *EVP_aria_128_cfb128(void); +# define EVP_aria_128_cfb EVP_aria_128_cfb128 +const EVP_CIPHER *EVP_aria_128_ctr(void); +const EVP_CIPHER *EVP_aria_128_ofb(void); +const EVP_CIPHER *EVP_aria_128_gcm(void); +const EVP_CIPHER *EVP_aria_128_ccm(void); +const EVP_CIPHER *EVP_aria_192_ecb(void); +const EVP_CIPHER *EVP_aria_192_cbc(void); +const EVP_CIPHER *EVP_aria_192_cfb1(void); +const EVP_CIPHER *EVP_aria_192_cfb8(void); +const EVP_CIPHER *EVP_aria_192_cfb128(void); +# define EVP_aria_192_cfb EVP_aria_192_cfb128 +const EVP_CIPHER *EVP_aria_192_ctr(void); +const EVP_CIPHER *EVP_aria_192_ofb(void); +const EVP_CIPHER *EVP_aria_192_gcm(void); +const EVP_CIPHER *EVP_aria_192_ccm(void); +const EVP_CIPHER *EVP_aria_256_ecb(void); +const EVP_CIPHER *EVP_aria_256_cbc(void); +const EVP_CIPHER *EVP_aria_256_cfb1(void); +const EVP_CIPHER *EVP_aria_256_cfb8(void); +const EVP_CIPHER *EVP_aria_256_cfb128(void); +# define EVP_aria_256_cfb EVP_aria_256_cfb128 +const EVP_CIPHER *EVP_aria_256_ctr(void); +const EVP_CIPHER *EVP_aria_256_ofb(void); +const EVP_CIPHER *EVP_aria_256_gcm(void); +const EVP_CIPHER *EVP_aria_256_ccm(void); +# endif # ifndef OPENSSL_NO_CAMELLIA const EVP_CIPHER *EVP_camellia_128_ecb(void); const EVP_CIPHER *EVP_camellia_128_cbc(void); @@ -838,6 +926,15 @@ const EVP_CIPHER *EVP_seed_cfb128(void); const EVP_CIPHER *EVP_seed_ofb(void); # endif +# ifndef OPENSSL_NO_SM4 +const EVP_CIPHER *EVP_sm4_ecb(void); +const EVP_CIPHER *EVP_sm4_cbc(void); +const EVP_CIPHER *EVP_sm4_cfb128(void); +# define EVP_sm4_cfb EVP_sm4_cfb128 +const EVP_CIPHER *EVP_sm4_ofb(void); +const EVP_CIPHER *EVP_sm4_ctr(void); +# endif + # if OPENSSL_API_COMPAT < 0x10100000L # define OPENSSL_add_all_algorithms_conf() \ OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \ @@ -848,14 +945,9 @@ const EVP_CIPHER *EVP_seed_ofb(void); | OPENSSL_INIT_ADD_ALL_DIGESTS, NULL) # ifdef OPENSSL_LOAD_CONF -# define OpenSSL_add_all_algorithms() \ - OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \ - | OPENSSL_INIT_ADD_ALL_DIGESTS \ - | OPENSSL_INIT_LOAD_CONFIG, NULL) +# define OpenSSL_add_all_algorithms() OPENSSL_add_all_algorithms_conf() # else -# define OpenSSL_add_all_algorithms() \ - OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \ - | OPENSSL_INIT_ADD_ALL_DIGESTS, NULL) +# define OpenSSL_add_all_algorithms() OPENSSL_add_all_algorithms_noconf() # endif # define OpenSSL_add_all_ciphers() \ @@ -897,15 +989,23 @@ int EVP_PKEY_id(const EVP_PKEY *pkey); int EVP_PKEY_base_id(const EVP_PKEY *pkey); int EVP_PKEY_bits(const EVP_PKEY *pkey); int EVP_PKEY_security_bits(const EVP_PKEY *pkey); -int EVP_PKEY_size(EVP_PKEY *pkey); +int EVP_PKEY_size(const EVP_PKEY *pkey); int EVP_PKEY_set_type(EVP_PKEY *pkey, int type); int EVP_PKEY_set_type_str(EVP_PKEY *pkey, const char *str, int len); +int EVP_PKEY_set_alias_type(EVP_PKEY *pkey, int type); # ifndef OPENSSL_NO_ENGINE int EVP_PKEY_set1_engine(EVP_PKEY *pkey, ENGINE *e); +ENGINE *EVP_PKEY_get0_engine(const EVP_PKEY *pkey); # endif int EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key); void *EVP_PKEY_get0(const EVP_PKEY *pkey); const unsigned char *EVP_PKEY_get0_hmac(const EVP_PKEY *pkey, size_t *len); +# ifndef OPENSSL_NO_POLY1305 +const unsigned char *EVP_PKEY_get0_poly1305(const EVP_PKEY *pkey, size_t *len); +# endif +# ifndef OPENSSL_NO_SIPHASH +const unsigned char *EVP_PKEY_get0_siphash(const EVP_PKEY *pkey, size_t *len); +# endif # ifndef OPENSSL_NO_RSA struct rsa_st; @@ -1114,6 +1214,38 @@ void EVP_PKEY_asn1_set_item(EVP_PKEY_ASN1_METHOD *ameth, X509_ALGOR *alg2, ASN1_BIT_STRING *sig)); +void EVP_PKEY_asn1_set_siginf(EVP_PKEY_ASN1_METHOD *ameth, + int (*siginf_set) (X509_SIG_INFO *siginf, + const X509_ALGOR *alg, + const ASN1_STRING *sig)); + +void EVP_PKEY_asn1_set_check(EVP_PKEY_ASN1_METHOD *ameth, + int (*pkey_check) (const EVP_PKEY *pk)); + +void EVP_PKEY_asn1_set_public_check(EVP_PKEY_ASN1_METHOD *ameth, + int (*pkey_pub_check) (const EVP_PKEY *pk)); + +void EVP_PKEY_asn1_set_param_check(EVP_PKEY_ASN1_METHOD *ameth, + int (*pkey_param_check) (const EVP_PKEY *pk)); + +void EVP_PKEY_asn1_set_set_priv_key(EVP_PKEY_ASN1_METHOD *ameth, + int (*set_priv_key) (EVP_PKEY *pk, + const unsigned char + *priv, + size_t len)); +void EVP_PKEY_asn1_set_set_pub_key(EVP_PKEY_ASN1_METHOD *ameth, + int (*set_pub_key) (EVP_PKEY *pk, + const unsigned char *pub, + size_t len)); +void EVP_PKEY_asn1_set_get_priv_key(EVP_PKEY_ASN1_METHOD *ameth, + int (*get_priv_key) (const EVP_PKEY *pk, + unsigned char *priv, + size_t *len)); +void EVP_PKEY_asn1_set_get_pub_key(EVP_PKEY_ASN1_METHOD *ameth, + int (*get_pub_key) (const EVP_PKEY *pk, + unsigned char *pub, + size_t *len)); + void EVP_PKEY_asn1_set_security_bits(EVP_PKEY_ASN1_METHOD *ameth, int (*pkey_security_bits) (const EVP_PKEY *pk)); @@ -1145,15 +1277,15 @@ void EVP_PKEY_asn1_set_security_bits(EVP_PKEY_ASN1_METHOD *ameth, # define EVP_PKEY_CTX_set_signature_md(ctx, md) \ EVP_PKEY_CTX_ctrl(ctx, -1, EVP_PKEY_OP_TYPE_SIG, \ - EVP_PKEY_CTRL_MD, 0, (void *)md) + EVP_PKEY_CTRL_MD, 0, (void *)(md)) # define EVP_PKEY_CTX_get_signature_md(ctx, pmd) \ EVP_PKEY_CTX_ctrl(ctx, -1, EVP_PKEY_OP_TYPE_SIG, \ - EVP_PKEY_CTRL_GET_MD, 0, (void *)pmd) + EVP_PKEY_CTRL_GET_MD, 0, (void *)(pmd)) # define EVP_PKEY_CTX_set_mac_key(ctx, key, len) \ EVP_PKEY_CTX_ctrl(ctx, -1, EVP_PKEY_OP_KEYGEN, \ - EVP_PKEY_CTRL_SET_MAC_KEY, len, (void *)key) + EVP_PKEY_CTRL_SET_MAC_KEY, len, (void *)(key)) # define EVP_PKEY_CTRL_MD 1 # define EVP_PKEY_CTRL_PEER_KEY 2 @@ -1178,6 +1310,8 @@ void EVP_PKEY_asn1_set_security_bits(EVP_PKEY_ASN1_METHOD *ameth, # define EVP_PKEY_CTRL_GET_MD 13 +# define EVP_PKEY_CTRL_SET_DIGEST_SIZE 14 + # define EVP_PKEY_ALG_CTRL 0x1000 # define EVP_PKEY_FLAG_AUTOARGLEN 2 @@ -1193,6 +1327,9 @@ void EVP_PKEY_meth_get0_info(int *ppkey_id, int *pflags, void EVP_PKEY_meth_copy(EVP_PKEY_METHOD *dst, const EVP_PKEY_METHOD *src); void EVP_PKEY_meth_free(EVP_PKEY_METHOD *pmeth); int EVP_PKEY_meth_add0(const EVP_PKEY_METHOD *pmeth); +int EVP_PKEY_meth_remove(const EVP_PKEY_METHOD *pmeth); +size_t EVP_PKEY_meth_get_count(void); +const EVP_PKEY_METHOD *EVP_PKEY_meth_get0(size_t idx); EVP_PKEY_CTX *EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e); EVP_PKEY_CTX *EVP_PKEY_CTX_new_id(int id, ENGINE *e); @@ -1203,15 +1340,32 @@ int EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype, int cmd, int p1, void *p2); int EVP_PKEY_CTX_ctrl_str(EVP_PKEY_CTX *ctx, const char *type, const char *value); +int EVP_PKEY_CTX_ctrl_uint64(EVP_PKEY_CTX *ctx, int keytype, int optype, + int cmd, uint64_t value); int EVP_PKEY_CTX_str2ctrl(EVP_PKEY_CTX *ctx, int cmd, const char *str); int EVP_PKEY_CTX_hex2ctrl(EVP_PKEY_CTX *ctx, int cmd, const char *hex); +int EVP_PKEY_CTX_md(EVP_PKEY_CTX *ctx, int optype, int cmd, const char *md); + int EVP_PKEY_CTX_get_operation(EVP_PKEY_CTX *ctx); void EVP_PKEY_CTX_set0_keygen_info(EVP_PKEY_CTX *ctx, int *dat, int datlen); EVP_PKEY *EVP_PKEY_new_mac_key(int type, ENGINE *e, const unsigned char *key, int keylen); +EVP_PKEY *EVP_PKEY_new_raw_private_key(int type, ENGINE *e, + const unsigned char *priv, + size_t len); +EVP_PKEY *EVP_PKEY_new_raw_public_key(int type, ENGINE *e, + const unsigned char *pub, + size_t len); +int EVP_PKEY_get_raw_private_key(const EVP_PKEY *pkey, unsigned char *priv, + size_t *len); +int EVP_PKEY_get_raw_public_key(const EVP_PKEY *pkey, unsigned char *pub, + size_t *len); + +EVP_PKEY *EVP_PKEY_new_CMAC_key(ENGINE *e, const unsigned char *priv, + size_t len, const EVP_CIPHER *cipher); void EVP_PKEY_CTX_set_data(EVP_PKEY_CTX *ctx, void *data); void *EVP_PKEY_CTX_get_data(EVP_PKEY_CTX *ctx); @@ -1253,6 +1407,9 @@ int EVP_PKEY_paramgen_init(EVP_PKEY_CTX *ctx); int EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); int EVP_PKEY_keygen_init(EVP_PKEY_CTX *ctx); int EVP_PKEY_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); +int EVP_PKEY_check(EVP_PKEY_CTX *ctx); +int EVP_PKEY_public_check(EVP_PKEY_CTX *ctx); +int EVP_PKEY_param_check(EVP_PKEY_CTX *ctx); void EVP_PKEY_CTX_set_cb(EVP_PKEY_CTX *ctx, EVP_PKEY_gen_cb *cb); EVP_PKEY_gen_cb *EVP_PKEY_CTX_get_cb(EVP_PKEY_CTX *ctx); @@ -1351,6 +1508,19 @@ void EVP_PKEY_meth_set_ctrl(EVP_PKEY_METHOD *pmeth, const char *type, const char *value)); +void EVP_PKEY_meth_set_check(EVP_PKEY_METHOD *pmeth, + int (*check) (EVP_PKEY *pkey)); + +void EVP_PKEY_meth_set_public_check(EVP_PKEY_METHOD *pmeth, + int (*check) (EVP_PKEY *pkey)); + +void EVP_PKEY_meth_set_param_check(EVP_PKEY_METHOD *pmeth, + int (*check) (EVP_PKEY *pkey)); + +void EVP_PKEY_meth_set_digest_custom(EVP_PKEY_METHOD *pmeth, + int (*digest_custom) (EVP_PKEY_CTX *ctx, + EVP_MD_CTX *mctx)); + void EVP_PKEY_meth_get_init(const EVP_PKEY_METHOD *pmeth, int (**pinit) (EVP_PKEY_CTX *ctx)); @@ -1443,156 +1613,20 @@ void EVP_PKEY_meth_get_ctrl(const EVP_PKEY_METHOD *pmeth, const char *type, const char *value)); +void EVP_PKEY_meth_get_check(const EVP_PKEY_METHOD *pmeth, + int (**pcheck) (EVP_PKEY *pkey)); + +void EVP_PKEY_meth_get_public_check(const EVP_PKEY_METHOD *pmeth, + int (**pcheck) (EVP_PKEY *pkey)); + +void EVP_PKEY_meth_get_param_check(const EVP_PKEY_METHOD *pmeth, + int (**pcheck) (EVP_PKEY *pkey)); + +void EVP_PKEY_meth_get_digest_custom(EVP_PKEY_METHOD *pmeth, + int (**pdigest_custom) (EVP_PKEY_CTX *ctx, + EVP_MD_CTX *mctx)); void EVP_add_alg_module(void); -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_EVP_strings(void); - -/* Error codes for the EVP functions. */ - -/* Function codes. */ -# define EVP_F_AESNI_INIT_KEY 165 -# define EVP_F_AES_INIT_KEY 133 -# define EVP_F_AES_OCB_CIPHER 169 -# define EVP_F_AES_T4_INIT_KEY 178 -# define EVP_F_AES_WRAP_CIPHER 170 -# define EVP_F_ALG_MODULE_INIT 177 -# define EVP_F_CAMELLIA_INIT_KEY 159 -# define EVP_F_CHACHA20_POLY1305_CTRL 182 -# define EVP_F_CMLL_T4_INIT_KEY 179 -# define EVP_F_DES_EDE3_WRAP_CIPHER 171 -# define EVP_F_DO_SIGVER_INIT 161 -# define EVP_F_EVP_CIPHERINIT_EX 123 -# define EVP_F_EVP_CIPHER_CTX_COPY 163 -# define EVP_F_EVP_CIPHER_CTX_CTRL 124 -# define EVP_F_EVP_CIPHER_CTX_SET_KEY_LENGTH 122 -# define EVP_F_EVP_DECRYPTFINAL_EX 101 -# define EVP_F_EVP_DECRYPTUPDATE 166 -# define EVP_F_EVP_DIGESTINIT_EX 128 -# define EVP_F_EVP_ENCRYPTFINAL_EX 127 -# define EVP_F_EVP_ENCRYPTUPDATE 167 -# define EVP_F_EVP_MD_CTX_COPY_EX 110 -# define EVP_F_EVP_MD_SIZE 162 -# define EVP_F_EVP_OPENINIT 102 -# define EVP_F_EVP_PBE_ALG_ADD 115 -# define EVP_F_EVP_PBE_ALG_ADD_TYPE 160 -# define EVP_F_EVP_PBE_CIPHERINIT 116 -# define EVP_F_EVP_PBE_SCRYPT 181 -# define EVP_F_EVP_PKCS82PKEY 111 -# define EVP_F_EVP_PKEY2PKCS8 113 -# define EVP_F_EVP_PKEY_ASN1_ADD0 168 -# define EVP_F_EVP_PKEY_COPY_PARAMETERS 103 -# define EVP_F_EVP_PKEY_CTX_CTRL 137 -# define EVP_F_EVP_PKEY_CTX_CTRL_STR 150 -# define EVP_F_EVP_PKEY_CTX_DUP 156 -# define EVP_F_EVP_PKEY_DECRYPT 104 -# define EVP_F_EVP_PKEY_DECRYPT_INIT 138 -# define EVP_F_EVP_PKEY_DECRYPT_OLD 151 -# define EVP_F_EVP_PKEY_DERIVE 153 -# define EVP_F_EVP_PKEY_DERIVE_INIT 154 -# define EVP_F_EVP_PKEY_DERIVE_SET_PEER 155 -# define EVP_F_EVP_PKEY_ENCRYPT 105 -# define EVP_F_EVP_PKEY_ENCRYPT_INIT 139 -# define EVP_F_EVP_PKEY_ENCRYPT_OLD 152 -# define EVP_F_EVP_PKEY_GET0_DH 119 -# define EVP_F_EVP_PKEY_GET0_DSA 120 -# define EVP_F_EVP_PKEY_GET0_EC_KEY 131 -# define EVP_F_EVP_PKEY_GET0_HMAC 183 -# define EVP_F_EVP_PKEY_GET0_RSA 121 -# define EVP_F_EVP_PKEY_KEYGEN 146 -# define EVP_F_EVP_PKEY_KEYGEN_INIT 147 -# define EVP_F_EVP_PKEY_METH_ADD0 172 -# define EVP_F_EVP_PKEY_METH_NEW 173 -# define EVP_F_EVP_PKEY_NEW 106 -# define EVP_F_EVP_PKEY_PARAMGEN 148 -# define EVP_F_EVP_PKEY_PARAMGEN_INIT 149 -# define EVP_F_EVP_PKEY_SET1_ENGINE 187 -# define EVP_F_EVP_PKEY_SIGN 140 -# define EVP_F_EVP_PKEY_SIGN_INIT 141 -# define EVP_F_EVP_PKEY_VERIFY 142 -# define EVP_F_EVP_PKEY_VERIFY_INIT 143 -# define EVP_F_EVP_PKEY_VERIFY_RECOVER 144 -# define EVP_F_EVP_PKEY_VERIFY_RECOVER_INIT 145 -# define EVP_F_EVP_SIGNFINAL 107 -# define EVP_F_EVP_VERIFYFINAL 108 -# define EVP_F_INT_CTX_NEW 157 -# define EVP_F_PKCS5_PBE_KEYIVGEN 117 -# define EVP_F_PKCS5_V2_PBE_KEYIVGEN 118 -# define EVP_F_PKCS5_V2_PBKDF2_KEYIVGEN 164 -# define EVP_F_PKCS5_V2_SCRYPT_KEYIVGEN 180 -# define EVP_F_PKEY_SET_TYPE 158 -# define EVP_F_RC2_MAGIC_TO_METH 109 -# define EVP_F_RC5_CTRL 125 - -/* Reason codes. */ -# define EVP_R_AES_KEY_SETUP_FAILED 143 -# define EVP_R_BAD_DECRYPT 100 -# define EVP_R_BUFFER_TOO_SMALL 155 -# define EVP_R_CAMELLIA_KEY_SETUP_FAILED 157 -# define EVP_R_CIPHER_PARAMETER_ERROR 122 -# define EVP_R_COMMAND_NOT_SUPPORTED 147 -# define EVP_R_COPY_ERROR 173 -# define EVP_R_CTRL_NOT_IMPLEMENTED 132 -# define EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED 133 -# define EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH 138 -# define EVP_R_DECODE_ERROR 114 -# define EVP_R_DIFFERENT_KEY_TYPES 101 -# define EVP_R_DIFFERENT_PARAMETERS 153 -# define EVP_R_ERROR_LOADING_SECTION 165 -# define EVP_R_ERROR_SETTING_FIPS_MODE 166 -# define EVP_R_EXPECTING_AN_HMAC_KEY 174 -# define EVP_R_EXPECTING_AN_RSA_KEY 127 -# define EVP_R_EXPECTING_A_DH_KEY 128 -# define EVP_R_EXPECTING_A_DSA_KEY 129 -# define EVP_R_EXPECTING_A_EC_KEY 142 -# define EVP_R_FIPS_MODE_NOT_SUPPORTED 167 -# define EVP_R_ILLEGAL_SCRYPT_PARAMETERS 171 -# define EVP_R_INITIALIZATION_ERROR 134 -# define EVP_R_INPUT_NOT_INITIALIZED 111 -# define EVP_R_INVALID_DIGEST 152 -# define EVP_R_INVALID_FIPS_MODE 168 -# define EVP_R_INVALID_KEY 163 -# define EVP_R_INVALID_KEY_LENGTH 130 -# define EVP_R_INVALID_OPERATION 148 -# define EVP_R_KEYGEN_FAILURE 120 -# define EVP_R_MEMORY_LIMIT_EXCEEDED 172 -# define EVP_R_MESSAGE_DIGEST_IS_NULL 159 -# define EVP_R_METHOD_NOT_SUPPORTED 144 -# define EVP_R_MISSING_PARAMETERS 103 -# define EVP_R_NO_CIPHER_SET 131 -# define EVP_R_NO_DEFAULT_DIGEST 158 -# define EVP_R_NO_DIGEST_SET 139 -# define EVP_R_NO_KEY_SET 154 -# define EVP_R_NO_OPERATION_SET 149 -# define EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 150 -# define EVP_R_OPERATON_NOT_INITIALIZED 151 -# define EVP_R_PARTIALLY_OVERLAPPING 162 -# define EVP_R_PBKDF2_ERROR 176 -# define EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED 175 -# define EVP_R_PKEY_ASN1_METHOD_ALREADY_REGISTERED 164 -# define EVP_R_PRIVATE_KEY_DECODE_ERROR 145 -# define EVP_R_PRIVATE_KEY_ENCODE_ERROR 146 -# define EVP_R_PUBLIC_KEY_NOT_RSA 106 -# define EVP_R_UNKNOWN_CIPHER 160 -# define EVP_R_UNKNOWN_DIGEST 161 -# define EVP_R_UNKNOWN_OPTION 169 -# define EVP_R_UNKNOWN_PBE_ALGORITHM 121 -# define EVP_R_UNSUPPORTED_ALGORITHM 156 -# define EVP_R_UNSUPPORTED_CIPHER 107 -# define EVP_R_UNSUPPORTED_KEYLENGTH 123 -# define EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION 124 -# define EVP_R_UNSUPPORTED_KEY_SIZE 108 -# define EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS 135 -# define EVP_R_UNSUPPORTED_PRF 125 -# define EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM 118 -# define EVP_R_UNSUPPORTED_SALT_TYPE 126 -# define EVP_R_WRAP_MODE_NOT_ALLOWED 170 -# define EVP_R_WRONG_FINAL_BLOCK_LENGTH 109 # ifdef __cplusplus } diff --git a/noarch/include/node/openssl/evperr.h b/noarch/include/node/openssl/evperr.h new file mode 100644 index 00000000..84f03eb3 --- /dev/null +++ b/noarch/include/node/openssl/evperr.h @@ -0,0 +1,194 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_EVPERR_H +# define HEADER_EVPERR_H + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_EVP_strings(void); + +/* + * EVP function codes. + */ +# define EVP_F_AESNI_INIT_KEY 165 +# define EVP_F_AES_GCM_CTRL 196 +# define EVP_F_AES_INIT_KEY 133 +# define EVP_F_AES_OCB_CIPHER 169 +# define EVP_F_AES_T4_INIT_KEY 178 +# define EVP_F_AES_WRAP_CIPHER 170 +# define EVP_F_ALG_MODULE_INIT 177 +# define EVP_F_ARIA_CCM_INIT_KEY 175 +# define EVP_F_ARIA_GCM_CTRL 197 +# define EVP_F_ARIA_GCM_INIT_KEY 176 +# define EVP_F_ARIA_INIT_KEY 185 +# define EVP_F_B64_NEW 198 +# define EVP_F_CAMELLIA_INIT_KEY 159 +# define EVP_F_CHACHA20_POLY1305_CTRL 182 +# define EVP_F_CMLL_T4_INIT_KEY 179 +# define EVP_F_DES_EDE3_WRAP_CIPHER 171 +# define EVP_F_DO_SIGVER_INIT 161 +# define EVP_F_ENC_NEW 199 +# define EVP_F_EVP_CIPHERINIT_EX 123 +# define EVP_F_EVP_CIPHER_ASN1_TO_PARAM 204 +# define EVP_F_EVP_CIPHER_CTX_COPY 163 +# define EVP_F_EVP_CIPHER_CTX_CTRL 124 +# define EVP_F_EVP_CIPHER_CTX_SET_KEY_LENGTH 122 +# define EVP_F_EVP_CIPHER_PARAM_TO_ASN1 205 +# define EVP_F_EVP_DECRYPTFINAL_EX 101 +# define EVP_F_EVP_DECRYPTUPDATE 166 +# define EVP_F_EVP_DIGESTFINALXOF 174 +# define EVP_F_EVP_DIGESTINIT_EX 128 +# define EVP_F_EVP_ENCRYPTDECRYPTUPDATE 219 +# define EVP_F_EVP_ENCRYPTFINAL_EX 127 +# define EVP_F_EVP_ENCRYPTUPDATE 167 +# define EVP_F_EVP_MD_CTX_COPY_EX 110 +# define EVP_F_EVP_MD_SIZE 162 +# define EVP_F_EVP_OPENINIT 102 +# define EVP_F_EVP_PBE_ALG_ADD 115 +# define EVP_F_EVP_PBE_ALG_ADD_TYPE 160 +# define EVP_F_EVP_PBE_CIPHERINIT 116 +# define EVP_F_EVP_PBE_SCRYPT 181 +# define EVP_F_EVP_PKCS82PKEY 111 +# define EVP_F_EVP_PKEY2PKCS8 113 +# define EVP_F_EVP_PKEY_ASN1_ADD0 188 +# define EVP_F_EVP_PKEY_CHECK 186 +# define EVP_F_EVP_PKEY_COPY_PARAMETERS 103 +# define EVP_F_EVP_PKEY_CTX_CTRL 137 +# define EVP_F_EVP_PKEY_CTX_CTRL_STR 150 +# define EVP_F_EVP_PKEY_CTX_DUP 156 +# define EVP_F_EVP_PKEY_CTX_MD 168 +# define EVP_F_EVP_PKEY_DECRYPT 104 +# define EVP_F_EVP_PKEY_DECRYPT_INIT 138 +# define EVP_F_EVP_PKEY_DECRYPT_OLD 151 +# define EVP_F_EVP_PKEY_DERIVE 153 +# define EVP_F_EVP_PKEY_DERIVE_INIT 154 +# define EVP_F_EVP_PKEY_DERIVE_SET_PEER 155 +# define EVP_F_EVP_PKEY_ENCRYPT 105 +# define EVP_F_EVP_PKEY_ENCRYPT_INIT 139 +# define EVP_F_EVP_PKEY_ENCRYPT_OLD 152 +# define EVP_F_EVP_PKEY_GET0_DH 119 +# define EVP_F_EVP_PKEY_GET0_DSA 120 +# define EVP_F_EVP_PKEY_GET0_EC_KEY 131 +# define EVP_F_EVP_PKEY_GET0_HMAC 183 +# define EVP_F_EVP_PKEY_GET0_POLY1305 184 +# define EVP_F_EVP_PKEY_GET0_RSA 121 +# define EVP_F_EVP_PKEY_GET0_SIPHASH 172 +# define EVP_F_EVP_PKEY_GET_RAW_PRIVATE_KEY 202 +# define EVP_F_EVP_PKEY_GET_RAW_PUBLIC_KEY 203 +# define EVP_F_EVP_PKEY_KEYGEN 146 +# define EVP_F_EVP_PKEY_KEYGEN_INIT 147 +# define EVP_F_EVP_PKEY_METH_ADD0 194 +# define EVP_F_EVP_PKEY_METH_NEW 195 +# define EVP_F_EVP_PKEY_NEW 106 +# define EVP_F_EVP_PKEY_NEW_CMAC_KEY 193 +# define EVP_F_EVP_PKEY_NEW_RAW_PRIVATE_KEY 191 +# define EVP_F_EVP_PKEY_NEW_RAW_PUBLIC_KEY 192 +# define EVP_F_EVP_PKEY_PARAMGEN 148 +# define EVP_F_EVP_PKEY_PARAMGEN_INIT 149 +# define EVP_F_EVP_PKEY_PARAM_CHECK 189 +# define EVP_F_EVP_PKEY_PUBLIC_CHECK 190 +# define EVP_F_EVP_PKEY_SET1_ENGINE 187 +# define EVP_F_EVP_PKEY_SET_ALIAS_TYPE 206 +# define EVP_F_EVP_PKEY_SIGN 140 +# define EVP_F_EVP_PKEY_SIGN_INIT 141 +# define EVP_F_EVP_PKEY_VERIFY 142 +# define EVP_F_EVP_PKEY_VERIFY_INIT 143 +# define EVP_F_EVP_PKEY_VERIFY_RECOVER 144 +# define EVP_F_EVP_PKEY_VERIFY_RECOVER_INIT 145 +# define EVP_F_EVP_SIGNFINAL 107 +# define EVP_F_EVP_VERIFYFINAL 108 +# define EVP_F_INT_CTX_NEW 157 +# define EVP_F_OK_NEW 200 +# define EVP_F_PKCS5_PBE_KEYIVGEN 117 +# define EVP_F_PKCS5_V2_PBE_KEYIVGEN 118 +# define EVP_F_PKCS5_V2_PBKDF2_KEYIVGEN 164 +# define EVP_F_PKCS5_V2_SCRYPT_KEYIVGEN 180 +# define EVP_F_PKEY_SET_TYPE 158 +# define EVP_F_RC2_MAGIC_TO_METH 109 +# define EVP_F_RC5_CTRL 125 +# define EVP_F_S390X_AES_GCM_CTRL 201 +# define EVP_F_UPDATE 173 + +/* + * EVP reason codes. + */ +# define EVP_R_AES_KEY_SETUP_FAILED 143 +# define EVP_R_ARIA_KEY_SETUP_FAILED 176 +# define EVP_R_BAD_DECRYPT 100 +# define EVP_R_BUFFER_TOO_SMALL 155 +# define EVP_R_CAMELLIA_KEY_SETUP_FAILED 157 +# define EVP_R_CIPHER_PARAMETER_ERROR 122 +# define EVP_R_COMMAND_NOT_SUPPORTED 147 +# define EVP_R_COPY_ERROR 173 +# define EVP_R_CTRL_NOT_IMPLEMENTED 132 +# define EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED 133 +# define EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH 138 +# define EVP_R_DECODE_ERROR 114 +# define EVP_R_DIFFERENT_KEY_TYPES 101 +# define EVP_R_DIFFERENT_PARAMETERS 153 +# define EVP_R_ERROR_LOADING_SECTION 165 +# define EVP_R_ERROR_SETTING_FIPS_MODE 166 +# define EVP_R_EXPECTING_AN_HMAC_KEY 174 +# define EVP_R_EXPECTING_AN_RSA_KEY 127 +# define EVP_R_EXPECTING_A_DH_KEY 128 +# define EVP_R_EXPECTING_A_DSA_KEY 129 +# define EVP_R_EXPECTING_A_EC_KEY 142 +# define EVP_R_EXPECTING_A_POLY1305_KEY 164 +# define EVP_R_EXPECTING_A_SIPHASH_KEY 175 +# define EVP_R_FIPS_MODE_NOT_SUPPORTED 167 +# define EVP_R_GET_RAW_KEY_FAILED 182 +# define EVP_R_ILLEGAL_SCRYPT_PARAMETERS 171 +# define EVP_R_INITIALIZATION_ERROR 134 +# define EVP_R_INPUT_NOT_INITIALIZED 111 +# define EVP_R_INVALID_DIGEST 152 +# define EVP_R_INVALID_FIPS_MODE 168 +# define EVP_R_INVALID_KEY 163 +# define EVP_R_INVALID_KEY_LENGTH 130 +# define EVP_R_INVALID_OPERATION 148 +# define EVP_R_KEYGEN_FAILURE 120 +# define EVP_R_KEY_SETUP_FAILED 180 +# define EVP_R_MEMORY_LIMIT_EXCEEDED 172 +# define EVP_R_MESSAGE_DIGEST_IS_NULL 159 +# define EVP_R_METHOD_NOT_SUPPORTED 144 +# define EVP_R_MISSING_PARAMETERS 103 +# define EVP_R_NOT_XOF_OR_INVALID_LENGTH 178 +# define EVP_R_NO_CIPHER_SET 131 +# define EVP_R_NO_DEFAULT_DIGEST 158 +# define EVP_R_NO_DIGEST_SET 139 +# define EVP_R_NO_KEY_SET 154 +# define EVP_R_NO_OPERATION_SET 149 +# define EVP_R_ONLY_ONESHOT_SUPPORTED 177 +# define EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 150 +# define EVP_R_OPERATON_NOT_INITIALIZED 151 +# define EVP_R_PARTIALLY_OVERLAPPING 162 +# define EVP_R_PBKDF2_ERROR 181 +# define EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED 179 +# define EVP_R_PRIVATE_KEY_DECODE_ERROR 145 +# define EVP_R_PRIVATE_KEY_ENCODE_ERROR 146 +# define EVP_R_PUBLIC_KEY_NOT_RSA 106 +# define EVP_R_UNKNOWN_CIPHER 160 +# define EVP_R_UNKNOWN_DIGEST 161 +# define EVP_R_UNKNOWN_OPTION 169 +# define EVP_R_UNKNOWN_PBE_ALGORITHM 121 +# define EVP_R_UNSUPPORTED_ALGORITHM 156 +# define EVP_R_UNSUPPORTED_CIPHER 107 +# define EVP_R_UNSUPPORTED_KEYLENGTH 123 +# define EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION 124 +# define EVP_R_UNSUPPORTED_KEY_SIZE 108 +# define EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS 135 +# define EVP_R_UNSUPPORTED_PRF 125 +# define EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM 118 +# define EVP_R_UNSUPPORTED_SALT_TYPE 126 +# define EVP_R_WRAP_MODE_NOT_ALLOWED 170 +# define EVP_R_WRONG_FINAL_BLOCK_LENGTH 109 + +#endif diff --git a/noarch/include/node/openssl/hmac.h b/noarch/include/node/openssl/hmac.h index 9f068960..458efc1d 100644 --- a/noarch/include/node/openssl/hmac.h +++ b/noarch/include/node/openssl/hmac.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -14,7 +14,9 @@ # include -# define HMAC_MAX_MD_CBLOCK 128/* largest known is SHA512 */ +# if OPENSSL_API_COMPAT < 0x10200000L +# define HMAC_MAX_MD_CBLOCK 128 /* Deprecated */ +# endif #ifdef __cplusplus extern "C" { diff --git a/noarch/include/node/openssl/kdf.h b/noarch/include/node/openssl/kdf.h index 9f87f788..5abd4c37 100644 --- a/noarch/include/node/openssl/kdf.h +++ b/noarch/include/node/openssl/kdf.h @@ -1,5 +1,5 @@ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -10,64 +10,86 @@ #ifndef HEADER_KDF_H # define HEADER_KDF_H +# include #ifdef __cplusplus extern "C" { #endif -# define EVP_PKEY_CTRL_TLS_MD (EVP_PKEY_ALG_CTRL) -# define EVP_PKEY_CTRL_TLS_SECRET (EVP_PKEY_ALG_CTRL + 1) -# define EVP_PKEY_CTRL_TLS_SEED (EVP_PKEY_ALG_CTRL + 2) -# define EVP_PKEY_CTRL_HKDF_MD (EVP_PKEY_ALG_CTRL + 3) -# define EVP_PKEY_CTRL_HKDF_SALT (EVP_PKEY_ALG_CTRL + 4) -# define EVP_PKEY_CTRL_HKDF_KEY (EVP_PKEY_ALG_CTRL + 5) -# define EVP_PKEY_CTRL_HKDF_INFO (EVP_PKEY_ALG_CTRL + 6) +# define EVP_PKEY_CTRL_TLS_MD (EVP_PKEY_ALG_CTRL) +# define EVP_PKEY_CTRL_TLS_SECRET (EVP_PKEY_ALG_CTRL + 1) +# define EVP_PKEY_CTRL_TLS_SEED (EVP_PKEY_ALG_CTRL + 2) +# define EVP_PKEY_CTRL_HKDF_MD (EVP_PKEY_ALG_CTRL + 3) +# define EVP_PKEY_CTRL_HKDF_SALT (EVP_PKEY_ALG_CTRL + 4) +# define EVP_PKEY_CTRL_HKDF_KEY (EVP_PKEY_ALG_CTRL + 5) +# define EVP_PKEY_CTRL_HKDF_INFO (EVP_PKEY_ALG_CTRL + 6) +# define EVP_PKEY_CTRL_HKDF_MODE (EVP_PKEY_ALG_CTRL + 7) +# define EVP_PKEY_CTRL_PASS (EVP_PKEY_ALG_CTRL + 8) +# define EVP_PKEY_CTRL_SCRYPT_SALT (EVP_PKEY_ALG_CTRL + 9) +# define EVP_PKEY_CTRL_SCRYPT_N (EVP_PKEY_ALG_CTRL + 10) +# define EVP_PKEY_CTRL_SCRYPT_R (EVP_PKEY_ALG_CTRL + 11) +# define EVP_PKEY_CTRL_SCRYPT_P (EVP_PKEY_ALG_CTRL + 12) +# define EVP_PKEY_CTRL_SCRYPT_MAXMEM_BYTES (EVP_PKEY_ALG_CTRL + 13) + +# define EVP_PKEY_HKDEF_MODE_EXTRACT_AND_EXPAND 0 +# define EVP_PKEY_HKDEF_MODE_EXTRACT_ONLY 1 +# define EVP_PKEY_HKDEF_MODE_EXPAND_ONLY 2 # define EVP_PKEY_CTX_set_tls1_prf_md(pctx, md) \ EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_TLS_MD, 0, (void *)md) + EVP_PKEY_CTRL_TLS_MD, 0, (void *)(md)) # define EVP_PKEY_CTX_set1_tls1_prf_secret(pctx, sec, seclen) \ EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_TLS_SECRET, seclen, (void *)sec) + EVP_PKEY_CTRL_TLS_SECRET, seclen, (void *)(sec)) # define EVP_PKEY_CTX_add1_tls1_prf_seed(pctx, seed, seedlen) \ EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_TLS_SEED, seedlen, (void *)seed) + EVP_PKEY_CTRL_TLS_SEED, seedlen, (void *)(seed)) # define EVP_PKEY_CTX_set_hkdf_md(pctx, md) \ EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_HKDF_MD, 0, (void *)md) + EVP_PKEY_CTRL_HKDF_MD, 0, (void *)(md)) # define EVP_PKEY_CTX_set1_hkdf_salt(pctx, salt, saltlen) \ EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_HKDF_SALT, saltlen, (void *)salt) + EVP_PKEY_CTRL_HKDF_SALT, saltlen, (void *)(salt)) # define EVP_PKEY_CTX_set1_hkdf_key(pctx, key, keylen) \ EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_HKDF_KEY, keylen, (void *)key) + EVP_PKEY_CTRL_HKDF_KEY, keylen, (void *)(key)) # define EVP_PKEY_CTX_add1_hkdf_info(pctx, info, infolen) \ EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_HKDF_INFO, infolen, (void *)info) + EVP_PKEY_CTRL_HKDF_INFO, infolen, (void *)(info)) -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ +# define EVP_PKEY_CTX_hkdf_mode(pctx, mode) \ + EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_HKDF_MODE, mode, NULL) -int ERR_load_KDF_strings(void); +# define EVP_PKEY_CTX_set1_pbe_pass(pctx, pass, passlen) \ + EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_PASS, passlen, (void *)(pass)) -/* Error codes for the KDF functions. */ +# define EVP_PKEY_CTX_set1_scrypt_salt(pctx, salt, saltlen) \ + EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_SCRYPT_SALT, saltlen, (void *)(salt)) -/* Function codes. */ -# define KDF_F_PKEY_TLS1_PRF_CTRL_STR 100 -# define KDF_F_PKEY_TLS1_PRF_DERIVE 101 +# define EVP_PKEY_CTX_set_scrypt_N(pctx, n) \ + EVP_PKEY_CTX_ctrl_uint64(pctx, -1, EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_SCRYPT_N, n) + +# define EVP_PKEY_CTX_set_scrypt_r(pctx, r) \ + EVP_PKEY_CTX_ctrl_uint64(pctx, -1, EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_SCRYPT_R, r) + +# define EVP_PKEY_CTX_set_scrypt_p(pctx, p) \ + EVP_PKEY_CTX_ctrl_uint64(pctx, -1, EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_SCRYPT_P, p) + +# define EVP_PKEY_CTX_set_scrypt_maxmem_bytes(pctx, maxmem_bytes) \ + EVP_PKEY_CTX_ctrl_uint64(pctx, -1, EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_SCRYPT_MAXMEM_BYTES, maxmem_bytes) -/* Reason codes. */ -# define KDF_R_INVALID_DIGEST 100 -# define KDF_R_MISSING_PARAMETER 101 -# define KDF_R_VALUE_MISSING 102 # ifdef __cplusplus } diff --git a/noarch/include/node/openssl/kdferr.h b/noarch/include/node/openssl/kdferr.h new file mode 100644 index 00000000..6437c271 --- /dev/null +++ b/noarch/include/node/openssl/kdferr.h @@ -0,0 +1,51 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_KDFERR_H +# define HEADER_KDFERR_H + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_KDF_strings(void); + +/* + * KDF function codes. + */ +# define KDF_F_PKEY_HKDF_CTRL_STR 103 +# define KDF_F_PKEY_HKDF_DERIVE 102 +# define KDF_F_PKEY_HKDF_INIT 108 +# define KDF_F_PKEY_SCRYPT_CTRL_STR 104 +# define KDF_F_PKEY_SCRYPT_CTRL_UINT64 105 +# define KDF_F_PKEY_SCRYPT_DERIVE 109 +# define KDF_F_PKEY_SCRYPT_INIT 106 +# define KDF_F_PKEY_SCRYPT_SET_MEMBUF 107 +# define KDF_F_PKEY_TLS1_PRF_CTRL_STR 100 +# define KDF_F_PKEY_TLS1_PRF_DERIVE 101 +# define KDF_F_PKEY_TLS1_PRF_INIT 110 +# define KDF_F_TLS1_PRF_ALG 111 + +/* + * KDF reason codes. + */ +# define KDF_R_INVALID_DIGEST 100 +# define KDF_R_MISSING_ITERATION_COUNT 109 +# define KDF_R_MISSING_KEY 104 +# define KDF_R_MISSING_MESSAGE_DIGEST 105 +# define KDF_R_MISSING_PARAMETER 101 +# define KDF_R_MISSING_PASS 110 +# define KDF_R_MISSING_SALT 111 +# define KDF_R_MISSING_SECRET 107 +# define KDF_R_MISSING_SEED 106 +# define KDF_R_UNKNOWN_PARAMETER_TYPE 103 +# define KDF_R_VALUE_ERROR 108 +# define KDF_R_VALUE_MISSING 102 + +#endif diff --git a/noarch/include/node/openssl/lhash.h b/noarch/include/node/openssl/lhash.h index 8ecc5884..47b99d17 100644 --- a/noarch/include/node/openssl/lhash.h +++ b/noarch/include/node/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -127,52 +127,52 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); return (LHASH_OF(type) *) \ OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ } \ - static ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ { \ return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ { \ return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ } \ - static ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ } \ - static ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ { \ OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ } \ - static ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ } \ - static ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ { \ OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ } \ - static ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ + void (*doall)(type *)) \ { \ OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ } \ @@ -185,7 +185,7 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ - static ossl_inline void \ + static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ @@ -210,6 +210,31 @@ DEFINE_LHASH_OF(OPENSSL_CSTRING); # pragma warning (pop) # endif +/* + * If called without higher optimization (min. -xO3) the Oracle Developer + * Studio compiler generates code for the defined (static inline) functions + * above. + * This would later lead to the linker complaining about missing symbols when + * this header file is included but the resulting object is not linked against + * the Crypto library (openssl#6912). + */ +# ifdef __SUNPRO_C +# pragma weak OPENSSL_LH_new +# pragma weak OPENSSL_LH_free +# pragma weak OPENSSL_LH_insert +# pragma weak OPENSSL_LH_delete +# pragma weak OPENSSL_LH_retrieve +# pragma weak OPENSSL_LH_error +# pragma weak OPENSSL_LH_num_items +# pragma weak OPENSSL_LH_node_stats_bio +# pragma weak OPENSSL_LH_node_usage_stats_bio +# pragma weak OPENSSL_LH_stats_bio +# pragma weak OPENSSL_LH_get_down_load +# pragma weak OPENSSL_LH_set_down_load +# pragma weak OPENSSL_LH_doall +# pragma weak OPENSSL_LH_doall_arg +# endif /* __SUNPRO_C */ + #ifdef __cplusplus } #endif diff --git a/noarch/include/node/openssl/modes.h b/noarch/include/node/openssl/modes.h index a04c6a59..d544f98d 100644 --- a/noarch/include/node/openssl/modes.h +++ b/noarch/include/node/openssl/modes.h @@ -7,11 +7,14 @@ * https://www.openssl.org/source/license.html */ -#include +#ifndef HEADER_MODES_H +# define HEADER_MODES_H -#ifdef __cplusplus +# include + +# ifdef __cplusplus extern "C" { -#endif +# endif typedef void (*block128_f) (const unsigned char in[16], unsigned char out[16], const void *key); @@ -166,7 +169,7 @@ size_t CRYPTO_128_unwrap_pad(void *key, const unsigned char *icv, unsigned char *out, const unsigned char *in, size_t inlen, block128_f block); -#ifndef OPENSSL_NO_OCB +# ifndef OPENSSL_NO_OCB typedef struct ocb128_context OCB128_CONTEXT; typedef void (*ocb128_f) (const unsigned char *in, unsigned char *out, @@ -196,8 +199,10 @@ int CRYPTO_ocb128_finish(OCB128_CONTEXT *ctx, const unsigned char *tag, size_t len); int CRYPTO_ocb128_tag(OCB128_CONTEXT *ctx, unsigned char *tag, size_t len); void CRYPTO_ocb128_cleanup(OCB128_CONTEXT *ctx); -#endif /* OPENSSL_NO_OCB */ +# endif /* OPENSSL_NO_OCB */ -#ifdef __cplusplus +# ifdef __cplusplus } +# endif + #endif diff --git a/noarch/include/node/openssl/obj_mac.h b/noarch/include/node/openssl/obj_mac.h index f97f3eaa..47dafe48 100644 --- a/noarch/include/node/openssl/obj_mac.h +++ b/noarch/include/node/openssl/obj_mac.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by crypto/objects/objects.pl * - * Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy * in the file LICENSE in the source distribution or at @@ -54,10 +54,24 @@ #define NID_hmac_sha1 781 #define OBJ_hmac_sha1 OBJ_identified_organization,6L,1L,5L,5L,8L,1L,2L +#define SN_x509ExtAdmission "x509ExtAdmission" +#define LN_x509ExtAdmission "Professional Information or basis for Admission" +#define NID_x509ExtAdmission 1093 +#define OBJ_x509ExtAdmission OBJ_identified_organization,36L,8L,3L,3L + #define SN_certicom_arc "certicom-arc" #define NID_certicom_arc 677 #define OBJ_certicom_arc OBJ_identified_organization,132L +#define SN_ieee "ieee" +#define NID_ieee 1170 +#define OBJ_ieee OBJ_identified_organization,111L + +#define SN_ieee_siswg "ieee-siswg" +#define LN_ieee_siswg "IEEE Security in Storage Working Group" +#define NID_ieee_siswg 1171 +#define OBJ_ieee_siswg OBJ_ieee,2L,1619L + #define SN_international_organizations "international-organizations" #define LN_international_organizations "International Organizations" #define NID_international_organizations 647 @@ -95,6 +109,19 @@ #define NID_X9cm 185 #define OBJ_X9cm OBJ_X9_57,4L +#define SN_ISO_CN "ISO-CN" +#define LN_ISO_CN "ISO CN Member Body" +#define NID_ISO_CN 1140 +#define OBJ_ISO_CN OBJ_member_body,156L + +#define SN_oscca "oscca" +#define NID_oscca 1141 +#define OBJ_oscca OBJ_ISO_CN,10197L + +#define SN_sm_scheme "sm-scheme" +#define NID_sm_scheme 1142 +#define OBJ_sm_scheme OBJ_oscca,1L + #define SN_dsa "DSA" #define LN_dsa "dsaEncryption" #define NID_dsa 116 @@ -567,6 +594,16 @@ #define NID_sha224WithRSAEncryption 671 #define OBJ_sha224WithRSAEncryption OBJ_pkcs1,14L +#define SN_sha512_224WithRSAEncryption "RSA-SHA512/224" +#define LN_sha512_224WithRSAEncryption "sha512-224WithRSAEncryption" +#define NID_sha512_224WithRSAEncryption 1145 +#define OBJ_sha512_224WithRSAEncryption OBJ_pkcs1,15L + +#define SN_sha512_256WithRSAEncryption "RSA-SHA512/256" +#define LN_sha512_256WithRSAEncryption "sha512-256WithRSAEncryption" +#define NID_sha512_256WithRSAEncryption 1146 +#define OBJ_sha512_256WithRSAEncryption OBJ_pkcs1,16L + #define SN_pkcs3 "pkcs3" #define NID_pkcs3 27 #define OBJ_pkcs3 OBJ_pkcs,3L @@ -932,6 +969,10 @@ #define NID_id_smime_aa_dvcs_dvc 240 #define OBJ_id_smime_aa_dvcs_dvc OBJ_id_smime_aa,29L +#define SN_id_smime_aa_signingCertificateV2 "id-smime-aa-signingCertificateV2" +#define NID_id_smime_aa_signingCertificateV2 1086 +#define OBJ_id_smime_aa_signingCertificateV2 OBJ_id_smime_aa,47L + #define SN_id_smime_alg_ESDHwith3DES "id-smime-alg-ESDHwith3DES" #define NID_id_smime_alg_ESDHwith3DES 241 #define OBJ_id_smime_alg_ESDHwith3DES OBJ_id_smime_alg,1L @@ -1123,6 +1164,21 @@ #define NID_hmacWithSHA1 163 #define OBJ_hmacWithSHA1 OBJ_rsadsi,2L,7L +#define SN_sm2 "SM2" +#define LN_sm2 "sm2" +#define NID_sm2 1172 +#define OBJ_sm2 OBJ_sm_scheme,301L + +#define SN_sm3 "SM3" +#define LN_sm3 "sm3" +#define NID_sm3 1143 +#define OBJ_sm3 OBJ_sm_scheme,401L + +#define SN_sm3WithRSAEncryption "RSA-SM3" +#define LN_sm3WithRSAEncryption "sm3WithRSAEncryption" +#define NID_sm3WithRSAEncryption 1144 +#define OBJ_sm3WithRSAEncryption OBJ_sm_scheme,504L + #define LN_hmacWithSHA224 "hmacWithSHA224" #define NID_hmacWithSHA224 798 #define OBJ_hmacWithSHA224 OBJ_rsadsi,2L,8L @@ -1139,6 +1195,14 @@ #define NID_hmacWithSHA512 801 #define OBJ_hmacWithSHA512 OBJ_rsadsi,2L,11L +#define LN_hmacWithSHA512_224 "hmacWithSHA512-224" +#define NID_hmacWithSHA512_224 1193 +#define OBJ_hmacWithSHA512_224 OBJ_rsadsi,2L,12L + +#define LN_hmacWithSHA512_256 "hmacWithSHA512-256" +#define NID_hmacWithSHA512_256 1194 +#define OBJ_hmacWithSHA512_256 OBJ_rsadsi,2L,13L + #define SN_rc2_cbc "RC2-CBC" #define LN_rc2_cbc "rc2-cbc" #define NID_rc2_cbc 37 @@ -1563,6 +1627,16 @@ #define NID_sendProxiedOwner 1030 #define OBJ_sendProxiedOwner OBJ_id_kp,26L +#define SN_cmcCA "cmcCA" +#define LN_cmcCA "CMC Certificate Authority" +#define NID_cmcCA 1131 +#define OBJ_cmcCA OBJ_id_kp,27L + +#define SN_cmcRA "cmcRA" +#define LN_cmcRA "CMC Registration Authority" +#define NID_cmcRA 1132 +#define OBJ_cmcRA OBJ_id_kp,28L + #define SN_id_it_caProtEncCert "id-it-caProtEncCert" #define NID_id_it_caProtEncCert 298 #define OBJ_id_it_caProtEncCert OBJ_id_it,1L @@ -2293,6 +2367,24 @@ #define NID_role 400 #define OBJ_role OBJ_X509,72L +#define LN_organizationIdentifier "organizationIdentifier" +#define NID_organizationIdentifier 1089 +#define OBJ_organizationIdentifier OBJ_X509,97L + +#define SN_countryCode3c "c3" +#define LN_countryCode3c "countryCode3c" +#define NID_countryCode3c 1090 +#define OBJ_countryCode3c OBJ_X509,98L + +#define SN_countryCode3n "n3" +#define LN_countryCode3n "countryCode3n" +#define NID_countryCode3n 1091 +#define OBJ_countryCode3n OBJ_X509,99L + +#define LN_dnsName "dnsName" +#define NID_dnsName 1092 +#define OBJ_dnsName OBJ_X509,100L + #define SN_X500algorithms "X500algorithms" #define LN_X500algorithms "directory services - algorithms" #define NID_X500algorithms 378 @@ -2723,6 +2815,16 @@ #define NID_id_aes256_wrap_pad 903 #define OBJ_id_aes256_wrap_pad OBJ_aes,48L +#define SN_aes_128_xts "AES-128-XTS" +#define LN_aes_128_xts "aes-128-xts" +#define NID_aes_128_xts 913 +#define OBJ_aes_128_xts OBJ_ieee_siswg,0L,1L,1L + +#define SN_aes_256_xts "AES-256-XTS" +#define LN_aes_256_xts "aes-256-xts" +#define NID_aes_256_xts 914 +#define OBJ_aes_256_xts OBJ_ieee_siswg,0L,1L,2L + #define SN_aes_128_cfb1 "AES-128-CFB1" #define LN_aes_128_cfb1 "aes-128-cfb1" #define NID_aes_128_cfb1 650 @@ -2771,14 +2873,6 @@ #define LN_aes_256_ocb "aes-256-ocb" #define NID_aes_256_ocb 960 -#define SN_aes_128_xts "AES-128-XTS" -#define LN_aes_128_xts "aes-128-xts" -#define NID_aes_128_xts 913 - -#define SN_aes_256_xts "AES-256-XTS" -#define LN_aes_256_xts "aes-256-xts" -#define NID_aes_256_xts 914 - #define SN_des_cfb1 "DES-CFB1" #define LN_des_cfb1 "des-cfb1" #define NID_des_cfb1 656 @@ -2817,6 +2911,66 @@ #define NID_sha224 675 #define OBJ_sha224 OBJ_nist_hashalgs,4L +#define SN_sha512_224 "SHA512-224" +#define LN_sha512_224 "sha512-224" +#define NID_sha512_224 1094 +#define OBJ_sha512_224 OBJ_nist_hashalgs,5L + +#define SN_sha512_256 "SHA512-256" +#define LN_sha512_256 "sha512-256" +#define NID_sha512_256 1095 +#define OBJ_sha512_256 OBJ_nist_hashalgs,6L + +#define SN_sha3_224 "SHA3-224" +#define LN_sha3_224 "sha3-224" +#define NID_sha3_224 1096 +#define OBJ_sha3_224 OBJ_nist_hashalgs,7L + +#define SN_sha3_256 "SHA3-256" +#define LN_sha3_256 "sha3-256" +#define NID_sha3_256 1097 +#define OBJ_sha3_256 OBJ_nist_hashalgs,8L + +#define SN_sha3_384 "SHA3-384" +#define LN_sha3_384 "sha3-384" +#define NID_sha3_384 1098 +#define OBJ_sha3_384 OBJ_nist_hashalgs,9L + +#define SN_sha3_512 "SHA3-512" +#define LN_sha3_512 "sha3-512" +#define NID_sha3_512 1099 +#define OBJ_sha3_512 OBJ_nist_hashalgs,10L + +#define SN_shake128 "SHAKE128" +#define LN_shake128 "shake128" +#define NID_shake128 1100 +#define OBJ_shake128 OBJ_nist_hashalgs,11L + +#define SN_shake256 "SHAKE256" +#define LN_shake256 "shake256" +#define NID_shake256 1101 +#define OBJ_shake256 OBJ_nist_hashalgs,12L + +#define SN_hmac_sha3_224 "id-hmacWithSHA3-224" +#define LN_hmac_sha3_224 "hmac-sha3-224" +#define NID_hmac_sha3_224 1102 +#define OBJ_hmac_sha3_224 OBJ_nist_hashalgs,13L + +#define SN_hmac_sha3_256 "id-hmacWithSHA3-256" +#define LN_hmac_sha3_256 "hmac-sha3-256" +#define NID_hmac_sha3_256 1103 +#define OBJ_hmac_sha3_256 OBJ_nist_hashalgs,14L + +#define SN_hmac_sha3_384 "id-hmacWithSHA3-384" +#define LN_hmac_sha3_384 "hmac-sha3-384" +#define NID_hmac_sha3_384 1104 +#define OBJ_hmac_sha3_384 OBJ_nist_hashalgs,15L + +#define SN_hmac_sha3_512 "id-hmacWithSHA3-512" +#define LN_hmac_sha3_512 "hmac-sha3-512" +#define NID_hmac_sha3_512 1105 +#define OBJ_hmac_sha3_512 OBJ_nist_hashalgs,16L + #define OBJ_dsa_with_sha2 OBJ_nistAlgorithms,3L #define SN_dsa_with_SHA224 "dsa_with_SHA224" @@ -2827,6 +2981,78 @@ #define NID_dsa_with_SHA256 803 #define OBJ_dsa_with_SHA256 OBJ_dsa_with_sha2,2L +#define OBJ_sigAlgs OBJ_nistAlgorithms,3L + +#define SN_dsa_with_SHA384 "id-dsa-with-sha384" +#define LN_dsa_with_SHA384 "dsa_with_SHA384" +#define NID_dsa_with_SHA384 1106 +#define OBJ_dsa_with_SHA384 OBJ_sigAlgs,3L + +#define SN_dsa_with_SHA512 "id-dsa-with-sha512" +#define LN_dsa_with_SHA512 "dsa_with_SHA512" +#define NID_dsa_with_SHA512 1107 +#define OBJ_dsa_with_SHA512 OBJ_sigAlgs,4L + +#define SN_dsa_with_SHA3_224 "id-dsa-with-sha3-224" +#define LN_dsa_with_SHA3_224 "dsa_with_SHA3-224" +#define NID_dsa_with_SHA3_224 1108 +#define OBJ_dsa_with_SHA3_224 OBJ_sigAlgs,5L + +#define SN_dsa_with_SHA3_256 "id-dsa-with-sha3-256" +#define LN_dsa_with_SHA3_256 "dsa_with_SHA3-256" +#define NID_dsa_with_SHA3_256 1109 +#define OBJ_dsa_with_SHA3_256 OBJ_sigAlgs,6L + +#define SN_dsa_with_SHA3_384 "id-dsa-with-sha3-384" +#define LN_dsa_with_SHA3_384 "dsa_with_SHA3-384" +#define NID_dsa_with_SHA3_384 1110 +#define OBJ_dsa_with_SHA3_384 OBJ_sigAlgs,7L + +#define SN_dsa_with_SHA3_512 "id-dsa-with-sha3-512" +#define LN_dsa_with_SHA3_512 "dsa_with_SHA3-512" +#define NID_dsa_with_SHA3_512 1111 +#define OBJ_dsa_with_SHA3_512 OBJ_sigAlgs,8L + +#define SN_ecdsa_with_SHA3_224 "id-ecdsa-with-sha3-224" +#define LN_ecdsa_with_SHA3_224 "ecdsa_with_SHA3-224" +#define NID_ecdsa_with_SHA3_224 1112 +#define OBJ_ecdsa_with_SHA3_224 OBJ_sigAlgs,9L + +#define SN_ecdsa_with_SHA3_256 "id-ecdsa-with-sha3-256" +#define LN_ecdsa_with_SHA3_256 "ecdsa_with_SHA3-256" +#define NID_ecdsa_with_SHA3_256 1113 +#define OBJ_ecdsa_with_SHA3_256 OBJ_sigAlgs,10L + +#define SN_ecdsa_with_SHA3_384 "id-ecdsa-with-sha3-384" +#define LN_ecdsa_with_SHA3_384 "ecdsa_with_SHA3-384" +#define NID_ecdsa_with_SHA3_384 1114 +#define OBJ_ecdsa_with_SHA3_384 OBJ_sigAlgs,11L + +#define SN_ecdsa_with_SHA3_512 "id-ecdsa-with-sha3-512" +#define LN_ecdsa_with_SHA3_512 "ecdsa_with_SHA3-512" +#define NID_ecdsa_with_SHA3_512 1115 +#define OBJ_ecdsa_with_SHA3_512 OBJ_sigAlgs,12L + +#define SN_RSA_SHA3_224 "id-rsassa-pkcs1-v1_5-with-sha3-224" +#define LN_RSA_SHA3_224 "RSA-SHA3-224" +#define NID_RSA_SHA3_224 1116 +#define OBJ_RSA_SHA3_224 OBJ_sigAlgs,13L + +#define SN_RSA_SHA3_256 "id-rsassa-pkcs1-v1_5-with-sha3-256" +#define LN_RSA_SHA3_256 "RSA-SHA3-256" +#define NID_RSA_SHA3_256 1117 +#define OBJ_RSA_SHA3_256 OBJ_sigAlgs,14L + +#define SN_RSA_SHA3_384 "id-rsassa-pkcs1-v1_5-with-sha3-384" +#define LN_RSA_SHA3_384 "RSA-SHA3-384" +#define NID_RSA_SHA3_384 1118 +#define OBJ_RSA_SHA3_384 OBJ_sigAlgs,15L + +#define SN_RSA_SHA3_512 "id-rsassa-pkcs1-v1_5-with-sha3-512" +#define LN_RSA_SHA3_512 "RSA-SHA3-512" +#define NID_RSA_SHA3_512 1119 +#define OBJ_RSA_SHA3_512 OBJ_sigAlgs,16L + #define SN_hold_instruction_code "holdInstructionCode" #define LN_hold_instruction_code "Hold Instruction Code" #define NID_hold_instruction_code 430 @@ -4000,6 +4226,30 @@ #define NID_id_tc26_cipher 990 #define OBJ_id_tc26_cipher OBJ_id_tc26_algorithms,5L +#define SN_id_tc26_cipher_gostr3412_2015_magma "id-tc26-cipher-gostr3412-2015-magma" +#define NID_id_tc26_cipher_gostr3412_2015_magma 1173 +#define OBJ_id_tc26_cipher_gostr3412_2015_magma OBJ_id_tc26_cipher,1L + +#define SN_id_tc26_cipher_gostr3412_2015_magma_ctracpkm "id-tc26-cipher-gostr3412-2015-magma-ctracpkm" +#define NID_id_tc26_cipher_gostr3412_2015_magma_ctracpkm 1174 +#define OBJ_id_tc26_cipher_gostr3412_2015_magma_ctracpkm OBJ_id_tc26_cipher_gostr3412_2015_magma,1L + +#define SN_id_tc26_cipher_gostr3412_2015_magma_ctracpkm_omac "id-tc26-cipher-gostr3412-2015-magma-ctracpkm-omac" +#define NID_id_tc26_cipher_gostr3412_2015_magma_ctracpkm_omac 1175 +#define OBJ_id_tc26_cipher_gostr3412_2015_magma_ctracpkm_omac OBJ_id_tc26_cipher_gostr3412_2015_magma,2L + +#define SN_id_tc26_cipher_gostr3412_2015_kuznyechik "id-tc26-cipher-gostr3412-2015-kuznyechik" +#define NID_id_tc26_cipher_gostr3412_2015_kuznyechik 1176 +#define OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik OBJ_id_tc26_cipher,2L + +#define SN_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm "id-tc26-cipher-gostr3412-2015-kuznyechik-ctracpkm" +#define NID_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm 1177 +#define OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik,1L + +#define SN_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm_omac "id-tc26-cipher-gostr3412-2015-kuznyechik-ctracpkm-omac" +#define NID_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm_omac 1178 +#define OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm_omac OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik,2L + #define SN_id_tc26_agreement "id-tc26-agreement" #define NID_id_tc26_agreement 991 #define OBJ_id_tc26_agreement OBJ_id_tc26_algorithms,6L @@ -4012,6 +4262,26 @@ #define NID_id_tc26_agreement_gost_3410_2012_512 993 #define OBJ_id_tc26_agreement_gost_3410_2012_512 OBJ_id_tc26_agreement,2L +#define SN_id_tc26_wrap "id-tc26-wrap" +#define NID_id_tc26_wrap 1179 +#define OBJ_id_tc26_wrap OBJ_id_tc26_algorithms,7L + +#define SN_id_tc26_wrap_gostr3412_2015_magma "id-tc26-wrap-gostr3412-2015-magma" +#define NID_id_tc26_wrap_gostr3412_2015_magma 1180 +#define OBJ_id_tc26_wrap_gostr3412_2015_magma OBJ_id_tc26_wrap,1L + +#define SN_id_tc26_wrap_gostr3412_2015_magma_kexp15 "id-tc26-wrap-gostr3412-2015-magma-kexp15" +#define NID_id_tc26_wrap_gostr3412_2015_magma_kexp15 1181 +#define OBJ_id_tc26_wrap_gostr3412_2015_magma_kexp15 OBJ_id_tc26_wrap_gostr3412_2015_magma,1L + +#define SN_id_tc26_wrap_gostr3412_2015_kuznyechik "id-tc26-wrap-gostr3412-2015-kuznyechik" +#define NID_id_tc26_wrap_gostr3412_2015_kuznyechik 1182 +#define OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik OBJ_id_tc26_wrap,2L + +#define SN_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15 "id-tc26-wrap-gostr3412-2015-kuznyechik-kexp15" +#define NID_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15 1183 +#define OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15 OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik,1L + #define SN_id_tc26_constants "id-tc26-constants" #define NID_id_tc26_constants 994 #define OBJ_id_tc26_constants OBJ_id_tc26,2L @@ -4020,6 +4290,30 @@ #define NID_id_tc26_sign_constants 995 #define OBJ_id_tc26_sign_constants OBJ_id_tc26_constants,1L +#define SN_id_tc26_gost_3410_2012_256_constants "id-tc26-gost-3410-2012-256-constants" +#define NID_id_tc26_gost_3410_2012_256_constants 1147 +#define OBJ_id_tc26_gost_3410_2012_256_constants OBJ_id_tc26_sign_constants,1L + +#define SN_id_tc26_gost_3410_2012_256_paramSetA "id-tc26-gost-3410-2012-256-paramSetA" +#define LN_id_tc26_gost_3410_2012_256_paramSetA "GOST R 34.10-2012 (256 bit) ParamSet A" +#define NID_id_tc26_gost_3410_2012_256_paramSetA 1148 +#define OBJ_id_tc26_gost_3410_2012_256_paramSetA OBJ_id_tc26_gost_3410_2012_256_constants,1L + +#define SN_id_tc26_gost_3410_2012_256_paramSetB "id-tc26-gost-3410-2012-256-paramSetB" +#define LN_id_tc26_gost_3410_2012_256_paramSetB "GOST R 34.10-2012 (256 bit) ParamSet B" +#define NID_id_tc26_gost_3410_2012_256_paramSetB 1184 +#define OBJ_id_tc26_gost_3410_2012_256_paramSetB OBJ_id_tc26_gost_3410_2012_256_constants,2L + +#define SN_id_tc26_gost_3410_2012_256_paramSetC "id-tc26-gost-3410-2012-256-paramSetC" +#define LN_id_tc26_gost_3410_2012_256_paramSetC "GOST R 34.10-2012 (256 bit) ParamSet C" +#define NID_id_tc26_gost_3410_2012_256_paramSetC 1185 +#define OBJ_id_tc26_gost_3410_2012_256_paramSetC OBJ_id_tc26_gost_3410_2012_256_constants,3L + +#define SN_id_tc26_gost_3410_2012_256_paramSetD "id-tc26-gost-3410-2012-256-paramSetD" +#define LN_id_tc26_gost_3410_2012_256_paramSetD "GOST R 34.10-2012 (256 bit) ParamSet D" +#define NID_id_tc26_gost_3410_2012_256_paramSetD 1186 +#define OBJ_id_tc26_gost_3410_2012_256_paramSetD OBJ_id_tc26_gost_3410_2012_256_constants,4L + #define SN_id_tc26_gost_3410_2012_512_constants "id-tc26-gost-3410-2012-512-constants" #define NID_id_tc26_gost_3410_2012_512_constants 996 #define OBJ_id_tc26_gost_3410_2012_512_constants OBJ_id_tc26_sign_constants,2L @@ -4039,6 +4333,11 @@ #define NID_id_tc26_gost_3410_2012_512_paramSetB 999 #define OBJ_id_tc26_gost_3410_2012_512_paramSetB OBJ_id_tc26_gost_3410_2012_512_constants,2L +#define SN_id_tc26_gost_3410_2012_512_paramSetC "id-tc26-gost-3410-2012-512-paramSetC" +#define LN_id_tc26_gost_3410_2012_512_paramSetC "GOST R 34.10-2012 (512 bit) ParamSet C" +#define NID_id_tc26_gost_3410_2012_512_paramSetC 1149 +#define OBJ_id_tc26_gost_3410_2012_512_paramSetC OBJ_id_tc26_gost_3410_2012_512_constants,3L + #define SN_id_tc26_digest_constants "id-tc26-digest-constants" #define NID_id_tc26_digest_constants 1000 #define OBJ_id_tc26_digest_constants OBJ_id_tc26_constants,2L @@ -4099,6 +4398,24 @@ #define SN_grasshopper_mac "grasshopper-mac" #define NID_grasshopper_mac 1017 +#define SN_magma_ecb "magma-ecb" +#define NID_magma_ecb 1187 + +#define SN_magma_ctr "magma-ctr" +#define NID_magma_ctr 1188 + +#define SN_magma_ofb "magma-ofb" +#define NID_magma_ofb 1189 + +#define SN_magma_cbc "magma-cbc" +#define NID_magma_cbc 1190 + +#define SN_magma_cfb "magma-cfb" +#define NID_magma_cfb 1191 + +#define SN_magma_mac "magma-mac" +#define NID_magma_mac 1192 + #define SN_camellia_128_cbc "CAMELLIA-128-CBC" #define LN_camellia_128_cbc "camellia-128-cbc" #define NID_camellia_128_cbc 751 @@ -4259,6 +4576,137 @@ #define LN_camellia_256_cfb8 "camellia-256-cfb8" #define NID_camellia_256_cfb8 765 +#define OBJ_aria 1L,2L,410L,200046L,1L,1L + +#define SN_aria_128_ecb "ARIA-128-ECB" +#define LN_aria_128_ecb "aria-128-ecb" +#define NID_aria_128_ecb 1065 +#define OBJ_aria_128_ecb OBJ_aria,1L + +#define SN_aria_128_cbc "ARIA-128-CBC" +#define LN_aria_128_cbc "aria-128-cbc" +#define NID_aria_128_cbc 1066 +#define OBJ_aria_128_cbc OBJ_aria,2L + +#define SN_aria_128_cfb128 "ARIA-128-CFB" +#define LN_aria_128_cfb128 "aria-128-cfb" +#define NID_aria_128_cfb128 1067 +#define OBJ_aria_128_cfb128 OBJ_aria,3L + +#define SN_aria_128_ofb128 "ARIA-128-OFB" +#define LN_aria_128_ofb128 "aria-128-ofb" +#define NID_aria_128_ofb128 1068 +#define OBJ_aria_128_ofb128 OBJ_aria,4L + +#define SN_aria_128_ctr "ARIA-128-CTR" +#define LN_aria_128_ctr "aria-128-ctr" +#define NID_aria_128_ctr 1069 +#define OBJ_aria_128_ctr OBJ_aria,5L + +#define SN_aria_192_ecb "ARIA-192-ECB" +#define LN_aria_192_ecb "aria-192-ecb" +#define NID_aria_192_ecb 1070 +#define OBJ_aria_192_ecb OBJ_aria,6L + +#define SN_aria_192_cbc "ARIA-192-CBC" +#define LN_aria_192_cbc "aria-192-cbc" +#define NID_aria_192_cbc 1071 +#define OBJ_aria_192_cbc OBJ_aria,7L + +#define SN_aria_192_cfb128 "ARIA-192-CFB" +#define LN_aria_192_cfb128 "aria-192-cfb" +#define NID_aria_192_cfb128 1072 +#define OBJ_aria_192_cfb128 OBJ_aria,8L + +#define SN_aria_192_ofb128 "ARIA-192-OFB" +#define LN_aria_192_ofb128 "aria-192-ofb" +#define NID_aria_192_ofb128 1073 +#define OBJ_aria_192_ofb128 OBJ_aria,9L + +#define SN_aria_192_ctr "ARIA-192-CTR" +#define LN_aria_192_ctr "aria-192-ctr" +#define NID_aria_192_ctr 1074 +#define OBJ_aria_192_ctr OBJ_aria,10L + +#define SN_aria_256_ecb "ARIA-256-ECB" +#define LN_aria_256_ecb "aria-256-ecb" +#define NID_aria_256_ecb 1075 +#define OBJ_aria_256_ecb OBJ_aria,11L + +#define SN_aria_256_cbc "ARIA-256-CBC" +#define LN_aria_256_cbc "aria-256-cbc" +#define NID_aria_256_cbc 1076 +#define OBJ_aria_256_cbc OBJ_aria,12L + +#define SN_aria_256_cfb128 "ARIA-256-CFB" +#define LN_aria_256_cfb128 "aria-256-cfb" +#define NID_aria_256_cfb128 1077 +#define OBJ_aria_256_cfb128 OBJ_aria,13L + +#define SN_aria_256_ofb128 "ARIA-256-OFB" +#define LN_aria_256_ofb128 "aria-256-ofb" +#define NID_aria_256_ofb128 1078 +#define OBJ_aria_256_ofb128 OBJ_aria,14L + +#define SN_aria_256_ctr "ARIA-256-CTR" +#define LN_aria_256_ctr "aria-256-ctr" +#define NID_aria_256_ctr 1079 +#define OBJ_aria_256_ctr OBJ_aria,15L + +#define SN_aria_128_cfb1 "ARIA-128-CFB1" +#define LN_aria_128_cfb1 "aria-128-cfb1" +#define NID_aria_128_cfb1 1080 + +#define SN_aria_192_cfb1 "ARIA-192-CFB1" +#define LN_aria_192_cfb1 "aria-192-cfb1" +#define NID_aria_192_cfb1 1081 + +#define SN_aria_256_cfb1 "ARIA-256-CFB1" +#define LN_aria_256_cfb1 "aria-256-cfb1" +#define NID_aria_256_cfb1 1082 + +#define SN_aria_128_cfb8 "ARIA-128-CFB8" +#define LN_aria_128_cfb8 "aria-128-cfb8" +#define NID_aria_128_cfb8 1083 + +#define SN_aria_192_cfb8 "ARIA-192-CFB8" +#define LN_aria_192_cfb8 "aria-192-cfb8" +#define NID_aria_192_cfb8 1084 + +#define SN_aria_256_cfb8 "ARIA-256-CFB8" +#define LN_aria_256_cfb8 "aria-256-cfb8" +#define NID_aria_256_cfb8 1085 + +#define SN_aria_128_ccm "ARIA-128-CCM" +#define LN_aria_128_ccm "aria-128-ccm" +#define NID_aria_128_ccm 1120 +#define OBJ_aria_128_ccm OBJ_aria,37L + +#define SN_aria_192_ccm "ARIA-192-CCM" +#define LN_aria_192_ccm "aria-192-ccm" +#define NID_aria_192_ccm 1121 +#define OBJ_aria_192_ccm OBJ_aria,38L + +#define SN_aria_256_ccm "ARIA-256-CCM" +#define LN_aria_256_ccm "aria-256-ccm" +#define NID_aria_256_ccm 1122 +#define OBJ_aria_256_ccm OBJ_aria,39L + +#define SN_aria_128_gcm "ARIA-128-GCM" +#define LN_aria_128_gcm "aria-128-gcm" +#define NID_aria_128_gcm 1123 +#define OBJ_aria_128_gcm OBJ_aria,34L + +#define SN_aria_192_gcm "ARIA-192-GCM" +#define LN_aria_192_gcm "aria-192-gcm" +#define NID_aria_192_gcm 1124 +#define OBJ_aria_192_gcm OBJ_aria,35L + +#define SN_aria_256_gcm "ARIA-256-GCM" +#define LN_aria_256_gcm "aria-256-gcm" +#define NID_aria_256_gcm 1125 +#define OBJ_aria_256_gcm OBJ_aria,36L + #define SN_kisa "KISA" #define LN_kisa "kisa" #define NID_kisa 773 @@ -4284,6 +4732,41 @@ #define NID_seed_ofb128 778 #define OBJ_seed_ofb128 OBJ_kisa,1L,6L +#define SN_sm4_ecb "SM4-ECB" +#define LN_sm4_ecb "sm4-ecb" +#define NID_sm4_ecb 1133 +#define OBJ_sm4_ecb OBJ_sm_scheme,104L,1L + +#define SN_sm4_cbc "SM4-CBC" +#define LN_sm4_cbc "sm4-cbc" +#define NID_sm4_cbc 1134 +#define OBJ_sm4_cbc OBJ_sm_scheme,104L,2L + +#define SN_sm4_ofb128 "SM4-OFB" +#define LN_sm4_ofb128 "sm4-ofb" +#define NID_sm4_ofb128 1135 +#define OBJ_sm4_ofb128 OBJ_sm_scheme,104L,3L + +#define SN_sm4_cfb128 "SM4-CFB" +#define LN_sm4_cfb128 "sm4-cfb" +#define NID_sm4_cfb128 1137 +#define OBJ_sm4_cfb128 OBJ_sm_scheme,104L,4L + +#define SN_sm4_cfb1 "SM4-CFB1" +#define LN_sm4_cfb1 "sm4-cfb1" +#define NID_sm4_cfb1 1136 +#define OBJ_sm4_cfb1 OBJ_sm_scheme,104L,5L + +#define SN_sm4_cfb8 "SM4-CFB8" +#define LN_sm4_cfb8 "sm4-cfb8" +#define NID_sm4_cfb8 1138 +#define OBJ_sm4_cfb8 OBJ_sm_scheme,104L,6L + +#define SN_sm4_ctr "SM4-CTR" +#define LN_sm4_ctr "sm4-ctr" +#define NID_sm4_ctr 1139 +#define OBJ_sm4_ctr OBJ_sm_scheme,104L,7L + #define SN_hmac "HMAC" #define LN_hmac "hmac" #define NID_hmac 855 @@ -4475,6 +4958,7 @@ #define OBJ_jurisdictionCountryName 1L,3L,6L,1L,4L,1L,311L,60L,2L,1L,3L #define SN_id_scrypt "id-scrypt" +#define LN_id_scrypt "scrypt" #define NID_id_scrypt 973 #define OBJ_id_scrypt 1L,3L,6L,1L,4L,1L,11591L,4L,11L @@ -4508,6 +4992,14 @@ #define NID_X448 1035 #define OBJ_X448 1L,3L,101L,111L +#define SN_ED25519 "ED25519" +#define NID_ED25519 1087 +#define OBJ_ED25519 1L,3L,101L,112L + +#define SN_ED448 "ED448" +#define NID_ED448 1088 +#define OBJ_ED448 1L,3L,101L,113L + #define SN_kx_rsa "KxRSA" #define LN_kx_rsa "kx-rsa" #define NID_kx_rsa 1037 @@ -4544,6 +5036,10 @@ #define LN_kx_gost "kx-gost" #define NID_kx_gost 1045 +#define SN_kx_any "KxANY" +#define LN_kx_any "kx-any" +#define NID_kx_any 1063 + #define SN_auth_rsa "AuthRSA" #define LN_auth_rsa "auth-rsa" #define NID_auth_rsa 1046 @@ -4575,3 +5071,128 @@ #define SN_auth_null "AuthNULL" #define LN_auth_null "auth-null" #define NID_auth_null 1053 + +#define SN_auth_any "AuthANY" +#define LN_auth_any "auth-any" +#define NID_auth_any 1064 + +#define SN_poly1305 "Poly1305" +#define LN_poly1305 "poly1305" +#define NID_poly1305 1061 + +#define SN_siphash "SipHash" +#define LN_siphash "siphash" +#define NID_siphash 1062 + +#define SN_ffdhe2048 "ffdhe2048" +#define NID_ffdhe2048 1126 + +#define SN_ffdhe3072 "ffdhe3072" +#define NID_ffdhe3072 1127 + +#define SN_ffdhe4096 "ffdhe4096" +#define NID_ffdhe4096 1128 + +#define SN_ffdhe6144 "ffdhe6144" +#define NID_ffdhe6144 1129 + +#define SN_ffdhe8192 "ffdhe8192" +#define NID_ffdhe8192 1130 + +#define SN_ISO_UA "ISO-UA" +#define NID_ISO_UA 1150 +#define OBJ_ISO_UA OBJ_member_body,804L + +#define SN_ua_pki "ua-pki" +#define NID_ua_pki 1151 +#define OBJ_ua_pki OBJ_ISO_UA,2L,1L,1L,1L + +#define SN_dstu28147 "dstu28147" +#define LN_dstu28147 "DSTU Gost 28147-2009" +#define NID_dstu28147 1152 +#define OBJ_dstu28147 OBJ_ua_pki,1L,1L,1L + +#define SN_dstu28147_ofb "dstu28147-ofb" +#define LN_dstu28147_ofb "DSTU Gost 28147-2009 OFB mode" +#define NID_dstu28147_ofb 1153 +#define OBJ_dstu28147_ofb OBJ_dstu28147,2L + +#define SN_dstu28147_cfb "dstu28147-cfb" +#define LN_dstu28147_cfb "DSTU Gost 28147-2009 CFB mode" +#define NID_dstu28147_cfb 1154 +#define OBJ_dstu28147_cfb OBJ_dstu28147,3L + +#define SN_dstu28147_wrap "dstu28147-wrap" +#define LN_dstu28147_wrap "DSTU Gost 28147-2009 key wrap" +#define NID_dstu28147_wrap 1155 +#define OBJ_dstu28147_wrap OBJ_dstu28147,5L + +#define SN_hmacWithDstu34311 "hmacWithDstu34311" +#define LN_hmacWithDstu34311 "HMAC DSTU Gost 34311-95" +#define NID_hmacWithDstu34311 1156 +#define OBJ_hmacWithDstu34311 OBJ_ua_pki,1L,1L,2L + +#define SN_dstu34311 "dstu34311" +#define LN_dstu34311 "DSTU Gost 34311-95" +#define NID_dstu34311 1157 +#define OBJ_dstu34311 OBJ_ua_pki,1L,2L,1L + +#define SN_dstu4145le "dstu4145le" +#define LN_dstu4145le "DSTU 4145-2002 little endian" +#define NID_dstu4145le 1158 +#define OBJ_dstu4145le OBJ_ua_pki,1L,3L,1L,1L + +#define SN_dstu4145be "dstu4145be" +#define LN_dstu4145be "DSTU 4145-2002 big endian" +#define NID_dstu4145be 1159 +#define OBJ_dstu4145be OBJ_dstu4145le,1L,1L + +#define SN_uacurve0 "uacurve0" +#define LN_uacurve0 "DSTU curve 0" +#define NID_uacurve0 1160 +#define OBJ_uacurve0 OBJ_dstu4145le,2L,0L + +#define SN_uacurve1 "uacurve1" +#define LN_uacurve1 "DSTU curve 1" +#define NID_uacurve1 1161 +#define OBJ_uacurve1 OBJ_dstu4145le,2L,1L + +#define SN_uacurve2 "uacurve2" +#define LN_uacurve2 "DSTU curve 2" +#define NID_uacurve2 1162 +#define OBJ_uacurve2 OBJ_dstu4145le,2L,2L + +#define SN_uacurve3 "uacurve3" +#define LN_uacurve3 "DSTU curve 3" +#define NID_uacurve3 1163 +#define OBJ_uacurve3 OBJ_dstu4145le,2L,3L + +#define SN_uacurve4 "uacurve4" +#define LN_uacurve4 "DSTU curve 4" +#define NID_uacurve4 1164 +#define OBJ_uacurve4 OBJ_dstu4145le,2L,4L + +#define SN_uacurve5 "uacurve5" +#define LN_uacurve5 "DSTU curve 5" +#define NID_uacurve5 1165 +#define OBJ_uacurve5 OBJ_dstu4145le,2L,5L + +#define SN_uacurve6 "uacurve6" +#define LN_uacurve6 "DSTU curve 6" +#define NID_uacurve6 1166 +#define OBJ_uacurve6 OBJ_dstu4145le,2L,6L + +#define SN_uacurve7 "uacurve7" +#define LN_uacurve7 "DSTU curve 7" +#define NID_uacurve7 1167 +#define OBJ_uacurve7 OBJ_dstu4145le,2L,7L + +#define SN_uacurve8 "uacurve8" +#define LN_uacurve8 "DSTU curve 8" +#define NID_uacurve8 1168 +#define OBJ_uacurve8 OBJ_dstu4145le,2L,8L + +#define SN_uacurve9 "uacurve9" +#define LN_uacurve9 "DSTU curve 9" +#define NID_uacurve9 1169 +#define OBJ_uacurve9 OBJ_dstu4145le,2L,9L diff --git a/noarch/include/node/openssl/objects.h b/noarch/include/node/openssl/objects.h index d4462fee..5e8b5762 100644 --- a/noarch/include/node/openssl/objects.h +++ b/noarch/include/node/openssl/objects.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -10,910 +10,10 @@ #ifndef HEADER_OBJECTS_H # define HEADER_OBJECTS_H -# define USE_OBJ_MAC - -# ifdef USE_OBJ_MAC -# include -# else -# define SN_undef "UNDEF" -# define LN_undef "undefined" -# define NID_undef 0 -# define OBJ_undef 0L - -# define SN_Algorithm "Algorithm" -# define LN_algorithm "algorithm" -# define NID_algorithm 38 -# define OBJ_algorithm 1L,3L,14L,3L,2L - -# define LN_rsadsi "rsadsi" -# define NID_rsadsi 1 -# define OBJ_rsadsi 1L,2L,840L,113549L - -# define LN_pkcs "pkcs" -# define NID_pkcs 2 -# define OBJ_pkcs OBJ_rsadsi,1L - -# define SN_md2 "MD2" -# define LN_md2 "md2" -# define NID_md2 3 -# define OBJ_md2 OBJ_rsadsi,2L,2L - -# define SN_md5 "MD5" -# define LN_md5 "md5" -# define NID_md5 4 -# define OBJ_md5 OBJ_rsadsi,2L,5L - -# define SN_rc4 "RC4" -# define LN_rc4 "rc4" -# define NID_rc4 5 -# define OBJ_rc4 OBJ_rsadsi,3L,4L - -# define LN_rsaEncryption "rsaEncryption" -# define NID_rsaEncryption 6 -# define OBJ_rsaEncryption OBJ_pkcs,1L,1L - -# define SN_md2WithRSAEncryption "RSA-MD2" -# define LN_md2WithRSAEncryption "md2WithRSAEncryption" -# define NID_md2WithRSAEncryption 7 -# define OBJ_md2WithRSAEncryption OBJ_pkcs,1L,2L - -# define SN_md5WithRSAEncryption "RSA-MD5" -# define LN_md5WithRSAEncryption "md5WithRSAEncryption" -# define NID_md5WithRSAEncryption 8 -# define OBJ_md5WithRSAEncryption OBJ_pkcs,1L,4L - -# define SN_pbeWithMD2AndDES_CBC "PBE-MD2-DES" -# define LN_pbeWithMD2AndDES_CBC "pbeWithMD2AndDES-CBC" -# define NID_pbeWithMD2AndDES_CBC 9 -# define OBJ_pbeWithMD2AndDES_CBC OBJ_pkcs,5L,1L - -# define SN_pbeWithMD5AndDES_CBC "PBE-MD5-DES" -# define LN_pbeWithMD5AndDES_CBC "pbeWithMD5AndDES-CBC" -# define NID_pbeWithMD5AndDES_CBC 10 -# define OBJ_pbeWithMD5AndDES_CBC OBJ_pkcs,5L,3L - -# define LN_X500 "X500" -# define NID_X500 11 -# define OBJ_X500 2L,5L - -# define LN_X509 "X509" -# define NID_X509 12 -# define OBJ_X509 OBJ_X500,4L - -# define SN_commonName "CN" -# define LN_commonName "commonName" -# define NID_commonName 13 -# define OBJ_commonName OBJ_X509,3L - -# define SN_countryName "C" -# define LN_countryName "countryName" -# define NID_countryName 14 -# define OBJ_countryName OBJ_X509,6L - -# define SN_localityName "L" -# define LN_localityName "localityName" -# define NID_localityName 15 -# define OBJ_localityName OBJ_X509,7L - -/* Postal Address? PA */ - -/* should be "ST" (rfc1327) but MS uses 'S' */ -# define SN_stateOrProvinceName "ST" -# define LN_stateOrProvinceName "stateOrProvinceName" -# define NID_stateOrProvinceName 16 -# define OBJ_stateOrProvinceName OBJ_X509,8L - -# define SN_organizationName "O" -# define LN_organizationName "organizationName" -# define NID_organizationName 17 -# define OBJ_organizationName OBJ_X509,10L - -# define SN_organizationalUnitName "OU" -# define LN_organizationalUnitName "organizationalUnitName" -# define NID_organizationalUnitName 18 -# define OBJ_organizationalUnitName OBJ_X509,11L - -# define SN_rsa "RSA" -# define LN_rsa "rsa" -# define NID_rsa 19 -# define OBJ_rsa OBJ_X500,8L,1L,1L - -# define LN_pkcs7 "pkcs7" -# define NID_pkcs7 20 -# define OBJ_pkcs7 OBJ_pkcs,7L - -# define LN_pkcs7_data "pkcs7-data" -# define NID_pkcs7_data 21 -# define OBJ_pkcs7_data OBJ_pkcs7,1L - -# define LN_pkcs7_signed "pkcs7-signedData" -# define NID_pkcs7_signed 22 -# define OBJ_pkcs7_signed OBJ_pkcs7,2L - -# define LN_pkcs7_enveloped "pkcs7-envelopedData" -# define NID_pkcs7_enveloped 23 -# define OBJ_pkcs7_enveloped OBJ_pkcs7,3L - -# define LN_pkcs7_signedAndEnveloped "pkcs7-signedAndEnvelopedData" -# define NID_pkcs7_signedAndEnveloped 24 -# define OBJ_pkcs7_signedAndEnveloped OBJ_pkcs7,4L - -# define LN_pkcs7_digest "pkcs7-digestData" -# define NID_pkcs7_digest 25 -# define OBJ_pkcs7_digest OBJ_pkcs7,5L - -# define LN_pkcs7_encrypted "pkcs7-encryptedData" -# define NID_pkcs7_encrypted 26 -# define OBJ_pkcs7_encrypted OBJ_pkcs7,6L - -# define LN_pkcs3 "pkcs3" -# define NID_pkcs3 27 -# define OBJ_pkcs3 OBJ_pkcs,3L - -# define LN_dhKeyAgreement "dhKeyAgreement" -# define NID_dhKeyAgreement 28 -# define OBJ_dhKeyAgreement OBJ_pkcs3,1L - -# define SN_des_ecb "DES-ECB" -# define LN_des_ecb "des-ecb" -# define NID_des_ecb 29 -# define OBJ_des_ecb OBJ_algorithm,6L - -# define SN_des_cfb64 "DES-CFB" -# define LN_des_cfb64 "des-cfb" -# define NID_des_cfb64 30 -/* IV + num */ -# define OBJ_des_cfb64 OBJ_algorithm,9L - -# define SN_des_cbc "DES-CBC" -# define LN_des_cbc "des-cbc" -# define NID_des_cbc 31 -/* IV */ -# define OBJ_des_cbc OBJ_algorithm,7L - -# define SN_des_ede "DES-EDE" -# define LN_des_ede "des-ede" -# define NID_des_ede 32 -/* ?? */ -# define OBJ_des_ede OBJ_algorithm,17L - -# define SN_des_ede3 "DES-EDE3" -# define LN_des_ede3 "des-ede3" -# define NID_des_ede3 33 - -# define SN_idea_cbc "IDEA-CBC" -# define LN_idea_cbc "idea-cbc" -# define NID_idea_cbc 34 -# define OBJ_idea_cbc 1L,3L,6L,1L,4L,1L,188L,7L,1L,1L,2L - -# define SN_idea_cfb64 "IDEA-CFB" -# define LN_idea_cfb64 "idea-cfb" -# define NID_idea_cfb64 35 - -# define SN_idea_ecb "IDEA-ECB" -# define LN_idea_ecb "idea-ecb" -# define NID_idea_ecb 36 - -# define SN_rc2_cbc "RC2-CBC" -# define LN_rc2_cbc "rc2-cbc" -# define NID_rc2_cbc 37 -# define OBJ_rc2_cbc OBJ_rsadsi,3L,2L - -# define SN_rc2_ecb "RC2-ECB" -# define LN_rc2_ecb "rc2-ecb" -# define NID_rc2_ecb 38 - -# define SN_rc2_cfb64 "RC2-CFB" -# define LN_rc2_cfb64 "rc2-cfb" -# define NID_rc2_cfb64 39 - -# define SN_rc2_ofb64 "RC2-OFB" -# define LN_rc2_ofb64 "rc2-ofb" -# define NID_rc2_ofb64 40 - -# define SN_sha "SHA" -# define LN_sha "sha" -# define NID_sha 41 -# define OBJ_sha OBJ_algorithm,18L - -# define SN_shaWithRSAEncryption "RSA-SHA" -# define LN_shaWithRSAEncryption "shaWithRSAEncryption" -# define NID_shaWithRSAEncryption 42 -# define OBJ_shaWithRSAEncryption OBJ_algorithm,15L - -# define SN_des_ede_cbc "DES-EDE-CBC" -# define LN_des_ede_cbc "des-ede-cbc" -# define NID_des_ede_cbc 43 - -# define SN_des_ede3_cbc "DES-EDE3-CBC" -# define LN_des_ede3_cbc "des-ede3-cbc" -# define NID_des_ede3_cbc 44 -# define OBJ_des_ede3_cbc OBJ_rsadsi,3L,7L - -# define SN_des_ofb64 "DES-OFB" -# define LN_des_ofb64 "des-ofb" -# define NID_des_ofb64 45 -# define OBJ_des_ofb64 OBJ_algorithm,8L - -# define SN_idea_ofb64 "IDEA-OFB" -# define LN_idea_ofb64 "idea-ofb" -# define NID_idea_ofb64 46 - -# define LN_pkcs9 "pkcs9" -# define NID_pkcs9 47 -# define OBJ_pkcs9 OBJ_pkcs,9L - -# define SN_pkcs9_emailAddress "Email" -# define LN_pkcs9_emailAddress "emailAddress" -# define NID_pkcs9_emailAddress 48 -# define OBJ_pkcs9_emailAddress OBJ_pkcs9,1L - -# define LN_pkcs9_unstructuredName "unstructuredName" -# define NID_pkcs9_unstructuredName 49 -# define OBJ_pkcs9_unstructuredName OBJ_pkcs9,2L - -# define LN_pkcs9_contentType "contentType" -# define NID_pkcs9_contentType 50 -# define OBJ_pkcs9_contentType OBJ_pkcs9,3L - -# define LN_pkcs9_messageDigest "messageDigest" -# define NID_pkcs9_messageDigest 51 -# define OBJ_pkcs9_messageDigest OBJ_pkcs9,4L - -# define LN_pkcs9_signingTime "signingTime" -# define NID_pkcs9_signingTime 52 -# define OBJ_pkcs9_signingTime OBJ_pkcs9,5L - -# define LN_pkcs9_countersignature "countersignature" -# define NID_pkcs9_countersignature 53 -# define OBJ_pkcs9_countersignature OBJ_pkcs9,6L - -# define LN_pkcs9_challengePassword "challengePassword" -# define NID_pkcs9_challengePassword 54 -# define OBJ_pkcs9_challengePassword OBJ_pkcs9,7L - -# define LN_pkcs9_unstructuredAddress "unstructuredAddress" -# define NID_pkcs9_unstructuredAddress 55 -# define OBJ_pkcs9_unstructuredAddress OBJ_pkcs9,8L - -# define LN_pkcs9_extCertAttributes "extendedCertificateAttributes" -# define NID_pkcs9_extCertAttributes 56 -# define OBJ_pkcs9_extCertAttributes OBJ_pkcs9,9L - -# define SN_netscape "Netscape" -# define LN_netscape "Netscape Communications Corp." -# define NID_netscape 57 -# define OBJ_netscape 2L,16L,840L,1L,113730L - -# define SN_netscape_cert_extension "nsCertExt" -# define LN_netscape_cert_extension "Netscape Certificate Extension" -# define NID_netscape_cert_extension 58 -# define OBJ_netscape_cert_extension OBJ_netscape,1L - -# define SN_netscape_data_type "nsDataType" -# define LN_netscape_data_type "Netscape Data Type" -# define NID_netscape_data_type 59 -# define OBJ_netscape_data_type OBJ_netscape,2L - -# define SN_des_ede_cfb64 "DES-EDE-CFB" -# define LN_des_ede_cfb64 "des-ede-cfb" -# define NID_des_ede_cfb64 60 - -# define SN_des_ede3_cfb64 "DES-EDE3-CFB" -# define LN_des_ede3_cfb64 "des-ede3-cfb" -# define NID_des_ede3_cfb64 61 - -# define SN_des_ede_ofb64 "DES-EDE-OFB" -# define LN_des_ede_ofb64 "des-ede-ofb" -# define NID_des_ede_ofb64 62 - -# define SN_des_ede3_ofb64 "DES-EDE3-OFB" -# define LN_des_ede3_ofb64 "des-ede3-ofb" -# define NID_des_ede3_ofb64 63 - -/* I'm not sure about the object ID */ -# define SN_sha1 "SHA1" -# define LN_sha1 "sha1" -# define NID_sha1 64 -# define OBJ_sha1 OBJ_algorithm,26L -/* 28 Jun 1996 - eay */ -/* #define OBJ_sha1 1L,3L,14L,2L,26L,05L <- wrong */ - -# define SN_sha1WithRSAEncryption "RSA-SHA1" -# define LN_sha1WithRSAEncryption "sha1WithRSAEncryption" -# define NID_sha1WithRSAEncryption 65 -# define OBJ_sha1WithRSAEncryption OBJ_pkcs,1L,5L - -# define SN_dsaWithSHA "DSA-SHA" -# define LN_dsaWithSHA "dsaWithSHA" -# define NID_dsaWithSHA 66 -# define OBJ_dsaWithSHA OBJ_algorithm,13L - -# define SN_dsa_2 "DSA-old" -# define LN_dsa_2 "dsaEncryption-old" -# define NID_dsa_2 67 -# define OBJ_dsa_2 OBJ_algorithm,12L - -/* proposed by microsoft to RSA */ -# define SN_pbeWithSHA1AndRC2_CBC "PBE-SHA1-RC2-64" -# define LN_pbeWithSHA1AndRC2_CBC "pbeWithSHA1AndRC2-CBC" -# define NID_pbeWithSHA1AndRC2_CBC 68 -# define OBJ_pbeWithSHA1AndRC2_CBC OBJ_pkcs,5L,11L - -/* - * proposed by microsoft to RSA as pbeWithSHA1AndRC4: it is now defined - * explicitly in PKCS#5 v2.0 as id-PBKDF2 which is something completely - * different. - */ -# define LN_id_pbkdf2 "PBKDF2" -# define NID_id_pbkdf2 69 -# define OBJ_id_pbkdf2 OBJ_pkcs,5L,12L - -# define SN_dsaWithSHA1_2 "DSA-SHA1-old" -# define LN_dsaWithSHA1_2 "dsaWithSHA1-old" -# define NID_dsaWithSHA1_2 70 -/* Got this one from 'sdn706r20.pdf' which is actually an NSA document :-) */ -# define OBJ_dsaWithSHA1_2 OBJ_algorithm,27L - -# define SN_netscape_cert_type "nsCertType" -# define LN_netscape_cert_type "Netscape Cert Type" -# define NID_netscape_cert_type 71 -# define OBJ_netscape_cert_type OBJ_netscape_cert_extension,1L - -# define SN_netscape_base_url "nsBaseUrl" -# define LN_netscape_base_url "Netscape Base Url" -# define NID_netscape_base_url 72 -# define OBJ_netscape_base_url OBJ_netscape_cert_extension,2L - -# define SN_netscape_revocation_url "nsRevocationUrl" -# define LN_netscape_revocation_url "Netscape Revocation Url" -# define NID_netscape_revocation_url 73 -# define OBJ_netscape_revocation_url OBJ_netscape_cert_extension,3L - -# define SN_netscape_ca_revocation_url "nsCaRevocationUrl" -# define LN_netscape_ca_revocation_url "Netscape CA Revocation Url" -# define NID_netscape_ca_revocation_url 74 -# define OBJ_netscape_ca_revocation_url OBJ_netscape_cert_extension,4L - -# define SN_netscape_renewal_url "nsRenewalUrl" -# define LN_netscape_renewal_url "Netscape Renewal Url" -# define NID_netscape_renewal_url 75 -# define OBJ_netscape_renewal_url OBJ_netscape_cert_extension,7L - -# define SN_netscape_ca_policy_url "nsCaPolicyUrl" -# define LN_netscape_ca_policy_url "Netscape CA Policy Url" -# define NID_netscape_ca_policy_url 76 -# define OBJ_netscape_ca_policy_url OBJ_netscape_cert_extension,8L - -# define SN_netscape_ssl_server_name "nsSslServerName" -# define LN_netscape_ssl_server_name "Netscape SSL Server Name" -# define NID_netscape_ssl_server_name 77 -# define OBJ_netscape_ssl_server_name OBJ_netscape_cert_extension,12L - -# define SN_netscape_comment "nsComment" -# define LN_netscape_comment "Netscape Comment" -# define NID_netscape_comment 78 -# define OBJ_netscape_comment OBJ_netscape_cert_extension,13L - -# define SN_netscape_cert_sequence "nsCertSequence" -# define LN_netscape_cert_sequence "Netscape Certificate Sequence" -# define NID_netscape_cert_sequence 79 -# define OBJ_netscape_cert_sequence OBJ_netscape_data_type,5L - -# define SN_desx_cbc "DESX-CBC" -# define LN_desx_cbc "desx-cbc" -# define NID_desx_cbc 80 - -# define SN_id_ce "id-ce" -# define NID_id_ce 81 -# define OBJ_id_ce 2L,5L,29L - -# define SN_subject_key_identifier "subjectKeyIdentifier" -# define LN_subject_key_identifier "X509v3 Subject Key Identifier" -# define NID_subject_key_identifier 82 -# define OBJ_subject_key_identifier OBJ_id_ce,14L - -# define SN_key_usage "keyUsage" -# define LN_key_usage "X509v3 Key Usage" -# define NID_key_usage 83 -# define OBJ_key_usage OBJ_id_ce,15L - -# define SN_private_key_usage_period "privateKeyUsagePeriod" -# define LN_private_key_usage_period "X509v3 Private Key Usage Period" -# define NID_private_key_usage_period 84 -# define OBJ_private_key_usage_period OBJ_id_ce,16L - -# define SN_subject_alt_name "subjectAltName" -# define LN_subject_alt_name "X509v3 Subject Alternative Name" -# define NID_subject_alt_name 85 -# define OBJ_subject_alt_name OBJ_id_ce,17L - -# define SN_issuer_alt_name "issuerAltName" -# define LN_issuer_alt_name "X509v3 Issuer Alternative Name" -# define NID_issuer_alt_name 86 -# define OBJ_issuer_alt_name OBJ_id_ce,18L - -# define SN_basic_constraints "basicConstraints" -# define LN_basic_constraints "X509v3 Basic Constraints" -# define NID_basic_constraints 87 -# define OBJ_basic_constraints OBJ_id_ce,19L - -# define SN_crl_number "crlNumber" -# define LN_crl_number "X509v3 CRL Number" -# define NID_crl_number 88 -# define OBJ_crl_number OBJ_id_ce,20L - -# define SN_certificate_policies "certificatePolicies" -# define LN_certificate_policies "X509v3 Certificate Policies" -# define NID_certificate_policies 89 -# define OBJ_certificate_policies OBJ_id_ce,32L - -# define SN_authority_key_identifier "authorityKeyIdentifier" -# define LN_authority_key_identifier "X509v3 Authority Key Identifier" -# define NID_authority_key_identifier 90 -# define OBJ_authority_key_identifier OBJ_id_ce,35L - -# define SN_bf_cbc "BF-CBC" -# define LN_bf_cbc "bf-cbc" -# define NID_bf_cbc 91 -# define OBJ_bf_cbc 1L,3L,6L,1L,4L,1L,3029L,1L,2L - -# define SN_bf_ecb "BF-ECB" -# define LN_bf_ecb "bf-ecb" -# define NID_bf_ecb 92 - -# define SN_bf_cfb64 "BF-CFB" -# define LN_bf_cfb64 "bf-cfb" -# define NID_bf_cfb64 93 - -# define SN_bf_ofb64 "BF-OFB" -# define LN_bf_ofb64 "bf-ofb" -# define NID_bf_ofb64 94 - -# define SN_mdc2 "MDC2" -# define LN_mdc2 "mdc2" -# define NID_mdc2 95 -# define OBJ_mdc2 2L,5L,8L,3L,101L -/* An alternative? 1L,3L,14L,3L,2L,19L */ - -# define SN_mdc2WithRSA "RSA-MDC2" -# define LN_mdc2WithRSA "mdc2withRSA" -# define NID_mdc2WithRSA 96 -# define OBJ_mdc2WithRSA 2L,5L,8L,3L,100L - -# define SN_rc4_40 "RC4-40" -# define LN_rc4_40 "rc4-40" -# define NID_rc4_40 97 - -# define SN_rc2_40_cbc "RC2-40-CBC" -# define LN_rc2_40_cbc "rc2-40-cbc" -# define NID_rc2_40_cbc 98 - -# define SN_givenName "G" -# define LN_givenName "givenName" -# define NID_givenName 99 -# define OBJ_givenName OBJ_X509,42L - -# define SN_surname "S" -# define LN_surname "surname" -# define NID_surname 100 -# define OBJ_surname OBJ_X509,4L - -# define SN_initials "I" -# define LN_initials "initials" -# define NID_initials 101 -# define OBJ_initials OBJ_X509,43L - -# define SN_uniqueIdentifier "UID" -# define LN_uniqueIdentifier "uniqueIdentifier" -# define NID_uniqueIdentifier 102 -# define OBJ_uniqueIdentifier OBJ_X509,45L - -# define SN_crl_distribution_points "crlDistributionPoints" -# define LN_crl_distribution_points "X509v3 CRL Distribution Points" -# define NID_crl_distribution_points 103 -# define OBJ_crl_distribution_points OBJ_id_ce,31L - -# define SN_md5WithRSA "RSA-NP-MD5" -# define LN_md5WithRSA "md5WithRSA" -# define NID_md5WithRSA 104 -# define OBJ_md5WithRSA OBJ_algorithm,3L - -# define SN_serialNumber "SN" -# define LN_serialNumber "serialNumber" -# define NID_serialNumber 105 -# define OBJ_serialNumber OBJ_X509,5L - -# define SN_title "T" -# define LN_title "title" -# define NID_title 106 -# define OBJ_title OBJ_X509,12L - -# define SN_description "D" -# define LN_description "description" -# define NID_description 107 -# define OBJ_description OBJ_X509,13L - -/* CAST5 is CAST-128, I'm just sticking with the documentation */ -# define SN_cast5_cbc "CAST5-CBC" -# define LN_cast5_cbc "cast5-cbc" -# define NID_cast5_cbc 108 -# define OBJ_cast5_cbc 1L,2L,840L,113533L,7L,66L,10L - -# define SN_cast5_ecb "CAST5-ECB" -# define LN_cast5_ecb "cast5-ecb" -# define NID_cast5_ecb 109 - -# define SN_cast5_cfb64 "CAST5-CFB" -# define LN_cast5_cfb64 "cast5-cfb" -# define NID_cast5_cfb64 110 - -# define SN_cast5_ofb64 "CAST5-OFB" -# define LN_cast5_ofb64 "cast5-ofb" -# define NID_cast5_ofb64 111 - -# define LN_pbeWithMD5AndCast5_CBC "pbeWithMD5AndCast5CBC" -# define NID_pbeWithMD5AndCast5_CBC 112 -# define OBJ_pbeWithMD5AndCast5_CBC 1L,2L,840L,113533L,7L,66L,12L - -/*- - * This is one sun will soon be using :-( - * id-dsa-with-sha1 ID ::= { - * iso(1) member-body(2) us(840) x9-57 (10040) x9cm(4) 3 } - */ -# define SN_dsaWithSHA1 "DSA-SHA1" -# define LN_dsaWithSHA1 "dsaWithSHA1" -# define NID_dsaWithSHA1 113 -# define OBJ_dsaWithSHA1 1L,2L,840L,10040L,4L,3L - -# define NID_md5_sha1 114 -# define SN_md5_sha1 "MD5-SHA1" -# define LN_md5_sha1 "md5-sha1" - -# define SN_sha1WithRSA "RSA-SHA1-2" -# define LN_sha1WithRSA "sha1WithRSA" -# define NID_sha1WithRSA 115 -# define OBJ_sha1WithRSA OBJ_algorithm,29L - -# define SN_dsa "DSA" -# define LN_dsa "dsaEncryption" -# define NID_dsa 116 -# define OBJ_dsa 1L,2L,840L,10040L,4L,1L - -# define SN_ripemd160 "RIPEMD160" -# define LN_ripemd160 "ripemd160" -# define NID_ripemd160 117 -# define OBJ_ripemd160 1L,3L,36L,3L,2L,1L - -/* - * The name should actually be rsaSignatureWithripemd160, but I'm going to - * continue using the convention I'm using with the other ciphers - */ -# define SN_ripemd160WithRSA "RSA-RIPEMD160" -# define LN_ripemd160WithRSA "ripemd160WithRSA" -# define NID_ripemd160WithRSA 119 -# define OBJ_ripemd160WithRSA 1L,3L,36L,3L,3L,1L,2L - -/*- - * Taken from rfc2040 - * RC5_CBC_Parameters ::= SEQUENCE { - * version INTEGER (v1_0(16)), - * rounds INTEGER (8..127), - * blockSizeInBits INTEGER (64, 128), - * iv OCTET STRING OPTIONAL - * } - */ -# define SN_rc5_cbc "RC5-CBC" -# define LN_rc5_cbc "rc5-cbc" -# define NID_rc5_cbc 120 -# define OBJ_rc5_cbc OBJ_rsadsi,3L,8L - -# define SN_rc5_ecb "RC5-ECB" -# define LN_rc5_ecb "rc5-ecb" -# define NID_rc5_ecb 121 - -# define SN_rc5_cfb64 "RC5-CFB" -# define LN_rc5_cfb64 "rc5-cfb" -# define NID_rc5_cfb64 122 - -# define SN_rc5_ofb64 "RC5-OFB" -# define LN_rc5_ofb64 "rc5-ofb" -# define NID_rc5_ofb64 123 - -# define SN_rle_compression "RLE" -# define LN_rle_compression "run length compression" -# define NID_rle_compression 124 -# define OBJ_rle_compression 1L,1L,1L,1L,666L,1L - -# define SN_zlib_compression "ZLIB" -# define LN_zlib_compression "zlib compression" -# define NID_zlib_compression 125 -# define OBJ_zlib_compression 1L,1L,1L,1L,666L,2L - -# define SN_ext_key_usage "extendedKeyUsage" -# define LN_ext_key_usage "X509v3 Extended Key Usage" -# define NID_ext_key_usage 126 -# define OBJ_ext_key_usage OBJ_id_ce,37 - -# define SN_id_pkix "PKIX" -# define NID_id_pkix 127 -# define OBJ_id_pkix 1L,3L,6L,1L,5L,5L,7L - -# define SN_id_kp "id-kp" -# define NID_id_kp 128 -# define OBJ_id_kp OBJ_id_pkix,3L - -/* PKIX extended key usage OIDs */ - -# define SN_server_auth "serverAuth" -# define LN_server_auth "TLS Web Server Authentication" -# define NID_server_auth 129 -# define OBJ_server_auth OBJ_id_kp,1L - -# define SN_client_auth "clientAuth" -# define LN_client_auth "TLS Web Client Authentication" -# define NID_client_auth 130 -# define OBJ_client_auth OBJ_id_kp,2L - -# define SN_code_sign "codeSigning" -# define LN_code_sign "Code Signing" -# define NID_code_sign 131 -# define OBJ_code_sign OBJ_id_kp,3L - -# define SN_email_protect "emailProtection" -# define LN_email_protect "E-mail Protection" -# define NID_email_protect 132 -# define OBJ_email_protect OBJ_id_kp,4L - -# define SN_time_stamp "timeStamping" -# define LN_time_stamp "Time Stamping" -# define NID_time_stamp 133 -# define OBJ_time_stamp OBJ_id_kp,8L - -/* Additional extended key usage OIDs: Microsoft */ - -# define SN_ms_code_ind "msCodeInd" -# define LN_ms_code_ind "Microsoft Individual Code Signing" -# define NID_ms_code_ind 134 -# define OBJ_ms_code_ind 1L,3L,6L,1L,4L,1L,311L,2L,1L,21L - -# define SN_ms_code_com "msCodeCom" -# define LN_ms_code_com "Microsoft Commercial Code Signing" -# define NID_ms_code_com 135 -# define OBJ_ms_code_com 1L,3L,6L,1L,4L,1L,311L,2L,1L,22L - -# define SN_ms_ctl_sign "msCTLSign" -# define LN_ms_ctl_sign "Microsoft Trust List Signing" -# define NID_ms_ctl_sign 136 -# define OBJ_ms_ctl_sign 1L,3L,6L,1L,4L,1L,311L,10L,3L,1L - -# define SN_ms_sgc "msSGC" -# define LN_ms_sgc "Microsoft Server Gated Crypto" -# define NID_ms_sgc 137 -# define OBJ_ms_sgc 1L,3L,6L,1L,4L,1L,311L,10L,3L,3L - -# define SN_ms_efs "msEFS" -# define LN_ms_efs "Microsoft Encrypted File System" -# define NID_ms_efs 138 -# define OBJ_ms_efs 1L,3L,6L,1L,4L,1L,311L,10L,3L,4L - -/* Additional usage: Netscape */ - -# define SN_ns_sgc "nsSGC" -# define LN_ns_sgc "Netscape Server Gated Crypto" -# define NID_ns_sgc 139 -# define OBJ_ns_sgc OBJ_netscape,4L,1L - -# define SN_delta_crl "deltaCRL" -# define LN_delta_crl "X509v3 Delta CRL Indicator" -# define NID_delta_crl 140 -# define OBJ_delta_crl OBJ_id_ce,27L - -# define SN_crl_reason "CRLReason" -# define LN_crl_reason "CRL Reason Code" -# define NID_crl_reason 141 -# define OBJ_crl_reason OBJ_id_ce,21L - -# define SN_invalidity_date "invalidityDate" -# define LN_invalidity_date "Invalidity Date" -# define NID_invalidity_date 142 -# define OBJ_invalidity_date OBJ_id_ce,24L - -# define SN_sxnet "SXNetID" -# define LN_sxnet "Strong Extranet ID" -# define NID_sxnet 143 -# define OBJ_sxnet 1L,3L,101L,1L,4L,1L - -/* PKCS12 and related OBJECT IDENTIFIERS */ - -# define OBJ_pkcs12 OBJ_pkcs,12L -# define OBJ_pkcs12_pbeids OBJ_pkcs12, 1 - -# define SN_pbe_WithSHA1And128BitRC4 "PBE-SHA1-RC4-128" -# define LN_pbe_WithSHA1And128BitRC4 "pbeWithSHA1And128BitRC4" -# define NID_pbe_WithSHA1And128BitRC4 144 -# define OBJ_pbe_WithSHA1And128BitRC4 OBJ_pkcs12_pbeids, 1L - -# define SN_pbe_WithSHA1And40BitRC4 "PBE-SHA1-RC4-40" -# define LN_pbe_WithSHA1And40BitRC4 "pbeWithSHA1And40BitRC4" -# define NID_pbe_WithSHA1And40BitRC4 145 -# define OBJ_pbe_WithSHA1And40BitRC4 OBJ_pkcs12_pbeids, 2L - -# define SN_pbe_WithSHA1And3_Key_TripleDES_CBC "PBE-SHA1-3DES" -# define LN_pbe_WithSHA1And3_Key_TripleDES_CBC "pbeWithSHA1And3-KeyTripleDES-CBC" -# define NID_pbe_WithSHA1And3_Key_TripleDES_CBC 146 -# define OBJ_pbe_WithSHA1And3_Key_TripleDES_CBC OBJ_pkcs12_pbeids, 3L - -# define SN_pbe_WithSHA1And2_Key_TripleDES_CBC "PBE-SHA1-2DES" -# define LN_pbe_WithSHA1And2_Key_TripleDES_CBC "pbeWithSHA1And2-KeyTripleDES-CBC" -# define NID_pbe_WithSHA1And2_Key_TripleDES_CBC 147 -# define OBJ_pbe_WithSHA1And2_Key_TripleDES_CBC OBJ_pkcs12_pbeids, 4L - -# define SN_pbe_WithSHA1And128BitRC2_CBC "PBE-SHA1-RC2-128" -# define LN_pbe_WithSHA1And128BitRC2_CBC "pbeWithSHA1And128BitRC2-CBC" -# define NID_pbe_WithSHA1And128BitRC2_CBC 148 -# define OBJ_pbe_WithSHA1And128BitRC2_CBC OBJ_pkcs12_pbeids, 5L - -# define SN_pbe_WithSHA1And40BitRC2_CBC "PBE-SHA1-RC2-40" -# define LN_pbe_WithSHA1And40BitRC2_CBC "pbeWithSHA1And40BitRC2-CBC" -# define NID_pbe_WithSHA1And40BitRC2_CBC 149 -# define OBJ_pbe_WithSHA1And40BitRC2_CBC OBJ_pkcs12_pbeids, 6L - -# define OBJ_pkcs12_Version1 OBJ_pkcs12, 10L - -# define OBJ_pkcs12_BagIds OBJ_pkcs12_Version1, 1L - -# define LN_keyBag "keyBag" -# define NID_keyBag 150 -# define OBJ_keyBag OBJ_pkcs12_BagIds, 1L - -# define LN_pkcs8ShroudedKeyBag "pkcs8ShroudedKeyBag" -# define NID_pkcs8ShroudedKeyBag 151 -# define OBJ_pkcs8ShroudedKeyBag OBJ_pkcs12_BagIds, 2L - -# define LN_certBag "certBag" -# define NID_certBag 152 -# define OBJ_certBag OBJ_pkcs12_BagIds, 3L - -# define LN_crlBag "crlBag" -# define NID_crlBag 153 -# define OBJ_crlBag OBJ_pkcs12_BagIds, 4L - -# define LN_secretBag "secretBag" -# define NID_secretBag 154 -# define OBJ_secretBag OBJ_pkcs12_BagIds, 5L - -# define LN_safeContentsBag "safeContentsBag" -# define NID_safeContentsBag 155 -# define OBJ_safeContentsBag OBJ_pkcs12_BagIds, 6L - -# define LN_friendlyName "friendlyName" -# define NID_friendlyName 156 -# define OBJ_friendlyName OBJ_pkcs9, 20L - -# define LN_localKeyID "localKeyID" -# define NID_localKeyID 157 -# define OBJ_localKeyID OBJ_pkcs9, 21L - -# define OBJ_certTypes OBJ_pkcs9, 22L - -# define LN_x509Certificate "x509Certificate" -# define NID_x509Certificate 158 -# define OBJ_x509Certificate OBJ_certTypes, 1L - -# define LN_sdsiCertificate "sdsiCertificate" -# define NID_sdsiCertificate 159 -# define OBJ_sdsiCertificate OBJ_certTypes, 2L - -# define OBJ_crlTypes OBJ_pkcs9, 23L - -# define LN_x509Crl "x509Crl" -# define NID_x509Crl 160 -# define OBJ_x509Crl OBJ_crlTypes, 1L - -/* PKCS#5 v2 OIDs */ - -# define LN_pbes2 "PBES2" -# define NID_pbes2 161 -# define OBJ_pbes2 OBJ_pkcs,5L,13L - -# define LN_pbmac1 "PBMAC1" -# define NID_pbmac1 162 -# define OBJ_pbmac1 OBJ_pkcs,5L,14L - -# define LN_hmacWithSHA1 "hmacWithSHA1" -# define NID_hmacWithSHA1 163 -# define OBJ_hmacWithSHA1 OBJ_rsadsi,2L,7L - -/* Policy Qualifier Ids */ - -# define LN_id_qt_cps "Policy Qualifier CPS" -# define SN_id_qt_cps "id-qt-cps" -# define NID_id_qt_cps 164 -# define OBJ_id_qt_cps OBJ_id_pkix,2L,1L - -# define LN_id_qt_unotice "Policy Qualifier User Notice" -# define SN_id_qt_unotice "id-qt-unotice" -# define NID_id_qt_unotice 165 -# define OBJ_id_qt_unotice OBJ_id_pkix,2L,2L - -# define SN_rc2_64_cbc "RC2-64-CBC" -# define LN_rc2_64_cbc "rc2-64-cbc" -# define NID_rc2_64_cbc 166 - -# define SN_SMIMECapabilities "SMIME-CAPS" -# define LN_SMIMECapabilities "S/MIME Capabilities" -# define NID_SMIMECapabilities 167 -# define OBJ_SMIMECapabilities OBJ_pkcs9,15L - -# define SN_pbeWithMD2AndRC2_CBC "PBE-MD2-RC2-64" -# define LN_pbeWithMD2AndRC2_CBC "pbeWithMD2AndRC2-CBC" -# define NID_pbeWithMD2AndRC2_CBC 168 -# define OBJ_pbeWithMD2AndRC2_CBC OBJ_pkcs,5L,4L - -# define SN_pbeWithMD5AndRC2_CBC "PBE-MD5-RC2-64" -# define LN_pbeWithMD5AndRC2_CBC "pbeWithMD5AndRC2-CBC" -# define NID_pbeWithMD5AndRC2_CBC 169 -# define OBJ_pbeWithMD5AndRC2_CBC OBJ_pkcs,5L,6L - -# define SN_pbeWithSHA1AndDES_CBC "PBE-SHA1-DES" -# define LN_pbeWithSHA1AndDES_CBC "pbeWithSHA1AndDES-CBC" -# define NID_pbeWithSHA1AndDES_CBC 170 -# define OBJ_pbeWithSHA1AndDES_CBC OBJ_pkcs,5L,10L - -/* Extension request OIDs */ - -# define LN_ms_ext_req "Microsoft Extension Request" -# define SN_ms_ext_req "msExtReq" -# define NID_ms_ext_req 171 -# define OBJ_ms_ext_req 1L,3L,6L,1L,4L,1L,311L,2L,1L,14L - -# define LN_ext_req "Extension Request" -# define SN_ext_req "extReq" -# define NID_ext_req 172 -# define OBJ_ext_req OBJ_pkcs9,14L - -# define SN_name "name" -# define LN_name "name" -# define NID_name 173 -# define OBJ_name OBJ_X509,41L - -# define SN_dnQualifier "dnQualifier" -# define LN_dnQualifier "dnQualifier" -# define NID_dnQualifier 174 -# define OBJ_dnQualifier OBJ_X509,46L - -# define SN_id_pe "id-pe" -# define NID_id_pe 175 -# define OBJ_id_pe OBJ_id_pkix,1L - -# define SN_id_ad "id-ad" -# define NID_id_ad 176 -# define OBJ_id_ad OBJ_id_pkix,48L - -# define SN_info_access "authorityInfoAccess" -# define LN_info_access "Authority Information Access" -# define NID_info_access 177 -# define OBJ_info_access OBJ_id_pe,1L - -# define SN_ad_OCSP "OCSP" -# define LN_ad_OCSP "OCSP" -# define NID_ad_OCSP 178 -# define OBJ_ad_OCSP OBJ_id_ad,1L - -# define SN_ad_ca_issuers "caIssuers" -# define LN_ad_ca_issuers "CA Issuers" -# define NID_ad_ca_issuers 179 -# define OBJ_ad_ca_issuers OBJ_id_ad,2L - -# define SN_OCSP_sign "OCSPSigning" -# define LN_OCSP_sign "OCSP Signing" -# define NID_OCSP_sign 180 -# define OBJ_OCSP_sign OBJ_id_kp,9L -# endif /* USE_OBJ_MAC */ - +# include # include # include +# include # define OBJ_NAME_TYPE_UNDEF 0x00 # define OBJ_NAME_TYPE_MD_METH 0x01 @@ -1068,28 +168,6 @@ int OBJ_find_sigid_by_algs(int *psignid, int dig_nid, int pkey_nid); int OBJ_add_sigid(int signid, int dig_id, int pkey_id); void OBJ_sigid_free(void); -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_OBJ_strings(void); - -/* Error codes for the OBJ functions. */ - -/* Function codes. */ -# define OBJ_F_OBJ_ADD_OBJECT 105 -# define OBJ_F_OBJ_CREATE 100 -# define OBJ_F_OBJ_DUP 101 -# define OBJ_F_OBJ_NAME_NEW_INDEX 106 -# define OBJ_F_OBJ_NID2LN 102 -# define OBJ_F_OBJ_NID2OBJ 103 -# define OBJ_F_OBJ_NID2SN 104 - -/* Reason codes. */ -# define OBJ_R_OID_EXISTS 102 -# define OBJ_R_UNKNOWN_NID 101 # ifdef __cplusplus } diff --git a/noarch/include/node/openssl/objectserr.h b/noarch/include/node/openssl/objectserr.h new file mode 100644 index 00000000..02308dfa --- /dev/null +++ b/noarch/include/node/openssl/objectserr.h @@ -0,0 +1,38 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_OBJERR_H +# define HEADER_OBJERR_H + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_OBJ_strings(void); + +/* + * OBJ function codes. + */ +# define OBJ_F_OBJ_ADD_OBJECT 105 +# define OBJ_F_OBJ_ADD_SIGID 107 +# define OBJ_F_OBJ_CREATE 100 +# define OBJ_F_OBJ_DUP 101 +# define OBJ_F_OBJ_NAME_NEW_INDEX 106 +# define OBJ_F_OBJ_NID2LN 102 +# define OBJ_F_OBJ_NID2OBJ 103 +# define OBJ_F_OBJ_NID2SN 104 +# define OBJ_F_OBJ_TXT2OBJ 108 + +/* + * OBJ reason codes. + */ +# define OBJ_R_OID_EXISTS 102 +# define OBJ_R_UNKNOWN_NID 101 + +#endif diff --git a/noarch/include/node/openssl/ocsp.h b/noarch/include/node/openssl/ocsp.h index 90ebe5cc..8582fe1e 100644 --- a/noarch/include/node/openssl/ocsp.h +++ b/noarch/include/node/openssl/ocsp.h @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -45,6 +45,7 @@ # include # include # include +# include #ifdef __cplusplus extern "C" { @@ -92,7 +93,6 @@ typedef struct ocsp_resp_bytes_st OCSP_RESPBYTES; # define V_OCSP_RESPID_KEY 1 DEFINE_STACK_OF(OCSP_RESPID) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPID) typedef struct ocsp_revoked_info_st OCSP_REVOKEDINFO; @@ -120,18 +120,20 @@ typedef struct ocsp_service_locator_st OCSP_SERVICELOC; # define d2i_OCSP_RESPONSE_bio(bp,p) ASN1_d2i_bio_of(OCSP_RESPONSE,OCSP_RESPONSE_new,d2i_OCSP_RESPONSE,bp,p) # define PEM_read_bio_OCSP_REQUEST(bp,x,cb) (OCSP_REQUEST *)PEM_ASN1_read_bio( \ - (char *(*)())d2i_OCSP_REQUEST,PEM_STRING_OCSP_REQUEST,bp,(char **)x,cb,NULL) + (char *(*)())d2i_OCSP_REQUEST,PEM_STRING_OCSP_REQUEST, \ + bp,(char **)(x),cb,NULL) -# define PEM_read_bio_OCSP_RESPONSE(bp,x,cb)(OCSP_RESPONSE *)PEM_ASN1_read_bio(\ - (char *(*)())d2i_OCSP_RESPONSE,PEM_STRING_OCSP_RESPONSE,bp,(char **)x,cb,NULL) +# define PEM_read_bio_OCSP_RESPONSE(bp,x,cb)(OCSP_RESPONSE *)PEM_ASN1_read_bio(\ + (char *(*)())d2i_OCSP_RESPONSE,PEM_STRING_OCSP_RESPONSE, \ + bp,(char **)(x),cb,NULL) # define PEM_write_bio_OCSP_REQUEST(bp,o) \ PEM_ASN1_write_bio((int (*)())i2d_OCSP_REQUEST,PEM_STRING_OCSP_REQUEST,\ - bp,(char *)o, NULL,NULL,0,NULL,NULL) + bp,(char *)(o), NULL,NULL,0,NULL,NULL) # define PEM_write_bio_OCSP_RESPONSE(bp,o) \ PEM_ASN1_write_bio((int (*)())i2d_OCSP_RESPONSE,PEM_STRING_OCSP_RESPONSE,\ - bp,(char *)o, NULL,NULL,0,NULL,NULL) + bp,(char *)(o), NULL,NULL,0,NULL,NULL) # define i2d_OCSP_RESPONSE_bio(bp,o) ASN1_i2d_bio_of(OCSP_RESPONSE,i2d_OCSP_RESPONSE,bp,o) @@ -159,8 +161,6 @@ int OCSP_REQ_CTX_i2d(OCSP_REQ_CTX *rctx, const ASN1_ITEM *it, int OCSP_REQ_CTX_nbio_d2i(OCSP_REQ_CTX *rctx, ASN1_VALUE **pval, const ASN1_ITEM *it); BIO *OCSP_REQ_CTX_get0_mem_bio(OCSP_REQ_CTX *rctx); -int OCSP_REQ_CTX_i2d(OCSP_REQ_CTX *rctx, const ASN1_ITEM *it, - ASN1_VALUE *val); int OCSP_REQ_CTX_http(OCSP_REQ_CTX *rctx, const char *op, const char *path); int OCSP_REQ_CTX_set1_req(OCSP_REQ_CTX *rctx, OCSP_REQUEST *req); int OCSP_REQ_CTX_add1_header(OCSP_REQ_CTX *rctx, @@ -194,6 +194,8 @@ int OCSP_response_status(OCSP_RESPONSE *resp); OCSP_BASICRESP *OCSP_response_get1_basic(OCSP_RESPONSE *resp); const ASN1_OCTET_STRING *OCSP_resp_get0_signature(const OCSP_BASICRESP *bs); +const X509_ALGOR *OCSP_resp_get0_tbs_sigalg(const OCSP_BASICRESP *bs); +const OCSP_RESPDATA *OCSP_resp_get0_respdata(const OCSP_BASICRESP *bs); int OCSP_resp_get0_signer(OCSP_BASICRESP *bs, X509 **signer, STACK_OF(X509) *extra_certs); @@ -204,6 +206,9 @@ const STACK_OF(X509) *OCSP_resp_get0_certs(const OCSP_BASICRESP *bs); int OCSP_resp_get0_id(const OCSP_BASICRESP *bs, const ASN1_OCTET_STRING **pid, const X509_NAME **pname); +int OCSP_resp_get1_id(const OCSP_BASICRESP *bs, + ASN1_OCTET_STRING **pid, + X509_NAME **pname); int OCSP_resp_find(OCSP_BASICRESP *bs, OCSP_CERTID *id, int last); int OCSP_single_get0_status(OCSP_SINGLERESP *single, int *reason, @@ -224,8 +229,8 @@ int OCSP_request_verify(OCSP_REQUEST *req, STACK_OF(X509) *certs, int OCSP_parse_url(const char *url, char **phost, char **pport, char **ppath, int *pssl); -int OCSP_id_issuer_cmp(OCSP_CERTID *a, OCSP_CERTID *b); -int OCSP_id_cmp(OCSP_CERTID *a, OCSP_CERTID *b); +int OCSP_id_issuer_cmp(const OCSP_CERTID *a, const OCSP_CERTID *b); +int OCSP_id_cmp(const OCSP_CERTID *a, const OCSP_CERTID *b); int OCSP_request_onereq_count(OCSP_REQUEST *req); OCSP_ONEREQ *OCSP_request_onereq_get0(OCSP_REQUEST *req, int i); @@ -245,6 +250,9 @@ int OCSP_basic_add1_cert(OCSP_BASICRESP *resp, X509 *cert); int OCSP_basic_sign(OCSP_BASICRESP *brsp, X509 *signer, EVP_PKEY *key, const EVP_MD *dgst, STACK_OF(X509) *certs, unsigned long flags); +int OCSP_basic_sign_ctx(OCSP_BASICRESP *brsp, + X509 *signer, EVP_MD_CTX *ctx, + STACK_OF(X509) *certs, unsigned long flags); int OCSP_RESPID_set_by_name(OCSP_RESPID *respid, X509 *cert); int OCSP_RESPID_set_by_key(OCSP_RESPID *respid, X509 *cert); int OCSP_RESPID_match(OCSP_RESPID *respid, X509 *cert); @@ -336,60 +344,6 @@ int OCSP_RESPONSE_print(BIO *bp, OCSP_RESPONSE *o, unsigned long flags); int OCSP_basic_verify(OCSP_BASICRESP *bs, STACK_OF(X509) *certs, X509_STORE *st, unsigned long flags); -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_OCSP_strings(void); - -/* Error codes for the OCSP functions. */ - -/* Function codes. */ -# define OCSP_F_D2I_OCSP_NONCE 102 -# define OCSP_F_OCSP_BASIC_ADD1_STATUS 103 -# define OCSP_F_OCSP_BASIC_SIGN 104 -# define OCSP_F_OCSP_BASIC_VERIFY 105 -# define OCSP_F_OCSP_CERT_ID_NEW 101 -# define OCSP_F_OCSP_CHECK_DELEGATED 106 -# define OCSP_F_OCSP_CHECK_IDS 107 -# define OCSP_F_OCSP_CHECK_ISSUER 108 -# define OCSP_F_OCSP_CHECK_VALIDITY 115 -# define OCSP_F_OCSP_MATCH_ISSUERID 109 -# define OCSP_F_OCSP_PARSE_URL 114 -# define OCSP_F_OCSP_REQUEST_SIGN 110 -# define OCSP_F_OCSP_REQUEST_VERIFY 116 -# define OCSP_F_OCSP_RESPONSE_GET1_BASIC 111 -# define OCSP_F_PARSE_HTTP_LINE1 118 - -/* Reason codes. */ -# define OCSP_R_CERTIFICATE_VERIFY_ERROR 101 -# define OCSP_R_DIGEST_ERR 102 -# define OCSP_R_ERROR_IN_NEXTUPDATE_FIELD 122 -# define OCSP_R_ERROR_IN_THISUPDATE_FIELD 123 -# define OCSP_R_ERROR_PARSING_URL 121 -# define OCSP_R_MISSING_OCSPSIGNING_USAGE 103 -# define OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE 124 -# define OCSP_R_NOT_BASIC_RESPONSE 104 -# define OCSP_R_NO_CERTIFICATES_IN_CHAIN 105 -# define OCSP_R_NO_RESPONSE_DATA 108 -# define OCSP_R_NO_REVOKED_TIME 109 -# define OCSP_R_NO_SIGNER_KEY 130 -# define OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 110 -# define OCSP_R_REQUEST_NOT_SIGNED 128 -# define OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA 111 -# define OCSP_R_ROOT_CA_NOT_TRUSTED 112 -# define OCSP_R_SERVER_RESPONSE_ERROR 114 -# define OCSP_R_SERVER_RESPONSE_PARSE_ERROR 115 -# define OCSP_R_SIGNATURE_FAILURE 117 -# define OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND 118 -# define OCSP_R_STATUS_EXPIRED 125 -# define OCSP_R_STATUS_NOT_YET_VALID 126 -# define OCSP_R_STATUS_TOO_OLD 127 -# define OCSP_R_UNKNOWN_MESSAGE_DIGEST 119 -# define OCSP_R_UNKNOWN_NID 120 -# define OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE 129 # ifdef __cplusplus } diff --git a/noarch/include/node/openssl/ocsperr.h b/noarch/include/node/openssl/ocsperr.h new file mode 100644 index 00000000..7d93b12d --- /dev/null +++ b/noarch/include/node/openssl/ocsperr.h @@ -0,0 +1,74 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_OCSPERR_H +# define HEADER_OCSPERR_H + +# include + +# ifndef OPENSSL_NO_OCSP + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_OCSP_strings(void); + +/* + * OCSP function codes. + */ +# define OCSP_F_D2I_OCSP_NONCE 102 +# define OCSP_F_OCSP_BASIC_ADD1_STATUS 103 +# define OCSP_F_OCSP_BASIC_SIGN 104 +# define OCSP_F_OCSP_BASIC_SIGN_CTX 119 +# define OCSP_F_OCSP_BASIC_VERIFY 105 +# define OCSP_F_OCSP_CERT_ID_NEW 101 +# define OCSP_F_OCSP_CHECK_DELEGATED 106 +# define OCSP_F_OCSP_CHECK_IDS 107 +# define OCSP_F_OCSP_CHECK_ISSUER 108 +# define OCSP_F_OCSP_CHECK_VALIDITY 115 +# define OCSP_F_OCSP_MATCH_ISSUERID 109 +# define OCSP_F_OCSP_PARSE_URL 114 +# define OCSP_F_OCSP_REQUEST_SIGN 110 +# define OCSP_F_OCSP_REQUEST_VERIFY 116 +# define OCSP_F_OCSP_RESPONSE_GET1_BASIC 111 +# define OCSP_F_PARSE_HTTP_LINE1 118 + +/* + * OCSP reason codes. + */ +# define OCSP_R_CERTIFICATE_VERIFY_ERROR 101 +# define OCSP_R_DIGEST_ERR 102 +# define OCSP_R_ERROR_IN_NEXTUPDATE_FIELD 122 +# define OCSP_R_ERROR_IN_THISUPDATE_FIELD 123 +# define OCSP_R_ERROR_PARSING_URL 121 +# define OCSP_R_MISSING_OCSPSIGNING_USAGE 103 +# define OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE 124 +# define OCSP_R_NOT_BASIC_RESPONSE 104 +# define OCSP_R_NO_CERTIFICATES_IN_CHAIN 105 +# define OCSP_R_NO_RESPONSE_DATA 108 +# define OCSP_R_NO_REVOKED_TIME 109 +# define OCSP_R_NO_SIGNER_KEY 130 +# define OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 110 +# define OCSP_R_REQUEST_NOT_SIGNED 128 +# define OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA 111 +# define OCSP_R_ROOT_CA_NOT_TRUSTED 112 +# define OCSP_R_SERVER_RESPONSE_ERROR 114 +# define OCSP_R_SERVER_RESPONSE_PARSE_ERROR 115 +# define OCSP_R_SIGNATURE_FAILURE 117 +# define OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND 118 +# define OCSP_R_STATUS_EXPIRED 125 +# define OCSP_R_STATUS_NOT_YET_VALID 126 +# define OCSP_R_STATUS_TOO_OLD 127 +# define OCSP_R_UNKNOWN_MESSAGE_DIGEST 119 +# define OCSP_R_UNKNOWN_NID 120 +# define OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE 129 + +# endif +#endif diff --git a/noarch/include/node/openssl/opensslconf_no-asm.h b/noarch/include/node/openssl/opensslconf_no-asm.h index 7ef62f91..1a8763f6 100644 --- a/noarch/include/node/openssl/opensslconf_no-asm.h +++ b/noarch/include/node/openssl/opensslconf_no-asm.h @@ -16,6 +16,8 @@ # include "./archs/VC-WIN32/no-asm/include/openssl/opensslconf.h" #elif defined(_WIN32) && defined(_M_X64) # include "./archs/VC-WIN64A/no-asm/include/openssl/opensslconf.h" +#elif defined(_WIN32) && defined(_M_ARM64) +# include "./archs/VC-WIN64-ARM/no-asm/include/openssl/opensslconf.h" #elif (defined(__FreeBSD__) || defined(__OpenBSD__)) && defined(__i386__) # include "./archs/BSD-x86/no-asm/include/openssl/opensslconf.h" #elif (defined(__FreeBSD__) || defined(__OpenBSD__)) && defined(__x86_64__) diff --git a/noarch/include/node/openssl/opensslv.h b/noarch/include/node/openssl/opensslv.h index c5ef2a75..bdf44d47 100644 --- a/noarch/include/node/openssl/opensslv.h +++ b/noarch/include/node/openssl/opensslv.h @@ -1,5 +1,5 @@ /* - * Copyright 1999-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,12 +39,8 @@ extern "C" { * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for * major minor fix final patch/beta) */ -# define OPENSSL_VERSION_NUMBER 0x1010009fL -# ifdef OPENSSL_FIPS -# define OPENSSL_VERSION_TEXT "OpenSSL 1.1.0i-fips 14 Aug 2018" -# else -# define OPENSSL_VERSION_TEXT "OpenSSL 1.1.0i 14 Aug 2018" -# endif +# define OPENSSL_VERSION_NUMBER 0x1010103fL +# define OPENSSL_VERSION_TEXT "OpenSSL 1.1.1c 28 May 2019" /*- * The macros below are to be used for shared library (.so, .dll, ...) diff --git a/noarch/include/node/openssl/ossl_typ.h b/noarch/include/node/openssl/ossl_typ.h index 129a67f0..7993ca28 100644 --- a/noarch/include/node/openssl/ossl_typ.h +++ b/noarch/include/node/openssl/ossl_typ.h @@ -1,5 +1,5 @@ /* - * Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -114,6 +114,7 @@ typedef struct ec_key_st EC_KEY; typedef struct ec_key_method_st EC_KEY_METHOD; typedef struct rand_meth_st RAND_METHOD; +typedef struct rand_drbg_st RAND_DRBG; typedef struct ssl_dane_st SSL_DANE; typedef struct x509_st X509; @@ -131,6 +132,8 @@ typedef struct x509_lookup_st X509_LOOKUP; typedef struct x509_lookup_method_st X509_LOOKUP_METHOD; typedef struct X509_VERIFY_PARAM_st X509_VERIFY_PARAM; +typedef struct x509_sig_info_st X509_SIG_INFO; + typedef struct pkcs8_priv_key_info_st PKCS8_PRIV_KEY_INFO; typedef struct v3_ext_ctx X509V3_CTX; @@ -169,6 +172,9 @@ typedef struct ctlog_st CTLOG; typedef struct ctlog_store_st CTLOG_STORE; typedef struct ct_policy_eval_ctx_st CT_POLICY_EVAL_CTX; +typedef struct ossl_store_info_st OSSL_STORE_INFO; +typedef struct ossl_store_search_st OSSL_STORE_SEARCH; + #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L && \ defined(INTMAX_MAX) && defined(UINTMAX_MAX) typedef intmax_t ossl_intmax_t; diff --git a/noarch/include/node/openssl/pem.h b/noarch/include/node/openssl/pem.h index f7ce3c61..2ef5b5d0 100644 --- a/noarch/include/node/openssl/pem.h +++ b/noarch/include/node/openssl/pem.h @@ -12,10 +12,10 @@ # include # include -# include +# include # include # include -# include +# include #ifdef __cplusplus extern "C" { @@ -54,56 +54,6 @@ extern "C" { # define PEM_TYPE_MIC_CLEAR 30 # define PEM_TYPE_CLEAR 40 -typedef struct pem_recip_st { - char *name; - X509_NAME *dn; - int cipher; - int key_enc; - /* char iv[8]; unused and wrong size */ -} PEM_USER; - -typedef struct pem_ctx_st { - int type; /* what type of object */ - struct { - int version; - int mode; - } proc_type; - - char *domain; - - struct { - int cipher; - /*- - unused, and wrong size - unsigned char iv[8]; */ - } DEK_info; - - PEM_USER *originator; - - int num_recipient; - PEM_USER **recipient; - -/*- - XXX(ben): don#t think this is used! - STACK *x509_chain; / * certificate chain */ - EVP_MD *md; /* signature type */ - - int md_enc; /* is the md encrypted or not? */ - int md_len; /* length of md_data */ - char *md_data; /* message digest, could be pkey encrypted */ - - EVP_CIPHER *dec; /* date encryption cipher */ - int key_len; /* key length */ - unsigned char *key; /* key */ - /*- - unused, and wrong size - unsigned char iv[8]; */ - - int data_enc; /* is the data encrypted */ - int data_len; - unsigned char *data; -} PEM_CTX; - /* * These macros make the PEM_read/PEM_write functions easier to maintain and * write. Now they are all implemented with either: IMPLEMENT_PEM_rw(...) or @@ -286,6 +236,14 @@ int PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *len, int PEM_read_bio(BIO *bp, char **name, char **header, unsigned char **data, long *len); +# define PEM_FLAG_SECURE 0x1 +# define PEM_FLAG_EAY_COMPATIBLE 0x2 +# define PEM_FLAG_ONLY_B64 0x4 +int PEM_read_bio_ex(BIO *bp, char **name, char **header, + unsigned char **data, long *len, unsigned int flags); +int PEM_bytes_read_bio_secmem(unsigned char **pdata, long *plen, char **pnm, + const char *name, BIO *bp, pem_password_cb *cb, + void *u); int PEM_write_bio(BIO *bp, const char *name, const char *hdr, const unsigned char *data, long len); int PEM_bytes_read_bio(unsigned char **pdata, long *plen, char **pnm, @@ -414,88 +372,6 @@ int i2b_PVK_bio(BIO *out, EVP_PKEY *pk, int enclevel, # endif # endif -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_PEM_strings(void); - -/* Error codes for the PEM functions. */ - -/* Function codes. */ -# define PEM_F_B2I_DSS 127 -# define PEM_F_B2I_PVK_BIO 128 -# define PEM_F_B2I_RSA 129 -# define PEM_F_CHECK_BITLEN_DSA 130 -# define PEM_F_CHECK_BITLEN_RSA 131 -# define PEM_F_D2I_PKCS8PRIVATEKEY_BIO 120 -# define PEM_F_D2I_PKCS8PRIVATEKEY_FP 121 -# define PEM_F_DO_B2I 132 -# define PEM_F_DO_B2I_BIO 133 -# define PEM_F_DO_BLOB_HEADER 134 -# define PEM_F_DO_PK8PKEY 126 -# define PEM_F_DO_PK8PKEY_FP 125 -# define PEM_F_DO_PVK_BODY 135 -# define PEM_F_DO_PVK_HEADER 136 -# define PEM_F_I2B_PVK 137 -# define PEM_F_I2B_PVK_BIO 138 -# define PEM_F_LOAD_IV 101 -# define PEM_F_PEM_ASN1_READ 102 -# define PEM_F_PEM_ASN1_READ_BIO 103 -# define PEM_F_PEM_ASN1_WRITE 104 -# define PEM_F_PEM_ASN1_WRITE_BIO 105 -# define PEM_F_PEM_DEF_CALLBACK 100 -# define PEM_F_PEM_DO_HEADER 106 -# define PEM_F_PEM_GET_EVP_CIPHER_INFO 107 -# define PEM_F_PEM_READ 108 -# define PEM_F_PEM_READ_BIO 109 -# define PEM_F_PEM_READ_BIO_DHPARAMS 141 -# define PEM_F_PEM_READ_BIO_PARAMETERS 140 -# define PEM_F_PEM_READ_BIO_PRIVATEKEY 123 -# define PEM_F_PEM_READ_DHPARAMS 142 -# define PEM_F_PEM_READ_PRIVATEKEY 124 -# define PEM_F_PEM_SIGNFINAL 112 -# define PEM_F_PEM_WRITE 113 -# define PEM_F_PEM_WRITE_BIO 114 -# define PEM_F_PEM_WRITE_PRIVATEKEY 139 -# define PEM_F_PEM_X509_INFO_READ 115 -# define PEM_F_PEM_X509_INFO_READ_BIO 116 -# define PEM_F_PEM_X509_INFO_WRITE_BIO 117 - -/* Reason codes. */ -# define PEM_R_BAD_BASE64_DECODE 100 -# define PEM_R_BAD_DECRYPT 101 -# define PEM_R_BAD_END_LINE 102 -# define PEM_R_BAD_IV_CHARS 103 -# define PEM_R_BAD_MAGIC_NUMBER 116 -# define PEM_R_BAD_PASSWORD_READ 104 -# define PEM_R_BAD_VERSION_NUMBER 117 -# define PEM_R_BIO_WRITE_FAILURE 118 -# define PEM_R_CIPHER_IS_NULL 127 -# define PEM_R_ERROR_CONVERTING_PRIVATE_KEY 115 -# define PEM_R_EXPECTING_PRIVATE_KEY_BLOB 119 -# define PEM_R_EXPECTING_PUBLIC_KEY_BLOB 120 -# define PEM_R_HEADER_TOO_LONG 128 -# define PEM_R_INCONSISTENT_HEADER 121 -# define PEM_R_KEYBLOB_HEADER_PARSE_ERROR 122 -# define PEM_R_KEYBLOB_TOO_SHORT 123 -# define PEM_R_MISSING_DEK_IV 129 -# define PEM_R_NOT_DEK_INFO 105 -# define PEM_R_NOT_ENCRYPTED 106 -# define PEM_R_NOT_PROC_TYPE 107 -# define PEM_R_NO_START_LINE 108 -# define PEM_R_PROBLEMS_GETTING_PASSWORD 109 -# define PEM_R_PVK_DATA_TOO_SHORT 124 -# define PEM_R_PVK_TOO_SHORT 125 -# define PEM_R_READ_KEY 111 -# define PEM_R_SHORT_HEADER 112 -# define PEM_R_UNEXPECTED_DEK_IV 130 -# define PEM_R_UNSUPPORTED_CIPHER 113 -# define PEM_R_UNSUPPORTED_ENCRYPTION 114 -# define PEM_R_UNSUPPORTED_KEY_COMPONENTS 126 - # ifdef __cplusplus } # endif diff --git a/noarch/include/node/openssl/pem2.h b/noarch/include/node/openssl/pem2.h index cfe73f13..038fe790 100644 --- a/noarch/include/node/openssl/pem2.h +++ b/noarch/include/node/openssl/pem2.h @@ -1,5 +1,5 @@ /* - * Copyright 1999-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -7,14 +7,7 @@ * https://www.openssl.org/source/license.html */ -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef HEADER_PEM_H -int ERR_load_PEM_strings(void); -#endif - -#ifdef __cplusplus -} +#ifndef HEADER_PEM2_H +# define HEADER_PEM2_H +# include #endif diff --git a/noarch/include/node/openssl/pemerr.h b/noarch/include/node/openssl/pemerr.h new file mode 100644 index 00000000..cd61b823 --- /dev/null +++ b/noarch/include/node/openssl/pemerr.h @@ -0,0 +1,99 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_PEMERR_H +# define HEADER_PEMERR_H + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_PEM_strings(void); + +/* + * PEM function codes. + */ +# define PEM_F_B2I_DSS 127 +# define PEM_F_B2I_PVK_BIO 128 +# define PEM_F_B2I_RSA 129 +# define PEM_F_CHECK_BITLEN_DSA 130 +# define PEM_F_CHECK_BITLEN_RSA 131 +# define PEM_F_D2I_PKCS8PRIVATEKEY_BIO 120 +# define PEM_F_D2I_PKCS8PRIVATEKEY_FP 121 +# define PEM_F_DO_B2I 132 +# define PEM_F_DO_B2I_BIO 133 +# define PEM_F_DO_BLOB_HEADER 134 +# define PEM_F_DO_I2B 146 +# define PEM_F_DO_PK8PKEY 126 +# define PEM_F_DO_PK8PKEY_FP 125 +# define PEM_F_DO_PVK_BODY 135 +# define PEM_F_DO_PVK_HEADER 136 +# define PEM_F_GET_HEADER_AND_DATA 143 +# define PEM_F_GET_NAME 144 +# define PEM_F_I2B_PVK 137 +# define PEM_F_I2B_PVK_BIO 138 +# define PEM_F_LOAD_IV 101 +# define PEM_F_PEM_ASN1_READ 102 +# define PEM_F_PEM_ASN1_READ_BIO 103 +# define PEM_F_PEM_ASN1_WRITE 104 +# define PEM_F_PEM_ASN1_WRITE_BIO 105 +# define PEM_F_PEM_DEF_CALLBACK 100 +# define PEM_F_PEM_DO_HEADER 106 +# define PEM_F_PEM_GET_EVP_CIPHER_INFO 107 +# define PEM_F_PEM_READ 108 +# define PEM_F_PEM_READ_BIO 109 +# define PEM_F_PEM_READ_BIO_DHPARAMS 141 +# define PEM_F_PEM_READ_BIO_EX 145 +# define PEM_F_PEM_READ_BIO_PARAMETERS 140 +# define PEM_F_PEM_READ_BIO_PRIVATEKEY 123 +# define PEM_F_PEM_READ_DHPARAMS 142 +# define PEM_F_PEM_READ_PRIVATEKEY 124 +# define PEM_F_PEM_SIGNFINAL 112 +# define PEM_F_PEM_WRITE 113 +# define PEM_F_PEM_WRITE_BIO 114 +# define PEM_F_PEM_WRITE_PRIVATEKEY 139 +# define PEM_F_PEM_X509_INFO_READ 115 +# define PEM_F_PEM_X509_INFO_READ_BIO 116 +# define PEM_F_PEM_X509_INFO_WRITE_BIO 117 + +/* + * PEM reason codes. + */ +# define PEM_R_BAD_BASE64_DECODE 100 +# define PEM_R_BAD_DECRYPT 101 +# define PEM_R_BAD_END_LINE 102 +# define PEM_R_BAD_IV_CHARS 103 +# define PEM_R_BAD_MAGIC_NUMBER 116 +# define PEM_R_BAD_PASSWORD_READ 104 +# define PEM_R_BAD_VERSION_NUMBER 117 +# define PEM_R_BIO_WRITE_FAILURE 118 +# define PEM_R_CIPHER_IS_NULL 127 +# define PEM_R_ERROR_CONVERTING_PRIVATE_KEY 115 +# define PEM_R_EXPECTING_PRIVATE_KEY_BLOB 119 +# define PEM_R_EXPECTING_PUBLIC_KEY_BLOB 120 +# define PEM_R_HEADER_TOO_LONG 128 +# define PEM_R_INCONSISTENT_HEADER 121 +# define PEM_R_KEYBLOB_HEADER_PARSE_ERROR 122 +# define PEM_R_KEYBLOB_TOO_SHORT 123 +# define PEM_R_MISSING_DEK_IV 129 +# define PEM_R_NOT_DEK_INFO 105 +# define PEM_R_NOT_ENCRYPTED 106 +# define PEM_R_NOT_PROC_TYPE 107 +# define PEM_R_NO_START_LINE 108 +# define PEM_R_PROBLEMS_GETTING_PASSWORD 109 +# define PEM_R_PVK_DATA_TOO_SHORT 124 +# define PEM_R_PVK_TOO_SHORT 125 +# define PEM_R_READ_KEY 111 +# define PEM_R_SHORT_HEADER 112 +# define PEM_R_UNEXPECTED_DEK_IV 130 +# define PEM_R_UNSUPPORTED_CIPHER 113 +# define PEM_R_UNSUPPORTED_ENCRYPTION 114 +# define PEM_R_UNSUPPORTED_KEY_COMPONENTS 126 + +#endif diff --git a/noarch/include/node/openssl/pkcs12.h b/noarch/include/node/openssl/pkcs12.h index deaded9d..3f43dad6 100644 --- a/noarch/include/node/openssl/pkcs12.h +++ b/noarch/include/node/openssl/pkcs12.h @@ -12,6 +12,7 @@ # include # include +# include #ifdef __cplusplus extern "C" { @@ -216,66 +217,6 @@ PKCS12 *d2i_PKCS12_fp(FILE *fp, PKCS12 **p12); # endif int PKCS12_newpass(PKCS12 *p12, const char *oldpass, const char *newpass); -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_PKCS12_strings(void); - -/* Error codes for the PKCS12 functions. */ - -/* Function codes. */ -# define PKCS12_F_PKCS12_CREATE 105 -# define PKCS12_F_PKCS12_GEN_MAC 107 -# define PKCS12_F_PKCS12_INIT 109 -# define PKCS12_F_PKCS12_ITEM_DECRYPT_D2I 106 -# define PKCS12_F_PKCS12_ITEM_I2D_ENCRYPT 108 -# define PKCS12_F_PKCS12_ITEM_PACK_SAFEBAG 117 -# define PKCS12_F_PKCS12_KEY_GEN_ASC 110 -# define PKCS12_F_PKCS12_KEY_GEN_UNI 111 -# define PKCS12_F_PKCS12_KEY_GEN_UTF8 116 -# define PKCS12_F_PKCS12_NEWPASS 128 -# define PKCS12_F_PKCS12_PACK_P7DATA 114 -# define PKCS12_F_PKCS12_PACK_P7ENCDATA 115 -# define PKCS12_F_PKCS12_PARSE 118 -# define PKCS12_F_PKCS12_PBE_CRYPT 119 -# define PKCS12_F_PKCS12_PBE_KEYIVGEN 120 -# define PKCS12_F_PKCS12_SAFEBAG_CREATE0_P8INF 112 -# define PKCS12_F_PKCS12_SAFEBAG_CREATE0_PKCS8 113 -# define PKCS12_F_PKCS12_SAFEBAG_CREATE_PKCS8_ENCRYPT 133 -# define PKCS12_F_PKCS12_SETUP_MAC 122 -# define PKCS12_F_PKCS12_SET_MAC 123 -# define PKCS12_F_PKCS12_UNPACK_AUTHSAFES 130 -# define PKCS12_F_PKCS12_UNPACK_P7DATA 131 -# define PKCS12_F_PKCS12_VERIFY_MAC 126 -# define PKCS12_F_PKCS8_ENCRYPT 125 -# define PKCS12_F_PKCS8_SET0_PBE 132 - -/* Reason codes. */ -# define PKCS12_R_CANT_PACK_STRUCTURE 100 -# define PKCS12_R_CONTENT_TYPE_NOT_DATA 121 -# define PKCS12_R_DECODE_ERROR 101 -# define PKCS12_R_ENCODE_ERROR 102 -# define PKCS12_R_ENCRYPT_ERROR 103 -# define PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE 120 -# define PKCS12_R_INVALID_NULL_ARGUMENT 104 -# define PKCS12_R_INVALID_NULL_PKCS12_POINTER 105 -# define PKCS12_R_IV_GEN_ERROR 106 -# define PKCS12_R_KEY_GEN_ERROR 107 -# define PKCS12_R_MAC_ABSENT 108 -# define PKCS12_R_MAC_GENERATION_ERROR 109 -# define PKCS12_R_MAC_SETUP_ERROR 110 -# define PKCS12_R_MAC_STRING_SET_ERROR 111 -# define PKCS12_R_MAC_VERIFY_FAILURE 113 -# define PKCS12_R_PARSE_ERROR 114 -# define PKCS12_R_PKCS12_ALGOR_CIPHERINIT_ERROR 115 -# define PKCS12_R_PKCS12_CIPHERFINAL_ERROR 116 -# define PKCS12_R_PKCS12_PBE_CRYPT_ERROR 117 -# define PKCS12_R_UNKNOWN_DIGEST_ALGORITHM 118 -# define PKCS12_R_UNSUPPORTED_PKCS12_MODE 119 - # ifdef __cplusplus } # endif diff --git a/noarch/include/node/openssl/pkcs12err.h b/noarch/include/node/openssl/pkcs12err.h new file mode 100644 index 00000000..c7184ffe --- /dev/null +++ b/noarch/include/node/openssl/pkcs12err.h @@ -0,0 +1,77 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_PKCS12ERR_H +# define HEADER_PKCS12ERR_H + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_PKCS12_strings(void); + +/* + * PKCS12 function codes. + */ +# define PKCS12_F_OPENSSL_ASC2UNI 121 +# define PKCS12_F_OPENSSL_UNI2ASC 124 +# define PKCS12_F_OPENSSL_UNI2UTF8 127 +# define PKCS12_F_OPENSSL_UTF82UNI 129 +# define PKCS12_F_PKCS12_CREATE 105 +# define PKCS12_F_PKCS12_GEN_MAC 107 +# define PKCS12_F_PKCS12_INIT 109 +# define PKCS12_F_PKCS12_ITEM_DECRYPT_D2I 106 +# define PKCS12_F_PKCS12_ITEM_I2D_ENCRYPT 108 +# define PKCS12_F_PKCS12_ITEM_PACK_SAFEBAG 117 +# define PKCS12_F_PKCS12_KEY_GEN_ASC 110 +# define PKCS12_F_PKCS12_KEY_GEN_UNI 111 +# define PKCS12_F_PKCS12_KEY_GEN_UTF8 116 +# define PKCS12_F_PKCS12_NEWPASS 128 +# define PKCS12_F_PKCS12_PACK_P7DATA 114 +# define PKCS12_F_PKCS12_PACK_P7ENCDATA 115 +# define PKCS12_F_PKCS12_PARSE 118 +# define PKCS12_F_PKCS12_PBE_CRYPT 119 +# define PKCS12_F_PKCS12_PBE_KEYIVGEN 120 +# define PKCS12_F_PKCS12_SAFEBAG_CREATE0_P8INF 112 +# define PKCS12_F_PKCS12_SAFEBAG_CREATE0_PKCS8 113 +# define PKCS12_F_PKCS12_SAFEBAG_CREATE_PKCS8_ENCRYPT 133 +# define PKCS12_F_PKCS12_SETUP_MAC 122 +# define PKCS12_F_PKCS12_SET_MAC 123 +# define PKCS12_F_PKCS12_UNPACK_AUTHSAFES 130 +# define PKCS12_F_PKCS12_UNPACK_P7DATA 131 +# define PKCS12_F_PKCS12_VERIFY_MAC 126 +# define PKCS12_F_PKCS8_ENCRYPT 125 +# define PKCS12_F_PKCS8_SET0_PBE 132 + +/* + * PKCS12 reason codes. + */ +# define PKCS12_R_CANT_PACK_STRUCTURE 100 +# define PKCS12_R_CONTENT_TYPE_NOT_DATA 121 +# define PKCS12_R_DECODE_ERROR 101 +# define PKCS12_R_ENCODE_ERROR 102 +# define PKCS12_R_ENCRYPT_ERROR 103 +# define PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE 120 +# define PKCS12_R_INVALID_NULL_ARGUMENT 104 +# define PKCS12_R_INVALID_NULL_PKCS12_POINTER 105 +# define PKCS12_R_IV_GEN_ERROR 106 +# define PKCS12_R_KEY_GEN_ERROR 107 +# define PKCS12_R_MAC_ABSENT 108 +# define PKCS12_R_MAC_GENERATION_ERROR 109 +# define PKCS12_R_MAC_SETUP_ERROR 110 +# define PKCS12_R_MAC_STRING_SET_ERROR 111 +# define PKCS12_R_MAC_VERIFY_FAILURE 113 +# define PKCS12_R_PARSE_ERROR 114 +# define PKCS12_R_PKCS12_ALGOR_CIPHERINIT_ERROR 115 +# define PKCS12_R_PKCS12_CIPHERFINAL_ERROR 116 +# define PKCS12_R_PKCS12_PBE_CRYPT_ERROR 117 +# define PKCS12_R_UNKNOWN_DIGEST_ALGORITHM 118 +# define PKCS12_R_UNSUPPORTED_PKCS12_MODE 119 + +#endif diff --git a/noarch/include/node/openssl/pkcs7.h b/noarch/include/node/openssl/pkcs7.h index 691f7220..9b66e002 100644 --- a/noarch/include/node/openssl/pkcs7.h +++ b/noarch/include/node/openssl/pkcs7.h @@ -16,6 +16,7 @@ # include # include +# include #ifdef __cplusplus extern "C" { @@ -312,92 +313,6 @@ PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont); BIO *BIO_new_PKCS7(BIO *out, PKCS7 *p7); -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_PKCS7_strings(void); - -/* Error codes for the PKCS7 functions. */ - -/* Function codes. */ -# define PKCS7_F_DO_PKCS7_SIGNED_ATTRIB 136 -# define PKCS7_F_PKCS7_ADD0_ATTRIB_SIGNING_TIME 135 -# define PKCS7_F_PKCS7_ADD_ATTRIB_SMIMECAP 118 -# define PKCS7_F_PKCS7_ADD_CERTIFICATE 100 -# define PKCS7_F_PKCS7_ADD_CRL 101 -# define PKCS7_F_PKCS7_ADD_RECIPIENT_INFO 102 -# define PKCS7_F_PKCS7_ADD_SIGNATURE 131 -# define PKCS7_F_PKCS7_ADD_SIGNER 103 -# define PKCS7_F_PKCS7_BIO_ADD_DIGEST 125 -# define PKCS7_F_PKCS7_COPY_EXISTING_DIGEST 138 -# define PKCS7_F_PKCS7_CTRL 104 -# define PKCS7_F_PKCS7_DATADECODE 112 -# define PKCS7_F_PKCS7_DATAFINAL 128 -# define PKCS7_F_PKCS7_DATAINIT 105 -# define PKCS7_F_PKCS7_DATAVERIFY 107 -# define PKCS7_F_PKCS7_DECRYPT 114 -# define PKCS7_F_PKCS7_DECRYPT_RINFO 133 -# define PKCS7_F_PKCS7_ENCODE_RINFO 132 -# define PKCS7_F_PKCS7_ENCRYPT 115 -# define PKCS7_F_PKCS7_FINAL 134 -# define PKCS7_F_PKCS7_FIND_DIGEST 127 -# define PKCS7_F_PKCS7_GET0_SIGNERS 124 -# define PKCS7_F_PKCS7_RECIP_INFO_SET 130 -# define PKCS7_F_PKCS7_SET_CIPHER 108 -# define PKCS7_F_PKCS7_SET_CONTENT 109 -# define PKCS7_F_PKCS7_SET_DIGEST 126 -# define PKCS7_F_PKCS7_SET_TYPE 110 -# define PKCS7_F_PKCS7_SIGN 116 -# define PKCS7_F_PKCS7_SIGNATUREVERIFY 113 -# define PKCS7_F_PKCS7_SIGNER_INFO_SET 129 -# define PKCS7_F_PKCS7_SIGNER_INFO_SIGN 139 -# define PKCS7_F_PKCS7_SIGN_ADD_SIGNER 137 -# define PKCS7_F_PKCS7_SIMPLE_SMIMECAP 119 -# define PKCS7_F_PKCS7_VERIFY 117 - -/* Reason codes. */ -# define PKCS7_R_CERTIFICATE_VERIFY_ERROR 117 -# define PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 144 -# define PKCS7_R_CIPHER_NOT_INITIALIZED 116 -# define PKCS7_R_CONTENT_AND_DATA_PRESENT 118 -# define PKCS7_R_CTRL_ERROR 152 -# define PKCS7_R_DECRYPT_ERROR 119 -# define PKCS7_R_DIGEST_FAILURE 101 -# define PKCS7_R_ENCRYPTION_CTRL_FAILURE 149 -# define PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 150 -# define PKCS7_R_ERROR_ADDING_RECIPIENT 120 -# define PKCS7_R_ERROR_SETTING_CIPHER 121 -# define PKCS7_R_INVALID_NULL_POINTER 143 -# define PKCS7_R_INVALID_SIGNED_DATA_TYPE 155 -# define PKCS7_R_NO_CONTENT 122 -# define PKCS7_R_NO_DEFAULT_DIGEST 151 -# define PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND 154 -# define PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE 115 -# define PKCS7_R_NO_SIGNATURES_ON_DATA 123 -# define PKCS7_R_NO_SIGNERS 142 -# define PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE 104 -# define PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR 124 -# define PKCS7_R_PKCS7_ADD_SIGNER_ERROR 153 -# define PKCS7_R_PKCS7_DATASIGN 145 -# define PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 127 -# define PKCS7_R_SIGNATURE_FAILURE 105 -# define PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND 128 -# define PKCS7_R_SIGNING_CTRL_FAILURE 147 -# define PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 148 -# define PKCS7_R_SMIME_TEXT_ERROR 129 -# define PKCS7_R_UNABLE_TO_FIND_CERTIFICATE 106 -# define PKCS7_R_UNABLE_TO_FIND_MEM_BIO 107 -# define PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST 108 -# define PKCS7_R_UNKNOWN_DIGEST_TYPE 109 -# define PKCS7_R_UNKNOWN_OPERATION 110 -# define PKCS7_R_UNSUPPORTED_CIPHER_TYPE 111 -# define PKCS7_R_UNSUPPORTED_CONTENT_TYPE 112 -# define PKCS7_R_WRONG_CONTENT_TYPE 113 -# define PKCS7_R_WRONG_PKCS7_TYPE 114 - # ifdef __cplusplus } # endif diff --git a/noarch/include/node/openssl/pkcs7err.h b/noarch/include/node/openssl/pkcs7err.h new file mode 100644 index 00000000..0ba418d7 --- /dev/null +++ b/noarch/include/node/openssl/pkcs7err.h @@ -0,0 +1,99 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_PKCS7ERR_H +# define HEADER_PKCS7ERR_H + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_PKCS7_strings(void); + +/* + * PKCS7 function codes. + */ +# define PKCS7_F_DO_PKCS7_SIGNED_ATTRIB 136 +# define PKCS7_F_PKCS7_ADD0_ATTRIB_SIGNING_TIME 135 +# define PKCS7_F_PKCS7_ADD_ATTRIB_SMIMECAP 118 +# define PKCS7_F_PKCS7_ADD_CERTIFICATE 100 +# define PKCS7_F_PKCS7_ADD_CRL 101 +# define PKCS7_F_PKCS7_ADD_RECIPIENT_INFO 102 +# define PKCS7_F_PKCS7_ADD_SIGNATURE 131 +# define PKCS7_F_PKCS7_ADD_SIGNER 103 +# define PKCS7_F_PKCS7_BIO_ADD_DIGEST 125 +# define PKCS7_F_PKCS7_COPY_EXISTING_DIGEST 138 +# define PKCS7_F_PKCS7_CTRL 104 +# define PKCS7_F_PKCS7_DATADECODE 112 +# define PKCS7_F_PKCS7_DATAFINAL 128 +# define PKCS7_F_PKCS7_DATAINIT 105 +# define PKCS7_F_PKCS7_DATAVERIFY 107 +# define PKCS7_F_PKCS7_DECRYPT 114 +# define PKCS7_F_PKCS7_DECRYPT_RINFO 133 +# define PKCS7_F_PKCS7_ENCODE_RINFO 132 +# define PKCS7_F_PKCS7_ENCRYPT 115 +# define PKCS7_F_PKCS7_FINAL 134 +# define PKCS7_F_PKCS7_FIND_DIGEST 127 +# define PKCS7_F_PKCS7_GET0_SIGNERS 124 +# define PKCS7_F_PKCS7_RECIP_INFO_SET 130 +# define PKCS7_F_PKCS7_SET_CIPHER 108 +# define PKCS7_F_PKCS7_SET_CONTENT 109 +# define PKCS7_F_PKCS7_SET_DIGEST 126 +# define PKCS7_F_PKCS7_SET_TYPE 110 +# define PKCS7_F_PKCS7_SIGN 116 +# define PKCS7_F_PKCS7_SIGNATUREVERIFY 113 +# define PKCS7_F_PKCS7_SIGNER_INFO_SET 129 +# define PKCS7_F_PKCS7_SIGNER_INFO_SIGN 139 +# define PKCS7_F_PKCS7_SIGN_ADD_SIGNER 137 +# define PKCS7_F_PKCS7_SIMPLE_SMIMECAP 119 +# define PKCS7_F_PKCS7_VERIFY 117 + +/* + * PKCS7 reason codes. + */ +# define PKCS7_R_CERTIFICATE_VERIFY_ERROR 117 +# define PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 144 +# define PKCS7_R_CIPHER_NOT_INITIALIZED 116 +# define PKCS7_R_CONTENT_AND_DATA_PRESENT 118 +# define PKCS7_R_CTRL_ERROR 152 +# define PKCS7_R_DECRYPT_ERROR 119 +# define PKCS7_R_DIGEST_FAILURE 101 +# define PKCS7_R_ENCRYPTION_CTRL_FAILURE 149 +# define PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 150 +# define PKCS7_R_ERROR_ADDING_RECIPIENT 120 +# define PKCS7_R_ERROR_SETTING_CIPHER 121 +# define PKCS7_R_INVALID_NULL_POINTER 143 +# define PKCS7_R_INVALID_SIGNED_DATA_TYPE 155 +# define PKCS7_R_NO_CONTENT 122 +# define PKCS7_R_NO_DEFAULT_DIGEST 151 +# define PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND 154 +# define PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE 115 +# define PKCS7_R_NO_SIGNATURES_ON_DATA 123 +# define PKCS7_R_NO_SIGNERS 142 +# define PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE 104 +# define PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR 124 +# define PKCS7_R_PKCS7_ADD_SIGNER_ERROR 153 +# define PKCS7_R_PKCS7_DATASIGN 145 +# define PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 127 +# define PKCS7_R_SIGNATURE_FAILURE 105 +# define PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND 128 +# define PKCS7_R_SIGNING_CTRL_FAILURE 147 +# define PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 148 +# define PKCS7_R_SMIME_TEXT_ERROR 129 +# define PKCS7_R_UNABLE_TO_FIND_CERTIFICATE 106 +# define PKCS7_R_UNABLE_TO_FIND_MEM_BIO 107 +# define PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST 108 +# define PKCS7_R_UNKNOWN_DIGEST_TYPE 109 +# define PKCS7_R_UNKNOWN_OPERATION 110 +# define PKCS7_R_UNSUPPORTED_CIPHER_TYPE 111 +# define PKCS7_R_UNSUPPORTED_CONTENT_TYPE 112 +# define PKCS7_R_WRONG_CONTENT_TYPE 113 +# define PKCS7_R_WRONG_PKCS7_TYPE 114 + +#endif diff --git a/noarch/include/node/openssl/rand.h b/noarch/include/node/openssl/rand.h index d521ae19..38a2a271 100644 --- a/noarch/include/node/openssl/rand.h +++ b/noarch/include/node/openssl/rand.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -13,77 +13,65 @@ # include # include # include +# include #ifdef __cplusplus extern "C" { #endif -/* Already defined in ossl_typ.h */ -/* typedef struct rand_meth_st RAND_METHOD; */ - struct rand_meth_st { int (*seed) (const void *buf, int num); int (*bytes) (unsigned char *buf, int num); void (*cleanup) (void); - int (*add) (const void *buf, int num, double entropy); + int (*add) (const void *buf, int num, double randomness); int (*pseudorand) (unsigned char *buf, int num); int (*status) (void); }; -# ifdef BN_DEBUG -extern int rand_predictable; -# endif - int RAND_set_rand_method(const RAND_METHOD *meth); const RAND_METHOD *RAND_get_rand_method(void); # ifndef OPENSSL_NO_ENGINE int RAND_set_rand_engine(ENGINE *engine); # endif + RAND_METHOD *RAND_OpenSSL(void); -#if OPENSSL_API_COMPAT < 0x10100000L -# define RAND_cleanup() while(0) continue -#endif + +# if OPENSSL_API_COMPAT < 0x10100000L +# define RAND_cleanup() while(0) continue +# endif int RAND_bytes(unsigned char *buf, int num); +int RAND_priv_bytes(unsigned char *buf, int num); DEPRECATEDIN_1_1_0(int RAND_pseudo_bytes(unsigned char *buf, int num)) + void RAND_seed(const void *buf, int num); -#if defined(__ANDROID__) && defined(__NDK_FPABI__) +void RAND_keep_random_devices_open(int keep); + +# if defined(__ANDROID__) && defined(__NDK_FPABI__) __NDK_FPABI__ /* __attribute__((pcs("aapcs"))) on ARM */ -#endif -void RAND_add(const void *buf, int num, double entropy); +# endif +void RAND_add(const void *buf, int num, double randomness); int RAND_load_file(const char *file, long max_bytes); int RAND_write_file(const char *file); const char *RAND_file_name(char *file, size_t num); int RAND_status(void); + # ifndef OPENSSL_NO_EGD int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes); int RAND_egd(const char *path); int RAND_egd_bytes(const char *path, int bytes); # endif + int RAND_poll(void); -#if defined(_WIN32) && (defined(BASETYPES) || defined(_WINDEF_H)) +# if defined(_WIN32) && (defined(BASETYPES) || defined(_WINDEF_H)) /* application has to include in order to use these */ DEPRECATEDIN_1_1_0(void RAND_screen(void)) DEPRECATEDIN_1_1_0(int RAND_event(UINT, WPARAM, LPARAM)) -#endif - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_RAND_strings(void); - -/* Error codes for the RAND functions. */ - -/* Function codes. */ -# define RAND_F_RAND_BYTES 100 - -/* Reason codes. */ -# define RAND_R_PRNG_NOT_SEEDED 100 - -# ifdef __cplusplus -} # endif + + +#ifdef __cplusplus +} +#endif + #endif diff --git a/noarch/include/node/openssl/rand_drbg.h b/noarch/include/node/openssl/rand_drbg.h new file mode 100644 index 00000000..45b731b7 --- /dev/null +++ b/noarch/include/node/openssl/rand_drbg.h @@ -0,0 +1,130 @@ +/* + * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DRBG_RAND_H +# define HEADER_DRBG_RAND_H + +# include +# include +# include + +/* + * RAND_DRBG flags + * + * Note: if new flags are added, the constant `rand_drbg_used_flags` + * in drbg_lib.c needs to be updated accordingly. + */ + +/* In CTR mode, disable derivation function ctr_df */ +# define RAND_DRBG_FLAG_CTR_NO_DF 0x1 + + +# if OPENSSL_API_COMPAT < 0x10200000L +/* This #define was replaced by an internal constant and should not be used. */ +# define RAND_DRBG_USED_FLAGS (RAND_DRBG_FLAG_CTR_NO_DF) +# endif + +/* + * Default security strength (in the sense of [NIST SP 800-90Ar1]) + * + * NIST SP 800-90Ar1 supports the strength of the DRBG being smaller than that + * of the cipher by collecting less entropy. The current DRBG implementation + * does not take RAND_DRBG_STRENGTH into account and sets the strength of the + * DRBG to that of the cipher. + * + * RAND_DRBG_STRENGTH is currently only used for the legacy RAND + * implementation. + * + * Currently supported ciphers are: NID_aes_128_ctr, NID_aes_192_ctr and + * NID_aes_256_ctr + */ +# define RAND_DRBG_STRENGTH 256 +/* Default drbg type */ +# define RAND_DRBG_TYPE NID_aes_256_ctr +/* Default drbg flags */ +# define RAND_DRBG_FLAGS 0 + + +# ifdef __cplusplus +extern "C" { +# endif + +/* + * Object lifetime functions. + */ +RAND_DRBG *RAND_DRBG_new(int type, unsigned int flags, RAND_DRBG *parent); +RAND_DRBG *RAND_DRBG_secure_new(int type, unsigned int flags, RAND_DRBG *parent); +int RAND_DRBG_set(RAND_DRBG *drbg, int type, unsigned int flags); +int RAND_DRBG_set_defaults(int type, unsigned int flags); +int RAND_DRBG_instantiate(RAND_DRBG *drbg, + const unsigned char *pers, size_t perslen); +int RAND_DRBG_uninstantiate(RAND_DRBG *drbg); +void RAND_DRBG_free(RAND_DRBG *drbg); + +/* + * Object "use" functions. + */ +int RAND_DRBG_reseed(RAND_DRBG *drbg, + const unsigned char *adin, size_t adinlen, + int prediction_resistance); +int RAND_DRBG_generate(RAND_DRBG *drbg, unsigned char *out, size_t outlen, + int prediction_resistance, + const unsigned char *adin, size_t adinlen); +int RAND_DRBG_bytes(RAND_DRBG *drbg, unsigned char *out, size_t outlen); + +int RAND_DRBG_set_reseed_interval(RAND_DRBG *drbg, unsigned int interval); +int RAND_DRBG_set_reseed_time_interval(RAND_DRBG *drbg, time_t interval); + +int RAND_DRBG_set_reseed_defaults( + unsigned int master_reseed_interval, + unsigned int slave_reseed_interval, + time_t master_reseed_time_interval, + time_t slave_reseed_time_interval + ); + +RAND_DRBG *RAND_DRBG_get0_master(void); +RAND_DRBG *RAND_DRBG_get0_public(void); +RAND_DRBG *RAND_DRBG_get0_private(void); + +/* + * EXDATA + */ +# define RAND_DRBG_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_DRBG, l, p, newf, dupf, freef) +int RAND_DRBG_set_ex_data(RAND_DRBG *drbg, int idx, void *arg); +void *RAND_DRBG_get_ex_data(const RAND_DRBG *drbg, int idx); + +/* + * Callback function typedefs + */ +typedef size_t (*RAND_DRBG_get_entropy_fn)(RAND_DRBG *drbg, + unsigned char **pout, + int entropy, size_t min_len, + size_t max_len, + int prediction_resistance); +typedef void (*RAND_DRBG_cleanup_entropy_fn)(RAND_DRBG *ctx, + unsigned char *out, size_t outlen); +typedef size_t (*RAND_DRBG_get_nonce_fn)(RAND_DRBG *drbg, unsigned char **pout, + int entropy, size_t min_len, + size_t max_len); +typedef void (*RAND_DRBG_cleanup_nonce_fn)(RAND_DRBG *drbg, + unsigned char *out, size_t outlen); + +int RAND_DRBG_set_callbacks(RAND_DRBG *drbg, + RAND_DRBG_get_entropy_fn get_entropy, + RAND_DRBG_cleanup_entropy_fn cleanup_entropy, + RAND_DRBG_get_nonce_fn get_nonce, + RAND_DRBG_cleanup_nonce_fn cleanup_nonce); + + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/noarch/include/node/openssl/randerr.h b/noarch/include/node/openssl/randerr.h new file mode 100644 index 00000000..599a2a18 --- /dev/null +++ b/noarch/include/node/openssl/randerr.h @@ -0,0 +1,89 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_RANDERR_H +# define HEADER_RANDERR_H + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_RAND_strings(void); + +/* + * RAND function codes. + */ +# define RAND_F_DRBG_BYTES 101 +# define RAND_F_DRBG_GET_ENTROPY 105 +# define RAND_F_DRBG_SETUP 117 +# define RAND_F_GET_ENTROPY 106 +# define RAND_F_RAND_BYTES 100 +# define RAND_F_RAND_DRBG_ENABLE_LOCKING 119 +# define RAND_F_RAND_DRBG_GENERATE 107 +# define RAND_F_RAND_DRBG_GET_ENTROPY 120 +# define RAND_F_RAND_DRBG_GET_NONCE 123 +# define RAND_F_RAND_DRBG_INSTANTIATE 108 +# define RAND_F_RAND_DRBG_NEW 109 +# define RAND_F_RAND_DRBG_RESEED 110 +# define RAND_F_RAND_DRBG_RESTART 102 +# define RAND_F_RAND_DRBG_SET 104 +# define RAND_F_RAND_DRBG_SET_DEFAULTS 121 +# define RAND_F_RAND_DRBG_UNINSTANTIATE 118 +# define RAND_F_RAND_LOAD_FILE 111 +# define RAND_F_RAND_POOL_ACQUIRE_ENTROPY 122 +# define RAND_F_RAND_POOL_ADD 103 +# define RAND_F_RAND_POOL_ADD_BEGIN 113 +# define RAND_F_RAND_POOL_ADD_END 114 +# define RAND_F_RAND_POOL_ATTACH 124 +# define RAND_F_RAND_POOL_BYTES_NEEDED 115 +# define RAND_F_RAND_POOL_NEW 116 +# define RAND_F_RAND_WRITE_FILE 112 + +/* + * RAND reason codes. + */ +# define RAND_R_ADDITIONAL_INPUT_TOO_LONG 102 +# define RAND_R_ALREADY_INSTANTIATED 103 +# define RAND_R_ARGUMENT_OUT_OF_RANGE 105 +# define RAND_R_CANNOT_OPEN_FILE 121 +# define RAND_R_DRBG_ALREADY_INITIALIZED 129 +# define RAND_R_DRBG_NOT_INITIALISED 104 +# define RAND_R_ENTROPY_INPUT_TOO_LONG 106 +# define RAND_R_ENTROPY_OUT_OF_RANGE 124 +# define RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED 127 +# define RAND_R_ERROR_INITIALISING_DRBG 107 +# define RAND_R_ERROR_INSTANTIATING_DRBG 108 +# define RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT 109 +# define RAND_R_ERROR_RETRIEVING_ENTROPY 110 +# define RAND_R_ERROR_RETRIEVING_NONCE 111 +# define RAND_R_FAILED_TO_CREATE_LOCK 126 +# define RAND_R_FUNC_NOT_IMPLEMENTED 101 +# define RAND_R_FWRITE_ERROR 123 +# define RAND_R_GENERATE_ERROR 112 +# define RAND_R_INTERNAL_ERROR 113 +# define RAND_R_IN_ERROR_STATE 114 +# define RAND_R_NOT_A_REGULAR_FILE 122 +# define RAND_R_NOT_INSTANTIATED 115 +# define RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED 128 +# define RAND_R_PARENT_LOCKING_NOT_ENABLED 130 +# define RAND_R_PARENT_STRENGTH_TOO_WEAK 131 +# define RAND_R_PERSONALISATION_STRING_TOO_LONG 116 +# define RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED 133 +# define RAND_R_PRNG_NOT_SEEDED 100 +# define RAND_R_RANDOM_POOL_OVERFLOW 125 +# define RAND_R_RANDOM_POOL_UNDERFLOW 134 +# define RAND_R_REQUEST_TOO_LARGE_FOR_DRBG 117 +# define RAND_R_RESEED_ERROR 118 +# define RAND_R_SELFTEST_FAILURE 119 +# define RAND_R_TOO_LITTLE_NONCE_REQUESTED 135 +# define RAND_R_TOO_MUCH_NONCE_REQUESTED 136 +# define RAND_R_UNSUPPORTED_DRBG_FLAGS 132 +# define RAND_R_UNSUPPORTED_DRBG_TYPE 120 + +#endif diff --git a/noarch/include/node/openssl/rsa.h b/noarch/include/node/openssl/rsa.h index 790831b9..cdce1264 100644 --- a/noarch/include/node/openssl/rsa.h +++ b/noarch/include/node/openssl/rsa.h @@ -20,6 +20,7 @@ # if OPENSSL_API_COMPAT < 0x10100000L # include # endif +# include # ifdef __cplusplus extern "C" { # endif @@ -44,6 +45,12 @@ extern "C" { # define RSA_3 0x3L # define RSA_F4 0x10001L +/* based on RFC 8017 appendix A.1.2 */ +# define RSA_ASN1_VERSION_DEFAULT 0 +# define RSA_ASN1_VERSION_MULTI 1 + +# define RSA_DEFAULT_PRIME_NUM 2 + # define RSA_METHOD_FLAG_NO_CHECK 0x0001/* don't check pub/private * match */ @@ -86,58 +93,75 @@ extern "C" { # endif # define EVP_PKEY_CTX_set_rsa_padding(ctx, pad) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, -1, EVP_PKEY_CTRL_RSA_PADDING, \ - pad, NULL) + RSA_pkey_ctx_ctrl(ctx, -1, EVP_PKEY_CTRL_RSA_PADDING, pad, NULL) # define EVP_PKEY_CTX_get_rsa_padding(ctx, ppad) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, -1, \ - EVP_PKEY_CTRL_GET_RSA_PADDING, 0, ppad) + RSA_pkey_ctx_ctrl(ctx, -1, EVP_PKEY_CTRL_GET_RSA_PADDING, 0, ppad) # define EVP_PKEY_CTX_set_rsa_pss_saltlen(ctx, len) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ - (EVP_PKEY_OP_SIGN|EVP_PKEY_OP_VERIFY), \ - EVP_PKEY_CTRL_RSA_PSS_SALTLEN, \ - len, NULL) + RSA_pkey_ctx_ctrl(ctx, (EVP_PKEY_OP_SIGN|EVP_PKEY_OP_VERIFY), \ + EVP_PKEY_CTRL_RSA_PSS_SALTLEN, len, NULL) +/* Salt length matches digest */ +# define RSA_PSS_SALTLEN_DIGEST -1 +/* Verify only: auto detect salt length */ +# define RSA_PSS_SALTLEN_AUTO -2 +/* Set salt length to maximum possible */ +# define RSA_PSS_SALTLEN_MAX -3 +/* Old compatible max salt length for sign only */ +# define RSA_PSS_SALTLEN_MAX_SIGN -2 + +# define EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen(ctx, len) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA_PSS, EVP_PKEY_OP_KEYGEN, \ + EVP_PKEY_CTRL_RSA_PSS_SALTLEN, len, NULL) # define EVP_PKEY_CTX_get_rsa_pss_saltlen(ctx, plen) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ - (EVP_PKEY_OP_SIGN|EVP_PKEY_OP_VERIFY), \ - EVP_PKEY_CTRL_GET_RSA_PSS_SALTLEN, \ - 0, plen) + RSA_pkey_ctx_ctrl(ctx, (EVP_PKEY_OP_SIGN|EVP_PKEY_OP_VERIFY), \ + EVP_PKEY_CTRL_GET_RSA_PSS_SALTLEN, 0, plen) # define EVP_PKEY_CTX_set_rsa_keygen_bits(ctx, bits) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_KEYGEN, \ - EVP_PKEY_CTRL_RSA_KEYGEN_BITS, bits, NULL) + RSA_pkey_ctx_ctrl(ctx, EVP_PKEY_OP_KEYGEN, \ + EVP_PKEY_CTRL_RSA_KEYGEN_BITS, bits, NULL) # define EVP_PKEY_CTX_set_rsa_keygen_pubexp(ctx, pubexp) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_KEYGEN, \ - EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP, 0, pubexp) + RSA_pkey_ctx_ctrl(ctx, EVP_PKEY_OP_KEYGEN, \ + EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP, 0, pubexp) -# define EVP_PKEY_CTX_set_rsa_mgf1_md(ctx, md) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ - EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT, \ - EVP_PKEY_CTRL_RSA_MGF1_MD, 0, (void *)md) +# define EVP_PKEY_CTX_set_rsa_keygen_primes(ctx, primes) \ + RSA_pkey_ctx_ctrl(ctx, EVP_PKEY_OP_KEYGEN, \ + EVP_PKEY_CTRL_RSA_KEYGEN_PRIMES, primes, NULL) -# define EVP_PKEY_CTX_set_rsa_oaep_md(ctx, md) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ - EVP_PKEY_CTRL_RSA_OAEP_MD, 0, (void *)md) +# define EVP_PKEY_CTX_set_rsa_mgf1_md(ctx, md) \ + RSA_pkey_ctx_ctrl(ctx, EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT, \ + EVP_PKEY_CTRL_RSA_MGF1_MD, 0, (void *)(md)) + +# define EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md(ctx, md) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA_PSS, EVP_PKEY_OP_KEYGEN, \ + EVP_PKEY_CTRL_RSA_MGF1_MD, 0, (void *)(md)) + +# define EVP_PKEY_CTX_set_rsa_oaep_md(ctx, md) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ + EVP_PKEY_CTRL_RSA_OAEP_MD, 0, (void *)(md)) # define EVP_PKEY_CTX_get_rsa_mgf1_md(ctx, pmd) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ - EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT, \ - EVP_PKEY_CTRL_GET_RSA_MGF1_MD, 0, (void *)pmd) + RSA_pkey_ctx_ctrl(ctx, EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT, \ + EVP_PKEY_CTRL_GET_RSA_MGF1_MD, 0, (void *)(pmd)) # define EVP_PKEY_CTX_get_rsa_oaep_md(ctx, pmd) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ - EVP_PKEY_CTRL_GET_RSA_OAEP_MD, 0, (void *)pmd) + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ + EVP_PKEY_CTRL_GET_RSA_OAEP_MD, 0, (void *)(pmd)) # define EVP_PKEY_CTX_set0_rsa_oaep_label(ctx, l, llen) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ - EVP_PKEY_CTRL_RSA_OAEP_LABEL, llen, (void *)l) + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ + EVP_PKEY_CTRL_RSA_OAEP_LABEL, llen, (void *)(l)) -# define EVP_PKEY_CTX_get0_rsa_oaep_label(ctx, l) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ - EVP_PKEY_CTRL_GET_RSA_OAEP_LABEL, 0, (void *)l) +# define EVP_PKEY_CTX_get0_rsa_oaep_label(ctx, l) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ + EVP_PKEY_CTRL_GET_RSA_OAEP_LABEL, 0, (void *)(l)) + +# define EVP_PKEY_CTX_set_rsa_pss_keygen_md(ctx, md) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA_PSS, \ + EVP_PKEY_OP_KEYGEN, EVP_PKEY_CTRL_MD, \ + 0, (void *)(md)) # define EVP_PKEY_CTRL_RSA_PADDING (EVP_PKEY_ALG_CTRL + 1) # define EVP_PKEY_CTRL_RSA_PSS_SALTLEN (EVP_PKEY_ALG_CTRL + 2) @@ -156,6 +180,8 @@ extern "C" { # define EVP_PKEY_CTRL_GET_RSA_OAEP_MD (EVP_PKEY_ALG_CTRL + 11) # define EVP_PKEY_CTRL_GET_RSA_OAEP_LABEL (EVP_PKEY_ALG_CTRL + 12) +# define EVP_PKEY_CTRL_RSA_KEYGEN_PRIMES (EVP_PKEY_ALG_CTRL + 13) + # define RSA_PKCS1_PADDING 1 # define RSA_SSLV23_PADDING 2 # define RSA_NO_PADDING 3 @@ -178,15 +204,30 @@ int RSA_security_bits(const RSA *rsa); int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d); int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q); int RSA_set0_crt_params(RSA *r,BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp); +int RSA_set0_multi_prime_params(RSA *r, BIGNUM *primes[], BIGNUM *exps[], + BIGNUM *coeffs[], int pnum); void RSA_get0_key(const RSA *r, const BIGNUM **n, const BIGNUM **e, const BIGNUM **d); void RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM **q); +int RSA_get_multi_prime_extra_count(const RSA *r); +int RSA_get0_multi_prime_factors(const RSA *r, const BIGNUM *primes[]); void RSA_get0_crt_params(const RSA *r, const BIGNUM **dmp1, const BIGNUM **dmq1, const BIGNUM **iqmp); +int RSA_get0_multi_prime_crt_params(const RSA *r, const BIGNUM *exps[], + const BIGNUM *coeffs[]); +const BIGNUM *RSA_get0_n(const RSA *d); +const BIGNUM *RSA_get0_e(const RSA *d); +const BIGNUM *RSA_get0_d(const RSA *d); +const BIGNUM *RSA_get0_p(const RSA *d); +const BIGNUM *RSA_get0_q(const RSA *d); +const BIGNUM *RSA_get0_dmp1(const RSA *r); +const BIGNUM *RSA_get0_dmq1(const RSA *r); +const BIGNUM *RSA_get0_iqmp(const RSA *r); void RSA_clear_flags(RSA *r, int flags); int RSA_test_flags(const RSA *r, int flags); void RSA_set_flags(RSA *r, int flags); +int RSA_get_version(RSA *r); ENGINE *RSA_get0_engine(const RSA *r); /* Deprecated version */ @@ -196,6 +237,9 @@ DEPRECATEDIN_0_9_8(RSA *RSA_generate_key(int bits, unsigned long e, void /* New version */ int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); +/* Multi-prime version */ +int RSA_generate_multi_prime_key(RSA *rsa, int bits, int primes, + BIGNUM *e, BN_GENCB *cb); int RSA_X931_derive_ex(RSA *rsa, BIGNUM *p1, BIGNUM *p2, BIGNUM *q1, BIGNUM *q2, const BIGNUM *Xp1, const BIGNUM *Xp2, @@ -223,13 +267,14 @@ int RSA_flags(const RSA *r); void RSA_set_default_method(const RSA_METHOD *meth); const RSA_METHOD *RSA_get_default_method(void); +const RSA_METHOD *RSA_null_method(void); const RSA_METHOD *RSA_get_method(const RSA *rsa); int RSA_set_method(RSA *rsa, const RSA_METHOD *meth); /* these are the actual RSA functions */ const RSA_METHOD *RSA_PKCS1_OpenSSL(void); -const RSA_METHOD *RSA_null_method(void); +int RSA_pkey_ctx_ctrl(EVP_PKEY_CTX *ctx, int optype, int cmd, int p1, void *p2); DECLARE_ASN1_ENCODE_FUNCTIONS_const(RSA, RSAPublicKey) DECLARE_ASN1_ENCODE_FUNCTIONS_const(RSA, RSAPrivateKey) @@ -239,6 +284,8 @@ typedef struct rsa_pss_params_st { X509_ALGOR *maskGenAlgorithm; ASN1_INTEGER *saltLength; ASN1_INTEGER *trailerField; + /* Decoded hash algorithm from maskGenAlgorithm */ + X509_ALGOR *maskHash; } RSA_PSS_PARAMS; DECLARE_ASN1_FUNCTIONS(RSA_PSS_PARAMS) @@ -247,6 +294,8 @@ typedef struct rsa_oaep_params_st { X509_ALGOR *hashFunc; X509_ALGOR *maskGenFunc; X509_ALGOR *pSourceFunc; + /* Decoded hash algorithm from maskGenFunc */ + X509_ALGOR *maskHash; } RSA_OAEP_PARAMS; DECLARE_ASN1_FUNCTIONS(RSA_OAEP_PARAMS) @@ -407,9 +456,9 @@ int RSA_meth_set_priv_dec(RSA_METHOD *rsa, unsigned char *to, RSA *rsa, int padding)); int (*RSA_meth_get_mod_exp(const RSA_METHOD *meth)) - (BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx); + (BIGNUM *r0, const BIGNUM *i, RSA *rsa, BN_CTX *ctx); int RSA_meth_set_mod_exp(RSA_METHOD *rsa, - int (*mod_exp) (BIGNUM *r0, const BIGNUM *I, RSA *rsa, + int (*mod_exp) (BIGNUM *r0, const BIGNUM *i, RSA *rsa, BN_CTX *ctx)); int (*RSA_meth_get_bn_mod_exp(const RSA_METHOD *meth)) (BIGNUM *r, const BIGNUM *a, const BIGNUM *p, @@ -449,139 +498,12 @@ int (*RSA_meth_get_keygen(const RSA_METHOD *meth)) int RSA_meth_set_keygen(RSA_METHOD *rsa, int (*keygen) (RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb)); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_RSA_strings(void); - -/* Error codes for the RSA functions. */ - -/* Function codes. */ -# define RSA_F_CHECK_PADDING_MD 140 -# define RSA_F_ENCODE_PKCS1 146 -# define RSA_F_INT_RSA_VERIFY 145 -# define RSA_F_OLD_RSA_PRIV_DECODE 147 -# define RSA_F_PKEY_RSA_CTRL 143 -# define RSA_F_PKEY_RSA_CTRL_STR 144 -# define RSA_F_PKEY_RSA_SIGN 142 -# define RSA_F_PKEY_RSA_VERIFY 149 -# define RSA_F_PKEY_RSA_VERIFYRECOVER 141 -# define RSA_F_RSA_ALGOR_TO_MD 156 -# define RSA_F_RSA_BUILTIN_KEYGEN 129 -# define RSA_F_RSA_CHECK_KEY 123 -# define RSA_F_RSA_CHECK_KEY_EX 160 -# define RSA_F_RSA_CMS_DECRYPT 159 -# define RSA_F_RSA_ITEM_VERIFY 148 -# define RSA_F_RSA_METH_DUP 161 -# define RSA_F_RSA_METH_NEW 162 -# define RSA_F_RSA_METH_SET1_NAME 163 -# define RSA_F_RSA_MGF1_TO_MD 157 -# define RSA_F_RSA_NEW_METHOD 106 -# define RSA_F_RSA_NULL 124 -# define RSA_F_RSA_NULL_PRIVATE_DECRYPT 132 -# define RSA_F_RSA_NULL_PRIVATE_ENCRYPT 133 -# define RSA_F_RSA_NULL_PUBLIC_DECRYPT 134 -# define RSA_F_RSA_NULL_PUBLIC_ENCRYPT 135 -# define RSA_F_RSA_OSSL_PRIVATE_DECRYPT 101 -# define RSA_F_RSA_OSSL_PRIVATE_ENCRYPT 102 -# define RSA_F_RSA_OSSL_PUBLIC_DECRYPT 103 -# define RSA_F_RSA_OSSL_PUBLIC_ENCRYPT 104 -# define RSA_F_RSA_PADDING_ADD_NONE 107 -# define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP 121 -# define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP_MGF1 154 -# define RSA_F_RSA_PADDING_ADD_PKCS1_PSS 125 -# define RSA_F_RSA_PADDING_ADD_PKCS1_PSS_MGF1 152 -# define RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_1 108 -# define RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_2 109 -# define RSA_F_RSA_PADDING_ADD_SSLV23 110 -# define RSA_F_RSA_PADDING_ADD_X931 127 -# define RSA_F_RSA_PADDING_CHECK_NONE 111 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP 122 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP_MGF1 153 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_1 112 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_2 113 -# define RSA_F_RSA_PADDING_CHECK_SSLV23 114 -# define RSA_F_RSA_PADDING_CHECK_X931 128 -# define RSA_F_RSA_PRINT 115 -# define RSA_F_RSA_PRINT_FP 116 -# define RSA_F_RSA_PRIV_ENCODE 138 -# define RSA_F_RSA_PSS_TO_CTX 155 -# define RSA_F_RSA_PUB_DECODE 139 -# define RSA_F_RSA_SETUP_BLINDING 136 -# define RSA_F_RSA_SIGN 117 -# define RSA_F_RSA_SIGN_ASN1_OCTET_STRING 118 -# define RSA_F_RSA_VERIFY 119 -# define RSA_F_RSA_VERIFY_ASN1_OCTET_STRING 120 -# define RSA_F_RSA_VERIFY_PKCS1_PSS_MGF1 126 - -/* Reason codes. */ -# define RSA_R_ALGORITHM_MISMATCH 100 -# define RSA_R_BAD_E_VALUE 101 -# define RSA_R_BAD_FIXED_HEADER_DECRYPT 102 -# define RSA_R_BAD_PAD_BYTE_COUNT 103 -# define RSA_R_BAD_SIGNATURE 104 -# define RSA_R_BLOCK_TYPE_IS_NOT_01 106 -# define RSA_R_BLOCK_TYPE_IS_NOT_02 107 -# define RSA_R_DATA_GREATER_THAN_MOD_LEN 108 -# define RSA_R_DATA_TOO_LARGE 109 -# define RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE 110 -# define RSA_R_DATA_TOO_LARGE_FOR_MODULUS 132 -# define RSA_R_DATA_TOO_SMALL 111 -# define RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE 122 -# define RSA_R_DIGEST_DOES_NOT_MATCH 158 -# define RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY 112 -# define RSA_R_DMP1_NOT_CONGRUENT_TO_D 124 -# define RSA_R_DMQ1_NOT_CONGRUENT_TO_D 125 -# define RSA_R_D_E_NOT_CONGRUENT_TO_1 123 -# define RSA_R_FIRST_OCTET_INVALID 133 -# define RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE 144 -# define RSA_R_INVALID_DIGEST 157 -# define RSA_R_INVALID_DIGEST_LENGTH 143 -# define RSA_R_INVALID_HEADER 137 -# define RSA_R_INVALID_LABEL 160 -# define RSA_R_INVALID_MESSAGE_LENGTH 131 -# define RSA_R_INVALID_MGF1_MD 156 -# define RSA_R_INVALID_OAEP_PARAMETERS 161 -# define RSA_R_INVALID_PADDING 138 -# define RSA_R_INVALID_PADDING_MODE 141 -# define RSA_R_INVALID_PSS_PARAMETERS 149 -# define RSA_R_INVALID_PSS_SALTLEN 146 -# define RSA_R_INVALID_SALT_LENGTH 150 -# define RSA_R_INVALID_TRAILER 139 -# define RSA_R_INVALID_X931_DIGEST 142 -# define RSA_R_IQMP_NOT_INVERSE_OF_Q 126 -# define RSA_R_KEY_SIZE_TOO_SMALL 120 -# define RSA_R_LAST_OCTET_INVALID 134 -# define RSA_R_MODULUS_TOO_LARGE 105 -# define RSA_R_NO_PUBLIC_EXPONENT 140 -# define RSA_R_NULL_BEFORE_BLOCK_MISSING 113 -# define RSA_R_N_DOES_NOT_EQUAL_P_Q 127 -# define RSA_R_OAEP_DECODING_ERROR 121 -# define RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 148 -# define RSA_R_PADDING_CHECK_FAILED 114 -# define RSA_R_PKCS_DECODING_ERROR 159 -# define RSA_R_P_NOT_PRIME 128 -# define RSA_R_Q_NOT_PRIME 129 -# define RSA_R_RSA_OPERATIONS_NOT_SUPPORTED 130 -# define RSA_R_SLEN_CHECK_FAILED 136 -# define RSA_R_SLEN_RECOVERY_FAILED 135 -# define RSA_R_SSLV3_ROLLBACK_ATTACK 115 -# define RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 116 -# define RSA_R_UNKNOWN_ALGORITHM_TYPE 117 -# define RSA_R_UNKNOWN_DIGEST 166 -# define RSA_R_UNKNOWN_MASK_DIGEST 151 -# define RSA_R_UNKNOWN_PADDING_TYPE 118 -# define RSA_R_UNSUPPORTED_ENCRYPTION_TYPE 162 -# define RSA_R_UNSUPPORTED_LABEL_SOURCE 163 -# define RSA_R_UNSUPPORTED_MASK_ALGORITHM 153 -# define RSA_R_UNSUPPORTED_MASK_PARAMETER 154 -# define RSA_R_UNSUPPORTED_SIGNATURE_TYPE 155 -# define RSA_R_VALUE_MISSING 147 -# define RSA_R_WRONG_SIGNATURE_LENGTH 119 +int (*RSA_meth_get_multi_prime_keygen(const RSA_METHOD *meth)) + (RSA *rsa, int bits, int primes, BIGNUM *e, BN_GENCB *cb); +int RSA_meth_set_multi_prime_keygen(RSA_METHOD *meth, + int (*keygen) (RSA *rsa, int bits, + int primes, BIGNUM *e, + BN_GENCB *cb)); # ifdef __cplusplus } diff --git a/noarch/include/node/openssl/rsaerr.h b/noarch/include/node/openssl/rsaerr.h new file mode 100644 index 00000000..d5bc01c1 --- /dev/null +++ b/noarch/include/node/openssl/rsaerr.h @@ -0,0 +1,162 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_RSAERR_H +# define HEADER_RSAERR_H + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_RSA_strings(void); + +/* + * RSA function codes. + */ +# define RSA_F_CHECK_PADDING_MD 140 +# define RSA_F_ENCODE_PKCS1 146 +# define RSA_F_INT_RSA_VERIFY 145 +# define RSA_F_OLD_RSA_PRIV_DECODE 147 +# define RSA_F_PKEY_PSS_INIT 165 +# define RSA_F_PKEY_RSA_CTRL 143 +# define RSA_F_PKEY_RSA_CTRL_STR 144 +# define RSA_F_PKEY_RSA_SIGN 142 +# define RSA_F_PKEY_RSA_VERIFY 149 +# define RSA_F_PKEY_RSA_VERIFYRECOVER 141 +# define RSA_F_RSA_ALGOR_TO_MD 156 +# define RSA_F_RSA_BUILTIN_KEYGEN 129 +# define RSA_F_RSA_CHECK_KEY 123 +# define RSA_F_RSA_CHECK_KEY_EX 160 +# define RSA_F_RSA_CMS_DECRYPT 159 +# define RSA_F_RSA_CMS_VERIFY 158 +# define RSA_F_RSA_ITEM_VERIFY 148 +# define RSA_F_RSA_METH_DUP 161 +# define RSA_F_RSA_METH_NEW 162 +# define RSA_F_RSA_METH_SET1_NAME 163 +# define RSA_F_RSA_MGF1_TO_MD 157 +# define RSA_F_RSA_MULTIP_INFO_NEW 166 +# define RSA_F_RSA_NEW_METHOD 106 +# define RSA_F_RSA_NULL 124 +# define RSA_F_RSA_NULL_PRIVATE_DECRYPT 132 +# define RSA_F_RSA_NULL_PRIVATE_ENCRYPT 133 +# define RSA_F_RSA_NULL_PUBLIC_DECRYPT 134 +# define RSA_F_RSA_NULL_PUBLIC_ENCRYPT 135 +# define RSA_F_RSA_OSSL_PRIVATE_DECRYPT 101 +# define RSA_F_RSA_OSSL_PRIVATE_ENCRYPT 102 +# define RSA_F_RSA_OSSL_PUBLIC_DECRYPT 103 +# define RSA_F_RSA_OSSL_PUBLIC_ENCRYPT 104 +# define RSA_F_RSA_PADDING_ADD_NONE 107 +# define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP 121 +# define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP_MGF1 154 +# define RSA_F_RSA_PADDING_ADD_PKCS1_PSS 125 +# define RSA_F_RSA_PADDING_ADD_PKCS1_PSS_MGF1 152 +# define RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_1 108 +# define RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_2 109 +# define RSA_F_RSA_PADDING_ADD_SSLV23 110 +# define RSA_F_RSA_PADDING_ADD_X931 127 +# define RSA_F_RSA_PADDING_CHECK_NONE 111 +# define RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP 122 +# define RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP_MGF1 153 +# define RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_1 112 +# define RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_2 113 +# define RSA_F_RSA_PADDING_CHECK_SSLV23 114 +# define RSA_F_RSA_PADDING_CHECK_X931 128 +# define RSA_F_RSA_PARAM_DECODE 164 +# define RSA_F_RSA_PRINT 115 +# define RSA_F_RSA_PRINT_FP 116 +# define RSA_F_RSA_PRIV_DECODE 150 +# define RSA_F_RSA_PRIV_ENCODE 138 +# define RSA_F_RSA_PSS_GET_PARAM 151 +# define RSA_F_RSA_PSS_TO_CTX 155 +# define RSA_F_RSA_PUB_DECODE 139 +# define RSA_F_RSA_SETUP_BLINDING 136 +# define RSA_F_RSA_SIGN 117 +# define RSA_F_RSA_SIGN_ASN1_OCTET_STRING 118 +# define RSA_F_RSA_VERIFY 119 +# define RSA_F_RSA_VERIFY_ASN1_OCTET_STRING 120 +# define RSA_F_RSA_VERIFY_PKCS1_PSS_MGF1 126 +# define RSA_F_SETUP_TBUF 167 + +/* + * RSA reason codes. + */ +# define RSA_R_ALGORITHM_MISMATCH 100 +# define RSA_R_BAD_E_VALUE 101 +# define RSA_R_BAD_FIXED_HEADER_DECRYPT 102 +# define RSA_R_BAD_PAD_BYTE_COUNT 103 +# define RSA_R_BAD_SIGNATURE 104 +# define RSA_R_BLOCK_TYPE_IS_NOT_01 106 +# define RSA_R_BLOCK_TYPE_IS_NOT_02 107 +# define RSA_R_DATA_GREATER_THAN_MOD_LEN 108 +# define RSA_R_DATA_TOO_LARGE 109 +# define RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE 110 +# define RSA_R_DATA_TOO_LARGE_FOR_MODULUS 132 +# define RSA_R_DATA_TOO_SMALL 111 +# define RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE 122 +# define RSA_R_DIGEST_DOES_NOT_MATCH 158 +# define RSA_R_DIGEST_NOT_ALLOWED 145 +# define RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY 112 +# define RSA_R_DMP1_NOT_CONGRUENT_TO_D 124 +# define RSA_R_DMQ1_NOT_CONGRUENT_TO_D 125 +# define RSA_R_D_E_NOT_CONGRUENT_TO_1 123 +# define RSA_R_FIRST_OCTET_INVALID 133 +# define RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE 144 +# define RSA_R_INVALID_DIGEST 157 +# define RSA_R_INVALID_DIGEST_LENGTH 143 +# define RSA_R_INVALID_HEADER 137 +# define RSA_R_INVALID_LABEL 160 +# define RSA_R_INVALID_MESSAGE_LENGTH 131 +# define RSA_R_INVALID_MGF1_MD 156 +# define RSA_R_INVALID_MULTI_PRIME_KEY 167 +# define RSA_R_INVALID_OAEP_PARAMETERS 161 +# define RSA_R_INVALID_PADDING 138 +# define RSA_R_INVALID_PADDING_MODE 141 +# define RSA_R_INVALID_PSS_PARAMETERS 149 +# define RSA_R_INVALID_PSS_SALTLEN 146 +# define RSA_R_INVALID_SALT_LENGTH 150 +# define RSA_R_INVALID_TRAILER 139 +# define RSA_R_INVALID_X931_DIGEST 142 +# define RSA_R_IQMP_NOT_INVERSE_OF_Q 126 +# define RSA_R_KEY_PRIME_NUM_INVALID 165 +# define RSA_R_KEY_SIZE_TOO_SMALL 120 +# define RSA_R_LAST_OCTET_INVALID 134 +# define RSA_R_MGF1_DIGEST_NOT_ALLOWED 152 +# define RSA_R_MODULUS_TOO_LARGE 105 +# define RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R 168 +# define RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D 169 +# define RSA_R_MP_R_NOT_PRIME 170 +# define RSA_R_NO_PUBLIC_EXPONENT 140 +# define RSA_R_NULL_BEFORE_BLOCK_MISSING 113 +# define RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES 172 +# define RSA_R_N_DOES_NOT_EQUAL_P_Q 127 +# define RSA_R_OAEP_DECODING_ERROR 121 +# define RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 148 +# define RSA_R_PADDING_CHECK_FAILED 114 +# define RSA_R_PKCS_DECODING_ERROR 159 +# define RSA_R_PSS_SALTLEN_TOO_SMALL 164 +# define RSA_R_P_NOT_PRIME 128 +# define RSA_R_Q_NOT_PRIME 129 +# define RSA_R_RSA_OPERATIONS_NOT_SUPPORTED 130 +# define RSA_R_SLEN_CHECK_FAILED 136 +# define RSA_R_SLEN_RECOVERY_FAILED 135 +# define RSA_R_SSLV3_ROLLBACK_ATTACK 115 +# define RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 116 +# define RSA_R_UNKNOWN_ALGORITHM_TYPE 117 +# define RSA_R_UNKNOWN_DIGEST 166 +# define RSA_R_UNKNOWN_MASK_DIGEST 151 +# define RSA_R_UNKNOWN_PADDING_TYPE 118 +# define RSA_R_UNSUPPORTED_ENCRYPTION_TYPE 162 +# define RSA_R_UNSUPPORTED_LABEL_SOURCE 163 +# define RSA_R_UNSUPPORTED_MASK_ALGORITHM 153 +# define RSA_R_UNSUPPORTED_MASK_PARAMETER 154 +# define RSA_R_UNSUPPORTED_SIGNATURE_TYPE 155 +# define RSA_R_VALUE_MISSING 147 +# define RSA_R_WRONG_SIGNATURE_LENGTH 119 + +#endif diff --git a/noarch/include/node/openssl/safestack.h b/noarch/include/node/openssl/safestack.h index 9fe733c2..38b55789 100644 --- a/noarch/include/node/openssl/safestack.h +++ b/noarch/include/node/openssl/safestack.h @@ -1,5 +1,5 @@ /* - * Copyright 1999-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,88 +24,96 @@ extern "C" { typedef int (*sk_##t1##_compfunc)(const t3 * const *a, const t3 *const *b); \ typedef void (*sk_##t1##_freefunc)(t3 *a); \ typedef t3 * (*sk_##t1##_copyfunc)(const t3 *a); \ - static ossl_inline int sk_##t1##_num(const STACK_OF(t1) *sk) \ + static ossl_unused ossl_inline int sk_##t1##_num(const STACK_OF(t1) *sk) \ { \ return OPENSSL_sk_num((const OPENSSL_STACK *)sk); \ } \ - static ossl_inline t2 *sk_##t1##_value(const STACK_OF(t1) *sk, int idx) \ + static ossl_unused ossl_inline t2 *sk_##t1##_value(const STACK_OF(t1) *sk, int idx) \ { \ return (t2 *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); \ } \ - static ossl_inline STACK_OF(t1) *sk_##t1##_new(sk_##t1##_compfunc compare) \ + static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_new(sk_##t1##_compfunc compare) \ { \ return (STACK_OF(t1) *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); \ } \ - static ossl_inline STACK_OF(t1) *sk_##t1##_new_null(void) \ + static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_new_null(void) \ { \ return (STACK_OF(t1) *)OPENSSL_sk_new_null(); \ } \ - static ossl_inline void sk_##t1##_free(STACK_OF(t1) *sk) \ + static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_new_reserve(sk_##t1##_compfunc compare, int n) \ + { \ + return (STACK_OF(t1) *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); \ + } \ + static ossl_unused ossl_inline int sk_##t1##_reserve(STACK_OF(t1) *sk, int n) \ + { \ + return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); \ + } \ + static ossl_unused ossl_inline void sk_##t1##_free(STACK_OF(t1) *sk) \ { \ OPENSSL_sk_free((OPENSSL_STACK *)sk); \ } \ - static ossl_inline void sk_##t1##_zero(STACK_OF(t1) *sk) \ + static ossl_unused ossl_inline void sk_##t1##_zero(STACK_OF(t1) *sk) \ { \ OPENSSL_sk_zero((OPENSSL_STACK *)sk); \ } \ - static ossl_inline t2 *sk_##t1##_delete(STACK_OF(t1) *sk, int i) \ + static ossl_unused ossl_inline t2 *sk_##t1##_delete(STACK_OF(t1) *sk, int i) \ { \ return (t2 *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); \ } \ - static ossl_inline t2 *sk_##t1##_delete_ptr(STACK_OF(t1) *sk, t2 *ptr) \ + static ossl_unused ossl_inline t2 *sk_##t1##_delete_ptr(STACK_OF(t1) *sk, t2 *ptr) \ { \ return (t2 *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, \ (const void *)ptr); \ } \ - static ossl_inline int sk_##t1##_push(STACK_OF(t1) *sk, t2 *ptr) \ + static ossl_unused ossl_inline int sk_##t1##_push(STACK_OF(t1) *sk, t2 *ptr) \ { \ return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); \ } \ - static ossl_inline int sk_##t1##_unshift(STACK_OF(t1) *sk, t2 *ptr) \ + static ossl_unused ossl_inline int sk_##t1##_unshift(STACK_OF(t1) *sk, t2 *ptr) \ { \ return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); \ } \ - static ossl_inline t2 *sk_##t1##_pop(STACK_OF(t1) *sk) \ + static ossl_unused ossl_inline t2 *sk_##t1##_pop(STACK_OF(t1) *sk) \ { \ return (t2 *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); \ } \ - static ossl_inline t2 *sk_##t1##_shift(STACK_OF(t1) *sk) \ + static ossl_unused ossl_inline t2 *sk_##t1##_shift(STACK_OF(t1) *sk) \ { \ return (t2 *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); \ } \ - static ossl_inline void sk_##t1##_pop_free(STACK_OF(t1) *sk, sk_##t1##_freefunc freefunc) \ + static ossl_unused ossl_inline void sk_##t1##_pop_free(STACK_OF(t1) *sk, sk_##t1##_freefunc freefunc) \ { \ OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); \ } \ - static ossl_inline int sk_##t1##_insert(STACK_OF(t1) *sk, t2 *ptr, int idx) \ + static ossl_unused ossl_inline int sk_##t1##_insert(STACK_OF(t1) *sk, t2 *ptr, int idx) \ { \ return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); \ } \ - static ossl_inline t2 *sk_##t1##_set(STACK_OF(t1) *sk, int idx, t2 *ptr) \ + static ossl_unused ossl_inline t2 *sk_##t1##_set(STACK_OF(t1) *sk, int idx, t2 *ptr) \ { \ return (t2 *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); \ } \ - static ossl_inline int sk_##t1##_find(STACK_OF(t1) *sk, t2 *ptr) \ + static ossl_unused ossl_inline int sk_##t1##_find(STACK_OF(t1) *sk, t2 *ptr) \ { \ return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); \ } \ - static ossl_inline int sk_##t1##_find_ex(STACK_OF(t1) *sk, t2 *ptr) \ + static ossl_unused ossl_inline int sk_##t1##_find_ex(STACK_OF(t1) *sk, t2 *ptr) \ { \ return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); \ } \ - static ossl_inline void sk_##t1##_sort(STACK_OF(t1) *sk) \ + static ossl_unused ossl_inline void sk_##t1##_sort(STACK_OF(t1) *sk) \ { \ OPENSSL_sk_sort((OPENSSL_STACK *)sk); \ } \ - static ossl_inline int sk_##t1##_is_sorted(const STACK_OF(t1) *sk) \ + static ossl_unused ossl_inline int sk_##t1##_is_sorted(const STACK_OF(t1) *sk) \ { \ return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); \ } \ - static ossl_inline STACK_OF(t1) * sk_##t1##_dup(const STACK_OF(t1) *sk) \ + static ossl_unused ossl_inline STACK_OF(t1) * sk_##t1##_dup(const STACK_OF(t1) *sk) \ { \ return (STACK_OF(t1) *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); \ } \ - static ossl_inline STACK_OF(t1) *sk_##t1##_deep_copy(const STACK_OF(t1) *sk, \ + static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_deep_copy(const STACK_OF(t1) *sk, \ sk_##t1##_copyfunc copyfunc, \ sk_##t1##_freefunc freefunc) \ { \ @@ -113,7 +121,7 @@ extern "C" { (OPENSSL_sk_copyfunc)copyfunc, \ (OPENSSL_sk_freefunc)freefunc); \ } \ - static ossl_inline sk_##t1##_compfunc sk_##t1##_set_cmp_func(STACK_OF(t1) *sk, sk_##t1##_compfunc compare) \ + static ossl_unused ossl_inline sk_##t1##_compfunc sk_##t1##_set_cmp_func(STACK_OF(t1) *sk, sk_##t1##_compfunc compare) \ { \ return (sk_##t1##_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); \ } @@ -158,6 +166,41 @@ DEFINE_SPECIAL_STACK_OF_CONST(OPENSSL_CSTRING, char) typedef void *OPENSSL_BLOCK; DEFINE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) +/* + * If called without higher optimization (min. -xO3) the Oracle Developer + * Studio compiler generates code for the defined (static inline) functions + * above. + * This would later lead to the linker complaining about missing symbols when + * this header file is included but the resulting object is not linked against + * the Crypto library (openssl#6912). + */ +# ifdef __SUNPRO_C +# pragma weak OPENSSL_sk_num +# pragma weak OPENSSL_sk_value +# pragma weak OPENSSL_sk_new +# pragma weak OPENSSL_sk_new_null +# pragma weak OPENSSL_sk_new_reserve +# pragma weak OPENSSL_sk_reserve +# pragma weak OPENSSL_sk_free +# pragma weak OPENSSL_sk_zero +# pragma weak OPENSSL_sk_delete +# pragma weak OPENSSL_sk_delete_ptr +# pragma weak OPENSSL_sk_push +# pragma weak OPENSSL_sk_unshift +# pragma weak OPENSSL_sk_pop +# pragma weak OPENSSL_sk_shift +# pragma weak OPENSSL_sk_pop_free +# pragma weak OPENSSL_sk_insert +# pragma weak OPENSSL_sk_set +# pragma weak OPENSSL_sk_find +# pragma weak OPENSSL_sk_find_ex +# pragma weak OPENSSL_sk_sort +# pragma weak OPENSSL_sk_is_sorted +# pragma weak OPENSSL_sk_dup +# pragma weak OPENSSL_sk_deep_copy +# pragma weak OPENSSL_sk_set_cmp_func +# endif /* __SUNPRO_C */ + # ifdef __cplusplus } # endif diff --git a/noarch/include/node/openssl/srp.h b/noarch/include/node/openssl/srp.h index f2b6ec75..aaf13558 100644 --- a/noarch/include/node/openssl/srp.h +++ b/noarch/include/node/openssl/srp.h @@ -1,10 +1,14 @@ /* - * Copyright 2011-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2004-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright (c) 2004, EdelKey Project. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy * in the file LICENSE in the source distribution or at * https://www.openssl.org/source/license.html + * + * Originally written by Christophe Renou and Peter Sylvester, + * for the EdelKey project. */ #ifndef HEADER_SRP_H diff --git a/noarch/include/node/openssl/ssl.h b/noarch/include/node/openssl/ssl.h index 56e20562..f93dc68f 100644 --- a/noarch/include/node/openssl/ssl.h +++ b/noarch/include/node/openssl/ssl.h @@ -1,5 +1,7 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved + * Copyright 2005 Nokia. All rights reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -7,38 +9,6 @@ * https://www.openssl.org/source/license.html */ -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * ECC cipher suite support in OpenSSL originally developed by - * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. - */ -/* ==================================================================== - * Copyright 2005 Nokia. All rights reserved. - * - * The portions of the attached software ("Contribution") is developed by - * Nokia Corporation and is licensed pursuant to the OpenSSL open source - * license. - * - * The Contribution, originally written by Mika Kousa and Pasi Eronen of - * Nokia Corporation, consists of the "PSK" (Pre-Shared Key) ciphersuites - * support (see RFC 4279) to OpenSSL. - * - * No patent licenses or other rights except those expressly stated in - * the OpenSSL open source license shall be deemed granted or received - * expressly, by implication, estoppel, or otherwise. - * - * No assurances are provided by Nokia that the Contribution does not - * infringe the patent or other intellectual property rights of any third - * party or that the license provides you with all the necessary rights - * to make use of the Contribution. - * - * THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN - * ADDITION TO THE DISCLAIMERS INCLUDED IN THE LICENSE, NOKIA - * SPECIFICALLY DISCLAIMS ANY LIABILITY FOR CLAIMS BROUGHT BY YOU OR ANY - * OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR - * OTHERWISE. - */ - #ifndef HEADER_SSL_H # define HEADER_SSL_H @@ -49,9 +19,9 @@ # if OPENSSL_API_COMPAT < 0x10100000L # include # include -# include # include # endif +# include # include # include # include @@ -59,6 +29,7 @@ # include # include # include +# include #ifdef __cplusplus extern "C" { @@ -155,6 +126,10 @@ extern "C" { # define SSL_TXT_CAMELLIA "CAMELLIA" # define SSL_TXT_CHACHA20 "CHACHA20" # define SSL_TXT_GOST "GOST89" +# define SSL_TXT_ARIA "ARIA" +# define SSL_TXT_ARIA_GCM "ARIAGCM" +# define SSL_TXT_ARIA128 "ARIA128" +# define SSL_TXT_ARIA256 "ARIA256" # define SSL_TXT_MD5 "MD5" # define SSL_TXT_SHA1 "SHA1" @@ -193,8 +168,18 @@ extern "C" { /* * The following cipher list is used by default. It also is substituted when * an application-defined cipher list string starts with 'DEFAULT'. + * This applies to ciphersuites for TLSv1.2 and below. */ # define SSL_DEFAULT_CIPHER_LIST "ALL:!COMPLEMENTOFDEFAULT:!eNULL" +/* This is the default set of TLSv1.3 ciphersuites */ +# if !defined(OPENSSL_NO_CHACHA) && !defined(OPENSSL_NO_POLY1305) +# define TLS_DEFAULT_CIPHERSUITES "TLS_AES_256_GCM_SHA384:" \ + "TLS_CHACHA20_POLY1305_SHA256:" \ + "TLS_AES_128_GCM_SHA256" +# else +# define TLS_DEFAULT_CIPHERSUITES "TLS_AES_256_GCM_SHA384:" \ + "TLS_AES_128_GCM_SHA256" +#endif /* * As of OpenSSL 1.0.0, ssl_create_cipher_list() in ssl/ssl_ciph.c always * starts with a reasonable order, and all we have to do for DEFAULT is @@ -241,34 +226,95 @@ typedef struct srtp_protection_profile_st { DEFINE_STACK_OF(SRTP_PROTECTION_PROFILE) -typedef int (*tls_session_ticket_ext_cb_fn) (SSL *s, - const unsigned char *data, - int len, void *arg); -typedef int (*tls_session_secret_cb_fn) (SSL *s, void *secret, - int *secret_len, - STACK_OF(SSL_CIPHER) *peer_ciphers, - const SSL_CIPHER **cipher, void *arg); +typedef int (*tls_session_ticket_ext_cb_fn)(SSL *s, const unsigned char *data, + int len, void *arg); +typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, + STACK_OF(SSL_CIPHER) *peer_ciphers, + const SSL_CIPHER **cipher, void *arg); + +/* Extension context codes */ +/* This extension is only allowed in TLS */ +#define SSL_EXT_TLS_ONLY 0x0001 +/* This extension is only allowed in DTLS */ +#define SSL_EXT_DTLS_ONLY 0x0002 +/* Some extensions may be allowed in DTLS but we don't implement them for it */ +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +/* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ +#define SSL_EXT_SSL3_ALLOWED 0x0008 +/* Extension is only defined for TLS1.2 and below */ +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +/* Extension is only defined for TLS1.3 and above */ +#define SSL_EXT_TLS1_3_ONLY 0x0020 +/* Ignore this extension during parsing if we are resuming */ +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 +#define SSL_EXT_CLIENT_HELLO 0x0080 +/* Really means TLS1.2 or below */ +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 /* Typedefs for handling custom extensions */ -typedef int (*custom_ext_add_cb) (SSL *s, unsigned int ext_type, - const unsigned char **out, - size_t *outlen, int *al, void *add_arg); +typedef int (*custom_ext_add_cb)(SSL *s, unsigned int ext_type, + const unsigned char **out, size_t *outlen, + int *al, void *add_arg); -typedef void (*custom_ext_free_cb) (SSL *s, unsigned int ext_type, - const unsigned char *out, void *add_arg); +typedef void (*custom_ext_free_cb)(SSL *s, unsigned int ext_type, + const unsigned char *out, void *add_arg); -typedef int (*custom_ext_parse_cb) (SSL *s, unsigned int ext_type, - const unsigned char *in, - size_t inlen, int *al, void *parse_arg); +typedef int (*custom_ext_parse_cb)(SSL *s, unsigned int ext_type, + const unsigned char *in, size_t inlen, + int *al, void *parse_arg); + + +typedef int (*SSL_custom_ext_add_cb_ex)(SSL *s, unsigned int ext_type, + unsigned int context, + const unsigned char **out, + size_t *outlen, X509 *x, + size_t chainidx, + int *al, void *add_arg); + +typedef void (*SSL_custom_ext_free_cb_ex)(SSL *s, unsigned int ext_type, + unsigned int context, + const unsigned char *out, + void *add_arg); + +typedef int (*SSL_custom_ext_parse_cb_ex)(SSL *s, unsigned int ext_type, + unsigned int context, + const unsigned char *in, + size_t inlen, X509 *x, + size_t chainidx, + int *al, void *parse_arg); /* Typedef for verification callback */ typedef int (*SSL_verify_cb)(int preverify_ok, X509_STORE_CTX *x509_ctx); +/* + * Some values are reserved until OpenSSL 1.2.0 because they were previously + * included in SSL_OP_ALL in a 1.1.x release. + * + * Reserved value (until OpenSSL 1.2.0) 0x00000001U + * Reserved value (until OpenSSL 1.2.0) 0x00000002U + */ /* Allow initial connection to servers that don't support RI */ # define SSL_OP_LEGACY_SERVER_CONNECT 0x00000004U + +/* Reserved value (until OpenSSL 1.2.0) 0x00000008U */ # define SSL_OP_TLSEXT_PADDING 0x00000010U +/* Reserved value (until OpenSSL 1.2.0) 0x00000020U */ # define SSL_OP_SAFARI_ECDHE_ECDSA_BUG 0x00000040U +/* + * Reserved value (until OpenSSL 1.2.0) 0x00000080U + * Reserved value (until OpenSSL 1.2.0) 0x00000100U + * Reserved value (until OpenSSL 1.2.0) 0x00000200U + */ + +/* In TLSv1.3 allow a non-(ec)dhe based kex_mode */ +# define SSL_OP_ALLOW_NO_DHE_KEX 0x00000400U /* * Disable SSL 3.0/TLS 1.0 CBC vulnerability workaround that was added in @@ -299,6 +345,17 @@ typedef int (*SSL_verify_cb)(int preverify_ok, X509_STORE_CTX *x509_ctx); # define SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION 0x00040000U /* Disable encrypt-then-mac */ # define SSL_OP_NO_ENCRYPT_THEN_MAC 0x00080000U + +/* + * Enable TLSv1.3 Compatibility mode. This is on by default. A future version + * of OpenSSL may have this disabled by default. + */ +# define SSL_OP_ENABLE_MIDDLEBOX_COMPAT 0x00100000U + +/* Prioritize Chacha20Poly1305 when client does. + * Modifies SSL_OP_CIPHER_SERVER_PREFERENCE */ +# define SSL_OP_PRIORITIZE_CHACHA 0x00200000U + /* * Set on servers to choose the cipher according to the server's preferences */ @@ -311,16 +368,23 @@ typedef int (*SSL_verify_cb)(int preverify_ok, X509_STORE_CTX *x509_ctx); */ # define SSL_OP_TLS_ROLLBACK_BUG 0x00800000U +/* + * Switches off automatic TLSv1.3 anti-replay protection for early data. This + * is a server-side option only (no effect on the client). + */ +# define SSL_OP_NO_ANTI_REPLAY 0x01000000U + # define SSL_OP_NO_SSLv3 0x02000000U # define SSL_OP_NO_TLSv1 0x04000000U # define SSL_OP_NO_TLSv1_2 0x08000000U # define SSL_OP_NO_TLSv1_1 0x10000000U +# define SSL_OP_NO_TLSv1_3 0x20000000U # define SSL_OP_NO_DTLSv1 0x04000000U # define SSL_OP_NO_DTLSv1_2 0x08000000U # define SSL_OP_NO_SSL_MASK (SSL_OP_NO_SSLv3|\ - SSL_OP_NO_TLSv1|SSL_OP_NO_TLSv1_1|SSL_OP_NO_TLSv1_2) + SSL_OP_NO_TLSv1|SSL_OP_NO_TLSv1_1|SSL_OP_NO_TLSv1_2|SSL_OP_NO_TLSv1_3) # define SSL_OP_NO_DTLS_MASK (SSL_OP_NO_DTLSv1|SSL_OP_NO_DTLSv1_2) /* Disallow all renegotiation */ @@ -381,7 +445,7 @@ typedef int (*SSL_verify_cb)(int preverify_ok, X509_STORE_CTX *x509_ctx); # define SSL_OP_PKCS1_CHECK_1 0x0 /* Removed from OpenSSL 1.0.1. Was 0x10000000L */ # define SSL_OP_PKCS1_CHECK_2 0x0 -/* Removed from OpenSSL 1.1.0. Was 0x20000000L */ +/* Removed from OpenSSL 1.1.0. Was 0x20000000L */ # define SSL_OP_NETSCAPE_CA_DN_BUG 0x0 /* Removed from OpenSSL 1.1.0. Was 0x40000000L */ # define SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG 0x0 @@ -406,8 +470,7 @@ typedef int (*SSL_verify_cb)(int preverify_ok, X509_STORE_CTX *x509_ctx); # define SSL_MODE_NO_AUTO_CHAIN 0x00000008U /* * Save RAM by releasing read and write buffers when they're empty. (SSL3 and - * TLS only.) "Released" buffers are put onto a free-list in the context or - * just freed (depending on the context's setting for freelist_max_len). + * TLS only.) Released buffers are freed. */ # define SSL_MODE_RELEASE_BUFFERS 0x00000010U /* @@ -431,6 +494,19 @@ typedef int (*SSL_verify_cb)(int preverify_ok, X509_STORE_CTX *x509_ctx); */ # define SSL_MODE_ASYNC 0x00000100U +/* + * When using DTLS/SCTP, include the terminating zero in the label + * used for computing the endpoint-pair shared secret. Required for + * interoperability with implementations having this bug like these + * older version of OpenSSL: + * - OpenSSL 1.0.0 series + * - OpenSSL 1.0.1 series + * - OpenSSL 1.0.2 series + * - OpenSSL 1.1.0 series + * - OpenSSL 1.1.1 and 1.1.1a + */ +# define SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG 0x00000400U + /* Cert related flags */ /* * Many implementations ignore some aspects of the TLS standards such as @@ -496,13 +572,16 @@ typedef int (*SSL_verify_cb)(int preverify_ok, X509_STORE_CTX *x509_ctx); # define SSL_CONF_TYPE_DIR 0x3 # define SSL_CONF_TYPE_NONE 0x4 +/* Maximum length of the application-controlled segment of a a TLSv1.3 cookie */ +# define SSL_COOKIE_LENGTH 4096 + /* * Note: SSL[_CTX]_set_{options,mode} use |= op on the previous value, they * cannot be used to clear bits. */ unsigned long SSL_CTX_get_options(const SSL_CTX *ctx); -unsigned long SSL_get_options(const SSL* s); +unsigned long SSL_get_options(const SSL *s); unsigned long SSL_CTX_clear_options(SSL_CTX *ctx, unsigned long op); unsigned long SSL_clear_options(SSL *s, unsigned long op); unsigned long SSL_CTX_set_options(SSL_CTX *ctx, unsigned long op); @@ -587,7 +666,7 @@ __owur int SRP_Calc_A_param(SSL *s); * bytes. The callback can alter this length to be less if desired. It is * also an error for the callback to set the size to zero. */ -typedef int (*GEN_SESSION_CB) (const SSL *ssl, unsigned char *id, +typedef int (*GEN_SESSION_CB) (SSL *ssl, unsigned char *id, unsigned int *id_len); # define SSL_SESS_CACHE_OFF 0x0000 @@ -635,8 +714,7 @@ int (*SSL_CTX_sess_get_new_cb(SSL_CTX *ctx)) (struct ssl_st *ssl, void SSL_CTX_sess_set_remove_cb(SSL_CTX *ctx, void (*remove_session_cb) (struct ssl_ctx_st *ctx, - SSL_SESSION - *sess)); + SSL_SESSION *sess)); void (*SSL_CTX_sess_get_remove_cb(SSL_CTX *ctx)) (struct ssl_ctx_st *ctx, SSL_SESSION *sess); void SSL_CTX_sess_set_get_cb(SSL_CTX *ctx, @@ -649,8 +727,7 @@ SSL_SESSION *(*SSL_CTX_sess_get_get_cb(SSL_CTX *ctx)) (struct ssl_st *ssl, const unsigned char *data, int len, int *copy); void SSL_CTX_set_info_callback(SSL_CTX *ctx, - void (*cb) (const SSL *ssl, int type, - int val)); + void (*cb) (const SSL *ssl, int type, int val)); void (*SSL_CTX_get_info_callback(SSL_CTX *ctx)) (const SSL *ssl, int type, int val); void SSL_CTX_set_client_cert_cb(SSL_CTX *ctx, @@ -669,32 +746,52 @@ void SSL_CTX_set_cookie_generate_cb(SSL_CTX *ctx, *cookie_len)); void SSL_CTX_set_cookie_verify_cb(SSL_CTX *ctx, int (*app_verify_cookie_cb) (SSL *ssl, - const unsigned char - *cookie, + const unsigned + char *cookie, unsigned int cookie_len)); + +void SSL_CTX_set_stateless_cookie_generate_cb( + SSL_CTX *ctx, + int (*gen_stateless_cookie_cb) (SSL *ssl, + unsigned char *cookie, + size_t *cookie_len)); +void SSL_CTX_set_stateless_cookie_verify_cb( + SSL_CTX *ctx, + int (*verify_stateless_cookie_cb) (SSL *ssl, + const unsigned char *cookie, + size_t cookie_len)); # ifndef OPENSSL_NO_NEXTPROTONEG + +typedef int (*SSL_CTX_npn_advertised_cb_func)(SSL *ssl, + const unsigned char **out, + unsigned int *outlen, + void *arg); void SSL_CTX_set_next_protos_advertised_cb(SSL_CTX *s, - int (*cb) (SSL *ssl, - const unsigned char - **out, - unsigned int *outlen, - void *arg), void *arg); + SSL_CTX_npn_advertised_cb_func cb, + void *arg); +# define SSL_CTX_set_npn_advertised_cb SSL_CTX_set_next_protos_advertised_cb + +typedef int (*SSL_CTX_npn_select_cb_func)(SSL *s, + unsigned char **out, + unsigned char *outlen, + const unsigned char *in, + unsigned int inlen, + void *arg); void SSL_CTX_set_next_proto_select_cb(SSL_CTX *s, - int (*cb) (SSL *ssl, - unsigned char **out, - unsigned char *outlen, - const unsigned char *in, - unsigned int inlen, - void *arg), void *arg); + SSL_CTX_npn_select_cb_func cb, + void *arg); +# define SSL_CTX_set_npn_select_cb SSL_CTX_set_next_proto_select_cb + void SSL_get0_next_proto_negotiated(const SSL *s, const unsigned char **data, unsigned *len); +# define SSL_get0_npn_negotiated SSL_get0_next_proto_negotiated # endif __owur int SSL_select_next_proto(unsigned char **out, unsigned char *outlen, - const unsigned char *in, unsigned int inlen, - const unsigned char *client, - unsigned int client_len); + const unsigned char *in, unsigned int inlen, + const unsigned char *client, + unsigned int client_len); # define OPENSSL_NPN_UNSUPPORTED 0 # define OPENSSL_NPN_NEGOTIATED 1 @@ -704,13 +801,15 @@ __owur int SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const unsigned char *protos, unsigned int protos_len); __owur int SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos, unsigned int protos_len); -void SSL_CTX_set_alpn_select_cb(SSL_CTX *ctx, - int (*cb) (SSL *ssl, +typedef int (*SSL_CTX_alpn_select_cb_func)(SSL *ssl, const unsigned char **out, unsigned char *outlen, const unsigned char *in, unsigned int inlen, - void *arg), void *arg); + void *arg); +void SSL_CTX_set_alpn_select_cb(SSL_CTX *ctx, + SSL_CTX_alpn_select_cb_func cb, + void *arg); void SSL_get0_alpn_selected(const SSL *ssl, const unsigned char **data, unsigned int *len); @@ -721,87 +820,71 @@ void SSL_get0_alpn_selected(const SSL *ssl, const unsigned char **data, */ # define PSK_MAX_IDENTITY_LEN 128 # define PSK_MAX_PSK_LEN 256 -void SSL_CTX_set_psk_client_callback(SSL_CTX *ctx, - unsigned int (*psk_client_callback) (SSL - *ssl, - const - char - *hint, - char - *identity, - unsigned - int - max_identity_len, - unsigned - char - *psk, - unsigned - int - max_psk_len)); -void SSL_set_psk_client_callback(SSL *ssl, - unsigned int (*psk_client_callback) (SSL - *ssl, - const - char - *hint, - char - *identity, - unsigned - int - max_identity_len, - unsigned - char - *psk, - unsigned - int - max_psk_len)); -void SSL_CTX_set_psk_server_callback(SSL_CTX *ctx, - unsigned int (*psk_server_callback) (SSL - *ssl, - const - char - *identity, - unsigned - char - *psk, - unsigned - int - max_psk_len)); -void SSL_set_psk_server_callback(SSL *ssl, - unsigned int (*psk_server_callback) (SSL - *ssl, - const - char - *identity, - unsigned - char - *psk, - unsigned - int - max_psk_len)); +typedef unsigned int (*SSL_psk_client_cb_func)(SSL *ssl, + const char *hint, + char *identity, + unsigned int max_identity_len, + unsigned char *psk, + unsigned int max_psk_len); +void SSL_CTX_set_psk_client_callback(SSL_CTX *ctx, SSL_psk_client_cb_func cb); +void SSL_set_psk_client_callback(SSL *ssl, SSL_psk_client_cb_func cb); + +typedef unsigned int (*SSL_psk_server_cb_func)(SSL *ssl, + const char *identity, + unsigned char *psk, + unsigned int max_psk_len); +void SSL_CTX_set_psk_server_callback(SSL_CTX *ctx, SSL_psk_server_cb_func cb); +void SSL_set_psk_server_callback(SSL *ssl, SSL_psk_server_cb_func cb); + __owur int SSL_CTX_use_psk_identity_hint(SSL_CTX *ctx, const char *identity_hint); __owur int SSL_use_psk_identity_hint(SSL *s, const char *identity_hint); const char *SSL_get_psk_identity_hint(const SSL *s); const char *SSL_get_psk_identity(const SSL *s); # endif +typedef int (*SSL_psk_find_session_cb_func)(SSL *ssl, + const unsigned char *identity, + size_t identity_len, + SSL_SESSION **sess); +typedef int (*SSL_psk_use_session_cb_func)(SSL *ssl, const EVP_MD *md, + const unsigned char **id, + size_t *idlen, + SSL_SESSION **sess); + +void SSL_set_psk_find_session_callback(SSL *s, SSL_psk_find_session_cb_func cb); +void SSL_CTX_set_psk_find_session_callback(SSL_CTX *ctx, + SSL_psk_find_session_cb_func cb); +void SSL_set_psk_use_session_callback(SSL *s, SSL_psk_use_session_cb_func cb); +void SSL_CTX_set_psk_use_session_callback(SSL_CTX *ctx, + SSL_psk_use_session_cb_func cb); + /* Register callbacks to handle custom TLS Extensions for client or server. */ __owur int SSL_CTX_has_client_custom_ext(const SSL_CTX *ctx, unsigned int ext_type); -__owur int SSL_CTX_add_client_custom_ext(SSL_CTX *ctx, unsigned int ext_type, - custom_ext_add_cb add_cb, - custom_ext_free_cb free_cb, - void *add_arg, - custom_ext_parse_cb parse_cb, - void *parse_arg); +__owur int SSL_CTX_add_client_custom_ext(SSL_CTX *ctx, + unsigned int ext_type, + custom_ext_add_cb add_cb, + custom_ext_free_cb free_cb, + void *add_arg, + custom_ext_parse_cb parse_cb, + void *parse_arg); -__owur int SSL_CTX_add_server_custom_ext(SSL_CTX *ctx, unsigned int ext_type, - custom_ext_add_cb add_cb, - custom_ext_free_cb free_cb, +__owur int SSL_CTX_add_server_custom_ext(SSL_CTX *ctx, + unsigned int ext_type, + custom_ext_add_cb add_cb, + custom_ext_free_cb free_cb, + void *add_arg, + custom_ext_parse_cb parse_cb, + void *parse_arg); + +__owur int SSL_CTX_add_custom_ext(SSL_CTX *ctx, unsigned int ext_type, + unsigned int context, + SSL_custom_ext_add_cb_ex add_cb, + SSL_custom_ext_free_cb_ex free_cb, void *add_arg, - custom_ext_parse_cb parse_cb, + SSL_custom_ext_parse_cb_ex parse_cb, void *parse_arg); __owur int SSL_extension_supported(unsigned int ext_type); @@ -812,18 +895,48 @@ __owur int SSL_extension_supported(unsigned int ext_type); # define SSL_X509_LOOKUP 4 # define SSL_ASYNC_PAUSED 5 # define SSL_ASYNC_NO_JOBS 6 +# define SSL_CLIENT_HELLO_CB 7 /* These will only be used when doing non-blocking IO */ -# define SSL_want_nothing(s) (SSL_want(s) == SSL_NOTHING) -# define SSL_want_read(s) (SSL_want(s) == SSL_READING) -# define SSL_want_write(s) (SSL_want(s) == SSL_WRITING) -# define SSL_want_x509_lookup(s) (SSL_want(s) == SSL_X509_LOOKUP) -# define SSL_want_async(s) (SSL_want(s) == SSL_ASYNC_PAUSED) -# define SSL_want_async_job(s) (SSL_want(s) == SSL_ASYNC_NO_JOBS) +# define SSL_want_nothing(s) (SSL_want(s) == SSL_NOTHING) +# define SSL_want_read(s) (SSL_want(s) == SSL_READING) +# define SSL_want_write(s) (SSL_want(s) == SSL_WRITING) +# define SSL_want_x509_lookup(s) (SSL_want(s) == SSL_X509_LOOKUP) +# define SSL_want_async(s) (SSL_want(s) == SSL_ASYNC_PAUSED) +# define SSL_want_async_job(s) (SSL_want(s) == SSL_ASYNC_NO_JOBS) +# define SSL_want_client_hello_cb(s) (SSL_want(s) == SSL_CLIENT_HELLO_CB) # define SSL_MAC_FLAG_READ_MAC_STREAM 1 # define SSL_MAC_FLAG_WRITE_MAC_STREAM 2 +/* + * A callback for logging out TLS key material. This callback should log out + * |line| followed by a newline. + */ +typedef void (*SSL_CTX_keylog_cb_func)(const SSL *ssl, const char *line); + +/* + * SSL_CTX_set_keylog_callback configures a callback to log key material. This + * is intended for debugging use with tools like Wireshark. The cb function + * should log line followed by a newline. + */ +void SSL_CTX_set_keylog_callback(SSL_CTX *ctx, SSL_CTX_keylog_cb_func cb); + +/* + * SSL_CTX_get_keylog_callback returns the callback configured by + * SSL_CTX_set_keylog_callback. + */ +SSL_CTX_keylog_cb_func SSL_CTX_get_keylog_callback(const SSL_CTX *ctx); + +int SSL_CTX_set_max_early_data(SSL_CTX *ctx, uint32_t max_early_data); +uint32_t SSL_CTX_get_max_early_data(const SSL_CTX *ctx); +int SSL_set_max_early_data(SSL *s, uint32_t max_early_data); +uint32_t SSL_get_max_early_data(const SSL *s); +int SSL_CTX_set_recv_max_early_data(SSL_CTX *ctx, uint32_t recv_max_early_data); +uint32_t SSL_CTX_get_recv_max_early_data(const SSL_CTX *ctx); +int SSL_set_recv_max_early_data(SSL *s, uint32_t recv_max_early_data); +uint32_t SSL_get_recv_max_early_data(const SSL *s); + #ifdef __cplusplus } #endif @@ -846,14 +959,22 @@ DEFINE_STACK_OF_CONST(SSL_CIPHER) DEFINE_STACK_OF(SSL_COMP) /* compatibility */ -# define SSL_set_app_data(s,arg) (SSL_set_ex_data(s,0,(char *)arg)) +# define SSL_set_app_data(s,arg) (SSL_set_ex_data(s,0,(char *)(arg))) # define SSL_get_app_data(s) (SSL_get_ex_data(s,0)) -# define SSL_SESSION_set_app_data(s,a) (SSL_SESSION_set_ex_data(s,0,(char *)a)) +# define SSL_SESSION_set_app_data(s,a) (SSL_SESSION_set_ex_data(s,0, \ + (char *)(a))) # define SSL_SESSION_get_app_data(s) (SSL_SESSION_get_ex_data(s,0)) # define SSL_CTX_get_app_data(ctx) (SSL_CTX_get_ex_data(ctx,0)) -# define SSL_CTX_set_app_data(ctx,arg) (SSL_CTX_set_ex_data(ctx,0,(char *)arg)) +# define SSL_CTX_set_app_data(ctx,arg) (SSL_CTX_set_ex_data(ctx,0, \ + (char *)(arg))) DEPRECATEDIN_1_1_0(void SSL_set_debug(SSL *s, int debug)) +/* TLSv1.3 KeyUpdate message types */ +/* -1 used so that this is an invalid value for the on-the-wire protocol */ +#define SSL_KEY_UPDATE_NONE -1 +/* Values as defined for the on-the-wire protocol */ +#define SSL_KEY_UPDATE_NOT_REQUESTED 0 +#define SSL_KEY_UPDATE_REQUESTED 1 /* * The valid handshake states (one for each type message sent and one for each @@ -904,7 +1025,20 @@ typedef enum { TLS_ST_SW_SESSION_TICKET, TLS_ST_SW_CERT_STATUS, TLS_ST_SW_CHANGE, - TLS_ST_SW_FINISHED + TLS_ST_SW_FINISHED, + TLS_ST_SW_ENCRYPTED_EXTENSIONS, + TLS_ST_CR_ENCRYPTED_EXTENSIONS, + TLS_ST_CR_CERT_VRFY, + TLS_ST_SW_CERT_VRFY, + TLS_ST_CR_HELLO_REQ, + TLS_ST_SW_KEY_UPDATE, + TLS_ST_CW_KEY_UPDATE, + TLS_ST_SR_KEY_UPDATE, + TLS_ST_CR_KEY_UPDATE, + TLS_ST_EARLY_DATA, + TLS_ST_PENDING_EARLY_DATA_END, + TLS_ST_CW_END_OF_EARLY_DATA, + TLS_ST_SR_END_OF_EARLY_DATA } OSSL_HANDSHAKE_STATE; /* @@ -937,9 +1071,9 @@ typedef enum { /* Is the SSL_connection established? */ # define SSL_in_connect_init(a) (SSL_in_init(a) && !SSL_is_server(a)) # define SSL_in_accept_init(a) (SSL_in_init(a) && SSL_is_server(a)) -int SSL_in_init(SSL *s); -int SSL_in_before(SSL *s); -int SSL_is_init_finished(SSL *s); +int SSL_in_init(const SSL *s); +int SSL_in_before(const SSL *s); +int SSL_is_init_finished(const SSL *s); /* * The following 3 states are kept in ssl->rlayer.rstate when reads fail, you @@ -959,13 +1093,14 @@ size_t SSL_get_finished(const SSL *s, void *buf, size_t count); size_t SSL_get_peer_finished(const SSL *s, void *buf, size_t count); /* - * use either SSL_VERIFY_NONE or SSL_VERIFY_PEER, the last 2 options are + * use either SSL_VERIFY_NONE or SSL_VERIFY_PEER, the last 3 options are * 'ored' with SSL_VERIFY_PEER if they are desired */ # define SSL_VERIFY_NONE 0x00 # define SSL_VERIFY_PEER 0x01 # define SSL_VERIFY_FAIL_IF_NO_PEER_CERT 0x02 # define SSL_VERIFY_CLIENT_ONCE 0x04 +# define SSL_VERIFY_POST_HANDSHAKE 0x08 # if OPENSSL_API_COMPAT < 0x10100000L # define OpenSSL_add_ssl_algorithms() SSL_library_init() @@ -1030,6 +1165,8 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_AD_INTERNAL_ERROR TLS1_AD_INTERNAL_ERROR # define SSL_AD_USER_CANCELLED TLS1_AD_USER_CANCELLED # define SSL_AD_NO_RENEGOTIATION TLS1_AD_NO_RENEGOTIATION +# define SSL_AD_MISSING_EXTENSION TLS13_AD_MISSING_EXTENSION +# define SSL_AD_CERTIFICATE_REQUIRED TLS13_AD_CERTIFICATE_REQUIRED # define SSL_AD_UNSUPPORTED_EXTENSION TLS1_AD_UNSUPPORTED_EXTENSION # define SSL_AD_CERTIFICATE_UNOBTAINABLE TLS1_AD_CERTIFICATE_UNOBTAINABLE # define SSL_AD_UNRECOGNIZED_NAME TLS1_AD_UNRECOGNIZED_NAME @@ -1052,6 +1189,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_ERROR_WANT_ACCEPT 8 # define SSL_ERROR_WANT_ASYNC 9 # define SSL_ERROR_WANT_ASYNC_JOB 10 +# define SSL_ERROR_WANT_CLIENT_HELLO_CB 11 # define SSL_CTRL_SET_TMP_DH 3 # define SSL_CTRL_SET_TMP_ECDH 4 # define SSL_CTRL_SET_TMP_DH_CB 6 @@ -1130,10 +1268,10 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS 83 # define SSL_CTRL_CHAIN 88 # define SSL_CTRL_CHAIN_CERT 89 -# define SSL_CTRL_GET_CURVES 90 -# define SSL_CTRL_SET_CURVES 91 -# define SSL_CTRL_SET_CURVES_LIST 92 -# define SSL_CTRL_GET_SHARED_CURVE 93 +# define SSL_CTRL_GET_GROUPS 90 +# define SSL_CTRL_SET_GROUPS 91 +# define SSL_CTRL_SET_GROUPS_LIST 92 +# define SSL_CTRL_GET_SHARED_GROUP 93 # define SSL_CTRL_SET_SIGALGS 97 # define SSL_CTRL_SET_SIGALGS_LIST 98 # define SSL_CTRL_CERT_FLAGS 99 @@ -1146,7 +1284,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_SET_VERIFY_CERT_STORE 106 # define SSL_CTRL_SET_CHAIN_CERT_STORE 107 # define SSL_CTRL_GET_PEER_SIGNATURE_NID 108 -# define SSL_CTRL_GET_SERVER_TMP_KEY 109 +# define SSL_CTRL_GET_PEER_TMP_KEY 109 # define SSL_CTRL_GET_RAW_CIPHERLIST 110 # define SSL_CTRL_GET_EC_POINT_FORMATS 111 # define SSL_CTRL_GET_CHAIN_CERTS 115 @@ -1165,11 +1303,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB_ARG 129 # define SSL_CTRL_GET_MIN_PROTO_VERSION 130 # define SSL_CTRL_GET_MAX_PROTO_VERSION 131 +# define SSL_CTRL_GET_SIGNATURE_NID 132 +# define SSL_CTRL_GET_TMP_KEY 133 # define SSL_CERT_SET_FIRST 1 # define SSL_CERT_SET_NEXT 2 # define SSL_CERT_SET_SERVER 3 # define DTLSv1_get_timeout(ssl, arg) \ - SSL_ctrl(ssl,DTLS_CTRL_GET_TIMEOUT,0, (void *)arg) + SSL_ctrl(ssl,DTLS_CTRL_GET_TIMEOUT,0, (void *)(arg)) # define DTLSv1_handle_timeout(ssl) \ SSL_ctrl(ssl,DTLS_CTRL_HANDLE_TIMEOUT,0, NULL) # define SSL_num_renegotiations(ssl) \ @@ -1179,19 +1319,19 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_total_renegotiations(ssl) \ SSL_ctrl((ssl),SSL_CTRL_GET_TOTAL_RENEGOTIATIONS,0,NULL) # define SSL_CTX_set_tmp_dh(ctx,dh) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_DH,0,(char *)dh) + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_DH,0,(char *)(dh)) # define SSL_CTX_set_tmp_ecdh(ctx,ecdh) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_ECDH,0,(char *)ecdh) + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_ECDH,0,(char *)(ecdh)) # define SSL_CTX_set_dh_auto(ctx, onoff) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_DH_AUTO,onoff,NULL) # define SSL_set_dh_auto(s, onoff) \ SSL_ctrl(s,SSL_CTRL_SET_DH_AUTO,onoff,NULL) # define SSL_set_tmp_dh(ssl,dh) \ - SSL_ctrl(ssl,SSL_CTRL_SET_TMP_DH,0,(char *)dh) + SSL_ctrl(ssl,SSL_CTRL_SET_TMP_DH,0,(char *)(dh)) # define SSL_set_tmp_ecdh(ssl,ecdh) \ - SSL_ctrl(ssl,SSL_CTRL_SET_TMP_ECDH,0,(char *)ecdh) + SSL_ctrl(ssl,SSL_CTRL_SET_TMP_ECDH,0,(char *)(ecdh)) # define SSL_CTX_add_extra_chain_cert(ctx,x509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)x509) + SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)(x509)) # define SSL_CTX_get_extra_chain_certs(ctx,px509) \ SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,0,px509) # define SSL_CTX_get_extra_chain_certs_only(ctx,px509) \ @@ -1199,13 +1339,13 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTX_clear_extra_chain_certs(ctx) \ SSL_CTX_ctrl(ctx,SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS,0,NULL) # define SSL_CTX_set0_chain(ctx,sk) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,0,(char *)sk) + SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,0,(char *)(sk)) # define SSL_CTX_set1_chain(ctx,sk) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,1,(char *)sk) + SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,1,(char *)(sk)) # define SSL_CTX_add0_chain_cert(ctx,x509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,0,(char *)x509) + SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,0,(char *)(x509)) # define SSL_CTX_add1_chain_cert(ctx,x509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,1,(char *)x509) + SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,1,(char *)(x509)) # define SSL_CTX_get0_chain_certs(ctx,px509) \ SSL_CTX_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERTS,0,px509) # define SSL_CTX_clear_chain_certs(ctx) \ @@ -1213,25 +1353,25 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTX_build_cert_chain(ctx, flags) \ SSL_CTX_ctrl(ctx,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL) # define SSL_CTX_select_current_cert(ctx,x509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)x509) + SSL_CTX_ctrl(ctx,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)(x509)) # define SSL_CTX_set_current_cert(ctx, op) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURRENT_CERT, op, NULL) # define SSL_CTX_set0_verify_cert_store(ctx,st) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)st) + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)(st)) # define SSL_CTX_set1_verify_cert_store(ctx,st) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)st) + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)(st)) # define SSL_CTX_set0_chain_cert_store(ctx,st) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)st) + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)(st)) # define SSL_CTX_set1_chain_cert_store(ctx,st) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)st) + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)(st)) # define SSL_set0_chain(ctx,sk) \ - SSL_ctrl(ctx,SSL_CTRL_CHAIN,0,(char *)sk) + SSL_ctrl(ctx,SSL_CTRL_CHAIN,0,(char *)(sk)) # define SSL_set1_chain(ctx,sk) \ - SSL_ctrl(ctx,SSL_CTRL_CHAIN,1,(char *)sk) + SSL_ctrl(ctx,SSL_CTRL_CHAIN,1,(char *)(sk)) # define SSL_add0_chain_cert(ctx,x509) \ - SSL_ctrl(ctx,SSL_CTRL_CHAIN_CERT,0,(char *)x509) + SSL_ctrl(ctx,SSL_CTRL_CHAIN_CERT,0,(char *)(x509)) # define SSL_add1_chain_cert(ctx,x509) \ - SSL_ctrl(ctx,SSL_CTRL_CHAIN_CERT,1,(char *)x509) + SSL_ctrl(ctx,SSL_CTRL_CHAIN_CERT,1,(char *)(x509)) # define SSL_get0_chain_certs(ctx,px509) \ SSL_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERTS,0,px509) # define SSL_clear_chain_certs(ctx) \ @@ -1239,92 +1379,119 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_build_cert_chain(s, flags) \ SSL_ctrl(s,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL) # define SSL_select_current_cert(ctx,x509) \ - SSL_ctrl(ctx,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)x509) + SSL_ctrl(ctx,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)(x509)) # define SSL_set_current_cert(ctx,op) \ SSL_ctrl(ctx,SSL_CTRL_SET_CURRENT_CERT, op, NULL) # define SSL_set0_verify_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)st) + SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)(st)) # define SSL_set1_verify_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)st) + SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)(st)) # define SSL_set0_chain_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)st) + SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)(st)) # define SSL_set1_chain_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)st) -# define SSL_get1_curves(ctx, s) \ - SSL_ctrl(ctx,SSL_CTRL_GET_CURVES,0,(char *)s) -# define SSL_CTX_set1_curves(ctx, clist, clistlen) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURVES,clistlen,(char *)clist) -# define SSL_CTX_set1_curves_list(ctx, s) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURVES_LIST,0,(char *)s) -# define SSL_set1_curves(ctx, clist, clistlen) \ - SSL_ctrl(ctx,SSL_CTRL_SET_CURVES,clistlen,(char *)clist) -# define SSL_set1_curves_list(ctx, s) \ - SSL_ctrl(ctx,SSL_CTRL_SET_CURVES_LIST,0,(char *)s) -# define SSL_get_shared_curve(s, n) \ - SSL_ctrl(s,SSL_CTRL_GET_SHARED_CURVE,n,NULL) + SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)(st)) +# define SSL_get1_groups(ctx, s) \ + SSL_ctrl(ctx,SSL_CTRL_GET_GROUPS,0,(char *)(s)) +# define SSL_CTX_set1_groups(ctx, glist, glistlen) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) +# define SSL_CTX_set1_groups_list(ctx, s) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_set1_groups(ctx, glist, glistlen) \ + SSL_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) +# define SSL_set1_groups_list(ctx, s) \ + SSL_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_get_shared_group(s, n) \ + SSL_ctrl(s,SSL_CTRL_GET_SHARED_GROUP,n,NULL) # define SSL_CTX_set1_sigalgs(ctx, slist, slistlen) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS,slistlen,(int *)slist) + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS,slistlen,(int *)(slist)) # define SSL_CTX_set1_sigalgs_list(ctx, s) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)s) + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)(s)) # define SSL_set1_sigalgs(ctx, slist, slistlen) \ - SSL_ctrl(ctx,SSL_CTRL_SET_SIGALGS,slistlen,(int *)slist) + SSL_ctrl(ctx,SSL_CTRL_SET_SIGALGS,slistlen,(int *)(slist)) # define SSL_set1_sigalgs_list(ctx, s) \ - SSL_ctrl(ctx,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)s) + SSL_ctrl(ctx,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)(s)) # define SSL_CTX_set1_client_sigalgs(ctx, slist, slistlen) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS,slistlen,(int *)slist) + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS,slistlen,(int *)(slist)) # define SSL_CTX_set1_client_sigalgs_list(ctx, s) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)s) + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)(s)) # define SSL_set1_client_sigalgs(ctx, slist, slistlen) \ - SSL_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS,clistlen,(int *)slist) + SSL_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS,clistlen,(int *)(slist)) # define SSL_set1_client_sigalgs_list(ctx, s) \ - SSL_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)s) + SSL_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)(s)) # define SSL_get0_certificate_types(s, clist) \ - SSL_ctrl(s, SSL_CTRL_GET_CLIENT_CERT_TYPES, 0, (char *)clist) + SSL_ctrl(s, SSL_CTRL_GET_CLIENT_CERT_TYPES, 0, (char *)(clist)) # define SSL_CTX_set1_client_certificate_types(ctx, clist, clistlen) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)clist) + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen, \ + (char *)(clist)) # define SSL_set1_client_certificate_types(s, clist, clistlen) \ - SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)clist) + SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get_signature_nid(s, pn) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) # define SSL_get_peer_signature_nid(s, pn) \ SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) -# define SSL_get_server_tmp_key(s, pk) \ - SSL_ctrl(s,SSL_CTRL_GET_SERVER_TMP_KEY,0,pk) +# define SSL_get_peer_tmp_key(s, pk) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_TMP_KEY,0,pk) +# define SSL_get_tmp_key(s, pk) \ + SSL_ctrl(s,SSL_CTRL_GET_TMP_KEY,0,pk) # define SSL_get0_raw_cipherlist(s, plst) \ SSL_ctrl(s,SSL_CTRL_GET_RAW_CIPHERLIST,0,plst) # define SSL_get0_ec_point_formats(s, plst) \ SSL_ctrl(s,SSL_CTRL_GET_EC_POINT_FORMATS,0,plst) -#define SSL_CTX_set_min_proto_version(ctx, version) \ +# define SSL_CTX_set_min_proto_version(ctx, version) \ SSL_CTX_ctrl(ctx, SSL_CTRL_SET_MIN_PROTO_VERSION, version, NULL) -#define SSL_CTX_set_max_proto_version(ctx, version) \ +# define SSL_CTX_set_max_proto_version(ctx, version) \ SSL_CTX_ctrl(ctx, SSL_CTRL_SET_MAX_PROTO_VERSION, version, NULL) -#define SSL_CTX_get_min_proto_version(ctx) \ +# define SSL_CTX_get_min_proto_version(ctx) \ SSL_CTX_ctrl(ctx, SSL_CTRL_GET_MIN_PROTO_VERSION, 0, NULL) -#define SSL_CTX_get_max_proto_version(ctx) \ +# define SSL_CTX_get_max_proto_version(ctx) \ SSL_CTX_ctrl(ctx, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) -#define SSL_set_min_proto_version(s, version) \ +# define SSL_set_min_proto_version(s, version) \ SSL_ctrl(s, SSL_CTRL_SET_MIN_PROTO_VERSION, version, NULL) -#define SSL_set_max_proto_version(s, version) \ +# define SSL_set_max_proto_version(s, version) \ SSL_ctrl(s, SSL_CTRL_SET_MAX_PROTO_VERSION, version, NULL) -#define SSL_get_min_proto_version(s) \ +# define SSL_get_min_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MIN_PROTO_VERSION, 0, NULL) -#define SSL_get_max_proto_version(s) \ +# define SSL_get_max_proto_version(s) \ SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) -#if OPENSSL_API_COMPAT < 0x10100000L +/* Backwards compatibility, original 1.1.0 names */ +# define SSL_CTRL_GET_SERVER_TMP_KEY \ + SSL_CTRL_GET_PEER_TMP_KEY +# define SSL_get_server_tmp_key(s, pk) \ + SSL_get_peer_tmp_key(s, pk) + +/* + * The following symbol names are old and obsolete. They are kept + * for compatibility reasons only and should not be used anymore. + */ +# define SSL_CTRL_GET_CURVES SSL_CTRL_GET_GROUPS +# define SSL_CTRL_SET_CURVES SSL_CTRL_SET_GROUPS +# define SSL_CTRL_SET_CURVES_LIST SSL_CTRL_SET_GROUPS_LIST +# define SSL_CTRL_GET_SHARED_CURVE SSL_CTRL_GET_SHARED_GROUP + +# define SSL_get1_curves SSL_get1_groups +# define SSL_CTX_set1_curves SSL_CTX_set1_groups +# define SSL_CTX_set1_curves_list SSL_CTX_set1_groups_list +# define SSL_set1_curves SSL_set1_groups +# define SSL_set1_curves_list SSL_set1_groups_list +# define SSL_get_shared_curve SSL_get_shared_group + + +# if OPENSSL_API_COMPAT < 0x10100000L /* Provide some compatibility macros for removed functionality. */ -# define SSL_CTX_need_tmp_RSA(ctx) 0 -# define SSL_CTX_set_tmp_rsa(ctx,rsa) 1 -# define SSL_need_tmp_RSA(ssl) 0 -# define SSL_set_tmp_rsa(ssl,rsa) 1 -# define SSL_CTX_set_ecdh_auto(dummy, onoff) ((onoff) != 0) -# define SSL_set_ecdh_auto(dummy, onoff) ((onoff) != 0) +# define SSL_CTX_need_tmp_RSA(ctx) 0 +# define SSL_CTX_set_tmp_rsa(ctx,rsa) 1 +# define SSL_need_tmp_RSA(ssl) 0 +# define SSL_set_tmp_rsa(ssl,rsa) 1 +# define SSL_CTX_set_ecdh_auto(dummy, onoff) ((onoff) != 0) +# define SSL_set_ecdh_auto(dummy, onoff) ((onoff) != 0) /* * We "pretend" to call the callback to avoid warnings about unused static * functions. */ -# define SSL_CTX_set_tmp_rsa_callback(ctx, cb) while(0) (cb)(NULL, 0, 0) -# define SSL_set_tmp_rsa_callback(ssl, cb) while(0) (cb)(NULL, 0, 0) -#endif - +# define SSL_CTX_set_tmp_rsa_callback(ctx, cb) while(0) (cb)(NULL, 0, 0) +# define SSL_set_tmp_rsa_callback(ssl, cb) while(0) (cb)(NULL, 0, 0) +# endif __owur const BIO_METHOD *BIO_f_ssl(void); __owur BIO *BIO_new_ssl(SSL_CTX *ctx, int client); __owur BIO *BIO_new_ssl_connect(SSL_CTX *ctx); @@ -1340,18 +1507,24 @@ __owur long SSL_CTX_set_timeout(SSL_CTX *ctx, long t); __owur long SSL_CTX_get_timeout(const SSL_CTX *ctx); __owur X509_STORE *SSL_CTX_get_cert_store(const SSL_CTX *); void SSL_CTX_set_cert_store(SSL_CTX *, X509_STORE *); +void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); __owur int SSL_want(const SSL *s); __owur int SSL_clear(SSL *s); void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); +__owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); __owur int SSL_CIPHER_get_bits(const SSL_CIPHER *c, int *alg_bits); __owur const char *SSL_CIPHER_get_version(const SSL_CIPHER *c); __owur const char *SSL_CIPHER_get_name(const SSL_CIPHER *c); +__owur const char *SSL_CIPHER_standard_name(const SSL_CIPHER *c); +__owur const char *OPENSSL_cipher_name(const char *rfc_name); __owur uint32_t SSL_CIPHER_get_id(const SSL_CIPHER *c); +__owur uint16_t SSL_CIPHER_get_protocol_id(const SSL_CIPHER *c); __owur int SSL_CIPHER_get_kx_nid(const SSL_CIPHER *c); __owur int SSL_CIPHER_get_auth_nid(const SSL_CIPHER *c); +__owur const EVP_MD *SSL_CIPHER_get_handshake_digest(const SSL_CIPHER *c); __owur int SSL_CIPHER_is_aead(const SSL_CIPHER *c); __owur int SSL_get_fd(const SSL *s); @@ -1373,6 +1546,8 @@ void SSL_set_bio(SSL *s, BIO *rbio, BIO *wbio); __owur BIO *SSL_get_rbio(const SSL *s); __owur BIO *SSL_get_wbio(const SSL *s); __owur int SSL_set_cipher_list(SSL *s, const char *str); +__owur int SSL_CTX_set_ciphersuites(SSL_CTX *ctx, const char *str); +__owur int SSL_set_ciphersuites(SSL *s, const char *str); void SSL_set_read_ahead(SSL *s, int yes); __owur int SSL_get_verify_mode(const SSL *s); __owur int SSL_get_verify_depth(const SSL *s); @@ -1382,17 +1557,28 @@ void SSL_set_verify_depth(SSL *s, int depth); void SSL_set_cert_cb(SSL *s, int (*cb) (SSL *ssl, void *arg), void *arg); # ifndef OPENSSL_NO_RSA __owur int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa); -__owur int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, const unsigned char *d, long len); +__owur int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, const unsigned char *d, + long len); # endif __owur int SSL_use_PrivateKey(SSL *ssl, EVP_PKEY *pkey); __owur int SSL_use_PrivateKey_ASN1(int pk, SSL *ssl, const unsigned char *d, - long len); + long len); __owur int SSL_use_certificate(SSL *ssl, X509 *x); __owur int SSL_use_certificate_ASN1(SSL *ssl, const unsigned char *d, int len); +__owur int SSL_use_cert_and_key(SSL *ssl, X509 *x509, EVP_PKEY *privatekey, + STACK_OF(X509) *chain, int override); + + +/* serverinfo file format versions */ +# define SSL_SERVERINFOV1 1 +# define SSL_SERVERINFOV2 2 /* Set serverinfo data for the current active cert. */ __owur int SSL_CTX_use_serverinfo(SSL_CTX *ctx, const unsigned char *serverinfo, - size_t serverinfo_length); + size_t serverinfo_length); +__owur int SSL_CTX_use_serverinfo_ex(SSL_CTX *ctx, unsigned int version, + const unsigned char *serverinfo, + size_t serverinfo_length); __owur int SSL_CTX_use_serverinfo_file(SSL_CTX *ctx, const char *file); #ifndef OPENSSL_NO_RSA @@ -1403,24 +1589,27 @@ __owur int SSL_use_PrivateKey_file(SSL *ssl, const char *file, int type); __owur int SSL_use_certificate_file(SSL *ssl, const char *file, int type); #ifndef OPENSSL_NO_RSA -__owur int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX *ctx, const char *file, int type); +__owur int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX *ctx, const char *file, + int type); #endif -__owur int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, int type); -__owur int SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file, int type); +__owur int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, + int type); +__owur int SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file, + int type); /* PEM type */ __owur int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file); __owur int SSL_use_certificate_chain_file(SSL *ssl, const char *file); __owur STACK_OF(X509_NAME) *SSL_load_client_CA_file(const char *file); __owur int SSL_add_file_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs, - const char *file); + const char *file); int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs, const char *dir); -#if OPENSSL_API_COMPAT < 0x10100000L -# define SSL_load_error_strings() \ +# if OPENSSL_API_COMPAT < 0x10100000L +# define SSL_load_error_strings() \ OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS \ | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL) -#endif +# endif __owur const char *SSL_state_string(const SSL *s); __owur const char *SSL_rstate_string(const SSL *s); @@ -1431,24 +1620,40 @@ __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); __owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); +__owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); + __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); +__owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); +void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, + const unsigned char **alpn, + size_t *len); +__owur int SSL_SESSION_set1_alpn_selected(SSL_SESSION *s, + const unsigned char *alpn, + size_t len); __owur const SSL_CIPHER *SSL_SESSION_get0_cipher(const SSL_SESSION *s); +__owur int SSL_SESSION_set_cipher(SSL_SESSION *s, const SSL_CIPHER *cipher); __owur int SSL_SESSION_has_ticket(const SSL_SESSION *s); __owur unsigned long SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION *s); void SSL_SESSION_get0_ticket(const SSL_SESSION *s, const unsigned char **tick, - size_t *len); + size_t *len); +__owur uint32_t SSL_SESSION_get_max_early_data(const SSL_SESSION *s); +__owur int SSL_SESSION_set_max_early_data(SSL_SESSION *s, + uint32_t max_early_data); __owur int SSL_copy_session_id(SSL *to, const SSL *from); __owur X509 *SSL_SESSION_get0_peer(SSL_SESSION *s); -__owur int SSL_SESSION_set1_id_context(SSL_SESSION *s, const unsigned char *sid_ctx, - unsigned int sid_ctx_len); +__owur int SSL_SESSION_set1_id_context(SSL_SESSION *s, + const unsigned char *sid_ctx, + unsigned int sid_ctx_len); __owur int SSL_SESSION_set1_id(SSL_SESSION *s, const unsigned char *sid, unsigned int sid_len); +__owur int SSL_SESSION_is_resumable(const SSL_SESSION *s); __owur SSL_SESSION *SSL_SESSION_new(void); +__owur SSL_SESSION *SSL_SESSION_dup(SSL_SESSION *src); const unsigned char *SSL_SESSION_get_id(const SSL_SESSION *s, unsigned int *len); const unsigned char *SSL_SESSION_get0_id_context(const SSL_SESSION *s, - unsigned int *len); + unsigned int *len); __owur unsigned int SSL_SESSION_get_compress_id(const SSL_SESSION *s); # ifndef OPENSSL_NO_STDIO int SSL_SESSION_print_fp(FILE *fp, const SSL_SESSION *ses); @@ -1459,12 +1664,13 @@ int SSL_SESSION_up_ref(SSL_SESSION *ses); void SSL_SESSION_free(SSL_SESSION *ses); __owur int i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp); __owur int SSL_set_session(SSL *to, SSL_SESSION *session); -int SSL_CTX_add_session(SSL_CTX *s, SSL_SESSION *c); -int SSL_CTX_remove_session(SSL_CTX *, SSL_SESSION *c); -__owur int SSL_CTX_set_generate_session_id(SSL_CTX *, GEN_SESSION_CB); -__owur int SSL_set_generate_session_id(SSL *, GEN_SESSION_CB); -__owur int SSL_has_matching_session_id(const SSL *ssl, const unsigned char *id, - unsigned int id_len); +int SSL_CTX_add_session(SSL_CTX *ctx, SSL_SESSION *session); +int SSL_CTX_remove_session(SSL_CTX *ctx, SSL_SESSION *session); +__owur int SSL_CTX_set_generate_session_id(SSL_CTX *ctx, GEN_SESSION_CB cb); +__owur int SSL_set_generate_session_id(SSL *s, GEN_SESSION_CB cb); +__owur int SSL_has_matching_session_id(const SSL *s, + const unsigned char *id, + unsigned int id_len); SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); @@ -1487,14 +1693,16 @@ void SSL_CTX_set_cert_cb(SSL_CTX *c, int (*cb) (SSL *ssl, void *arg), # ifndef OPENSSL_NO_RSA __owur int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa); __owur int SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, const unsigned char *d, - long len); + long len); # endif __owur int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey); __owur int SSL_CTX_use_PrivateKey_ASN1(int pk, SSL_CTX *ctx, - const unsigned char *d, long len); + const unsigned char *d, long len); __owur int SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x); __owur int SSL_CTX_use_certificate_ASN1(SSL_CTX *ctx, int len, - const unsigned char *d); + const unsigned char *d); +__owur int SSL_CTX_use_cert_and_key(SSL_CTX *ctx, X509 *x509, EVP_PKEY *privatekey, + STACK_OF(X509) *chain, int override); void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb); void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u); @@ -1508,19 +1716,20 @@ void *SSL_get_default_passwd_cb_userdata(SSL *s); __owur int SSL_CTX_check_private_key(const SSL_CTX *ctx); __owur int SSL_check_private_key(const SSL *ctx); -__owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, const unsigned char *sid_ctx, - unsigned int sid_ctx_len); +__owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, + const unsigned char *sid_ctx, + unsigned int sid_ctx_len); SSL *SSL_new(SSL_CTX *ctx); int SSL_up_ref(SSL *s); int SSL_is_dtls(const SSL *s); __owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, - unsigned int sid_ctx_len); + unsigned int sid_ctx_len); -__owur int SSL_CTX_set_purpose(SSL_CTX *s, int purpose); -__owur int SSL_set_purpose(SSL *s, int purpose); -__owur int SSL_CTX_set_trust(SSL_CTX *s, int trust); -__owur int SSL_set_trust(SSL *s, int trust); +__owur int SSL_CTX_set_purpose(SSL_CTX *ctx, int purpose); +__owur int SSL_set_purpose(SSL *ssl, int purpose); +__owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); +__owur int SSL_set_trust(SSL *ssl, int trust); __owur int SSL_set1_host(SSL *s, const char *hostname); __owur int SSL_add1_host(SSL *s, const char *hostname); @@ -1580,6 +1789,28 @@ __owur char *SSL_get_srp_username(SSL *s); __owur char *SSL_get_srp_userinfo(SSL *s); # endif +/* + * ClientHello callback and helpers. + */ + +# define SSL_CLIENT_HELLO_SUCCESS 1 +# define SSL_CLIENT_HELLO_ERROR 0 +# define SSL_CLIENT_HELLO_RETRY (-1) + +typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); +void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, + void *arg); +int SSL_client_hello_isv2(SSL *s); +unsigned int SSL_client_hello_get0_legacy_version(SSL *s); +size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); +size_t SSL_client_hello_get0_session_id(SSL *s, const unsigned char **out); +size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); +size_t SSL_client_hello_get0_compression_methods(SSL *s, + const unsigned char **out); +int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get0_ext(SSL *s, unsigned int type, + const unsigned char **out, size_t *outlen); + void SSL_certs_clear(SSL *s); void SSL_free(SSL *ssl); # ifdef OSSL_ASYNC_FD @@ -1593,15 +1824,34 @@ __owur int SSL_get_changed_async_fds(SSL *s, OSSL_ASYNC_FD *addfd, size_t *numdelfds); # endif __owur int SSL_accept(SSL *ssl); +__owur int SSL_stateless(SSL *s); __owur int SSL_connect(SSL *ssl); __owur int SSL_read(SSL *ssl, void *buf, int num); +__owur int SSL_read_ex(SSL *ssl, void *buf, size_t num, size_t *readbytes); + +# define SSL_READ_EARLY_DATA_ERROR 0 +# define SSL_READ_EARLY_DATA_SUCCESS 1 +# define SSL_READ_EARLY_DATA_FINISH 2 + +__owur int SSL_read_early_data(SSL *s, void *buf, size_t num, + size_t *readbytes); __owur int SSL_peek(SSL *ssl, void *buf, int num); +__owur int SSL_peek_ex(SSL *ssl, void *buf, size_t num, size_t *readbytes); __owur int SSL_write(SSL *ssl, const void *buf, int num); +__owur int SSL_write_ex(SSL *s, const void *buf, size_t num, size_t *written); +__owur int SSL_write_early_data(SSL *s, const void *buf, size_t num, + size_t *written); long SSL_ctrl(SSL *ssl, int cmd, long larg, void *parg); long SSL_callback_ctrl(SSL *, int, void (*)(void)); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); +# define SSL_EARLY_DATA_NOT_SENT 0 +# define SSL_EARLY_DATA_REJECTED 1 +# define SSL_EARLY_DATA_ACCEPTED 2 + +__owur int SSL_get_early_data_status(const SSL *s); + __owur int SSL_get_error(const SSL *s, int ret_code); __owur const char *SSL_get_version(const SSL *s); @@ -1610,8 +1860,8 @@ __owur int SSL_CTX_set_ssl_version(SSL_CTX *ctx, const SSL_METHOD *meth); # ifndef OPENSSL_NO_SSL3_METHOD DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *SSLv3_method(void)) /* SSLv3 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *SSLv3_server_method(void)) /* SSLv3 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *SSLv3_client_method(void)) /* SSLv3 */ +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *SSLv3_server_method(void)) +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *SSLv3_client_method(void)) # endif #define SSLv23_method TLS_method @@ -1625,57 +1875,73 @@ __owur const SSL_METHOD *TLS_client_method(void); # ifndef OPENSSL_NO_TLS1_METHOD DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_method(void)) /* TLSv1.0 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_server_method(void)) /* TLSv1.0 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_client_method(void)) /* TLSv1.0 */ +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_server_method(void)) +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_client_method(void)) # endif # ifndef OPENSSL_NO_TLS1_1_METHOD DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_method(void)) /* TLSv1.1 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_server_method(void)) /* TLSv1.1 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_client_method(void)) /* TLSv1.1 */ +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_server_method(void)) +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_client_method(void)) # endif # ifndef OPENSSL_NO_TLS1_2_METHOD DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_method(void)) /* TLSv1.2 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_server_method(void)) /* TLSv1.2 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_client_method(void)) /* TLSv1.2 */ +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_server_method(void)) +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_client_method(void)) # endif # ifndef OPENSSL_NO_DTLS1_METHOD DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_method(void)) /* DTLSv1.0 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_server_method(void)) /* DTLSv1.0 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_client_method(void)) /* DTLSv1.0 */ +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_server_method(void)) +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_client_method(void)) # endif # ifndef OPENSSL_NO_DTLS1_2_METHOD -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_method(void)) /* DTLSv1.2 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_server_method(void)) /* DTLSv1.2 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_client_method(void)) /* DTLSv1.2 */ -#endif +/* DTLSv1.2 */ +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_method(void)) +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_server_method(void)) +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_client_method(void)) +# endif __owur const SSL_METHOD *DTLS_method(void); /* DTLS 1.0 and 1.2 */ __owur const SSL_METHOD *DTLS_server_method(void); /* DTLS 1.0 and 1.2 */ __owur const SSL_METHOD *DTLS_client_method(void); /* DTLS 1.0 and 1.2 */ +__owur size_t DTLS_get_data_mtu(const SSL *s); + __owur STACK_OF(SSL_CIPHER) *SSL_get_ciphers(const SSL *s); __owur STACK_OF(SSL_CIPHER) *SSL_CTX_get_ciphers(const SSL_CTX *ctx); __owur STACK_OF(SSL_CIPHER) *SSL_get_client_ciphers(const SSL *s); __owur STACK_OF(SSL_CIPHER) *SSL_get1_supported_ciphers(SSL *s); __owur int SSL_do_handshake(SSL *s); +int SSL_key_update(SSL *s, int updatetype); +int SSL_get_key_update_type(const SSL *s); int SSL_renegotiate(SSL *s); -__owur int SSL_renegotiate_abbreviated(SSL *s); -__owur int SSL_renegotiate_pending(SSL *s); +int SSL_renegotiate_abbreviated(SSL *s); +__owur int SSL_renegotiate_pending(const SSL *s); int SSL_shutdown(SSL *s); +__owur int SSL_verify_client_post_handshake(SSL *s); +void SSL_CTX_set_post_handshake_auth(SSL_CTX *ctx, int val); +void SSL_set_post_handshake_auth(SSL *s, int val); -__owur const SSL_METHOD *SSL_CTX_get_ssl_method(SSL_CTX *ctx); -__owur const SSL_METHOD *SSL_get_ssl_method(SSL *s); +__owur const SSL_METHOD *SSL_CTX_get_ssl_method(const SSL_CTX *ctx); +__owur const SSL_METHOD *SSL_get_ssl_method(const SSL *s); __owur int SSL_set_ssl_method(SSL *s, const SSL_METHOD *method); __owur const char *SSL_alert_type_string_long(int value); __owur const char *SSL_alert_type_string(int value); __owur const char *SSL_alert_desc_string_long(int value); __owur const char *SSL_alert_desc_string(int value); +void SSL_set0_CA_list(SSL *s, STACK_OF(X509_NAME) *name_list); +void SSL_CTX_set0_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *name_list); +__owur const STACK_OF(X509_NAME) *SSL_get0_CA_list(const SSL *s); +__owur const STACK_OF(X509_NAME) *SSL_CTX_get0_CA_list(const SSL_CTX *ctx); +__owur int SSL_add1_to_CA_list(SSL *ssl, const X509 *x); +__owur int SSL_CTX_add1_to_CA_list(SSL_CTX *ctx, const X509 *x); +__owur const STACK_OF(X509_NAME) *SSL_get0_peer_CA_list(const SSL *s); + void SSL_set_client_CA_list(SSL *s, STACK_OF(X509_NAME) *name_list); void SSL_CTX_set_client_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *name_list); __owur STACK_OF(X509_NAME) *SSL_get_client_CA_list(const SSL *s); @@ -1688,19 +1954,20 @@ void SSL_set_accept_state(SSL *s); __owur long SSL_get_default_timeout(const SSL *s); -#if OPENSSL_API_COMPAT < 0x10100000L -# define SSL_library_init() OPENSSL_init_ssl(0, NULL) -#endif +# if OPENSSL_API_COMPAT < 0x10100000L +# define SSL_library_init() OPENSSL_init_ssl(0, NULL) +# endif __owur char *SSL_CIPHER_description(const SSL_CIPHER *, char *buf, int size); -__owur STACK_OF(X509_NAME) *SSL_dup_CA_list(STACK_OF(X509_NAME) *sk); +__owur STACK_OF(X509_NAME) *SSL_dup_CA_list(const STACK_OF(X509_NAME) *sk); __owur SSL *SSL_dup(SSL *ssl); __owur X509 *SSL_get_certificate(const SSL *ssl); /* * EVP_PKEY - */ struct evp_pkey_st *SSL_get_privatekey(const SSL *ssl); + */ +struct evp_pkey_st *SSL_get_privatekey(const SSL *ssl); __owur X509 *SSL_CTX_get0_certificate(const SSL_CTX *ctx); __owur EVP_PKEY *SSL_CTX_get0_privatekey(const SSL_CTX *ctx); @@ -1717,7 +1984,7 @@ __owur int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx); __owur int SSL_CTX_set_default_verify_dir(SSL_CTX *ctx); __owur int SSL_CTX_set_default_verify_file(SSL_CTX *ctx); __owur int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, - const char *CApath); + const char *CApath); # define SSL_get0_session SSL_get_session/* just peek at pointer */ __owur SSL_SESSION *SSL_get_session(const SSL *ssl); __owur SSL_SESSION *SSL_get1_session(SSL *ssl); /* obtain a reference count */ @@ -1737,8 +2004,11 @@ __owur size_t SSL_get_client_random(const SSL *ssl, unsigned char *out, size_t outlen); __owur size_t SSL_get_server_random(const SSL *ssl, unsigned char *out, size_t outlen); -__owur size_t SSL_SESSION_get_master_key(const SSL_SESSION *ssl, +__owur size_t SSL_SESSION_get_master_key(const SSL_SESSION *sess, unsigned char *out, size_t outlen); +__owur int SSL_SESSION_set1_master_key(SSL_SESSION *sess, + const unsigned char *in, size_t len); +uint8_t SSL_SESSION_get_max_fragment_length(const SSL_SESSION *sess); #define SSL_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL, l, p, newf, dupf, freef) @@ -1805,33 +2075,37 @@ void SSL_set_tmp_dh_callback(SSL *ssl, int keylength)); # endif -__owur const COMP_METHOD *SSL_get_current_compression(SSL *s); -__owur const COMP_METHOD *SSL_get_current_expansion(SSL *s); +__owur const COMP_METHOD *SSL_get_current_compression(const SSL *s); +__owur const COMP_METHOD *SSL_get_current_expansion(const SSL *s); __owur const char *SSL_COMP_get_name(const COMP_METHOD *comp); __owur const char *SSL_COMP_get0_name(const SSL_COMP *comp); __owur int SSL_COMP_get_id(const SSL_COMP *comp); STACK_OF(SSL_COMP) *SSL_COMP_get_compression_methods(void); __owur STACK_OF(SSL_COMP) *SSL_COMP_set0_compression_methods(STACK_OF(SSL_COMP) - *meths); -#if OPENSSL_API_COMPAT < 0x10100000L -# define SSL_COMP_free_compression_methods() while(0) continue -#endif + *meths); +# if OPENSSL_API_COMPAT < 0x10100000L +# define SSL_COMP_free_compression_methods() while(0) continue +# endif __owur int SSL_COMP_add_compression_method(int id, COMP_METHOD *cm); const SSL_CIPHER *SSL_CIPHER_find(SSL *ssl, const unsigned char *ptr); int SSL_CIPHER_get_cipher_nid(const SSL_CIPHER *c); int SSL_CIPHER_get_digest_nid(const SSL_CIPHER *c); +int SSL_bytes_to_cipher_list(SSL *s, const unsigned char *bytes, size_t len, + int isv2format, STACK_OF(SSL_CIPHER) **sk, + STACK_OF(SSL_CIPHER) **scsvs); /* TLS extensions functions */ __owur int SSL_set_session_ticket_ext(SSL *s, void *ext_data, int ext_len); -__owur int SSL_set_session_ticket_ext_cb(SSL *s, tls_session_ticket_ext_cb_fn cb, - void *arg); +__owur int SSL_set_session_ticket_ext_cb(SSL *s, + tls_session_ticket_ext_cb_fn cb, + void *arg); /* Pre-shared secret session resumption functions */ __owur int SSL_set_session_secret_cb(SSL *s, - tls_session_secret_cb_fn tls_session_secret_cb, - void *arg); + tls_session_secret_cb_fn session_secret_cb, + void *arg); void SSL_CTX_set_not_resumable_session_callback(SSL_CTX *ctx, int (*cb) (SSL *ssl, @@ -1840,20 +2114,40 @@ void SSL_CTX_set_not_resumable_session_callback(SSL_CTX *ctx, void SSL_set_not_resumable_session_callback(SSL *ssl, int (*cb) (SSL *ssl, - int - is_forward_secure)); + int is_forward_secure)); + +void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, + size_t (*cb) (SSL *ssl, int type, + size_t len, void *arg)); +void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); +void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); +int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); + +void SSL_set_record_padding_callback(SSL *ssl, + size_t (*cb) (SSL *ssl, int type, + size_t len, void *arg)); +void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); +void *SSL_get_record_padding_callback_arg(const SSL *ssl); +int SSL_set_block_padding(SSL *ssl, size_t block_size); + +int SSL_set_num_tickets(SSL *s, size_t num_tickets); +size_t SSL_get_num_tickets(const SSL *s); +int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); +size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); + # if OPENSSL_API_COMPAT < 0x10100000L # define SSL_cache_hit(s) SSL_session_reused(s) # endif -__owur int SSL_session_reused(SSL *s); +__owur int SSL_session_reused(const SSL *s); __owur int SSL_is_server(const SSL *s); __owur __owur SSL_CONF_CTX *SSL_CONF_CTX_new(void); int SSL_CONF_CTX_finish(SSL_CONF_CTX *cctx); void SSL_CONF_CTX_free(SSL_CONF_CTX *cctx); unsigned int SSL_CONF_CTX_set_flags(SSL_CONF_CTX *cctx, unsigned int flags); -__owur unsigned int SSL_CONF_CTX_clear_flags(SSL_CONF_CTX *cctx, unsigned int flags); +__owur unsigned int SSL_CONF_CTX_clear_flags(SSL_CONF_CTX *cctx, + unsigned int flags); __owur int SSL_CONF_CTX_set1_prefix(SSL_CONF_CTX *cctx, const char *pre); void SSL_CONF_CTX_set_ssl(SSL_CONF_CTX *cctx, SSL *ssl); @@ -1870,7 +2164,6 @@ int SSL_CTX_config(SSL_CTX *ctx, const char *name); # ifndef OPENSSL_NO_SSL_TRACE void SSL_trace(int write_p, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg); -__owur const char *SSL_CIPHER_standard_name(const SSL_CIPHER *c); # endif # ifndef OPENSSL_NO_SOCK @@ -1885,8 +2178,8 @@ int DTLSv1_listen(SSL *s, BIO_ADDR *client); * May return a negative integer if an error occurs. * A connection should be aborted if the SCTs are deemed insufficient. */ -typedef int(*ssl_ct_validation_cb)(const CT_POLICY_EVAL_CTX *ctx, - const STACK_OF(SCT) *scts, void *arg); +typedef int (*ssl_ct_validation_cb)(const CT_POLICY_EVAL_CTX *ctx, + const STACK_OF(SCT) *scts, void *arg); /* * Sets a |callback| that is invoked upon receipt of ServerHelloDone to validate @@ -2036,21 +2329,22 @@ const CTLOG_STORE *SSL_CTX_get0_ctlog_store(const SSL_CTX *ctx); void SSL_set_security_level(SSL *s, int level); __owur int SSL_get_security_level(const SSL *s); void SSL_set_security_callback(SSL *s, - int (*cb) (const SSL *s, const SSL_CTX *ctx, int op, - int bits, int nid, void *other, - void *ex)); -int (*SSL_get_security_callback(const SSL *s)) (const SSL *s, const SSL_CTX *ctx, int op, - int bits, int nid, - void *other, void *ex); + int (*cb) (const SSL *s, const SSL_CTX *ctx, + int op, int bits, int nid, + void *other, void *ex)); +int (*SSL_get_security_callback(const SSL *s)) (const SSL *s, + const SSL_CTX *ctx, int op, + int bits, int nid, void *other, + void *ex); void SSL_set0_security_ex_data(SSL *s, void *ex); __owur void *SSL_get0_security_ex_data(const SSL *s); void SSL_CTX_set_security_level(SSL_CTX *ctx, int level); __owur int SSL_CTX_get_security_level(const SSL_CTX *ctx); void SSL_CTX_set_security_callback(SSL_CTX *ctx, - int (*cb) (const SSL *s, const SSL_CTX *ctx, int op, - int bits, int nid, void *other, - void *ex)); + int (*cb) (const SSL *s, const SSL_CTX *ctx, + int op, int bits, int nid, + void *other, void *ex)); int (*SSL_CTX_get_security_callback(const SSL_CTX *ctx)) (const SSL *s, const SSL_CTX *ctx, int op, int bits, @@ -2061,10 +2355,10 @@ void SSL_CTX_set0_security_ex_data(SSL_CTX *ctx, void *ex); __owur void *SSL_CTX_get0_security_ex_data(const SSL_CTX *ctx); /* OPENSSL_INIT flag 0x010000 reserved for internal use */ -#define OPENSSL_INIT_NO_LOAD_SSL_STRINGS 0x00100000L -#define OPENSSL_INIT_LOAD_SSL_STRINGS 0x00200000L +# define OPENSSL_INIT_NO_LOAD_SSL_STRINGS 0x00100000L +# define OPENSSL_INIT_LOAD_SSL_STRINGS 0x00200000L -#define OPENSSL_INIT_SSL_DEFAULT \ +# define OPENSSL_INIT_SSL_DEFAULT \ (OPENSSL_INIT_LOAD_SSL_STRINGS | OPENSSL_INIT_LOAD_CRYPTO_STRINGS) int OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings); @@ -2073,493 +2367,70 @@ int OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings); __owur const struct openssl_ssl_test_functions *SSL_test_functions(void); # endif +__owur int SSL_free_buffers(SSL *ssl); +__owur int SSL_alloc_buffers(SSL *ssl); + +/* Status codes passed to the decrypt session ticket callback. Some of these + * are for internal use only and are never passed to the callback. */ +typedef int SSL_TICKET_STATUS; + +/* Support for ticket appdata */ +/* fatal error, malloc failure */ +# define SSL_TICKET_FATAL_ERR_MALLOC 0 +/* fatal error, either from parsing or decrypting the ticket */ +# define SSL_TICKET_FATAL_ERR_OTHER 1 +/* No ticket present */ +# define SSL_TICKET_NONE 2 +/* Empty ticket present */ +# define SSL_TICKET_EMPTY 3 +/* the ticket couldn't be decrypted */ +# define SSL_TICKET_NO_DECRYPT 4 +/* a ticket was successfully decrypted */ +# define SSL_TICKET_SUCCESS 5 +/* same as above but the ticket needs to be renewed */ +# define SSL_TICKET_SUCCESS_RENEW 6 + +/* Return codes for the decrypt session ticket callback */ +typedef int SSL_TICKET_RETURN; + +/* An error occurred */ +#define SSL_TICKET_RETURN_ABORT 0 +/* Do not use the ticket, do not send a renewed ticket to the client */ +#define SSL_TICKET_RETURN_IGNORE 1 +/* Do not use the ticket, send a renewed ticket to the client */ +#define SSL_TICKET_RETURN_IGNORE_RENEW 2 +/* Use the ticket, do not send a renewed ticket to the client */ +#define SSL_TICKET_RETURN_USE 3 +/* Use the ticket, send a renewed ticket to the client */ +#define SSL_TICKET_RETURN_USE_RENEW 4 + +typedef int (*SSL_CTX_generate_session_ticket_fn)(SSL *s, void *arg); +typedef SSL_TICKET_RETURN (*SSL_CTX_decrypt_session_ticket_fn)(SSL *s, SSL_SESSION *ss, + const unsigned char *keyname, + size_t keyname_length, + SSL_TICKET_STATUS status, + void *arg); +int SSL_CTX_set_session_ticket_cb(SSL_CTX *ctx, + SSL_CTX_generate_session_ticket_fn gen_cb, + SSL_CTX_decrypt_session_ticket_fn dec_cb, + void *arg); +int SSL_SESSION_set1_ticket_appdata(SSL_SESSION *ss, const void *data, size_t len); +int SSL_SESSION_get0_ticket_appdata(SSL_SESSION *ss, void **data, size_t *len); + extern const char SSL_version_str[]; -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ +typedef unsigned int (*DTLS_timer_cb)(SSL *s, unsigned int timer_us); -int ERR_load_SSL_strings(void); +void DTLS_set_timer_cb(SSL *s, DTLS_timer_cb cb); -/* Error codes for the SSL functions. */ -/* Function codes. */ -# define SSL_F_CHECK_SUITEB_CIPHER_LIST 331 -# define SSL_F_CT_MOVE_SCTS 345 -# define SSL_F_CT_STRICT 349 -# define SSL_F_D2I_SSL_SESSION 103 -# define SSL_F_DANE_CTX_ENABLE 347 -# define SSL_F_DANE_MTYPE_SET 393 -# define SSL_F_DANE_TLSA_ADD 394 -# define SSL_F_DO_DTLS1_WRITE 245 -# define SSL_F_DO_SSL3_WRITE 104 -# define SSL_F_DTLS1_BUFFER_RECORD 247 -# define SSL_F_DTLS1_CHECK_TIMEOUT_NUM 318 -# define SSL_F_DTLS1_HEARTBEAT 305 -# define SSL_F_DTLS1_PREPROCESS_FRAGMENT 288 -# define SSL_F_DTLS1_PROCESS_BUFFERED_RECORDS 424 -# define SSL_F_DTLS1_PROCESS_RECORD 257 -# define SSL_F_DTLS1_READ_BYTES 258 -# define SSL_F_DTLS1_READ_FAILED 339 -# define SSL_F_DTLS1_RETRANSMIT_MESSAGE 390 -# define SSL_F_DTLS1_WRITE_APP_DATA_BYTES 268 -# define SSL_F_DTLSV1_LISTEN 350 -# define SSL_F_DTLS_CONSTRUCT_CHANGE_CIPHER_SPEC 371 -# define SSL_F_DTLS_CONSTRUCT_HELLO_VERIFY_REQUEST 385 -# define SSL_F_DTLS_GET_REASSEMBLED_MESSAGE 370 -# define SSL_F_DTLS_PROCESS_HELLO_VERIFY 386 -# define SSL_F_DTLS_WAIT_FOR_DRY 592 -# define SSL_F_OPENSSL_INIT_SSL 342 -# define SSL_F_OSSL_STATEM_CLIENT_READ_TRANSITION 417 -# define SSL_F_OSSL_STATEM_SERVER_READ_TRANSITION 418 -# define SSL_F_READ_STATE_MACHINE 352 -# define SSL_F_SSL3_CHANGE_CIPHER_STATE 129 -# define SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM 130 -# define SSL_F_SSL3_CTRL 213 -# define SSL_F_SSL3_CTX_CTRL 133 -# define SSL_F_SSL3_DIGEST_CACHED_RECORDS 293 -# define SSL_F_SSL3_DO_CHANGE_CIPHER_SPEC 292 -# define SSL_F_SSL3_FINAL_FINISH_MAC 285 -# define SSL_F_SSL3_GENERATE_KEY_BLOCK 238 -# define SSL_F_SSL3_GENERATE_MASTER_SECRET 388 -# define SSL_F_SSL3_GET_RECORD 143 -# define SSL_F_SSL3_INIT_FINISHED_MAC 397 -# define SSL_F_SSL3_OUTPUT_CERT_CHAIN 147 -# define SSL_F_SSL3_READ_BYTES 148 -# define SSL_F_SSL3_READ_N 149 -# define SSL_F_SSL3_SETUP_KEY_BLOCK 157 -# define SSL_F_SSL3_SETUP_READ_BUFFER 156 -# define SSL_F_SSL3_SETUP_WRITE_BUFFER 291 -# define SSL_F_SSL3_TAKE_MAC 425 -# define SSL_F_SSL3_WRITE_BYTES 158 -# define SSL_F_SSL3_WRITE_PENDING 159 -# define SSL_F_SSL_ADD_CERT_CHAIN 316 -# define SSL_F_SSL_ADD_CERT_TO_BUF 319 -# define SSL_F_SSL_ADD_CLIENTHELLO_RENEGOTIATE_EXT 298 -# define SSL_F_SSL_ADD_CLIENTHELLO_TLSEXT 277 -# define SSL_F_SSL_ADD_CLIENTHELLO_USE_SRTP_EXT 307 -# define SSL_F_SSL_ADD_DIR_CERT_SUBJECTS_TO_STACK 215 -# define SSL_F_SSL_ADD_FILE_CERT_SUBJECTS_TO_STACK 216 -# define SSL_F_SSL_ADD_SERVERHELLO_RENEGOTIATE_EXT 299 -# define SSL_F_SSL_ADD_SERVERHELLO_TLSEXT 278 -# define SSL_F_SSL_ADD_SERVERHELLO_USE_SRTP_EXT 308 -# define SSL_F_SSL_BAD_METHOD 160 -# define SSL_F_SSL_BUILD_CERT_CHAIN 332 -# define SSL_F_SSL_BYTES_TO_CIPHER_LIST 161 -# define SSL_F_SSL_CERT_ADD0_CHAIN_CERT 346 -# define SSL_F_SSL_CERT_DUP 221 -# define SSL_F_SSL_CERT_NEW 162 -# define SSL_F_SSL_CERT_SET0_CHAIN 340 -# define SSL_F_SSL_CHECK_PRIVATE_KEY 163 -# define SSL_F_SSL_CHECK_SERVERHELLO_TLSEXT 280 -# define SSL_F_SSL_CHECK_SRVR_ECC_CERT_AND_ALG 279 -# define SSL_F_SSL_CIPHER_PROCESS_RULESTR 230 -# define SSL_F_SSL_CIPHER_STRENGTH_SORT 231 -# define SSL_F_SSL_CLEAR 164 -# define SSL_F_SSL_COMP_ADD_COMPRESSION_METHOD 165 -# define SSL_F_SSL_CONF_CMD 334 -# define SSL_F_SSL_CREATE_CIPHER_LIST 166 -# define SSL_F_SSL_CTRL 232 -# define SSL_F_SSL_CTX_CHECK_PRIVATE_KEY 168 -# define SSL_F_SSL_CTX_ENABLE_CT 398 -# define SSL_F_SSL_CTX_MAKE_PROFILES 309 -# define SSL_F_SSL_CTX_NEW 169 -# define SSL_F_SSL_CTX_SET_ALPN_PROTOS 343 -# define SSL_F_SSL_CTX_SET_CIPHER_LIST 269 -# define SSL_F_SSL_CTX_SET_CLIENT_CERT_ENGINE 290 -# define SSL_F_SSL_CTX_SET_CT_VALIDATION_CALLBACK 396 -# define SSL_F_SSL_CTX_SET_SESSION_ID_CONTEXT 219 -# define SSL_F_SSL_CTX_SET_SSL_VERSION 170 -# define SSL_F_SSL_CTX_USE_CERTIFICATE 171 -# define SSL_F_SSL_CTX_USE_CERTIFICATE_ASN1 172 -# define SSL_F_SSL_CTX_USE_CERTIFICATE_FILE 173 -# define SSL_F_SSL_CTX_USE_PRIVATEKEY 174 -# define SSL_F_SSL_CTX_USE_PRIVATEKEY_ASN1 175 -# define SSL_F_SSL_CTX_USE_PRIVATEKEY_FILE 176 -# define SSL_F_SSL_CTX_USE_PSK_IDENTITY_HINT 272 -# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY 177 -# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_ASN1 178 -# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_FILE 179 -# define SSL_F_SSL_CTX_USE_SERVERINFO 336 -# define SSL_F_SSL_CTX_USE_SERVERINFO_FILE 337 -# define SSL_F_SSL_DANE_DUP 403 -# define SSL_F_SSL_DANE_ENABLE 395 -# define SSL_F_SSL_DO_CONFIG 391 -# define SSL_F_SSL_DO_HANDSHAKE 180 -# define SSL_F_SSL_DUP_CA_LIST 408 -# define SSL_F_SSL_ENABLE_CT 402 -# define SSL_F_SSL_GET_NEW_SESSION 181 -# define SSL_F_SSL_GET_PREV_SESSION 217 -# define SSL_F_SSL_GET_SERVER_CERT_INDEX 322 -# define SSL_F_SSL_GET_SIGN_PKEY 183 -# define SSL_F_SSL_INIT_WBIO_BUFFER 184 -# define SSL_F_SSL_LOAD_CLIENT_CA_FILE 185 -# define SSL_F_SSL_MODULE_INIT 392 -# define SSL_F_SSL_NEW 186 -# define SSL_F_SSL_PARSE_CLIENTHELLO_RENEGOTIATE_EXT 300 -# define SSL_F_SSL_PARSE_CLIENTHELLO_TLSEXT 302 -# define SSL_F_SSL_PARSE_CLIENTHELLO_USE_SRTP_EXT 310 -# define SSL_F_SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT 301 -# define SSL_F_SSL_PARSE_SERVERHELLO_TLSEXT 303 -# define SSL_F_SSL_PARSE_SERVERHELLO_USE_SRTP_EXT 311 -# define SSL_F_SSL_PEEK 270 -# define SSL_F_SSL_READ 223 -# define SSL_F_SSL_RENEGOTIATE 516 -# define SSL_F_SSL_RENEGOTIATE_ABBREVIATED 546 -# define SSL_F_SSL_SCAN_CLIENTHELLO_TLSEXT 320 -# define SSL_F_SSL_SCAN_SERVERHELLO_TLSEXT 321 -# define SSL_F_SSL_SESSION_DUP 348 -# define SSL_F_SSL_SESSION_NEW 189 -# define SSL_F_SSL_SESSION_PRINT_FP 190 -# define SSL_F_SSL_SESSION_SET1_ID 423 -# define SSL_F_SSL_SESSION_SET1_ID_CONTEXT 312 -# define SSL_F_SSL_SET_ALPN_PROTOS 344 -# define SSL_F_SSL_SET_CERT 191 -# define SSL_F_SSL_SET_CIPHER_LIST 271 -# define SSL_F_SSL_SET_CT_VALIDATION_CALLBACK 399 -# define SSL_F_SSL_SET_FD 192 -# define SSL_F_SSL_SET_PKEY 193 -# define SSL_F_SSL_SET_RFD 194 -# define SSL_F_SSL_SET_SESSION 195 -# define SSL_F_SSL_SET_SESSION_ID_CONTEXT 218 -# define SSL_F_SSL_SET_SESSION_TICKET_EXT 294 -# define SSL_F_SSL_SET_WFD 196 -# define SSL_F_SSL_SHUTDOWN 224 -# define SSL_F_SSL_SRP_CTX_INIT 313 -# define SSL_F_SSL_START_ASYNC_JOB 389 -# define SSL_F_SSL_UNDEFINED_FUNCTION 197 -# define SSL_F_SSL_UNDEFINED_VOID_FUNCTION 244 -# define SSL_F_SSL_USE_CERTIFICATE 198 -# define SSL_F_SSL_USE_CERTIFICATE_ASN1 199 -# define SSL_F_SSL_USE_CERTIFICATE_FILE 200 -# define SSL_F_SSL_USE_PRIVATEKEY 201 -# define SSL_F_SSL_USE_PRIVATEKEY_ASN1 202 -# define SSL_F_SSL_USE_PRIVATEKEY_FILE 203 -# define SSL_F_SSL_USE_PSK_IDENTITY_HINT 273 -# define SSL_F_SSL_USE_RSAPRIVATEKEY 204 -# define SSL_F_SSL_USE_RSAPRIVATEKEY_ASN1 205 -# define SSL_F_SSL_USE_RSAPRIVATEKEY_FILE 206 -# define SSL_F_SSL_VALIDATE_CT 400 -# define SSL_F_SSL_VERIFY_CERT_CHAIN 207 -# define SSL_F_SSL_WRITE 208 -# define SSL_F_STATE_MACHINE 353 -# define SSL_F_TLS12_CHECK_PEER_SIGALG 333 -# define SSL_F_TLS1_CHANGE_CIPHER_STATE 209 -# define SSL_F_TLS1_CHECK_DUPLICATE_EXTENSIONS 341 -# define SSL_F_TLS1_ENC 401 -# define SSL_F_TLS1_EXPORT_KEYING_MATERIAL 314 -# define SSL_F_TLS1_GET_CURVELIST 338 -# define SSL_F_TLS1_PRF 284 -# define SSL_F_TLS1_SETUP_KEY_BLOCK 211 -# define SSL_F_TLS1_SET_SERVER_SIGALGS 335 -# define SSL_F_TLS_CLIENT_KEY_EXCHANGE_POST_WORK 354 -# define SSL_F_TLS_CONSTRUCT_CERTIFICATE_REQUEST 372 -# define SSL_F_TLS_CONSTRUCT_CKE_DHE 404 -# define SSL_F_TLS_CONSTRUCT_CKE_ECDHE 405 -# define SSL_F_TLS_CONSTRUCT_CKE_GOST 406 -# define SSL_F_TLS_CONSTRUCT_CKE_PSK_PREAMBLE 407 -# define SSL_F_TLS_CONSTRUCT_CKE_RSA 409 -# define SSL_F_TLS_CONSTRUCT_CKE_SRP 410 -# define SSL_F_TLS_CONSTRUCT_CLIENT_CERTIFICATE 355 -# define SSL_F_TLS_CONSTRUCT_CLIENT_HELLO 356 -# define SSL_F_TLS_CONSTRUCT_CLIENT_KEY_EXCHANGE 357 -# define SSL_F_TLS_CONSTRUCT_CLIENT_VERIFY 358 -# define SSL_F_TLS_CONSTRUCT_FINISHED 359 -# define SSL_F_TLS_CONSTRUCT_HELLO_REQUEST 373 -# define SSL_F_TLS_CONSTRUCT_NEW_SESSION_TICKET 428 -# define SSL_F_TLS_CONSTRUCT_SERVER_CERTIFICATE 374 -# define SSL_F_TLS_CONSTRUCT_SERVER_DONE 375 -# define SSL_F_TLS_CONSTRUCT_SERVER_HELLO 376 -# define SSL_F_TLS_CONSTRUCT_SERVER_KEY_EXCHANGE 377 -# define SSL_F_TLS_GET_MESSAGE_BODY 351 -# define SSL_F_TLS_GET_MESSAGE_HEADER 387 -# define SSL_F_TLS_POST_PROCESS_CLIENT_HELLO 378 -# define SSL_F_TLS_POST_PROCESS_CLIENT_KEY_EXCHANGE 384 -# define SSL_F_TLS_PREPARE_CLIENT_CERTIFICATE 360 -# define SSL_F_TLS_PROCESS_CERTIFICATE_REQUEST 361 -# define SSL_F_TLS_PROCESS_CERT_STATUS 362 -# define SSL_F_TLS_PROCESS_CERT_VERIFY 379 -# define SSL_F_TLS_PROCESS_CHANGE_CIPHER_SPEC 363 -# define SSL_F_TLS_PROCESS_CKE_DHE 411 -# define SSL_F_TLS_PROCESS_CKE_ECDHE 412 -# define SSL_F_TLS_PROCESS_CKE_GOST 413 -# define SSL_F_TLS_PROCESS_CKE_PSK_PREAMBLE 414 -# define SSL_F_TLS_PROCESS_CKE_RSA 415 -# define SSL_F_TLS_PROCESS_CKE_SRP 416 -# define SSL_F_TLS_PROCESS_CLIENT_CERTIFICATE 380 -# define SSL_F_TLS_PROCESS_CLIENT_HELLO 381 -# define SSL_F_TLS_PROCESS_CLIENT_KEY_EXCHANGE 382 -# define SSL_F_TLS_PROCESS_FINISHED 364 -# define SSL_F_TLS_PROCESS_KEY_EXCHANGE 365 -# define SSL_F_TLS_PROCESS_NEW_SESSION_TICKET 366 -# define SSL_F_TLS_PROCESS_NEXT_PROTO 383 -# define SSL_F_TLS_PROCESS_SERVER_CERTIFICATE 367 -# define SSL_F_TLS_PROCESS_SERVER_DONE 368 -# define SSL_F_TLS_PROCESS_SERVER_HELLO 369 -# define SSL_F_TLS_PROCESS_SKE_DHE 419 -# define SSL_F_TLS_PROCESS_SKE_ECDHE 420 -# define SSL_F_TLS_PROCESS_SKE_PSK_PREAMBLE 421 -# define SSL_F_TLS_PROCESS_SKE_SRP 422 -# define SSL_F_USE_CERTIFICATE_CHAIN_FILE 220 - -/* Reason codes. */ -# define SSL_R_APP_DATA_IN_HANDSHAKE 100 -# define SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT 272 -# define SSL_R_AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE 143 -# define SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE 158 -# define SSL_R_BAD_CHANGE_CIPHER_SPEC 103 -# define SSL_R_BAD_DATA 390 -# define SSL_R_BAD_DATA_RETURNED_BY_CALLBACK 106 -# define SSL_R_BAD_DECOMPRESSION 107 -# define SSL_R_BAD_DH_VALUE 102 -# define SSL_R_BAD_DIGEST_LENGTH 111 -# define SSL_R_BAD_ECC_CERT 304 -# define SSL_R_BAD_ECPOINT 306 -# define SSL_R_BAD_HANDSHAKE_LENGTH 332 -# define SSL_R_BAD_HELLO_REQUEST 105 -# define SSL_R_BAD_LENGTH 271 -# define SSL_R_BAD_PACKET_LENGTH 115 -# define SSL_R_BAD_PROTOCOL_VERSION_NUMBER 116 -# define SSL_R_BAD_RSA_ENCRYPT 119 -# define SSL_R_BAD_SIGNATURE 123 -# define SSL_R_BAD_SRP_A_LENGTH 347 -# define SSL_R_BAD_SRP_PARAMETERS 371 -# define SSL_R_BAD_SRTP_MKI_VALUE 352 -# define SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST 353 -# define SSL_R_BAD_SSL_FILETYPE 124 -# define SSL_R_BAD_VALUE 384 -# define SSL_R_BAD_WRITE_RETRY 127 -# define SSL_R_BIO_NOT_SET 128 -# define SSL_R_BLOCK_CIPHER_PAD_IS_WRONG 129 -# define SSL_R_BN_LIB 130 -# define SSL_R_CA_DN_LENGTH_MISMATCH 131 -# define SSL_R_CA_KEY_TOO_SMALL 397 -# define SSL_R_CA_MD_TOO_WEAK 398 -# define SSL_R_CCS_RECEIVED_EARLY 133 -# define SSL_R_CERTIFICATE_VERIFY_FAILED 134 -# define SSL_R_CERT_CB_ERROR 377 -# define SSL_R_CERT_LENGTH_MISMATCH 135 -# define SSL_R_CIPHER_CODE_WRONG_LENGTH 137 -# define SSL_R_CIPHER_OR_HASH_UNAVAILABLE 138 -# define SSL_R_CLIENTHELLO_TLSEXT 226 -# define SSL_R_COMPRESSED_LENGTH_TOO_LONG 140 -# define SSL_R_COMPRESSION_DISABLED 343 -# define SSL_R_COMPRESSION_FAILURE 141 -# define SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE 307 -# define SSL_R_COMPRESSION_LIBRARY_ERROR 142 -# define SSL_R_CONNECTION_TYPE_NOT_SET 144 -# define SSL_R_CONTEXT_NOT_DANE_ENABLED 167 -# define SSL_R_COOKIE_GEN_CALLBACK_FAILURE 400 -# define SSL_R_COOKIE_MISMATCH 308 -# define SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED 206 -# define SSL_R_DANE_ALREADY_ENABLED 172 -# define SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL 173 -# define SSL_R_DANE_NOT_ENABLED 175 -# define SSL_R_DANE_TLSA_BAD_CERTIFICATE 180 -# define SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE 184 -# define SSL_R_DANE_TLSA_BAD_DATA_LENGTH 189 -# define SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH 192 -# define SSL_R_DANE_TLSA_BAD_MATCHING_TYPE 200 -# define SSL_R_DANE_TLSA_BAD_PUBLIC_KEY 201 -# define SSL_R_DANE_TLSA_BAD_SELECTOR 202 -# define SSL_R_DANE_TLSA_NULL_DATA 203 -# define SSL_R_DATA_BETWEEN_CCS_AND_FINISHED 145 -# define SSL_R_DATA_LENGTH_TOO_LONG 146 -# define SSL_R_DECRYPTION_FAILED 147 -# define SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC 281 -# define SSL_R_DH_KEY_TOO_SMALL 394 -# define SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG 148 -# define SSL_R_DIGEST_CHECK_FAILED 149 -# define SSL_R_DTLS_MESSAGE_TOO_BIG 334 -# define SSL_R_DUPLICATE_COMPRESSION_ID 309 -# define SSL_R_ECC_CERT_NOT_FOR_SIGNING 318 -# define SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE 374 -# define SSL_R_EE_KEY_TOO_SMALL 399 -# define SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST 354 -# define SSL_R_ENCRYPTED_LENGTH_TOO_LONG 150 -# define SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST 151 -# define SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN 204 -# define SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE 194 -# define SSL_R_EXCESSIVE_MESSAGE_SIZE 152 -# define SSL_R_EXTRA_DATA_IN_MESSAGE 153 -# define SSL_R_FAILED_TO_INIT_ASYNC 405 -# define SSL_R_FRAGMENTED_CLIENT_HELLO 401 -# define SSL_R_GOT_A_FIN_BEFORE_A_CCS 154 -# define SSL_R_HTTPS_PROXY_REQUEST 155 -# define SSL_R_HTTP_REQUEST 156 -# define SSL_R_ILLEGAL_SUITEB_DIGEST 380 -# define SSL_R_INAPPROPRIATE_FALLBACK 373 -# define SSL_R_INCONSISTENT_COMPRESSION 340 -# define SSL_R_INCONSISTENT_EXTMS 104 -# define SSL_R_INVALID_COMMAND 280 -# define SSL_R_INVALID_COMPRESSION_ALGORITHM 341 -# define SSL_R_INVALID_CONFIGURATION_NAME 113 -# define SSL_R_INVALID_CT_VALIDATION_TYPE 212 -# define SSL_R_INVALID_NULL_CMD_NAME 385 -# define SSL_R_INVALID_SEQUENCE_NUMBER 402 -# define SSL_R_INVALID_SERVERINFO_DATA 388 -# define SSL_R_INVALID_SRP_USERNAME 357 -# define SSL_R_INVALID_STATUS_RESPONSE 328 -# define SSL_R_INVALID_TICKET_KEYS_LENGTH 325 -# define SSL_R_LENGTH_MISMATCH 159 -# define SSL_R_LENGTH_TOO_LONG 404 -# define SSL_R_LENGTH_TOO_SHORT 160 -# define SSL_R_LIBRARY_BUG 274 -# define SSL_R_LIBRARY_HAS_NO_CIPHERS 161 -# define SSL_R_MISSING_DSA_SIGNING_CERT 165 -# define SSL_R_MISSING_ECDSA_SIGNING_CERT 381 -# define SSL_R_MISSING_RSA_CERTIFICATE 168 -# define SSL_R_MISSING_RSA_ENCRYPTING_CERT 169 -# define SSL_R_MISSING_RSA_SIGNING_CERT 170 -# define SSL_R_MISSING_SRP_PARAM 358 -# define SSL_R_MISSING_TMP_DH_KEY 171 -# define SSL_R_MISSING_TMP_ECDH_KEY 311 -# define SSL_R_NO_CERTIFICATES_RETURNED 176 -# define SSL_R_NO_CERTIFICATE_ASSIGNED 177 -# define SSL_R_NO_CERTIFICATE_SET 179 -# define SSL_R_NO_CIPHERS_AVAILABLE 181 -# define SSL_R_NO_CIPHERS_SPECIFIED 183 -# define SSL_R_NO_CIPHER_MATCH 185 -# define SSL_R_NO_CLIENT_CERT_METHOD 331 -# define SSL_R_NO_COMPRESSION_SPECIFIED 187 -# define SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER 330 -# define SSL_R_NO_METHOD_SPECIFIED 188 -# define SSL_R_NO_PEM_EXTENSIONS 389 -# define SSL_R_NO_PRIVATE_KEY_ASSIGNED 190 -# define SSL_R_NO_PROTOCOLS_AVAILABLE 191 -# define SSL_R_NO_RENEGOTIATION 339 -# define SSL_R_NO_REQUIRED_DIGEST 324 -# define SSL_R_NO_SHARED_CIPHER 193 -# define SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS 376 -# define SSL_R_NO_SRTP_PROFILES 359 -# define SSL_R_NO_VALID_SCTS 216 -# define SSL_R_NO_VERIFY_COOKIE_CALLBACK 403 -# define SSL_R_NULL_SSL_CTX 195 -# define SSL_R_NULL_SSL_METHOD_PASSED 196 -# define SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED 197 -# define SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED 344 -# define SSL_R_PACKET_LENGTH_TOO_LONG 198 -# define SSL_R_PARSE_TLSEXT 227 -# define SSL_R_PATH_TOO_LONG 270 -# define SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE 199 -# define SSL_R_PEM_NAME_BAD_PREFIX 391 -# define SSL_R_PEM_NAME_TOO_SHORT 392 -# define SSL_R_PIPELINE_FAILURE 406 -# define SSL_R_PROTOCOL_IS_SHUTDOWN 207 -# define SSL_R_PSK_IDENTITY_NOT_FOUND 223 -# define SSL_R_PSK_NO_CLIENT_CB 224 -# define SSL_R_PSK_NO_SERVER_CB 225 -# define SSL_R_READ_BIO_NOT_SET 211 -# define SSL_R_READ_TIMEOUT_EXPIRED 312 -# define SSL_R_RECORD_LENGTH_MISMATCH 213 -# define SSL_R_RECORD_TOO_SMALL 298 -# define SSL_R_RENEGOTIATE_EXT_TOO_LONG 335 -# define SSL_R_RENEGOTIATION_ENCODING_ERR 336 -# define SSL_R_RENEGOTIATION_MISMATCH 337 -# define SSL_R_REQUIRED_CIPHER_MISSING 215 -# define SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING 342 -# define SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING 345 -# define SSL_R_SCT_VERIFICATION_FAILED 208 -# define SSL_R_SERVERHELLO_TLSEXT 275 -# define SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED 277 -# define SSL_R_SHUTDOWN_WHILE_IN_INIT 407 -# define SSL_R_SIGNATURE_ALGORITHMS_ERROR 360 -# define SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE 220 -# define SSL_R_SRP_A_CALC 361 -# define SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES 362 -# define SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG 363 -# define SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE 364 -# define SSL_R_SSL3_EXT_INVALID_SERVERNAME 319 -# define SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE 320 -# define SSL_R_SSL3_SESSION_ID_TOO_LONG 300 -# define SSL_R_SSLV3_ALERT_BAD_CERTIFICATE 1042 -# define SSL_R_SSLV3_ALERT_BAD_RECORD_MAC 1020 -# define SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED 1045 -# define SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED 1044 -# define SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN 1046 -# define SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE 1030 -# define SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE 1040 -# define SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER 1047 -# define SSL_R_SSLV3_ALERT_NO_CERTIFICATE 1041 -# define SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE 1010 -# define SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE 1043 -# define SSL_R_SSL_COMMAND_SECTION_EMPTY 117 -# define SSL_R_SSL_COMMAND_SECTION_NOT_FOUND 125 -# define SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION 228 -# define SSL_R_SSL_HANDSHAKE_FAILURE 229 -# define SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS 230 -# define SSL_R_SSL_NEGATIVE_LENGTH 372 -# define SSL_R_SSL_SECTION_EMPTY 126 -# define SSL_R_SSL_SECTION_NOT_FOUND 136 -# define SSL_R_SSL_SESSION_ID_CALLBACK_FAILED 301 -# define SSL_R_SSL_SESSION_ID_CONFLICT 302 -# define SSL_R_SSL_SESSION_ID_TOO_LONG 408 -# define SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG 273 -# define SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH 303 -# define SSL_R_SSL_SESSION_VERSION_MISMATCH 210 -# define SSL_R_TLSV1_ALERT_ACCESS_DENIED 1049 -# define SSL_R_TLSV1_ALERT_DECODE_ERROR 1050 -# define SSL_R_TLSV1_ALERT_DECRYPTION_FAILED 1021 -# define SSL_R_TLSV1_ALERT_DECRYPT_ERROR 1051 -# define SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION 1060 -# define SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK 1086 -# define SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY 1071 -# define SSL_R_TLSV1_ALERT_INTERNAL_ERROR 1080 -# define SSL_R_TLSV1_ALERT_NO_RENEGOTIATION 1100 -# define SSL_R_TLSV1_ALERT_PROTOCOL_VERSION 1070 -# define SSL_R_TLSV1_ALERT_RECORD_OVERFLOW 1022 -# define SSL_R_TLSV1_ALERT_UNKNOWN_CA 1048 -# define SSL_R_TLSV1_ALERT_USER_CANCELLED 1090 -# define SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE 1114 -# define SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE 1113 -# define SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE 1111 -# define SSL_R_TLSV1_UNRECOGNIZED_NAME 1112 -# define SSL_R_TLSV1_UNSUPPORTED_EXTENSION 1110 -# define SSL_R_TLS_HEARTBEAT_PEER_DOESNT_ACCEPT 365 -# define SSL_R_TLS_HEARTBEAT_PENDING 366 -# define SSL_R_TLS_ILLEGAL_EXPORTER_LABEL 367 -# define SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST 157 -# define SSL_R_TOO_MANY_WARN_ALERTS 409 -# define SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS 314 -# define SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS 239 -# define SSL_R_UNABLE_TO_LOAD_SSL3_MD5_ROUTINES 242 -# define SSL_R_UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES 243 -# define SSL_R_UNEXPECTED_MESSAGE 244 -# define SSL_R_UNEXPECTED_RECORD 245 -# define SSL_R_UNINITIALIZED 276 -# define SSL_R_UNKNOWN_ALERT_TYPE 246 -# define SSL_R_UNKNOWN_CERTIFICATE_TYPE 247 -# define SSL_R_UNKNOWN_CIPHER_RETURNED 248 -# define SSL_R_UNKNOWN_CIPHER_TYPE 249 -# define SSL_R_UNKNOWN_CMD_NAME 386 -# define SSL_R_UNKNOWN_COMMAND 139 -# define SSL_R_UNKNOWN_DIGEST 368 -# define SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE 250 -# define SSL_R_UNKNOWN_PKEY_TYPE 251 -# define SSL_R_UNKNOWN_PROTOCOL 252 -# define SSL_R_UNKNOWN_SSL_VERSION 254 -# define SSL_R_UNKNOWN_STATE 255 -# define SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED 338 -# define SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM 257 -# define SSL_R_UNSUPPORTED_ELLIPTIC_CURVE 315 -# define SSL_R_UNSUPPORTED_PROTOCOL 258 -# define SSL_R_UNSUPPORTED_SSL_VERSION 259 -# define SSL_R_UNSUPPORTED_STATUS_TYPE 329 -# define SSL_R_USE_SRTP_NOT_NEGOTIATED 369 -# define SSL_R_VERSION_TOO_HIGH 166 -# define SSL_R_VERSION_TOO_LOW 396 -# define SSL_R_WRONG_CERTIFICATE_TYPE 383 -# define SSL_R_WRONG_CIPHER_RETURNED 261 -# define SSL_R_WRONG_CURVE 378 -# define SSL_R_WRONG_SIGNATURE_LENGTH 264 -# define SSL_R_WRONG_SIGNATURE_SIZE 265 -# define SSL_R_WRONG_SIGNATURE_TYPE 370 -# define SSL_R_WRONG_SSL_VERSION 266 -# define SSL_R_WRONG_VERSION_NUMBER 267 -# define SSL_R_X509_LIB 268 -# define SSL_R_X509_VERIFICATION_SETUP_PROBLEMS 269 +typedef int (*SSL_allow_early_data_cb_fn)(SSL *s, void *arg); +void SSL_CTX_set_allow_early_data_cb(SSL_CTX *ctx, + SSL_allow_early_data_cb_fn cb, + void *arg); +void SSL_set_allow_early_data_cb(SSL *s, + SSL_allow_early_data_cb_fn cb, + void *arg); # ifdef __cplusplus } diff --git a/noarch/include/node/openssl/ssl3.h b/noarch/include/node/openssl/ssl3.h index 115940ad..8d01fcc4 100644 --- a/noarch/include/node/openssl/ssl3.h +++ b/noarch/include/node/openssl/ssl3.h @@ -1,5 +1,6 @@ /* * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -7,12 +8,6 @@ * https://www.openssl.org/source/license.html */ -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * ECC cipher suite support in OpenSSL originally developed by - * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. - */ - #ifndef HEADER_SSL3_H # define HEADER_SSL3_H @@ -74,6 +69,18 @@ extern "C" { # define SSL3_CK_ADH_DES_64_CBC_SHA 0x0300001A # define SSL3_CK_ADH_DES_192_CBC_SHA 0x0300001B +/* a bundle of RFC standard cipher names, generated from ssl3_ciphers[] */ +# define SSL3_RFC_RSA_NULL_MD5 "TLS_RSA_WITH_NULL_MD5" +# define SSL3_RFC_RSA_NULL_SHA "TLS_RSA_WITH_NULL_SHA" +# define SSL3_RFC_RSA_DES_192_CBC3_SHA "TLS_RSA_WITH_3DES_EDE_CBC_SHA" +# define SSL3_RFC_DHE_DSS_DES_192_CBC3_SHA "TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA" +# define SSL3_RFC_DHE_RSA_DES_192_CBC3_SHA "TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA" +# define SSL3_RFC_ADH_DES_192_CBC_SHA "TLS_DH_anon_WITH_3DES_EDE_CBC_SHA" +# define SSL3_RFC_RSA_IDEA_128_SHA "TLS_RSA_WITH_IDEA_CBC_SHA" +# define SSL3_RFC_RSA_RC4_128_MD5 "TLS_RSA_WITH_RC4_128_MD5" +# define SSL3_RFC_RSA_RC4_128_SHA "TLS_RSA_WITH_RC4_128_SHA" +# define SSL3_RFC_ADH_RC4_128_MD5 "TLS_DH_anon_WITH_RC4_128_MD5" + # define SSL3_TXT_RSA_NULL_MD5 "NULL-MD5" # define SSL3_TXT_RSA_NULL_SHA "NULL-SHA" # define SSL3_TXT_RSA_RC4_40_MD5 "EXP-RC4-MD5" @@ -170,7 +177,8 @@ extern "C" { * practice the value is lower than this. The overhead is the maximum number * of padding bytes (256) plus the mac size. */ -# define SSL3_RT_MAX_ENCRYPTED_OVERHEAD (256 + SSL3_RT_MAX_MD_SIZE) +# define SSL3_RT_MAX_ENCRYPTED_OVERHEAD (256 + SSL3_RT_MAX_MD_SIZE) +# define SSL3_RT_MAX_TLS13_ENCRYPTED_OVERHEAD 256 /* * OpenSSL currently only uses a padding length of at most one block so the @@ -186,12 +194,14 @@ extern "C" { # define SSL3_RT_MAX_COMPRESSED_LENGTH SSL3_RT_MAX_PLAIN_LENGTH # else # define SSL3_RT_MAX_COMPRESSED_LENGTH \ - (SSL3_RT_MAX_PLAIN_LENGTH+SSL3_RT_MAX_COMPRESSED_OVERHEAD) + (SSL3_RT_MAX_PLAIN_LENGTH+SSL3_RT_MAX_COMPRESSED_OVERHEAD) # endif # define SSL3_RT_MAX_ENCRYPTED_LENGTH \ - (SSL3_RT_MAX_ENCRYPTED_OVERHEAD+SSL3_RT_MAX_COMPRESSED_LENGTH) + (SSL3_RT_MAX_ENCRYPTED_OVERHEAD+SSL3_RT_MAX_COMPRESSED_LENGTH) +# define SSL3_RT_MAX_TLS13_ENCRYPTED_LENGTH \ + (SSL3_RT_MAX_PLAIN_LENGTH + SSL3_RT_MAX_TLS13_ENCRYPTED_OVERHEAD) # define SSL3_RT_MAX_PACKET_SIZE \ - (SSL3_RT_MAX_ENCRYPTED_LENGTH+SSL3_RT_HEADER_LENGTH) + (SSL3_RT_MAX_ENCRYPTED_LENGTH+SSL3_RT_HEADER_LENGTH) # define SSL3_MD_CLIENT_FINISHED_CONST "\x43\x4C\x4E\x54" # define SSL3_MD_SERVER_FINISHED_CONST "\x53\x52\x56\x52" @@ -220,8 +230,9 @@ extern "C" { # define TLS1_RT_CRYPTO_IV (TLS1_RT_CRYPTO | 0x7) # define TLS1_RT_CRYPTO_FIXED_IV (TLS1_RT_CRYPTO | 0x8) -/* Pseudo content type for SSL/TLS header info */ +/* Pseudo content types for SSL/TLS header info */ # define SSL3_RT_HEADER 0x100 +# define SSL3_RT_INNER_CONTENT_TYPE 0x101 # define SSL3_AL_WARNING 1 # define SSL3_AL_FATAL 2 @@ -262,6 +273,7 @@ extern "C" { # endif # endif +/* No longer used as of OpenSSL 1.1.1 */ # define SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS 0x0001 /* Removed from OpenSSL 1.1.0 */ @@ -278,10 +290,14 @@ extern "C" { # define TLS1_FLAGS_ENCRYPT_THEN_MAC_WRITE 0x0400 +# define TLS1_FLAGS_STATELESS 0x0800 + # define SSL3_MT_HELLO_REQUEST 0 # define SSL3_MT_CLIENT_HELLO 1 # define SSL3_MT_SERVER_HELLO 2 # define SSL3_MT_NEWSESSION_TICKET 4 +# define SSL3_MT_END_OF_EARLY_DATA 5 +# define SSL3_MT_ENCRYPTED_EXTENSIONS 8 # define SSL3_MT_CERTIFICATE 11 # define SSL3_MT_SERVER_KEY_EXCHANGE 12 # define SSL3_MT_CERTIFICATE_REQUEST 13 @@ -289,11 +305,15 @@ extern "C" { # define SSL3_MT_CERTIFICATE_VERIFY 15 # define SSL3_MT_CLIENT_KEY_EXCHANGE 16 # define SSL3_MT_FINISHED 20 +# define SSL3_MT_CERTIFICATE_URL 21 # define SSL3_MT_CERTIFICATE_STATUS 22 +# define SSL3_MT_SUPPLEMENTAL_DATA 23 +# define SSL3_MT_KEY_UPDATE 24 # ifndef OPENSSL_NO_NEXTPROTONEG -# define SSL3_MT_NEXT_PROTO 67 +# define SSL3_MT_NEXT_PROTO 67 # endif -# define DTLS1_MT_HELLO_VERIFY_REQUEST 3 +# define SSL3_MT_MESSAGE_HASH 254 +# define DTLS1_MT_HELLO_VERIFY_REQUEST 3 /* Dummy message type for handling CCS like a normal handshake message */ # define SSL3_MT_CHANGE_CIPHER_SPEC 0x0101 @@ -301,10 +321,13 @@ extern "C" { # define SSL3_MT_CCS 1 /* These are used when changing over to a new cipher */ -# define SSL3_CC_READ 0x01 -# define SSL3_CC_WRITE 0x02 -# define SSL3_CC_CLIENT 0x10 -# define SSL3_CC_SERVER 0x20 +# define SSL3_CC_READ 0x001 +# define SSL3_CC_WRITE 0x002 +# define SSL3_CC_CLIENT 0x010 +# define SSL3_CC_SERVER 0x020 +# define SSL3_CC_EARLY 0x040 +# define SSL3_CC_HANDSHAKE 0x080 +# define SSL3_CC_APPLICATION 0x100 # define SSL3_CHANGE_CIPHER_CLIENT_WRITE (SSL3_CC_CLIENT|SSL3_CC_WRITE) # define SSL3_CHANGE_CIPHER_SERVER_READ (SSL3_CC_SERVER|SSL3_CC_READ) # define SSL3_CHANGE_CIPHER_CLIENT_READ (SSL3_CC_CLIENT|SSL3_CC_READ) diff --git a/noarch/include/node/openssl/sslerr.h b/noarch/include/node/openssl/sslerr.h new file mode 100644 index 00000000..a50a075b --- /dev/null +++ b/noarch/include/node/openssl/sslerr.h @@ -0,0 +1,768 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_SSLERR_H +# define HEADER_SSLERR_H + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_SSL_strings(void); + +/* + * SSL function codes. + */ +# define SSL_F_ADD_CLIENT_KEY_SHARE_EXT 438 +# define SSL_F_ADD_KEY_SHARE 512 +# define SSL_F_BYTES_TO_CIPHER_LIST 519 +# define SSL_F_CHECK_SUITEB_CIPHER_LIST 331 +# define SSL_F_CIPHERSUITE_CB 622 +# define SSL_F_CONSTRUCT_CA_NAMES 552 +# define SSL_F_CONSTRUCT_KEY_EXCHANGE_TBS 553 +# define SSL_F_CONSTRUCT_STATEFUL_TICKET 636 +# define SSL_F_CONSTRUCT_STATELESS_TICKET 637 +# define SSL_F_CREATE_SYNTHETIC_MESSAGE_HASH 539 +# define SSL_F_CREATE_TICKET_PREQUEL 638 +# define SSL_F_CT_MOVE_SCTS 345 +# define SSL_F_CT_STRICT 349 +# define SSL_F_CUSTOM_EXT_ADD 554 +# define SSL_F_CUSTOM_EXT_PARSE 555 +# define SSL_F_D2I_SSL_SESSION 103 +# define SSL_F_DANE_CTX_ENABLE 347 +# define SSL_F_DANE_MTYPE_SET 393 +# define SSL_F_DANE_TLSA_ADD 394 +# define SSL_F_DERIVE_SECRET_KEY_AND_IV 514 +# define SSL_F_DO_DTLS1_WRITE 245 +# define SSL_F_DO_SSL3_WRITE 104 +# define SSL_F_DTLS1_BUFFER_RECORD 247 +# define SSL_F_DTLS1_CHECK_TIMEOUT_NUM 318 +# define SSL_F_DTLS1_HEARTBEAT 305 +# define SSL_F_DTLS1_HM_FRAGMENT_NEW 623 +# define SSL_F_DTLS1_PREPROCESS_FRAGMENT 288 +# define SSL_F_DTLS1_PROCESS_BUFFERED_RECORDS 424 +# define SSL_F_DTLS1_PROCESS_RECORD 257 +# define SSL_F_DTLS1_READ_BYTES 258 +# define SSL_F_DTLS1_READ_FAILED 339 +# define SSL_F_DTLS1_RETRANSMIT_MESSAGE 390 +# define SSL_F_DTLS1_WRITE_APP_DATA_BYTES 268 +# define SSL_F_DTLS1_WRITE_BYTES 545 +# define SSL_F_DTLSV1_LISTEN 350 +# define SSL_F_DTLS_CONSTRUCT_CHANGE_CIPHER_SPEC 371 +# define SSL_F_DTLS_CONSTRUCT_HELLO_VERIFY_REQUEST 385 +# define SSL_F_DTLS_GET_REASSEMBLED_MESSAGE 370 +# define SSL_F_DTLS_PROCESS_HELLO_VERIFY 386 +# define SSL_F_DTLS_RECORD_LAYER_NEW 635 +# define SSL_F_DTLS_WAIT_FOR_DRY 592 +# define SSL_F_EARLY_DATA_COUNT_OK 532 +# define SSL_F_FINAL_EARLY_DATA 556 +# define SSL_F_FINAL_EC_PT_FORMATS 485 +# define SSL_F_FINAL_EMS 486 +# define SSL_F_FINAL_KEY_SHARE 503 +# define SSL_F_FINAL_MAXFRAGMENTLEN 557 +# define SSL_F_FINAL_RENEGOTIATE 483 +# define SSL_F_FINAL_SERVER_NAME 558 +# define SSL_F_FINAL_SIG_ALGS 497 +# define SSL_F_GET_CERT_VERIFY_TBS_DATA 588 +# define SSL_F_NSS_KEYLOG_INT 500 +# define SSL_F_OPENSSL_INIT_SSL 342 +# define SSL_F_OSSL_STATEM_CLIENT13_READ_TRANSITION 436 +# define SSL_F_OSSL_STATEM_CLIENT13_WRITE_TRANSITION 598 +# define SSL_F_OSSL_STATEM_CLIENT_CONSTRUCT_MESSAGE 430 +# define SSL_F_OSSL_STATEM_CLIENT_POST_PROCESS_MESSAGE 593 +# define SSL_F_OSSL_STATEM_CLIENT_PROCESS_MESSAGE 594 +# define SSL_F_OSSL_STATEM_CLIENT_READ_TRANSITION 417 +# define SSL_F_OSSL_STATEM_CLIENT_WRITE_TRANSITION 599 +# define SSL_F_OSSL_STATEM_SERVER13_READ_TRANSITION 437 +# define SSL_F_OSSL_STATEM_SERVER13_WRITE_TRANSITION 600 +# define SSL_F_OSSL_STATEM_SERVER_CONSTRUCT_MESSAGE 431 +# define SSL_F_OSSL_STATEM_SERVER_POST_PROCESS_MESSAGE 601 +# define SSL_F_OSSL_STATEM_SERVER_POST_WORK 602 +# define SSL_F_OSSL_STATEM_SERVER_PROCESS_MESSAGE 603 +# define SSL_F_OSSL_STATEM_SERVER_READ_TRANSITION 418 +# define SSL_F_OSSL_STATEM_SERVER_WRITE_TRANSITION 604 +# define SSL_F_PARSE_CA_NAMES 541 +# define SSL_F_PITEM_NEW 624 +# define SSL_F_PQUEUE_NEW 625 +# define SSL_F_PROCESS_KEY_SHARE_EXT 439 +# define SSL_F_READ_STATE_MACHINE 352 +# define SSL_F_SET_CLIENT_CIPHERSUITE 540 +# define SSL_F_SRP_GENERATE_CLIENT_MASTER_SECRET 595 +# define SSL_F_SRP_GENERATE_SERVER_MASTER_SECRET 589 +# define SSL_F_SRP_VERIFY_SERVER_PARAM 596 +# define SSL_F_SSL3_CHANGE_CIPHER_STATE 129 +# define SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM 130 +# define SSL_F_SSL3_CTRL 213 +# define SSL_F_SSL3_CTX_CTRL 133 +# define SSL_F_SSL3_DIGEST_CACHED_RECORDS 293 +# define SSL_F_SSL3_DO_CHANGE_CIPHER_SPEC 292 +# define SSL_F_SSL3_ENC 608 +# define SSL_F_SSL3_FINAL_FINISH_MAC 285 +# define SSL_F_SSL3_FINISH_MAC 587 +# define SSL_F_SSL3_GENERATE_KEY_BLOCK 238 +# define SSL_F_SSL3_GENERATE_MASTER_SECRET 388 +# define SSL_F_SSL3_GET_RECORD 143 +# define SSL_F_SSL3_INIT_FINISHED_MAC 397 +# define SSL_F_SSL3_OUTPUT_CERT_CHAIN 147 +# define SSL_F_SSL3_READ_BYTES 148 +# define SSL_F_SSL3_READ_N 149 +# define SSL_F_SSL3_SETUP_KEY_BLOCK 157 +# define SSL_F_SSL3_SETUP_READ_BUFFER 156 +# define SSL_F_SSL3_SETUP_WRITE_BUFFER 291 +# define SSL_F_SSL3_WRITE_BYTES 158 +# define SSL_F_SSL3_WRITE_PENDING 159 +# define SSL_F_SSL_ADD_CERT_CHAIN 316 +# define SSL_F_SSL_ADD_CERT_TO_BUF 319 +# define SSL_F_SSL_ADD_CERT_TO_WPACKET 493 +# define SSL_F_SSL_ADD_CLIENTHELLO_RENEGOTIATE_EXT 298 +# define SSL_F_SSL_ADD_CLIENTHELLO_TLSEXT 277 +# define SSL_F_SSL_ADD_CLIENTHELLO_USE_SRTP_EXT 307 +# define SSL_F_SSL_ADD_DIR_CERT_SUBJECTS_TO_STACK 215 +# define SSL_F_SSL_ADD_FILE_CERT_SUBJECTS_TO_STACK 216 +# define SSL_F_SSL_ADD_SERVERHELLO_RENEGOTIATE_EXT 299 +# define SSL_F_SSL_ADD_SERVERHELLO_TLSEXT 278 +# define SSL_F_SSL_ADD_SERVERHELLO_USE_SRTP_EXT 308 +# define SSL_F_SSL_BAD_METHOD 160 +# define SSL_F_SSL_BUILD_CERT_CHAIN 332 +# define SSL_F_SSL_BYTES_TO_CIPHER_LIST 161 +# define SSL_F_SSL_CACHE_CIPHERLIST 520 +# define SSL_F_SSL_CERT_ADD0_CHAIN_CERT 346 +# define SSL_F_SSL_CERT_DUP 221 +# define SSL_F_SSL_CERT_NEW 162 +# define SSL_F_SSL_CERT_SET0_CHAIN 340 +# define SSL_F_SSL_CHECK_PRIVATE_KEY 163 +# define SSL_F_SSL_CHECK_SERVERHELLO_TLSEXT 280 +# define SSL_F_SSL_CHECK_SRP_EXT_CLIENTHELLO 606 +# define SSL_F_SSL_CHECK_SRVR_ECC_CERT_AND_ALG 279 +# define SSL_F_SSL_CHOOSE_CLIENT_VERSION 607 +# define SSL_F_SSL_CIPHER_DESCRIPTION 626 +# define SSL_F_SSL_CIPHER_LIST_TO_BYTES 425 +# define SSL_F_SSL_CIPHER_PROCESS_RULESTR 230 +# define SSL_F_SSL_CIPHER_STRENGTH_SORT 231 +# define SSL_F_SSL_CLEAR 164 +# define SSL_F_SSL_CLIENT_HELLO_GET1_EXTENSIONS_PRESENT 627 +# define SSL_F_SSL_COMP_ADD_COMPRESSION_METHOD 165 +# define SSL_F_SSL_CONF_CMD 334 +# define SSL_F_SSL_CREATE_CIPHER_LIST 166 +# define SSL_F_SSL_CTRL 232 +# define SSL_F_SSL_CTX_CHECK_PRIVATE_KEY 168 +# define SSL_F_SSL_CTX_ENABLE_CT 398 +# define SSL_F_SSL_CTX_MAKE_PROFILES 309 +# define SSL_F_SSL_CTX_NEW 169 +# define SSL_F_SSL_CTX_SET_ALPN_PROTOS 343 +# define SSL_F_SSL_CTX_SET_CIPHER_LIST 269 +# define SSL_F_SSL_CTX_SET_CLIENT_CERT_ENGINE 290 +# define SSL_F_SSL_CTX_SET_CT_VALIDATION_CALLBACK 396 +# define SSL_F_SSL_CTX_SET_SESSION_ID_CONTEXT 219 +# define SSL_F_SSL_CTX_SET_SSL_VERSION 170 +# define SSL_F_SSL_CTX_SET_TLSEXT_MAX_FRAGMENT_LENGTH 551 +# define SSL_F_SSL_CTX_USE_CERTIFICATE 171 +# define SSL_F_SSL_CTX_USE_CERTIFICATE_ASN1 172 +# define SSL_F_SSL_CTX_USE_CERTIFICATE_FILE 173 +# define SSL_F_SSL_CTX_USE_PRIVATEKEY 174 +# define SSL_F_SSL_CTX_USE_PRIVATEKEY_ASN1 175 +# define SSL_F_SSL_CTX_USE_PRIVATEKEY_FILE 176 +# define SSL_F_SSL_CTX_USE_PSK_IDENTITY_HINT 272 +# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY 177 +# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_ASN1 178 +# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_FILE 179 +# define SSL_F_SSL_CTX_USE_SERVERINFO 336 +# define SSL_F_SSL_CTX_USE_SERVERINFO_EX 543 +# define SSL_F_SSL_CTX_USE_SERVERINFO_FILE 337 +# define SSL_F_SSL_DANE_DUP 403 +# define SSL_F_SSL_DANE_ENABLE 395 +# define SSL_F_SSL_DERIVE 590 +# define SSL_F_SSL_DO_CONFIG 391 +# define SSL_F_SSL_DO_HANDSHAKE 180 +# define SSL_F_SSL_DUP_CA_LIST 408 +# define SSL_F_SSL_ENABLE_CT 402 +# define SSL_F_SSL_GENERATE_PKEY_GROUP 559 +# define SSL_F_SSL_GENERATE_SESSION_ID 547 +# define SSL_F_SSL_GET_NEW_SESSION 181 +# define SSL_F_SSL_GET_PREV_SESSION 217 +# define SSL_F_SSL_GET_SERVER_CERT_INDEX 322 +# define SSL_F_SSL_GET_SIGN_PKEY 183 +# define SSL_F_SSL_HANDSHAKE_HASH 560 +# define SSL_F_SSL_INIT_WBIO_BUFFER 184 +# define SSL_F_SSL_KEY_UPDATE 515 +# define SSL_F_SSL_LOAD_CLIENT_CA_FILE 185 +# define SSL_F_SSL_LOG_MASTER_SECRET 498 +# define SSL_F_SSL_LOG_RSA_CLIENT_KEY_EXCHANGE 499 +# define SSL_F_SSL_MODULE_INIT 392 +# define SSL_F_SSL_NEW 186 +# define SSL_F_SSL_NEXT_PROTO_VALIDATE 565 +# define SSL_F_SSL_PARSE_CLIENTHELLO_RENEGOTIATE_EXT 300 +# define SSL_F_SSL_PARSE_CLIENTHELLO_TLSEXT 302 +# define SSL_F_SSL_PARSE_CLIENTHELLO_USE_SRTP_EXT 310 +# define SSL_F_SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT 301 +# define SSL_F_SSL_PARSE_SERVERHELLO_TLSEXT 303 +# define SSL_F_SSL_PARSE_SERVERHELLO_USE_SRTP_EXT 311 +# define SSL_F_SSL_PEEK 270 +# define SSL_F_SSL_PEEK_EX 432 +# define SSL_F_SSL_PEEK_INTERNAL 522 +# define SSL_F_SSL_READ 223 +# define SSL_F_SSL_READ_EARLY_DATA 529 +# define SSL_F_SSL_READ_EX 434 +# define SSL_F_SSL_READ_INTERNAL 523 +# define SSL_F_SSL_RENEGOTIATE 516 +# define SSL_F_SSL_RENEGOTIATE_ABBREVIATED 546 +# define SSL_F_SSL_SCAN_CLIENTHELLO_TLSEXT 320 +# define SSL_F_SSL_SCAN_SERVERHELLO_TLSEXT 321 +# define SSL_F_SSL_SESSION_DUP 348 +# define SSL_F_SSL_SESSION_NEW 189 +# define SSL_F_SSL_SESSION_PRINT_FP 190 +# define SSL_F_SSL_SESSION_SET1_ID 423 +# define SSL_F_SSL_SESSION_SET1_ID_CONTEXT 312 +# define SSL_F_SSL_SET_ALPN_PROTOS 344 +# define SSL_F_SSL_SET_CERT 191 +# define SSL_F_SSL_SET_CERT_AND_KEY 621 +# define SSL_F_SSL_SET_CIPHER_LIST 271 +# define SSL_F_SSL_SET_CT_VALIDATION_CALLBACK 399 +# define SSL_F_SSL_SET_FD 192 +# define SSL_F_SSL_SET_PKEY 193 +# define SSL_F_SSL_SET_RFD 194 +# define SSL_F_SSL_SET_SESSION 195 +# define SSL_F_SSL_SET_SESSION_ID_CONTEXT 218 +# define SSL_F_SSL_SET_SESSION_TICKET_EXT 294 +# define SSL_F_SSL_SET_TLSEXT_MAX_FRAGMENT_LENGTH 550 +# define SSL_F_SSL_SET_WFD 196 +# define SSL_F_SSL_SHUTDOWN 224 +# define SSL_F_SSL_SRP_CTX_INIT 313 +# define SSL_F_SSL_START_ASYNC_JOB 389 +# define SSL_F_SSL_UNDEFINED_FUNCTION 197 +# define SSL_F_SSL_UNDEFINED_VOID_FUNCTION 244 +# define SSL_F_SSL_USE_CERTIFICATE 198 +# define SSL_F_SSL_USE_CERTIFICATE_ASN1 199 +# define SSL_F_SSL_USE_CERTIFICATE_FILE 200 +# define SSL_F_SSL_USE_PRIVATEKEY 201 +# define SSL_F_SSL_USE_PRIVATEKEY_ASN1 202 +# define SSL_F_SSL_USE_PRIVATEKEY_FILE 203 +# define SSL_F_SSL_USE_PSK_IDENTITY_HINT 273 +# define SSL_F_SSL_USE_RSAPRIVATEKEY 204 +# define SSL_F_SSL_USE_RSAPRIVATEKEY_ASN1 205 +# define SSL_F_SSL_USE_RSAPRIVATEKEY_FILE 206 +# define SSL_F_SSL_VALIDATE_CT 400 +# define SSL_F_SSL_VERIFY_CERT_CHAIN 207 +# define SSL_F_SSL_VERIFY_CLIENT_POST_HANDSHAKE 616 +# define SSL_F_SSL_WRITE 208 +# define SSL_F_SSL_WRITE_EARLY_DATA 526 +# define SSL_F_SSL_WRITE_EARLY_FINISH 527 +# define SSL_F_SSL_WRITE_EX 433 +# define SSL_F_SSL_WRITE_INTERNAL 524 +# define SSL_F_STATE_MACHINE 353 +# define SSL_F_TLS12_CHECK_PEER_SIGALG 333 +# define SSL_F_TLS12_COPY_SIGALGS 533 +# define SSL_F_TLS13_CHANGE_CIPHER_STATE 440 +# define SSL_F_TLS13_ENC 609 +# define SSL_F_TLS13_FINAL_FINISH_MAC 605 +# define SSL_F_TLS13_GENERATE_SECRET 591 +# define SSL_F_TLS13_HKDF_EXPAND 561 +# define SSL_F_TLS13_RESTORE_HANDSHAKE_DIGEST_FOR_PHA 617 +# define SSL_F_TLS13_SAVE_HANDSHAKE_DIGEST_FOR_PHA 618 +# define SSL_F_TLS13_SETUP_KEY_BLOCK 441 +# define SSL_F_TLS1_CHANGE_CIPHER_STATE 209 +# define SSL_F_TLS1_CHECK_DUPLICATE_EXTENSIONS 341 +# define SSL_F_TLS1_ENC 401 +# define SSL_F_TLS1_EXPORT_KEYING_MATERIAL 314 +# define SSL_F_TLS1_GET_CURVELIST 338 +# define SSL_F_TLS1_PRF 284 +# define SSL_F_TLS1_SAVE_U16 628 +# define SSL_F_TLS1_SETUP_KEY_BLOCK 211 +# define SSL_F_TLS1_SET_GROUPS 629 +# define SSL_F_TLS1_SET_RAW_SIGALGS 630 +# define SSL_F_TLS1_SET_SERVER_SIGALGS 335 +# define SSL_F_TLS1_SET_SHARED_SIGALGS 631 +# define SSL_F_TLS1_SET_SIGALGS 632 +# define SSL_F_TLS_CHOOSE_SIGALG 513 +# define SSL_F_TLS_CLIENT_KEY_EXCHANGE_POST_WORK 354 +# define SSL_F_TLS_COLLECT_EXTENSIONS 435 +# define SSL_F_TLS_CONSTRUCT_CERTIFICATE_AUTHORITIES 542 +# define SSL_F_TLS_CONSTRUCT_CERTIFICATE_REQUEST 372 +# define SSL_F_TLS_CONSTRUCT_CERT_STATUS 429 +# define SSL_F_TLS_CONSTRUCT_CERT_STATUS_BODY 494 +# define SSL_F_TLS_CONSTRUCT_CERT_VERIFY 496 +# define SSL_F_TLS_CONSTRUCT_CHANGE_CIPHER_SPEC 427 +# define SSL_F_TLS_CONSTRUCT_CKE_DHE 404 +# define SSL_F_TLS_CONSTRUCT_CKE_ECDHE 405 +# define SSL_F_TLS_CONSTRUCT_CKE_GOST 406 +# define SSL_F_TLS_CONSTRUCT_CKE_PSK_PREAMBLE 407 +# define SSL_F_TLS_CONSTRUCT_CKE_RSA 409 +# define SSL_F_TLS_CONSTRUCT_CKE_SRP 410 +# define SSL_F_TLS_CONSTRUCT_CLIENT_CERTIFICATE 484 +# define SSL_F_TLS_CONSTRUCT_CLIENT_HELLO 487 +# define SSL_F_TLS_CONSTRUCT_CLIENT_KEY_EXCHANGE 488 +# define SSL_F_TLS_CONSTRUCT_CLIENT_VERIFY 489 +# define SSL_F_TLS_CONSTRUCT_CTOS_ALPN 466 +# define SSL_F_TLS_CONSTRUCT_CTOS_CERTIFICATE 355 +# define SSL_F_TLS_CONSTRUCT_CTOS_COOKIE 535 +# define SSL_F_TLS_CONSTRUCT_CTOS_EARLY_DATA 530 +# define SSL_F_TLS_CONSTRUCT_CTOS_EC_PT_FORMATS 467 +# define SSL_F_TLS_CONSTRUCT_CTOS_EMS 468 +# define SSL_F_TLS_CONSTRUCT_CTOS_ETM 469 +# define SSL_F_TLS_CONSTRUCT_CTOS_HELLO 356 +# define SSL_F_TLS_CONSTRUCT_CTOS_KEY_EXCHANGE 357 +# define SSL_F_TLS_CONSTRUCT_CTOS_KEY_SHARE 470 +# define SSL_F_TLS_CONSTRUCT_CTOS_MAXFRAGMENTLEN 549 +# define SSL_F_TLS_CONSTRUCT_CTOS_NPN 471 +# define SSL_F_TLS_CONSTRUCT_CTOS_PADDING 472 +# define SSL_F_TLS_CONSTRUCT_CTOS_POST_HANDSHAKE_AUTH 619 +# define SSL_F_TLS_CONSTRUCT_CTOS_PSK 501 +# define SSL_F_TLS_CONSTRUCT_CTOS_PSK_KEX_MODES 509 +# define SSL_F_TLS_CONSTRUCT_CTOS_RENEGOTIATE 473 +# define SSL_F_TLS_CONSTRUCT_CTOS_SCT 474 +# define SSL_F_TLS_CONSTRUCT_CTOS_SERVER_NAME 475 +# define SSL_F_TLS_CONSTRUCT_CTOS_SESSION_TICKET 476 +# define SSL_F_TLS_CONSTRUCT_CTOS_SIG_ALGS 477 +# define SSL_F_TLS_CONSTRUCT_CTOS_SRP 478 +# define SSL_F_TLS_CONSTRUCT_CTOS_STATUS_REQUEST 479 +# define SSL_F_TLS_CONSTRUCT_CTOS_SUPPORTED_GROUPS 480 +# define SSL_F_TLS_CONSTRUCT_CTOS_SUPPORTED_VERSIONS 481 +# define SSL_F_TLS_CONSTRUCT_CTOS_USE_SRTP 482 +# define SSL_F_TLS_CONSTRUCT_CTOS_VERIFY 358 +# define SSL_F_TLS_CONSTRUCT_ENCRYPTED_EXTENSIONS 443 +# define SSL_F_TLS_CONSTRUCT_END_OF_EARLY_DATA 536 +# define SSL_F_TLS_CONSTRUCT_EXTENSIONS 447 +# define SSL_F_TLS_CONSTRUCT_FINISHED 359 +# define SSL_F_TLS_CONSTRUCT_HELLO_REQUEST 373 +# define SSL_F_TLS_CONSTRUCT_HELLO_RETRY_REQUEST 510 +# define SSL_F_TLS_CONSTRUCT_KEY_UPDATE 517 +# define SSL_F_TLS_CONSTRUCT_NEW_SESSION_TICKET 428 +# define SSL_F_TLS_CONSTRUCT_NEXT_PROTO 426 +# define SSL_F_TLS_CONSTRUCT_SERVER_CERTIFICATE 490 +# define SSL_F_TLS_CONSTRUCT_SERVER_HELLO 491 +# define SSL_F_TLS_CONSTRUCT_SERVER_KEY_EXCHANGE 492 +# define SSL_F_TLS_CONSTRUCT_STOC_ALPN 451 +# define SSL_F_TLS_CONSTRUCT_STOC_CERTIFICATE 374 +# define SSL_F_TLS_CONSTRUCT_STOC_COOKIE 613 +# define SSL_F_TLS_CONSTRUCT_STOC_CRYPTOPRO_BUG 452 +# define SSL_F_TLS_CONSTRUCT_STOC_DONE 375 +# define SSL_F_TLS_CONSTRUCT_STOC_EARLY_DATA 531 +# define SSL_F_TLS_CONSTRUCT_STOC_EARLY_DATA_INFO 525 +# define SSL_F_TLS_CONSTRUCT_STOC_EC_PT_FORMATS 453 +# define SSL_F_TLS_CONSTRUCT_STOC_EMS 454 +# define SSL_F_TLS_CONSTRUCT_STOC_ETM 455 +# define SSL_F_TLS_CONSTRUCT_STOC_HELLO 376 +# define SSL_F_TLS_CONSTRUCT_STOC_KEY_EXCHANGE 377 +# define SSL_F_TLS_CONSTRUCT_STOC_KEY_SHARE 456 +# define SSL_F_TLS_CONSTRUCT_STOC_MAXFRAGMENTLEN 548 +# define SSL_F_TLS_CONSTRUCT_STOC_NEXT_PROTO_NEG 457 +# define SSL_F_TLS_CONSTRUCT_STOC_PSK 504 +# define SSL_F_TLS_CONSTRUCT_STOC_RENEGOTIATE 458 +# define SSL_F_TLS_CONSTRUCT_STOC_SERVER_NAME 459 +# define SSL_F_TLS_CONSTRUCT_STOC_SESSION_TICKET 460 +# define SSL_F_TLS_CONSTRUCT_STOC_STATUS_REQUEST 461 +# define SSL_F_TLS_CONSTRUCT_STOC_SUPPORTED_GROUPS 544 +# define SSL_F_TLS_CONSTRUCT_STOC_SUPPORTED_VERSIONS 611 +# define SSL_F_TLS_CONSTRUCT_STOC_USE_SRTP 462 +# define SSL_F_TLS_EARLY_POST_PROCESS_CLIENT_HELLO 521 +# define SSL_F_TLS_FINISH_HANDSHAKE 597 +# define SSL_F_TLS_GET_MESSAGE_BODY 351 +# define SSL_F_TLS_GET_MESSAGE_HEADER 387 +# define SSL_F_TLS_HANDLE_ALPN 562 +# define SSL_F_TLS_HANDLE_STATUS_REQUEST 563 +# define SSL_F_TLS_PARSE_CERTIFICATE_AUTHORITIES 566 +# define SSL_F_TLS_PARSE_CLIENTHELLO_TLSEXT 449 +# define SSL_F_TLS_PARSE_CTOS_ALPN 567 +# define SSL_F_TLS_PARSE_CTOS_COOKIE 614 +# define SSL_F_TLS_PARSE_CTOS_EARLY_DATA 568 +# define SSL_F_TLS_PARSE_CTOS_EC_PT_FORMATS 569 +# define SSL_F_TLS_PARSE_CTOS_EMS 570 +# define SSL_F_TLS_PARSE_CTOS_KEY_SHARE 463 +# define SSL_F_TLS_PARSE_CTOS_MAXFRAGMENTLEN 571 +# define SSL_F_TLS_PARSE_CTOS_POST_HANDSHAKE_AUTH 620 +# define SSL_F_TLS_PARSE_CTOS_PSK 505 +# define SSL_F_TLS_PARSE_CTOS_PSK_KEX_MODES 572 +# define SSL_F_TLS_PARSE_CTOS_RENEGOTIATE 464 +# define SSL_F_TLS_PARSE_CTOS_SERVER_NAME 573 +# define SSL_F_TLS_PARSE_CTOS_SESSION_TICKET 574 +# define SSL_F_TLS_PARSE_CTOS_SIG_ALGS 575 +# define SSL_F_TLS_PARSE_CTOS_SIG_ALGS_CERT 615 +# define SSL_F_TLS_PARSE_CTOS_SRP 576 +# define SSL_F_TLS_PARSE_CTOS_STATUS_REQUEST 577 +# define SSL_F_TLS_PARSE_CTOS_SUPPORTED_GROUPS 578 +# define SSL_F_TLS_PARSE_CTOS_USE_SRTP 465 +# define SSL_F_TLS_PARSE_STOC_ALPN 579 +# define SSL_F_TLS_PARSE_STOC_COOKIE 534 +# define SSL_F_TLS_PARSE_STOC_EARLY_DATA 538 +# define SSL_F_TLS_PARSE_STOC_EARLY_DATA_INFO 528 +# define SSL_F_TLS_PARSE_STOC_EC_PT_FORMATS 580 +# define SSL_F_TLS_PARSE_STOC_KEY_SHARE 445 +# define SSL_F_TLS_PARSE_STOC_MAXFRAGMENTLEN 581 +# define SSL_F_TLS_PARSE_STOC_NPN 582 +# define SSL_F_TLS_PARSE_STOC_PSK 502 +# define SSL_F_TLS_PARSE_STOC_RENEGOTIATE 448 +# define SSL_F_TLS_PARSE_STOC_SCT 564 +# define SSL_F_TLS_PARSE_STOC_SERVER_NAME 583 +# define SSL_F_TLS_PARSE_STOC_SESSION_TICKET 584 +# define SSL_F_TLS_PARSE_STOC_STATUS_REQUEST 585 +# define SSL_F_TLS_PARSE_STOC_SUPPORTED_VERSIONS 612 +# define SSL_F_TLS_PARSE_STOC_USE_SRTP 446 +# define SSL_F_TLS_POST_PROCESS_CLIENT_HELLO 378 +# define SSL_F_TLS_POST_PROCESS_CLIENT_KEY_EXCHANGE 384 +# define SSL_F_TLS_PREPARE_CLIENT_CERTIFICATE 360 +# define SSL_F_TLS_PROCESS_AS_HELLO_RETRY_REQUEST 610 +# define SSL_F_TLS_PROCESS_CERTIFICATE_REQUEST 361 +# define SSL_F_TLS_PROCESS_CERT_STATUS 362 +# define SSL_F_TLS_PROCESS_CERT_STATUS_BODY 495 +# define SSL_F_TLS_PROCESS_CERT_VERIFY 379 +# define SSL_F_TLS_PROCESS_CHANGE_CIPHER_SPEC 363 +# define SSL_F_TLS_PROCESS_CKE_DHE 411 +# define SSL_F_TLS_PROCESS_CKE_ECDHE 412 +# define SSL_F_TLS_PROCESS_CKE_GOST 413 +# define SSL_F_TLS_PROCESS_CKE_PSK_PREAMBLE 414 +# define SSL_F_TLS_PROCESS_CKE_RSA 415 +# define SSL_F_TLS_PROCESS_CKE_SRP 416 +# define SSL_F_TLS_PROCESS_CLIENT_CERTIFICATE 380 +# define SSL_F_TLS_PROCESS_CLIENT_HELLO 381 +# define SSL_F_TLS_PROCESS_CLIENT_KEY_EXCHANGE 382 +# define SSL_F_TLS_PROCESS_ENCRYPTED_EXTENSIONS 444 +# define SSL_F_TLS_PROCESS_END_OF_EARLY_DATA 537 +# define SSL_F_TLS_PROCESS_FINISHED 364 +# define SSL_F_TLS_PROCESS_HELLO_REQ 507 +# define SSL_F_TLS_PROCESS_HELLO_RETRY_REQUEST 511 +# define SSL_F_TLS_PROCESS_INITIAL_SERVER_FLIGHT 442 +# define SSL_F_TLS_PROCESS_KEY_EXCHANGE 365 +# define SSL_F_TLS_PROCESS_KEY_UPDATE 518 +# define SSL_F_TLS_PROCESS_NEW_SESSION_TICKET 366 +# define SSL_F_TLS_PROCESS_NEXT_PROTO 383 +# define SSL_F_TLS_PROCESS_SERVER_CERTIFICATE 367 +# define SSL_F_TLS_PROCESS_SERVER_DONE 368 +# define SSL_F_TLS_PROCESS_SERVER_HELLO 369 +# define SSL_F_TLS_PROCESS_SKE_DHE 419 +# define SSL_F_TLS_PROCESS_SKE_ECDHE 420 +# define SSL_F_TLS_PROCESS_SKE_PSK_PREAMBLE 421 +# define SSL_F_TLS_PROCESS_SKE_SRP 422 +# define SSL_F_TLS_PSK_DO_BINDER 506 +# define SSL_F_TLS_SCAN_CLIENTHELLO_TLSEXT 450 +# define SSL_F_TLS_SETUP_HANDSHAKE 508 +# define SSL_F_USE_CERTIFICATE_CHAIN_FILE 220 +# define SSL_F_WPACKET_INTERN_INIT_LEN 633 +# define SSL_F_WPACKET_START_SUB_PACKET_LEN__ 634 +# define SSL_F_WRITE_STATE_MACHINE 586 + +/* + * SSL reason codes. + */ +# define SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY 291 +# define SSL_R_APP_DATA_IN_HANDSHAKE 100 +# define SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT 272 +# define SSL_R_AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE 143 +# define SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE 158 +# define SSL_R_BAD_CHANGE_CIPHER_SPEC 103 +# define SSL_R_BAD_CIPHER 186 +# define SSL_R_BAD_DATA 390 +# define SSL_R_BAD_DATA_RETURNED_BY_CALLBACK 106 +# define SSL_R_BAD_DECOMPRESSION 107 +# define SSL_R_BAD_DH_VALUE 102 +# define SSL_R_BAD_DIGEST_LENGTH 111 +# define SSL_R_BAD_EARLY_DATA 233 +# define SSL_R_BAD_ECC_CERT 304 +# define SSL_R_BAD_ECPOINT 306 +# define SSL_R_BAD_EXTENSION 110 +# define SSL_R_BAD_HANDSHAKE_LENGTH 332 +# define SSL_R_BAD_HANDSHAKE_STATE 236 +# define SSL_R_BAD_HELLO_REQUEST 105 +# define SSL_R_BAD_HRR_VERSION 263 +# define SSL_R_BAD_KEY_SHARE 108 +# define SSL_R_BAD_KEY_UPDATE 122 +# define SSL_R_BAD_LEGACY_VERSION 292 +# define SSL_R_BAD_LENGTH 271 +# define SSL_R_BAD_PACKET 240 +# define SSL_R_BAD_PACKET_LENGTH 115 +# define SSL_R_BAD_PROTOCOL_VERSION_NUMBER 116 +# define SSL_R_BAD_PSK 219 +# define SSL_R_BAD_PSK_IDENTITY 114 +# define SSL_R_BAD_RECORD_TYPE 443 +# define SSL_R_BAD_RSA_ENCRYPT 119 +# define SSL_R_BAD_SIGNATURE 123 +# define SSL_R_BAD_SRP_A_LENGTH 347 +# define SSL_R_BAD_SRP_PARAMETERS 371 +# define SSL_R_BAD_SRTP_MKI_VALUE 352 +# define SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST 353 +# define SSL_R_BAD_SSL_FILETYPE 124 +# define SSL_R_BAD_VALUE 384 +# define SSL_R_BAD_WRITE_RETRY 127 +# define SSL_R_BINDER_DOES_NOT_VERIFY 253 +# define SSL_R_BIO_NOT_SET 128 +# define SSL_R_BLOCK_CIPHER_PAD_IS_WRONG 129 +# define SSL_R_BN_LIB 130 +# define SSL_R_CALLBACK_FAILED 234 +# define SSL_R_CANNOT_CHANGE_CIPHER 109 +# define SSL_R_CA_DN_LENGTH_MISMATCH 131 +# define SSL_R_CA_KEY_TOO_SMALL 397 +# define SSL_R_CA_MD_TOO_WEAK 398 +# define SSL_R_CCS_RECEIVED_EARLY 133 +# define SSL_R_CERTIFICATE_VERIFY_FAILED 134 +# define SSL_R_CERT_CB_ERROR 377 +# define SSL_R_CERT_LENGTH_MISMATCH 135 +# define SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED 218 +# define SSL_R_CIPHER_CODE_WRONG_LENGTH 137 +# define SSL_R_CIPHER_OR_HASH_UNAVAILABLE 138 +# define SSL_R_CLIENTHELLO_TLSEXT 226 +# define SSL_R_COMPRESSED_LENGTH_TOO_LONG 140 +# define SSL_R_COMPRESSION_DISABLED 343 +# define SSL_R_COMPRESSION_FAILURE 141 +# define SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE 307 +# define SSL_R_COMPRESSION_LIBRARY_ERROR 142 +# define SSL_R_CONNECTION_TYPE_NOT_SET 144 +# define SSL_R_CONTEXT_NOT_DANE_ENABLED 167 +# define SSL_R_COOKIE_GEN_CALLBACK_FAILURE 400 +# define SSL_R_COOKIE_MISMATCH 308 +# define SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED 206 +# define SSL_R_DANE_ALREADY_ENABLED 172 +# define SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL 173 +# define SSL_R_DANE_NOT_ENABLED 175 +# define SSL_R_DANE_TLSA_BAD_CERTIFICATE 180 +# define SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE 184 +# define SSL_R_DANE_TLSA_BAD_DATA_LENGTH 189 +# define SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH 192 +# define SSL_R_DANE_TLSA_BAD_MATCHING_TYPE 200 +# define SSL_R_DANE_TLSA_BAD_PUBLIC_KEY 201 +# define SSL_R_DANE_TLSA_BAD_SELECTOR 202 +# define SSL_R_DANE_TLSA_NULL_DATA 203 +# define SSL_R_DATA_BETWEEN_CCS_AND_FINISHED 145 +# define SSL_R_DATA_LENGTH_TOO_LONG 146 +# define SSL_R_DECRYPTION_FAILED 147 +# define SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC 281 +# define SSL_R_DH_KEY_TOO_SMALL 394 +# define SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG 148 +# define SSL_R_DIGEST_CHECK_FAILED 149 +# define SSL_R_DTLS_MESSAGE_TOO_BIG 334 +# define SSL_R_DUPLICATE_COMPRESSION_ID 309 +# define SSL_R_ECC_CERT_NOT_FOR_SIGNING 318 +# define SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE 374 +# define SSL_R_EE_KEY_TOO_SMALL 399 +# define SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST 354 +# define SSL_R_ENCRYPTED_LENGTH_TOO_LONG 150 +# define SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST 151 +# define SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN 204 +# define SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE 194 +# define SSL_R_EXCESSIVE_MESSAGE_SIZE 152 +# define SSL_R_EXTENSION_NOT_RECEIVED 279 +# define SSL_R_EXTRA_DATA_IN_MESSAGE 153 +# define SSL_R_EXT_LENGTH_MISMATCH 163 +# define SSL_R_FAILED_TO_INIT_ASYNC 405 +# define SSL_R_FRAGMENTED_CLIENT_HELLO 401 +# define SSL_R_GOT_A_FIN_BEFORE_A_CCS 154 +# define SSL_R_HTTPS_PROXY_REQUEST 155 +# define SSL_R_HTTP_REQUEST 156 +# define SSL_R_ILLEGAL_POINT_COMPRESSION 162 +# define SSL_R_ILLEGAL_SUITEB_DIGEST 380 +# define SSL_R_INAPPROPRIATE_FALLBACK 373 +# define SSL_R_INCONSISTENT_COMPRESSION 340 +# define SSL_R_INCONSISTENT_EARLY_DATA_ALPN 222 +# define SSL_R_INCONSISTENT_EARLY_DATA_SNI 231 +# define SSL_R_INCONSISTENT_EXTMS 104 +# define SSL_R_INSUFFICIENT_SECURITY 241 +# define SSL_R_INVALID_ALERT 205 +# define SSL_R_INVALID_CCS_MESSAGE 260 +# define SSL_R_INVALID_CERTIFICATE_OR_ALG 238 +# define SSL_R_INVALID_COMMAND 280 +# define SSL_R_INVALID_COMPRESSION_ALGORITHM 341 +# define SSL_R_INVALID_CONFIG 283 +# define SSL_R_INVALID_CONFIGURATION_NAME 113 +# define SSL_R_INVALID_CONTEXT 282 +# define SSL_R_INVALID_CT_VALIDATION_TYPE 212 +# define SSL_R_INVALID_KEY_UPDATE_TYPE 120 +# define SSL_R_INVALID_MAX_EARLY_DATA 174 +# define SSL_R_INVALID_NULL_CMD_NAME 385 +# define SSL_R_INVALID_SEQUENCE_NUMBER 402 +# define SSL_R_INVALID_SERVERINFO_DATA 388 +# define SSL_R_INVALID_SESSION_ID 999 +# define SSL_R_INVALID_SRP_USERNAME 357 +# define SSL_R_INVALID_STATUS_RESPONSE 328 +# define SSL_R_INVALID_TICKET_KEYS_LENGTH 325 +# define SSL_R_LENGTH_MISMATCH 159 +# define SSL_R_LENGTH_TOO_LONG 404 +# define SSL_R_LENGTH_TOO_SHORT 160 +# define SSL_R_LIBRARY_BUG 274 +# define SSL_R_LIBRARY_HAS_NO_CIPHERS 161 +# define SSL_R_MISSING_DSA_SIGNING_CERT 165 +# define SSL_R_MISSING_ECDSA_SIGNING_CERT 381 +# define SSL_R_MISSING_FATAL 256 +# define SSL_R_MISSING_PARAMETERS 290 +# define SSL_R_MISSING_RSA_CERTIFICATE 168 +# define SSL_R_MISSING_RSA_ENCRYPTING_CERT 169 +# define SSL_R_MISSING_RSA_SIGNING_CERT 170 +# define SSL_R_MISSING_SIGALGS_EXTENSION 112 +# define SSL_R_MISSING_SIGNING_CERT 221 +# define SSL_R_MISSING_SRP_PARAM 358 +# define SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION 209 +# define SSL_R_MISSING_TMP_DH_KEY 171 +# define SSL_R_MISSING_TMP_ECDH_KEY 311 +# define SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA 293 +# define SSL_R_NOT_ON_RECORD_BOUNDARY 182 +# define SSL_R_NOT_REPLACING_CERTIFICATE 289 +# define SSL_R_NOT_SERVER 284 +# define SSL_R_NO_APPLICATION_PROTOCOL 235 +# define SSL_R_NO_CERTIFICATES_RETURNED 176 +# define SSL_R_NO_CERTIFICATE_ASSIGNED 177 +# define SSL_R_NO_CERTIFICATE_SET 179 +# define SSL_R_NO_CHANGE_FOLLOWING_HRR 214 +# define SSL_R_NO_CIPHERS_AVAILABLE 181 +# define SSL_R_NO_CIPHERS_SPECIFIED 183 +# define SSL_R_NO_CIPHER_MATCH 185 +# define SSL_R_NO_CLIENT_CERT_METHOD 331 +# define SSL_R_NO_COMPRESSION_SPECIFIED 187 +# define SSL_R_NO_COOKIE_CALLBACK_SET 287 +# define SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER 330 +# define SSL_R_NO_METHOD_SPECIFIED 188 +# define SSL_R_NO_PEM_EXTENSIONS 389 +# define SSL_R_NO_PRIVATE_KEY_ASSIGNED 190 +# define SSL_R_NO_PROTOCOLS_AVAILABLE 191 +# define SSL_R_NO_RENEGOTIATION 339 +# define SSL_R_NO_REQUIRED_DIGEST 324 +# define SSL_R_NO_SHARED_CIPHER 193 +# define SSL_R_NO_SHARED_GROUPS 410 +# define SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS 376 +# define SSL_R_NO_SRTP_PROFILES 359 +# define SSL_R_NO_SUITABLE_KEY_SHARE 101 +# define SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM 118 +# define SSL_R_NO_VALID_SCTS 216 +# define SSL_R_NO_VERIFY_COOKIE_CALLBACK 403 +# define SSL_R_NULL_SSL_CTX 195 +# define SSL_R_NULL_SSL_METHOD_PASSED 196 +# define SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED 197 +# define SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED 344 +# define SSL_R_OVERFLOW_ERROR 237 +# define SSL_R_PACKET_LENGTH_TOO_LONG 198 +# define SSL_R_PARSE_TLSEXT 227 +# define SSL_R_PATH_TOO_LONG 270 +# define SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE 199 +# define SSL_R_PEM_NAME_BAD_PREFIX 391 +# define SSL_R_PEM_NAME_TOO_SHORT 392 +# define SSL_R_PIPELINE_FAILURE 406 +# define SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR 278 +# define SSL_R_PRIVATE_KEY_MISMATCH 288 +# define SSL_R_PROTOCOL_IS_SHUTDOWN 207 +# define SSL_R_PSK_IDENTITY_NOT_FOUND 223 +# define SSL_R_PSK_NO_CLIENT_CB 224 +# define SSL_R_PSK_NO_SERVER_CB 225 +# define SSL_R_READ_BIO_NOT_SET 211 +# define SSL_R_READ_TIMEOUT_EXPIRED 312 +# define SSL_R_RECORD_LENGTH_MISMATCH 213 +# define SSL_R_RECORD_TOO_SMALL 298 +# define SSL_R_RENEGOTIATE_EXT_TOO_LONG 335 +# define SSL_R_RENEGOTIATION_ENCODING_ERR 336 +# define SSL_R_RENEGOTIATION_MISMATCH 337 +# define SSL_R_REQUEST_PENDING 285 +# define SSL_R_REQUEST_SENT 286 +# define SSL_R_REQUIRED_CIPHER_MISSING 215 +# define SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING 342 +# define SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING 345 +# define SSL_R_SCT_VERIFICATION_FAILED 208 +# define SSL_R_SERVERHELLO_TLSEXT 275 +# define SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED 277 +# define SSL_R_SHUTDOWN_WHILE_IN_INIT 407 +# define SSL_R_SIGNATURE_ALGORITHMS_ERROR 360 +# define SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE 220 +# define SSL_R_SRP_A_CALC 361 +# define SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES 362 +# define SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG 363 +# define SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE 364 +# define SSL_R_SSL3_EXT_INVALID_MAX_FRAGMENT_LENGTH 232 +# define SSL_R_SSL3_EXT_INVALID_SERVERNAME 319 +# define SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE 320 +# define SSL_R_SSL3_SESSION_ID_TOO_LONG 300 +# define SSL_R_SSLV3_ALERT_BAD_CERTIFICATE 1042 +# define SSL_R_SSLV3_ALERT_BAD_RECORD_MAC 1020 +# define SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED 1045 +# define SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED 1044 +# define SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN 1046 +# define SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE 1030 +# define SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE 1040 +# define SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER 1047 +# define SSL_R_SSLV3_ALERT_NO_CERTIFICATE 1041 +# define SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE 1010 +# define SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE 1043 +# define SSL_R_SSL_COMMAND_SECTION_EMPTY 117 +# define SSL_R_SSL_COMMAND_SECTION_NOT_FOUND 125 +# define SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION 228 +# define SSL_R_SSL_HANDSHAKE_FAILURE 229 +# define SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS 230 +# define SSL_R_SSL_NEGATIVE_LENGTH 372 +# define SSL_R_SSL_SECTION_EMPTY 126 +# define SSL_R_SSL_SECTION_NOT_FOUND 136 +# define SSL_R_SSL_SESSION_ID_CALLBACK_FAILED 301 +# define SSL_R_SSL_SESSION_ID_CONFLICT 302 +# define SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG 273 +# define SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH 303 +# define SSL_R_SSL_SESSION_ID_TOO_LONG 408 +# define SSL_R_SSL_SESSION_VERSION_MISMATCH 210 +# define SSL_R_STILL_IN_INIT 121 +# define SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED 1116 +# define SSL_R_TLSV13_ALERT_MISSING_EXTENSION 1109 +# define SSL_R_TLSV1_ALERT_ACCESS_DENIED 1049 +# define SSL_R_TLSV1_ALERT_DECODE_ERROR 1050 +# define SSL_R_TLSV1_ALERT_DECRYPTION_FAILED 1021 +# define SSL_R_TLSV1_ALERT_DECRYPT_ERROR 1051 +# define SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION 1060 +# define SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK 1086 +# define SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY 1071 +# define SSL_R_TLSV1_ALERT_INTERNAL_ERROR 1080 +# define SSL_R_TLSV1_ALERT_NO_RENEGOTIATION 1100 +# define SSL_R_TLSV1_ALERT_PROTOCOL_VERSION 1070 +# define SSL_R_TLSV1_ALERT_RECORD_OVERFLOW 1022 +# define SSL_R_TLSV1_ALERT_UNKNOWN_CA 1048 +# define SSL_R_TLSV1_ALERT_USER_CANCELLED 1090 +# define SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE 1114 +# define SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE 1113 +# define SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE 1111 +# define SSL_R_TLSV1_UNRECOGNIZED_NAME 1112 +# define SSL_R_TLSV1_UNSUPPORTED_EXTENSION 1110 +# define SSL_R_TLS_HEARTBEAT_PEER_DOESNT_ACCEPT 365 +# define SSL_R_TLS_HEARTBEAT_PENDING 366 +# define SSL_R_TLS_ILLEGAL_EXPORTER_LABEL 367 +# define SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST 157 +# define SSL_R_TOO_MANY_KEY_UPDATES 132 +# define SSL_R_TOO_MANY_WARN_ALERTS 409 +# define SSL_R_TOO_MUCH_EARLY_DATA 164 +# define SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS 314 +# define SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS 239 +# define SSL_R_UNABLE_TO_LOAD_SSL3_MD5_ROUTINES 242 +# define SSL_R_UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES 243 +# define SSL_R_UNEXPECTED_CCS_MESSAGE 262 +# define SSL_R_UNEXPECTED_END_OF_EARLY_DATA 178 +# define SSL_R_UNEXPECTED_MESSAGE 244 +# define SSL_R_UNEXPECTED_RECORD 245 +# define SSL_R_UNINITIALIZED 276 +# define SSL_R_UNKNOWN_ALERT_TYPE 246 +# define SSL_R_UNKNOWN_CERTIFICATE_TYPE 247 +# define SSL_R_UNKNOWN_CIPHER_RETURNED 248 +# define SSL_R_UNKNOWN_CIPHER_TYPE 249 +# define SSL_R_UNKNOWN_CMD_NAME 386 +# define SSL_R_UNKNOWN_COMMAND 139 +# define SSL_R_UNKNOWN_DIGEST 368 +# define SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE 250 +# define SSL_R_UNKNOWN_PKEY_TYPE 251 +# define SSL_R_UNKNOWN_PROTOCOL 252 +# define SSL_R_UNKNOWN_SSL_VERSION 254 +# define SSL_R_UNKNOWN_STATE 255 +# define SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED 338 +# define SSL_R_UNSOLICITED_EXTENSION 217 +# define SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM 257 +# define SSL_R_UNSUPPORTED_ELLIPTIC_CURVE 315 +# define SSL_R_UNSUPPORTED_PROTOCOL 258 +# define SSL_R_UNSUPPORTED_SSL_VERSION 259 +# define SSL_R_UNSUPPORTED_STATUS_TYPE 329 +# define SSL_R_USE_SRTP_NOT_NEGOTIATED 369 +# define SSL_R_VERSION_TOO_HIGH 166 +# define SSL_R_VERSION_TOO_LOW 396 +# define SSL_R_WRONG_CERTIFICATE_TYPE 383 +# define SSL_R_WRONG_CIPHER_RETURNED 261 +# define SSL_R_WRONG_CURVE 378 +# define SSL_R_WRONG_SIGNATURE_LENGTH 264 +# define SSL_R_WRONG_SIGNATURE_SIZE 265 +# define SSL_R_WRONG_SIGNATURE_TYPE 370 +# define SSL_R_WRONG_SSL_VERSION 266 +# define SSL_R_WRONG_VERSION_NUMBER 267 +# define SSL_R_X509_LIB 268 +# define SSL_R_X509_VERIFICATION_SETUP_PROBLEMS 269 + +#endif diff --git a/noarch/include/node/openssl/stack.h b/noarch/include/node/openssl/stack.h index 23ad3b89..cfc07505 100644 --- a/noarch/include/node/openssl/stack.h +++ b/noarch/include/node/openssl/stack.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -27,9 +27,13 @@ void *OPENSSL_sk_set(OPENSSL_STACK *st, int i, const void *data); OPENSSL_STACK *OPENSSL_sk_new(OPENSSL_sk_compfunc cmp); OPENSSL_STACK *OPENSSL_sk_new_null(void); +OPENSSL_STACK *OPENSSL_sk_new_reserve(OPENSSL_sk_compfunc c, int n); +int OPENSSL_sk_reserve(OPENSSL_STACK *st, int n); void OPENSSL_sk_free(OPENSSL_STACK *); void OPENSSL_sk_pop_free(OPENSSL_STACK *st, void (*func) (void *)); -OPENSSL_STACK *OPENSSL_sk_deep_copy(const OPENSSL_STACK *, OPENSSL_sk_copyfunc c, OPENSSL_sk_freefunc f); +OPENSSL_STACK *OPENSSL_sk_deep_copy(const OPENSSL_STACK *, + OPENSSL_sk_copyfunc c, + OPENSSL_sk_freefunc f); int OPENSSL_sk_insert(OPENSSL_STACK *sk, const void *data, int where); void *OPENSSL_sk_delete(OPENSSL_STACK *st, int loc); void *OPENSSL_sk_delete_ptr(OPENSSL_STACK *st, const void *p); @@ -40,7 +44,8 @@ int OPENSSL_sk_unshift(OPENSSL_STACK *st, const void *data); void *OPENSSL_sk_shift(OPENSSL_STACK *st); void *OPENSSL_sk_pop(OPENSSL_STACK *st); void OPENSSL_sk_zero(OPENSSL_STACK *st); -OPENSSL_sk_compfunc OPENSSL_sk_set_cmp_func(OPENSSL_STACK *sk, OPENSSL_sk_compfunc cmp); +OPENSSL_sk_compfunc OPENSSL_sk_set_cmp_func(OPENSSL_STACK *sk, + OPENSSL_sk_compfunc cmp); OPENSSL_STACK *OPENSSL_sk_dup(const OPENSSL_STACK *st); void OPENSSL_sk_sort(OPENSSL_STACK *st); int OPENSSL_sk_is_sorted(const OPENSSL_STACK *st); diff --git a/noarch/include/node/openssl/store.h b/noarch/include/node/openssl/store.h new file mode 100644 index 00000000..7b43e8bd --- /dev/null +++ b/noarch/include/node/openssl/store.h @@ -0,0 +1,266 @@ +/* + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_OSSL_STORE_H +# define HEADER_OSSL_STORE_H + +# include +# include +# include +# include + +# ifdef __cplusplus +extern "C" { +# endif + +/*- + * The main OSSL_STORE functions. + * ------------------------------ + * + * These allow applications to open a channel to a resource with supported + * data (keys, certs, crls, ...), read the data a piece at a time and decide + * what to do with it, and finally close. + */ + +typedef struct ossl_store_ctx_st OSSL_STORE_CTX; + +/* + * Typedef for the OSSL_STORE_INFO post processing callback. This can be used + * to massage the given OSSL_STORE_INFO, or to drop it entirely (by returning + * NULL). + */ +typedef OSSL_STORE_INFO *(*OSSL_STORE_post_process_info_fn)(OSSL_STORE_INFO *, + void *); + +/* + * Open a channel given a URI. The given UI method will be used any time the + * loader needs extra input, for example when a password or pin is needed, and + * will be passed the same user data every time it's needed in this context. + * + * Returns a context reference which represents the channel to communicate + * through. + */ +OSSL_STORE_CTX *OSSL_STORE_open(const char *uri, const UI_METHOD *ui_method, + void *ui_data, + OSSL_STORE_post_process_info_fn post_process, + void *post_process_data); + +/* + * Control / fine tune the OSSL_STORE channel. |cmd| determines what is to be + * done, and depends on the underlying loader (use OSSL_STORE_get0_scheme to + * determine which loader is used), except for common commands (see below). + * Each command takes different arguments. + */ +int OSSL_STORE_ctrl(OSSL_STORE_CTX *ctx, int cmd, ... /* args */); +int OSSL_STORE_vctrl(OSSL_STORE_CTX *ctx, int cmd, va_list args); + +/* + * Common ctrl commands that different loaders may choose to support. + */ +/* int on = 0 or 1; STORE_ctrl(ctx, STORE_C_USE_SECMEM, &on); */ +# define OSSL_STORE_C_USE_SECMEM 1 +/* Where custom commands start */ +# define OSSL_STORE_C_CUSTOM_START 100 + +/* + * Read one data item (a key, a cert, a CRL) that is supported by the OSSL_STORE + * functionality, given a context. + * Returns a OSSL_STORE_INFO pointer, from which OpenSSL typed data can be + * extracted with OSSL_STORE_INFO_get0_PKEY(), OSSL_STORE_INFO_get0_CERT(), ... + * NULL is returned on error, which may include that the data found at the URI + * can't be figured out for certain or is ambiguous. + */ +OSSL_STORE_INFO *OSSL_STORE_load(OSSL_STORE_CTX *ctx); + +/* + * Check if end of data (end of file) is reached + * Returns 1 on end, 0 otherwise. + */ +int OSSL_STORE_eof(OSSL_STORE_CTX *ctx); + +/* + * Check if an error occured + * Returns 1 if it did, 0 otherwise. + */ +int OSSL_STORE_error(OSSL_STORE_CTX *ctx); + +/* + * Close the channel + * Returns 1 on success, 0 on error. + */ +int OSSL_STORE_close(OSSL_STORE_CTX *ctx); + + +/*- + * Extracting OpenSSL types from and creating new OSSL_STORE_INFOs + * --------------------------------------------------------------- + */ + +/* + * Types of data that can be ossl_stored in a OSSL_STORE_INFO. + * OSSL_STORE_INFO_NAME is typically found when getting a listing of + * available "files" / "tokens" / what have you. + */ +# define OSSL_STORE_INFO_NAME 1 /* char * */ +# define OSSL_STORE_INFO_PARAMS 2 /* EVP_PKEY * */ +# define OSSL_STORE_INFO_PKEY 3 /* EVP_PKEY * */ +# define OSSL_STORE_INFO_CERT 4 /* X509 * */ +# define OSSL_STORE_INFO_CRL 5 /* X509_CRL * */ + +/* + * Functions to generate OSSL_STORE_INFOs, one function for each type we + * support having in them, as well as a generic constructor. + * + * In all cases, ownership of the object is transfered to the OSSL_STORE_INFO + * and will therefore be freed when the OSSL_STORE_INFO is freed. + */ +OSSL_STORE_INFO *OSSL_STORE_INFO_new_NAME(char *name); +int OSSL_STORE_INFO_set0_NAME_description(OSSL_STORE_INFO *info, char *desc); +OSSL_STORE_INFO *OSSL_STORE_INFO_new_PARAMS(EVP_PKEY *params); +OSSL_STORE_INFO *OSSL_STORE_INFO_new_PKEY(EVP_PKEY *pkey); +OSSL_STORE_INFO *OSSL_STORE_INFO_new_CERT(X509 *x509); +OSSL_STORE_INFO *OSSL_STORE_INFO_new_CRL(X509_CRL *crl); + +/* + * Functions to try to extract data from a OSSL_STORE_INFO. + */ +int OSSL_STORE_INFO_get_type(const OSSL_STORE_INFO *info); +const char *OSSL_STORE_INFO_get0_NAME(const OSSL_STORE_INFO *info); +char *OSSL_STORE_INFO_get1_NAME(const OSSL_STORE_INFO *info); +const char *OSSL_STORE_INFO_get0_NAME_description(const OSSL_STORE_INFO *info); +char *OSSL_STORE_INFO_get1_NAME_description(const OSSL_STORE_INFO *info); +EVP_PKEY *OSSL_STORE_INFO_get0_PARAMS(const OSSL_STORE_INFO *info); +EVP_PKEY *OSSL_STORE_INFO_get1_PARAMS(const OSSL_STORE_INFO *info); +EVP_PKEY *OSSL_STORE_INFO_get0_PKEY(const OSSL_STORE_INFO *info); +EVP_PKEY *OSSL_STORE_INFO_get1_PKEY(const OSSL_STORE_INFO *info); +X509 *OSSL_STORE_INFO_get0_CERT(const OSSL_STORE_INFO *info); +X509 *OSSL_STORE_INFO_get1_CERT(const OSSL_STORE_INFO *info); +X509_CRL *OSSL_STORE_INFO_get0_CRL(const OSSL_STORE_INFO *info); +X509_CRL *OSSL_STORE_INFO_get1_CRL(const OSSL_STORE_INFO *info); + +const char *OSSL_STORE_INFO_type_string(int type); + +/* + * Free the OSSL_STORE_INFO + */ +void OSSL_STORE_INFO_free(OSSL_STORE_INFO *info); + + +/*- + * Functions to construct a search URI from a base URI and search criteria + * ----------------------------------------------------------------------- + */ + +/* OSSL_STORE search types */ +# define OSSL_STORE_SEARCH_BY_NAME 1 /* subject in certs, issuer in CRLs */ +# define OSSL_STORE_SEARCH_BY_ISSUER_SERIAL 2 +# define OSSL_STORE_SEARCH_BY_KEY_FINGERPRINT 3 +# define OSSL_STORE_SEARCH_BY_ALIAS 4 + +/* To check what search types the scheme handler supports */ +int OSSL_STORE_supports_search(OSSL_STORE_CTX *ctx, int search_type); + +/* Search term constructors */ +/* + * The input is considered to be owned by the caller, and must therefore + * remain present throughout the lifetime of the returned OSSL_STORE_SEARCH + */ +OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_name(X509_NAME *name); +OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_issuer_serial(X509_NAME *name, + const ASN1_INTEGER + *serial); +OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_key_fingerprint(const EVP_MD *digest, + const unsigned char + *bytes, size_t len); +OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_alias(const char *alias); + +/* Search term destructor */ +void OSSL_STORE_SEARCH_free(OSSL_STORE_SEARCH *search); + +/* Search term accessors */ +int OSSL_STORE_SEARCH_get_type(const OSSL_STORE_SEARCH *criterion); +X509_NAME *OSSL_STORE_SEARCH_get0_name(OSSL_STORE_SEARCH *criterion); +const ASN1_INTEGER *OSSL_STORE_SEARCH_get0_serial(const OSSL_STORE_SEARCH + *criterion); +const unsigned char *OSSL_STORE_SEARCH_get0_bytes(const OSSL_STORE_SEARCH + *criterion, size_t *length); +const char *OSSL_STORE_SEARCH_get0_string(const OSSL_STORE_SEARCH *criterion); +const EVP_MD *OSSL_STORE_SEARCH_get0_digest(const OSSL_STORE_SEARCH *criterion); + +/* + * Add search criterion and expected return type (which can be unspecified) + * to the loading channel. This MUST happen before the first OSSL_STORE_load(). + */ +int OSSL_STORE_expect(OSSL_STORE_CTX *ctx, int expected_type); +int OSSL_STORE_find(OSSL_STORE_CTX *ctx, OSSL_STORE_SEARCH *search); + + +/*- + * Function to register a loader for the given URI scheme. + * ------------------------------------------------------- + * + * The loader receives all the main components of an URI except for the + * scheme. + */ + +typedef struct ossl_store_loader_st OSSL_STORE_LOADER; +OSSL_STORE_LOADER *OSSL_STORE_LOADER_new(ENGINE *e, const char *scheme); +const ENGINE *OSSL_STORE_LOADER_get0_engine(const OSSL_STORE_LOADER *loader); +const char *OSSL_STORE_LOADER_get0_scheme(const OSSL_STORE_LOADER *loader); +/* struct ossl_store_loader_ctx_st is defined differently by each loader */ +typedef struct ossl_store_loader_ctx_st OSSL_STORE_LOADER_CTX; +typedef OSSL_STORE_LOADER_CTX *(*OSSL_STORE_open_fn)(const OSSL_STORE_LOADER + *loader, + const char *uri, + const UI_METHOD *ui_method, + void *ui_data); +int OSSL_STORE_LOADER_set_open(OSSL_STORE_LOADER *loader, + OSSL_STORE_open_fn open_function); +typedef int (*OSSL_STORE_ctrl_fn)(OSSL_STORE_LOADER_CTX *ctx, int cmd, + va_list args); +int OSSL_STORE_LOADER_set_ctrl(OSSL_STORE_LOADER *loader, + OSSL_STORE_ctrl_fn ctrl_function); +typedef int (*OSSL_STORE_expect_fn)(OSSL_STORE_LOADER_CTX *ctx, int expected); +int OSSL_STORE_LOADER_set_expect(OSSL_STORE_LOADER *loader, + OSSL_STORE_expect_fn expect_function); +typedef int (*OSSL_STORE_find_fn)(OSSL_STORE_LOADER_CTX *ctx, + OSSL_STORE_SEARCH *criteria); +int OSSL_STORE_LOADER_set_find(OSSL_STORE_LOADER *loader, + OSSL_STORE_find_fn find_function); +typedef OSSL_STORE_INFO *(*OSSL_STORE_load_fn)(OSSL_STORE_LOADER_CTX *ctx, + const UI_METHOD *ui_method, + void *ui_data); +int OSSL_STORE_LOADER_set_load(OSSL_STORE_LOADER *loader, + OSSL_STORE_load_fn load_function); +typedef int (*OSSL_STORE_eof_fn)(OSSL_STORE_LOADER_CTX *ctx); +int OSSL_STORE_LOADER_set_eof(OSSL_STORE_LOADER *loader, + OSSL_STORE_eof_fn eof_function); +typedef int (*OSSL_STORE_error_fn)(OSSL_STORE_LOADER_CTX *ctx); +int OSSL_STORE_LOADER_set_error(OSSL_STORE_LOADER *loader, + OSSL_STORE_error_fn error_function); +typedef int (*OSSL_STORE_close_fn)(OSSL_STORE_LOADER_CTX *ctx); +int OSSL_STORE_LOADER_set_close(OSSL_STORE_LOADER *loader, + OSSL_STORE_close_fn close_function); +void OSSL_STORE_LOADER_free(OSSL_STORE_LOADER *loader); + +int OSSL_STORE_register_loader(OSSL_STORE_LOADER *loader); +OSSL_STORE_LOADER *OSSL_STORE_unregister_loader(const char *scheme); + +/*- + * Functions to list STORE loaders + * ------------------------------- + */ +int OSSL_STORE_do_all_loaders(void (*do_function) (const OSSL_STORE_LOADER + *loader, void *do_arg), + void *do_arg); + +# ifdef __cplusplus +} +# endif +#endif diff --git a/noarch/include/node/openssl/storeerr.h b/noarch/include/node/openssl/storeerr.h new file mode 100644 index 00000000..33d0ab79 --- /dev/null +++ b/noarch/include/node/openssl/storeerr.h @@ -0,0 +1,87 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_OSSL_STOREERR_H +# define HEADER_OSSL_STOREERR_H + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_OSSL_STORE_strings(void); + +/* + * OSSL_STORE function codes. + */ +# define OSSL_STORE_F_FILE_CTRL 129 +# define OSSL_STORE_F_FILE_FIND 138 +# define OSSL_STORE_F_FILE_GET_PASS 118 +# define OSSL_STORE_F_FILE_LOAD 119 +# define OSSL_STORE_F_FILE_LOAD_TRY_DECODE 124 +# define OSSL_STORE_F_FILE_NAME_TO_URI 126 +# define OSSL_STORE_F_FILE_OPEN 120 +# define OSSL_STORE_F_OSSL_STORE_ATTACH_PEM_BIO 127 +# define OSSL_STORE_F_OSSL_STORE_EXPECT 130 +# define OSSL_STORE_F_OSSL_STORE_FILE_ATTACH_PEM_BIO_INT 128 +# define OSSL_STORE_F_OSSL_STORE_FIND 131 +# define OSSL_STORE_F_OSSL_STORE_GET0_LOADER_INT 100 +# define OSSL_STORE_F_OSSL_STORE_INFO_GET1_CERT 101 +# define OSSL_STORE_F_OSSL_STORE_INFO_GET1_CRL 102 +# define OSSL_STORE_F_OSSL_STORE_INFO_GET1_NAME 103 +# define OSSL_STORE_F_OSSL_STORE_INFO_GET1_NAME_DESCRIPTION 135 +# define OSSL_STORE_F_OSSL_STORE_INFO_GET1_PARAMS 104 +# define OSSL_STORE_F_OSSL_STORE_INFO_GET1_PKEY 105 +# define OSSL_STORE_F_OSSL_STORE_INFO_NEW_CERT 106 +# define OSSL_STORE_F_OSSL_STORE_INFO_NEW_CRL 107 +# define OSSL_STORE_F_OSSL_STORE_INFO_NEW_EMBEDDED 123 +# define OSSL_STORE_F_OSSL_STORE_INFO_NEW_NAME 109 +# define OSSL_STORE_F_OSSL_STORE_INFO_NEW_PARAMS 110 +# define OSSL_STORE_F_OSSL_STORE_INFO_NEW_PKEY 111 +# define OSSL_STORE_F_OSSL_STORE_INFO_SET0_NAME_DESCRIPTION 134 +# define OSSL_STORE_F_OSSL_STORE_INIT_ONCE 112 +# define OSSL_STORE_F_OSSL_STORE_LOADER_NEW 113 +# define OSSL_STORE_F_OSSL_STORE_OPEN 114 +# define OSSL_STORE_F_OSSL_STORE_OPEN_INT 115 +# define OSSL_STORE_F_OSSL_STORE_REGISTER_LOADER_INT 117 +# define OSSL_STORE_F_OSSL_STORE_SEARCH_BY_ALIAS 132 +# define OSSL_STORE_F_OSSL_STORE_SEARCH_BY_ISSUER_SERIAL 133 +# define OSSL_STORE_F_OSSL_STORE_SEARCH_BY_KEY_FINGERPRINT 136 +# define OSSL_STORE_F_OSSL_STORE_SEARCH_BY_NAME 137 +# define OSSL_STORE_F_OSSL_STORE_UNREGISTER_LOADER_INT 116 +# define OSSL_STORE_F_TRY_DECODE_PARAMS 121 +# define OSSL_STORE_F_TRY_DECODE_PKCS12 122 +# define OSSL_STORE_F_TRY_DECODE_PKCS8ENCRYPTED 125 + +/* + * OSSL_STORE reason codes. + */ +# define OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE 107 +# define OSSL_STORE_R_BAD_PASSWORD_READ 115 +# define OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC 113 +# define OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST 121 +# define OSSL_STORE_R_INVALID_SCHEME 106 +# define OSSL_STORE_R_IS_NOT_A 112 +# define OSSL_STORE_R_LOADER_INCOMPLETE 116 +# define OSSL_STORE_R_LOADING_STARTED 117 +# define OSSL_STORE_R_NOT_A_CERTIFICATE 100 +# define OSSL_STORE_R_NOT_A_CRL 101 +# define OSSL_STORE_R_NOT_A_KEY 102 +# define OSSL_STORE_R_NOT_A_NAME 103 +# define OSSL_STORE_R_NOT_PARAMETERS 104 +# define OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR 114 +# define OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE 108 +# define OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES 119 +# define OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED 109 +# define OSSL_STORE_R_UNREGISTERED_SCHEME 105 +# define OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE 110 +# define OSSL_STORE_R_UNSUPPORTED_OPERATION 118 +# define OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE 120 +# define OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED 111 + +#endif diff --git a/noarch/include/node/openssl/symhacks.h b/noarch/include/node/openssl/symhacks.h index caf1f1a7..156ea6e4 100644 --- a/noarch/include/node/openssl/symhacks.h +++ b/noarch/include/node/openssl/symhacks.h @@ -1,5 +1,5 @@ /* - * Copyright 1999-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,21 +28,6 @@ # undef i2d_ECPKPARAMETERS # define i2d_ECPKPARAMETERS i2d_UC_ECPKPARAMETERS -/* - * These functions do not seem to exist! However, I'm paranoid... Original - * command in x509v3.h: These functions are being redefined in another - * directory, and clash when the linker is case-insensitive, so let's hide - * them a little, by giving them an extra 'o' at the beginning of the name... - */ -# undef X509v3_cleanup_extensions -# define X509v3_cleanup_extensions oX509v3_cleanup_extensions -# undef X509v3_add_extension -# define X509v3_add_extension oX509v3_add_extension -# undef X509v3_add_netscape_extensions -# define X509v3_add_netscape_extensions oX509v3_add_netscape_extensions -# undef X509v3_add_standard_extensions -# define X509v3_add_standard_extensions oX509v3_add_standard_extensions - /* This one clashes with CMS_data_create */ # undef cms_Data_create # define cms_Data_create priv_cms_Data_create diff --git a/noarch/include/node/openssl/tls1.h b/noarch/include/node/openssl/tls1.h index 732e87ab..e13b5dd4 100644 --- a/noarch/include/node/openssl/tls1.h +++ b/noarch/include/node/openssl/tls1.h @@ -1,5 +1,7 @@ /* * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved + * Copyright 2005 Nokia. All rights reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -7,46 +9,6 @@ * https://www.openssl.org/source/license.html */ -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * - * Portions of the attached software ("Contribution") are developed by - * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. - * - * The Contribution is licensed pursuant to the OpenSSL open source - * license provided above. - * - * ECC cipher suite support in OpenSSL originally written by - * Vipul Gupta and Sumit Gupta of Sun Microsystems Laboratories. - * - */ -/* ==================================================================== - * Copyright 2005 Nokia. All rights reserved. - * - * The portions of the attached software ("Contribution") is developed by - * Nokia Corporation and is licensed pursuant to the OpenSSL open source - * license. - * - * The Contribution, originally written by Mika Kousa and Pasi Eronen of - * Nokia Corporation, consists of the "PSK" (Pre-Shared Key) ciphersuites - * support (see RFC 4279) to OpenSSL. - * - * No patent licenses or other rights except those expressly stated in - * the OpenSSL open source license shall be deemed granted or received - * expressly, by implication, estoppel, or otherwise. - * - * No assurances are provided by Nokia that the Contribution does not - * infringe the patent or other intellectual property rights of any third - * party or that the license provides you with all the necessary rights - * to make use of the Contribution. - * - * THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN - * ADDITION TO THE DISCLAIMERS INCLUDED IN THE LICENSE, NOKIA - * SPECIFICALLY DISCLAIMS ANY LIABILITY FOR CLAIMS BROUGHT BY YOU OR ANY - * OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR - * OTHERWISE. - */ - #ifndef HEADER_TLS1_H # define HEADER_TLS1_H @@ -65,7 +27,8 @@ extern "C" { # define TLS1_VERSION 0x0301 # define TLS1_1_VERSION 0x0302 # define TLS1_2_VERSION 0x0303 -# define TLS_MAX_VERSION TLS1_2_VERSION +# define TLS1_3_VERSION 0x0304 +# define TLS_MAX_VERSION TLS1_3_VERSION /* Special value for method supporting multiple versions */ # define TLS_ANY_VERSION 0x10000 @@ -80,10 +43,10 @@ extern "C" { # define TLS1_2_VERSION_MINOR 0x03 # define TLS1_get_version(s) \ - ((SSL_version(s) >> 8) == TLS1_VERSION_MAJOR ? SSL_version(s) : 0) + ((SSL_version(s) >> 8) == TLS1_VERSION_MAJOR ? SSL_version(s) : 0) # define TLS1_get_client_version(s) \ - ((SSL_client_version(s) >> 8) == TLS1_VERSION_MAJOR ? SSL_client_version(s) : 0) + ((SSL_client_version(s) >> 8) == TLS1_VERSION_MAJOR ? SSL_client_version(s) : 0) # define TLS1_AD_DECRYPTION_FAILED 21 # define TLS1_AD_RECORD_OVERFLOW 22 @@ -98,6 +61,9 @@ extern "C" { # define TLS1_AD_INAPPROPRIATE_FALLBACK 86/* fatal */ # define TLS1_AD_USER_CANCELLED 90 # define TLS1_AD_NO_RENEGOTIATION 100 +/* TLSv1.3 alerts */ +# define TLS13_AD_MISSING_EXTENSION 109 /* fatal */ +# define TLS13_AD_CERTIFICATE_REQUIRED 116 /* fatal */ /* codes 110-114 are from RFC3546 */ # define TLS1_AD_UNSUPPORTED_EXTENSION 110 # define TLS1_AD_CERTIFICATE_UNOBTAINABLE 111 @@ -123,9 +89,15 @@ extern "C" { # define TLSEXT_TYPE_cert_type 9 /* ExtensionType values from RFC4492 */ -# define TLSEXT_TYPE_elliptic_curves 10 +/* + * Prior to TLSv1.3 the supported_groups extension was known as + * elliptic_curves + */ +# define TLSEXT_TYPE_supported_groups 10 +# define TLSEXT_TYPE_elliptic_curves TLSEXT_TYPE_supported_groups # define TLSEXT_TYPE_ec_point_formats 11 + /* ExtensionType value from RFC5054 */ # define TLSEXT_TYPE_srp 12 @@ -162,6 +134,17 @@ extern "C" { /* ExtensionType value from RFC4507 */ # define TLSEXT_TYPE_session_ticket 35 +/* As defined for TLS1.3 */ +# define TLSEXT_TYPE_psk 41 +# define TLSEXT_TYPE_early_data 42 +# define TLSEXT_TYPE_supported_versions 43 +# define TLSEXT_TYPE_cookie 44 +# define TLSEXT_TYPE_psk_kex_modes 45 +# define TLSEXT_TYPE_certificate_authorities 47 +# define TLSEXT_TYPE_post_handshake_auth 49 +# define TLSEXT_TYPE_signature_algorithms_cert 50 +# define TLSEXT_TYPE_key_share 51 + /* Temporary extension type */ # define TLSEXT_TYPE_renegotiate 0xff01 @@ -217,6 +200,17 @@ extern "C" { # define TLSEXT_curve_P_256 23 # define TLSEXT_curve_P_384 24 +/* OpenSSL value to disable maximum fragment length extension */ +# define TLSEXT_max_fragment_length_DISABLED 0 +/* Allowed values for max fragment length extension */ +# define TLSEXT_max_fragment_length_512 1 +# define TLSEXT_max_fragment_length_1024 2 +# define TLSEXT_max_fragment_length_2048 3 +# define TLSEXT_max_fragment_length_4096 4 + +int SSL_CTX_set_tlsext_max_fragment_length(SSL_CTX *ctx, uint8_t mode); +int SSL_set_tlsext_max_fragment_length(SSL *ssl, uint8_t mode); + # define TLSEXT_MAXLEN_host_name 255 __owur const char *SSL_get_servername(const SSL *s, const int type); @@ -233,6 +227,22 @@ __owur int SSL_export_keying_material(SSL *s, unsigned char *out, size_t olen, const unsigned char *context, size_t contextlen, int use_context); +/* + * SSL_export_keying_material_early exports a value derived from the + * early exporter master secret, as specified in + * https://tools.ietf.org/html/draft-ietf-tls-tls13-23. It writes + * |olen| bytes to |out| given a label and optional context. It + * returns 1 on success and 0 otherwise. + */ +__owur int SSL_export_keying_material_early(SSL *s, unsigned char *out, + size_t olen, const char *label, + size_t llen, + const unsigned char *context, + size_t contextlen); + +int SSL_get_peer_signature_type_nid(const SSL *s, int *pnid); +int SSL_get_signature_type_nid(const SSL *s, int *pnid); + int SSL_get_sigalgs(SSL *s, int idx, int *psign, int *phash, int *psignandhash, unsigned char *rsig, unsigned char *rhash); @@ -244,40 +254,43 @@ int SSL_get_shared_sigalgs(SSL *s, int idx, __owur int SSL_check_chain(SSL *s, X509 *x, EVP_PKEY *pk, STACK_OF(X509) *chain); # define SSL_set_tlsext_host_name(s,name) \ -SSL_ctrl(s,SSL_CTRL_SET_TLSEXT_HOSTNAME,TLSEXT_NAMETYPE_host_name,(char *)name) + SSL_ctrl(s,SSL_CTRL_SET_TLSEXT_HOSTNAME,TLSEXT_NAMETYPE_host_name,\ + (void *)name) # define SSL_set_tlsext_debug_callback(ssl, cb) \ -SSL_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_DEBUG_CB,(void (*)(void))cb) + SSL_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_DEBUG_CB,\ + (void (*)(void))cb) # define SSL_set_tlsext_debug_arg(ssl, arg) \ -SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_DEBUG_ARG,0, (void *)arg) + SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_DEBUG_ARG,0,arg) # define SSL_get_tlsext_status_type(ssl) \ -SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE,0, NULL) + SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE,0,NULL) # define SSL_set_tlsext_status_type(ssl, type) \ -SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE,type, NULL) + SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE,type,NULL) # define SSL_get_tlsext_status_exts(ssl, arg) \ -SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS,0, (void *)arg) + SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS,0,arg) # define SSL_set_tlsext_status_exts(ssl, arg) \ -SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS,0, (void *)arg) + SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS,0,arg) # define SSL_get_tlsext_status_ids(ssl, arg) \ -SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS,0, (void *)arg) + SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS,0,arg) # define SSL_set_tlsext_status_ids(ssl, arg) \ -SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS,0, (void *)arg) + SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS,0,arg) # define SSL_get_tlsext_status_ocsp_resp(ssl, arg) \ -SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP,0, (void *)arg) + SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP,0,arg) # define SSL_set_tlsext_status_ocsp_resp(ssl, arg, arglen) \ -SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP,arglen, (void *)arg) + SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP,arglen,arg) # define SSL_CTX_set_tlsext_servername_callback(ctx, cb) \ -SSL_CTX_callback_ctrl(ctx,SSL_CTRL_SET_TLSEXT_SERVERNAME_CB,(void (*)(void))cb) + SSL_CTX_callback_ctrl(ctx,SSL_CTRL_SET_TLSEXT_SERVERNAME_CB,\ + (void (*)(void))cb) # define SSL_TLSEXT_ERR_OK 0 # define SSL_TLSEXT_ERR_ALERT_WARNING 1 @@ -285,40 +298,42 @@ SSL_CTX_callback_ctrl(ctx,SSL_CTRL_SET_TLSEXT_SERVERNAME_CB,(void (*)(void))cb) # define SSL_TLSEXT_ERR_NOACK 3 # define SSL_CTX_set_tlsext_servername_arg(ctx, arg) \ -SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG,0, (void *)arg) + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG,0,arg) # define SSL_CTX_get_tlsext_ticket_keys(ctx, keys, keylen) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_GET_TLSEXT_TICKET_KEYS,(keylen),(keys)) + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_TLSEXT_TICKET_KEYS,keylen,keys) # define SSL_CTX_set_tlsext_ticket_keys(ctx, keys, keylen) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_SET_TLSEXT_TICKET_KEYS,(keylen),(keys)) + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TLSEXT_TICKET_KEYS,keylen,keys) # define SSL_CTX_get_tlsext_status_cb(ssl, cb) \ -SSL_CTX_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB,0, (void (**)(void))cb) + SSL_CTX_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB,0,(void *)cb) # define SSL_CTX_set_tlsext_status_cb(ssl, cb) \ -SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB,(void (*)(void))cb) + SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB,\ + (void (*)(void))cb) # define SSL_CTX_get_tlsext_status_arg(ssl, arg) \ - SSL_CTX_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB_ARG,0, (void *)arg) + SSL_CTX_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB_ARG,0,arg) # define SSL_CTX_set_tlsext_status_arg(ssl, arg) \ - SSL_CTX_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG,0, (void *)arg) + SSL_CTX_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG,0,arg) -#define SSL_CTX_set_tlsext_status_type(ssl, type) \ - SSL_CTX_ctrl(ssl, SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE, type, NULL) +# define SSL_CTX_set_tlsext_status_type(ssl, type) \ + SSL_CTX_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE,type,NULL) -#define SSL_CTX_get_tlsext_status_type(ssl) \ - SSL_CTX_ctrl(ssl, SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE, 0, NULL) +# define SSL_CTX_get_tlsext_status_type(ssl) \ + SSL_CTX_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE,0,NULL) # define SSL_CTX_set_tlsext_ticket_key_cb(ssl, cb) \ -SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) + SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,\ + (void (*)(void))cb) # ifndef OPENSSL_NO_HEARTBEATS # define SSL_DTLSEXT_HB_ENABLED 0x01 # define SSL_DTLSEXT_HB_DONT_SEND_REQUESTS 0x02 # define SSL_DTLSEXT_HB_DONT_RECV_REQUESTS 0x04 # define SSL_get_dtlsext_heartbeat_pending(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_GET_DTLS_EXT_HEARTBEAT_PENDING,0,NULL) + SSL_ctrl(ssl,SSL_CTRL_GET_DTLS_EXT_HEARTBEAT_PENDING,0,NULL) # define SSL_set_dtlsext_heartbeat_no_requests(ssl, arg) \ - SSL_ctrl((ssl),SSL_CTRL_SET_DTLS_EXT_HEARTBEAT_NO_REQUESTS,arg,NULL) + SSL_ctrl(ssl,SSL_CTRL_SET_DTLS_EXT_HEARTBEAT_NO_REQUESTS,arg,NULL) # if OPENSSL_API_COMPAT < 0x10100000L # define SSL_CTRL_TLS_EXT_SEND_HEARTBEAT \ @@ -336,7 +351,7 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) # define SSL_get_tlsext_heartbeat_pending(ssl) \ SSL_get_dtlsext_heartbeat_pending(ssl) # define SSL_set_tlsext_heartbeat_no_requests(ssl, arg) \ - SSL_set_dtlsext_heartbeat_no_requests(ssl, arg) + SSL_set_dtlsext_heartbeat_no_requests(ssl,arg) # endif # endif @@ -345,12 +360,10 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) # define TLS1_CK_PSK_WITH_3DES_EDE_CBC_SHA 0x0300008B # define TLS1_CK_PSK_WITH_AES_128_CBC_SHA 0x0300008C # define TLS1_CK_PSK_WITH_AES_256_CBC_SHA 0x0300008D - # define TLS1_CK_DHE_PSK_WITH_RC4_128_SHA 0x0300008E # define TLS1_CK_DHE_PSK_WITH_3DES_EDE_CBC_SHA 0x0300008F # define TLS1_CK_DHE_PSK_WITH_AES_128_CBC_SHA 0x03000090 # define TLS1_CK_DHE_PSK_WITH_AES_256_CBC_SHA 0x03000091 - # define TLS1_CK_RSA_PSK_WITH_RC4_128_SHA 0x03000092 # define TLS1_CK_RSA_PSK_WITH_3DES_EDE_CBC_SHA 0x03000093 # define TLS1_CK_RSA_PSK_WITH_AES_128_CBC_SHA 0x03000094 @@ -363,17 +376,14 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) # define TLS1_CK_DHE_PSK_WITH_AES_256_GCM_SHA384 0x030000AB # define TLS1_CK_RSA_PSK_WITH_AES_128_GCM_SHA256 0x030000AC # define TLS1_CK_RSA_PSK_WITH_AES_256_GCM_SHA384 0x030000AD - # define TLS1_CK_PSK_WITH_AES_128_CBC_SHA256 0x030000AE # define TLS1_CK_PSK_WITH_AES_256_CBC_SHA384 0x030000AF # define TLS1_CK_PSK_WITH_NULL_SHA256 0x030000B0 # define TLS1_CK_PSK_WITH_NULL_SHA384 0x030000B1 - # define TLS1_CK_DHE_PSK_WITH_AES_128_CBC_SHA256 0x030000B2 # define TLS1_CK_DHE_PSK_WITH_AES_256_CBC_SHA384 0x030000B3 # define TLS1_CK_DHE_PSK_WITH_NULL_SHA256 0x030000B4 # define TLS1_CK_DHE_PSK_WITH_NULL_SHA384 0x030000B5 - # define TLS1_CK_RSA_PSK_WITH_AES_128_CBC_SHA256 0x030000B6 # define TLS1_CK_RSA_PSK_WITH_AES_256_CBC_SHA384 0x030000B7 # define TLS1_CK_RSA_PSK_WITH_NULL_SHA256 0x030000B8 @@ -391,7 +401,6 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) # define TLS1_CK_DHE_DSS_WITH_AES_128_SHA 0x03000032 # define TLS1_CK_DHE_RSA_WITH_AES_128_SHA 0x03000033 # define TLS1_CK_ADH_WITH_AES_128_SHA 0x03000034 - # define TLS1_CK_RSA_WITH_AES_256_SHA 0x03000035 # define TLS1_CK_DH_DSS_WITH_AES_256_SHA 0x03000036 # define TLS1_CK_DH_RSA_WITH_AES_256_SHA 0x03000037 @@ -536,7 +545,6 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) # define TLS1_CK_SRP_SHA_DSS_WITH_AES_256_CBC_SHA 0x0300C022 /* ECDH HMAC based ciphersuites from RFC5289 */ - # define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_SHA256 0x0300C023 # define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_SHA384 0x0300C024 # define TLS1_CK_ECDH_ECDSA_WITH_AES_128_SHA256 0x0300C025 @@ -566,7 +574,6 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) # define TLS1_CK_ECDHE_PSK_WITH_AES_256_CBC_SHA384 0x0300C038 /* NULL PSK ciphersuites from RFC4785 */ - # define TLS1_CK_ECDHE_PSK_WITH_NULL_SHA 0x0300C039 # define TLS1_CK_ECDHE_PSK_WITH_NULL_SHA256 0x0300C03A # define TLS1_CK_ECDHE_PSK_WITH_NULL_SHA384 0x0300C03B @@ -599,6 +606,233 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) # define TLS1_CK_DHE_PSK_WITH_CHACHA20_POLY1305 0x0300CCAD # define TLS1_CK_RSA_PSK_WITH_CHACHA20_POLY1305 0x0300CCAE +/* TLS v1.3 ciphersuites */ +# define TLS1_3_CK_AES_128_GCM_SHA256 0x03001301 +# define TLS1_3_CK_AES_256_GCM_SHA384 0x03001302 +# define TLS1_3_CK_CHACHA20_POLY1305_SHA256 0x03001303 +# define TLS1_3_CK_AES_128_CCM_SHA256 0x03001304 +# define TLS1_3_CK_AES_128_CCM_8_SHA256 0x03001305 + +/* Aria ciphersuites from RFC6209 */ +# define TLS1_CK_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C050 +# define TLS1_CK_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C051 +# define TLS1_CK_DHE_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C052 +# define TLS1_CK_DHE_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C053 +# define TLS1_CK_DH_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C054 +# define TLS1_CK_DH_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C055 +# define TLS1_CK_DHE_DSS_WITH_ARIA_128_GCM_SHA256 0x0300C056 +# define TLS1_CK_DHE_DSS_WITH_ARIA_256_GCM_SHA384 0x0300C057 +# define TLS1_CK_DH_DSS_WITH_ARIA_128_GCM_SHA256 0x0300C058 +# define TLS1_CK_DH_DSS_WITH_ARIA_256_GCM_SHA384 0x0300C059 +# define TLS1_CK_DH_anon_WITH_ARIA_128_GCM_SHA256 0x0300C05A +# define TLS1_CK_DH_anon_WITH_ARIA_256_GCM_SHA384 0x0300C05B +# define TLS1_CK_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 0x0300C05C +# define TLS1_CK_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 0x0300C05D +# define TLS1_CK_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 0x0300C05E +# define TLS1_CK_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 0x0300C05F +# define TLS1_CK_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C060 +# define TLS1_CK_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C061 +# define TLS1_CK_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C062 +# define TLS1_CK_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C063 +# define TLS1_CK_PSK_WITH_ARIA_128_GCM_SHA256 0x0300C06A +# define TLS1_CK_PSK_WITH_ARIA_256_GCM_SHA384 0x0300C06B +# define TLS1_CK_DHE_PSK_WITH_ARIA_128_GCM_SHA256 0x0300C06C +# define TLS1_CK_DHE_PSK_WITH_ARIA_256_GCM_SHA384 0x0300C06D +# define TLS1_CK_RSA_PSK_WITH_ARIA_128_GCM_SHA256 0x0300C06E +# define TLS1_CK_RSA_PSK_WITH_ARIA_256_GCM_SHA384 0x0300C06F + +/* a bundle of RFC standard cipher names, generated from ssl3_ciphers[] */ +# define TLS1_RFC_RSA_WITH_AES_128_SHA "TLS_RSA_WITH_AES_128_CBC_SHA" +# define TLS1_RFC_DHE_DSS_WITH_AES_128_SHA "TLS_DHE_DSS_WITH_AES_128_CBC_SHA" +# define TLS1_RFC_DHE_RSA_WITH_AES_128_SHA "TLS_DHE_RSA_WITH_AES_128_CBC_SHA" +# define TLS1_RFC_ADH_WITH_AES_128_SHA "TLS_DH_anon_WITH_AES_128_CBC_SHA" +# define TLS1_RFC_RSA_WITH_AES_256_SHA "TLS_RSA_WITH_AES_256_CBC_SHA" +# define TLS1_RFC_DHE_DSS_WITH_AES_256_SHA "TLS_DHE_DSS_WITH_AES_256_CBC_SHA" +# define TLS1_RFC_DHE_RSA_WITH_AES_256_SHA "TLS_DHE_RSA_WITH_AES_256_CBC_SHA" +# define TLS1_RFC_ADH_WITH_AES_256_SHA "TLS_DH_anon_WITH_AES_256_CBC_SHA" +# define TLS1_RFC_RSA_WITH_NULL_SHA256 "TLS_RSA_WITH_NULL_SHA256" +# define TLS1_RFC_RSA_WITH_AES_128_SHA256 "TLS_RSA_WITH_AES_128_CBC_SHA256" +# define TLS1_RFC_RSA_WITH_AES_256_SHA256 "TLS_RSA_WITH_AES_256_CBC_SHA256" +# define TLS1_RFC_DHE_DSS_WITH_AES_128_SHA256 "TLS_DHE_DSS_WITH_AES_128_CBC_SHA256" +# define TLS1_RFC_DHE_RSA_WITH_AES_128_SHA256 "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256" +# define TLS1_RFC_DHE_DSS_WITH_AES_256_SHA256 "TLS_DHE_DSS_WITH_AES_256_CBC_SHA256" +# define TLS1_RFC_DHE_RSA_WITH_AES_256_SHA256 "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256" +# define TLS1_RFC_ADH_WITH_AES_128_SHA256 "TLS_DH_anon_WITH_AES_128_CBC_SHA256" +# define TLS1_RFC_ADH_WITH_AES_256_SHA256 "TLS_DH_anon_WITH_AES_256_CBC_SHA256" +# define TLS1_RFC_RSA_WITH_AES_128_GCM_SHA256 "TLS_RSA_WITH_AES_128_GCM_SHA256" +# define TLS1_RFC_RSA_WITH_AES_256_GCM_SHA384 "TLS_RSA_WITH_AES_256_GCM_SHA384" +# define TLS1_RFC_DHE_RSA_WITH_AES_128_GCM_SHA256 "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256" +# define TLS1_RFC_DHE_RSA_WITH_AES_256_GCM_SHA384 "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384" +# define TLS1_RFC_DHE_DSS_WITH_AES_128_GCM_SHA256 "TLS_DHE_DSS_WITH_AES_128_GCM_SHA256" +# define TLS1_RFC_DHE_DSS_WITH_AES_256_GCM_SHA384 "TLS_DHE_DSS_WITH_AES_256_GCM_SHA384" +# define TLS1_RFC_ADH_WITH_AES_128_GCM_SHA256 "TLS_DH_anon_WITH_AES_128_GCM_SHA256" +# define TLS1_RFC_ADH_WITH_AES_256_GCM_SHA384 "TLS_DH_anon_WITH_AES_256_GCM_SHA384" +# define TLS1_RFC_RSA_WITH_AES_128_CCM "TLS_RSA_WITH_AES_128_CCM" +# define TLS1_RFC_RSA_WITH_AES_256_CCM "TLS_RSA_WITH_AES_256_CCM" +# define TLS1_RFC_DHE_RSA_WITH_AES_128_CCM "TLS_DHE_RSA_WITH_AES_128_CCM" +# define TLS1_RFC_DHE_RSA_WITH_AES_256_CCM "TLS_DHE_RSA_WITH_AES_256_CCM" +# define TLS1_RFC_RSA_WITH_AES_128_CCM_8 "TLS_RSA_WITH_AES_128_CCM_8" +# define TLS1_RFC_RSA_WITH_AES_256_CCM_8 "TLS_RSA_WITH_AES_256_CCM_8" +# define TLS1_RFC_DHE_RSA_WITH_AES_128_CCM_8 "TLS_DHE_RSA_WITH_AES_128_CCM_8" +# define TLS1_RFC_DHE_RSA_WITH_AES_256_CCM_8 "TLS_DHE_RSA_WITH_AES_256_CCM_8" +# define TLS1_RFC_PSK_WITH_AES_128_CCM "TLS_PSK_WITH_AES_128_CCM" +# define TLS1_RFC_PSK_WITH_AES_256_CCM "TLS_PSK_WITH_AES_256_CCM" +# define TLS1_RFC_DHE_PSK_WITH_AES_128_CCM "TLS_DHE_PSK_WITH_AES_128_CCM" +# define TLS1_RFC_DHE_PSK_WITH_AES_256_CCM "TLS_DHE_PSK_WITH_AES_256_CCM" +# define TLS1_RFC_PSK_WITH_AES_128_CCM_8 "TLS_PSK_WITH_AES_128_CCM_8" +# define TLS1_RFC_PSK_WITH_AES_256_CCM_8 "TLS_PSK_WITH_AES_256_CCM_8" +# define TLS1_RFC_DHE_PSK_WITH_AES_128_CCM_8 "TLS_PSK_DHE_WITH_AES_128_CCM_8" +# define TLS1_RFC_DHE_PSK_WITH_AES_256_CCM_8 "TLS_PSK_DHE_WITH_AES_256_CCM_8" +# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_CCM "TLS_ECDHE_ECDSA_WITH_AES_128_CCM" +# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_CCM "TLS_ECDHE_ECDSA_WITH_AES_256_CCM" +# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_CCM_8 "TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8" +# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_CCM_8 "TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8" +# define TLS1_3_RFC_AES_128_GCM_SHA256 "TLS_AES_128_GCM_SHA256" +# define TLS1_3_RFC_AES_256_GCM_SHA384 "TLS_AES_256_GCM_SHA384" +# define TLS1_3_RFC_CHACHA20_POLY1305_SHA256 "TLS_CHACHA20_POLY1305_SHA256" +# define TLS1_3_RFC_AES_128_CCM_SHA256 "TLS_AES_128_CCM_SHA256" +# define TLS1_3_RFC_AES_128_CCM_8_SHA256 "TLS_AES_128_CCM_8_SHA256" +# define TLS1_RFC_ECDHE_ECDSA_WITH_NULL_SHA "TLS_ECDHE_ECDSA_WITH_NULL_SHA" +# define TLS1_RFC_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA" +# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_CBC_SHA "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA" +# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_CBC_SHA "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA" +# define TLS1_RFC_ECDHE_RSA_WITH_NULL_SHA "TLS_ECDHE_RSA_WITH_NULL_SHA" +# define TLS1_RFC_ECDHE_RSA_WITH_DES_192_CBC3_SHA "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA" +# define TLS1_RFC_ECDHE_RSA_WITH_AES_128_CBC_SHA "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA" +# define TLS1_RFC_ECDHE_RSA_WITH_AES_256_CBC_SHA "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA" +# define TLS1_RFC_ECDH_anon_WITH_NULL_SHA "TLS_ECDH_anon_WITH_NULL_SHA" +# define TLS1_RFC_ECDH_anon_WITH_DES_192_CBC3_SHA "TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA" +# define TLS1_RFC_ECDH_anon_WITH_AES_128_CBC_SHA "TLS_ECDH_anon_WITH_AES_128_CBC_SHA" +# define TLS1_RFC_ECDH_anon_WITH_AES_256_CBC_SHA "TLS_ECDH_anon_WITH_AES_256_CBC_SHA" +# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_SHA256 "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256" +# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_SHA384 "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384" +# define TLS1_RFC_ECDHE_RSA_WITH_AES_128_SHA256 "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256" +# define TLS1_RFC_ECDHE_RSA_WITH_AES_256_SHA384 "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384" +# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256" +# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384" +# define TLS1_RFC_ECDHE_RSA_WITH_AES_128_GCM_SHA256 "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" +# define TLS1_RFC_ECDHE_RSA_WITH_AES_256_GCM_SHA384 "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384" +# define TLS1_RFC_PSK_WITH_NULL_SHA "TLS_PSK_WITH_NULL_SHA" +# define TLS1_RFC_DHE_PSK_WITH_NULL_SHA "TLS_DHE_PSK_WITH_NULL_SHA" +# define TLS1_RFC_RSA_PSK_WITH_NULL_SHA "TLS_RSA_PSK_WITH_NULL_SHA" +# define TLS1_RFC_PSK_WITH_3DES_EDE_CBC_SHA "TLS_PSK_WITH_3DES_EDE_CBC_SHA" +# define TLS1_RFC_PSK_WITH_AES_128_CBC_SHA "TLS_PSK_WITH_AES_128_CBC_SHA" +# define TLS1_RFC_PSK_WITH_AES_256_CBC_SHA "TLS_PSK_WITH_AES_256_CBC_SHA" +# define TLS1_RFC_DHE_PSK_WITH_3DES_EDE_CBC_SHA "TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA" +# define TLS1_RFC_DHE_PSK_WITH_AES_128_CBC_SHA "TLS_DHE_PSK_WITH_AES_128_CBC_SHA" +# define TLS1_RFC_DHE_PSK_WITH_AES_256_CBC_SHA "TLS_DHE_PSK_WITH_AES_256_CBC_SHA" +# define TLS1_RFC_RSA_PSK_WITH_3DES_EDE_CBC_SHA "TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA" +# define TLS1_RFC_RSA_PSK_WITH_AES_128_CBC_SHA "TLS_RSA_PSK_WITH_AES_128_CBC_SHA" +# define TLS1_RFC_RSA_PSK_WITH_AES_256_CBC_SHA "TLS_RSA_PSK_WITH_AES_256_CBC_SHA" +# define TLS1_RFC_PSK_WITH_AES_128_GCM_SHA256 "TLS_PSK_WITH_AES_128_GCM_SHA256" +# define TLS1_RFC_PSK_WITH_AES_256_GCM_SHA384 "TLS_PSK_WITH_AES_256_GCM_SHA384" +# define TLS1_RFC_DHE_PSK_WITH_AES_128_GCM_SHA256 "TLS_DHE_PSK_WITH_AES_128_GCM_SHA256" +# define TLS1_RFC_DHE_PSK_WITH_AES_256_GCM_SHA384 "TLS_DHE_PSK_WITH_AES_256_GCM_SHA384" +# define TLS1_RFC_RSA_PSK_WITH_AES_128_GCM_SHA256 "TLS_RSA_PSK_WITH_AES_128_GCM_SHA256" +# define TLS1_RFC_RSA_PSK_WITH_AES_256_GCM_SHA384 "TLS_RSA_PSK_WITH_AES_256_GCM_SHA384" +# define TLS1_RFC_PSK_WITH_AES_128_CBC_SHA256 "TLS_PSK_WITH_AES_128_CBC_SHA256" +# define TLS1_RFC_PSK_WITH_AES_256_CBC_SHA384 "TLS_PSK_WITH_AES_256_CBC_SHA384" +# define TLS1_RFC_PSK_WITH_NULL_SHA256 "TLS_PSK_WITH_NULL_SHA256" +# define TLS1_RFC_PSK_WITH_NULL_SHA384 "TLS_PSK_WITH_NULL_SHA384" +# define TLS1_RFC_DHE_PSK_WITH_AES_128_CBC_SHA256 "TLS_DHE_PSK_WITH_AES_128_CBC_SHA256" +# define TLS1_RFC_DHE_PSK_WITH_AES_256_CBC_SHA384 "TLS_DHE_PSK_WITH_AES_256_CBC_SHA384" +# define TLS1_RFC_DHE_PSK_WITH_NULL_SHA256 "TLS_DHE_PSK_WITH_NULL_SHA256" +# define TLS1_RFC_DHE_PSK_WITH_NULL_SHA384 "TLS_DHE_PSK_WITH_NULL_SHA384" +# define TLS1_RFC_RSA_PSK_WITH_AES_128_CBC_SHA256 "TLS_RSA_PSK_WITH_AES_128_CBC_SHA256" +# define TLS1_RFC_RSA_PSK_WITH_AES_256_CBC_SHA384 "TLS_RSA_PSK_WITH_AES_256_CBC_SHA384" +# define TLS1_RFC_RSA_PSK_WITH_NULL_SHA256 "TLS_RSA_PSK_WITH_NULL_SHA256" +# define TLS1_RFC_RSA_PSK_WITH_NULL_SHA384 "TLS_RSA_PSK_WITH_NULL_SHA384" +# define TLS1_RFC_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA "TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA" +# define TLS1_RFC_ECDHE_PSK_WITH_AES_128_CBC_SHA "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA" +# define TLS1_RFC_ECDHE_PSK_WITH_AES_256_CBC_SHA "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA" +# define TLS1_RFC_ECDHE_PSK_WITH_AES_128_CBC_SHA256 "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256" +# define TLS1_RFC_ECDHE_PSK_WITH_AES_256_CBC_SHA384 "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384" +# define TLS1_RFC_ECDHE_PSK_WITH_NULL_SHA "TLS_ECDHE_PSK_WITH_NULL_SHA" +# define TLS1_RFC_ECDHE_PSK_WITH_NULL_SHA256 "TLS_ECDHE_PSK_WITH_NULL_SHA256" +# define TLS1_RFC_ECDHE_PSK_WITH_NULL_SHA384 "TLS_ECDHE_PSK_WITH_NULL_SHA384" +# define TLS1_RFC_SRP_SHA_WITH_3DES_EDE_CBC_SHA "TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA" +# define TLS1_RFC_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA "TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA" +# define TLS1_RFC_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA "TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA" +# define TLS1_RFC_SRP_SHA_WITH_AES_128_CBC_SHA "TLS_SRP_SHA_WITH_AES_128_CBC_SHA" +# define TLS1_RFC_SRP_SHA_RSA_WITH_AES_128_CBC_SHA "TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA" +# define TLS1_RFC_SRP_SHA_DSS_WITH_AES_128_CBC_SHA "TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA" +# define TLS1_RFC_SRP_SHA_WITH_AES_256_CBC_SHA "TLS_SRP_SHA_WITH_AES_256_CBC_SHA" +# define TLS1_RFC_SRP_SHA_RSA_WITH_AES_256_CBC_SHA "TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA" +# define TLS1_RFC_SRP_SHA_DSS_WITH_AES_256_CBC_SHA "TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA" +# define TLS1_RFC_DHE_RSA_WITH_CHACHA20_POLY1305 "TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256" +# define TLS1_RFC_ECDHE_RSA_WITH_CHACHA20_POLY1305 "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256" +# define TLS1_RFC_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256" +# define TLS1_RFC_PSK_WITH_CHACHA20_POLY1305 "TLS_PSK_WITH_CHACHA20_POLY1305_SHA256" +# define TLS1_RFC_ECDHE_PSK_WITH_CHACHA20_POLY1305 "TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256" +# define TLS1_RFC_DHE_PSK_WITH_CHACHA20_POLY1305 "TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256" +# define TLS1_RFC_RSA_PSK_WITH_CHACHA20_POLY1305 "TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256" +# define TLS1_RFC_RSA_WITH_CAMELLIA_128_CBC_SHA256 "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256" +# define TLS1_RFC_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256" +# define TLS1_RFC_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256" +# define TLS1_RFC_ADH_WITH_CAMELLIA_128_CBC_SHA256 "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256" +# define TLS1_RFC_RSA_WITH_CAMELLIA_256_CBC_SHA256 "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256" +# define TLS1_RFC_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256" +# define TLS1_RFC_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256" +# define TLS1_RFC_ADH_WITH_CAMELLIA_256_CBC_SHA256 "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256" +# define TLS1_RFC_RSA_WITH_CAMELLIA_256_CBC_SHA "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA" +# define TLS1_RFC_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA" +# define TLS1_RFC_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA" +# define TLS1_RFC_ADH_WITH_CAMELLIA_256_CBC_SHA "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA" +# define TLS1_RFC_RSA_WITH_CAMELLIA_128_CBC_SHA "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA" +# define TLS1_RFC_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA" +# define TLS1_RFC_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA" +# define TLS1_RFC_ADH_WITH_CAMELLIA_128_CBC_SHA "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA" +# define TLS1_RFC_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 "TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256" +# define TLS1_RFC_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 "TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384" +# define TLS1_RFC_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256" +# define TLS1_RFC_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 "TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384" +# define TLS1_RFC_PSK_WITH_CAMELLIA_128_CBC_SHA256 "TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256" +# define TLS1_RFC_PSK_WITH_CAMELLIA_256_CBC_SHA384 "TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384" +# define TLS1_RFC_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256" +# define TLS1_RFC_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384" +# define TLS1_RFC_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 "TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256" +# define TLS1_RFC_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 "TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384" +# define TLS1_RFC_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256" +# define TLS1_RFC_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384" +# define TLS1_RFC_RSA_WITH_SEED_SHA "TLS_RSA_WITH_SEED_CBC_SHA" +# define TLS1_RFC_DHE_DSS_WITH_SEED_SHA "TLS_DHE_DSS_WITH_SEED_CBC_SHA" +# define TLS1_RFC_DHE_RSA_WITH_SEED_SHA "TLS_DHE_RSA_WITH_SEED_CBC_SHA" +# define TLS1_RFC_ADH_WITH_SEED_SHA "TLS_DH_anon_WITH_SEED_CBC_SHA" +# define TLS1_RFC_ECDHE_PSK_WITH_RC4_128_SHA "TLS_ECDHE_PSK_WITH_RC4_128_SHA" +# define TLS1_RFC_ECDH_anon_WITH_RC4_128_SHA "TLS_ECDH_anon_WITH_RC4_128_SHA" +# define TLS1_RFC_ECDHE_ECDSA_WITH_RC4_128_SHA "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA" +# define TLS1_RFC_ECDHE_RSA_WITH_RC4_128_SHA "TLS_ECDHE_RSA_WITH_RC4_128_SHA" +# define TLS1_RFC_PSK_WITH_RC4_128_SHA "TLS_PSK_WITH_RC4_128_SHA" +# define TLS1_RFC_RSA_PSK_WITH_RC4_128_SHA "TLS_RSA_PSK_WITH_RC4_128_SHA" +# define TLS1_RFC_DHE_PSK_WITH_RC4_128_SHA "TLS_DHE_PSK_WITH_RC4_128_SHA" +# define TLS1_RFC_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_RSA_WITH_ARIA_128_GCM_SHA256" +# define TLS1_RFC_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_RSA_WITH_ARIA_256_GCM_SHA384" +# define TLS1_RFC_DHE_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256" +# define TLS1_RFC_DHE_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384" +# define TLS1_RFC_DH_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256" +# define TLS1_RFC_DH_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384" +# define TLS1_RFC_DHE_DSS_WITH_ARIA_128_GCM_SHA256 "TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256" +# define TLS1_RFC_DHE_DSS_WITH_ARIA_256_GCM_SHA384 "TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384" +# define TLS1_RFC_DH_DSS_WITH_ARIA_128_GCM_SHA256 "TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256" +# define TLS1_RFC_DH_DSS_WITH_ARIA_256_GCM_SHA384 "TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384" +# define TLS1_RFC_DH_anon_WITH_ARIA_128_GCM_SHA256 "TLS_DH_anon_WITH_ARIA_128_GCM_SHA256" +# define TLS1_RFC_DH_anon_WITH_ARIA_256_GCM_SHA384 "TLS_DH_anon_WITH_ARIA_256_GCM_SHA384" +# define TLS1_RFC_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 "TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256" +# define TLS1_RFC_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 "TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384" +# define TLS1_RFC_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 "TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256" +# define TLS1_RFC_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 "TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384" +# define TLS1_RFC_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256" +# define TLS1_RFC_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384" +# define TLS1_RFC_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256" +# define TLS1_RFC_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384" +# define TLS1_RFC_PSK_WITH_ARIA_128_GCM_SHA256 "TLS_PSK_WITH_ARIA_128_GCM_SHA256" +# define TLS1_RFC_PSK_WITH_ARIA_256_GCM_SHA384 "TLS_PSK_WITH_ARIA_256_GCM_SHA384" +# define TLS1_RFC_DHE_PSK_WITH_ARIA_128_GCM_SHA256 "TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256" +# define TLS1_RFC_DHE_PSK_WITH_ARIA_256_GCM_SHA384 "TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384" +# define TLS1_RFC_RSA_PSK_WITH_ARIA_128_GCM_SHA256 "TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256" +# define TLS1_RFC_RSA_PSK_WITH_ARIA_256_GCM_SHA384 "TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384" + + /* * XXX Backward compatibility alert: Older versions of OpenSSL gave some DHE * ciphers names with "EDH" instead of "DHE". Going forward, we should be @@ -783,7 +1017,6 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) # define TLS1_TXT_ADH_WITH_AES_256_GCM_SHA384 "ADH-AES256-GCM-SHA384" /* CCM ciphersuites from RFC6655 */ - # define TLS1_TXT_RSA_WITH_AES_128_CCM "AES128-CCM" # define TLS1_TXT_RSA_WITH_AES_256_CCM "AES256-CCM" # define TLS1_TXT_DHE_RSA_WITH_AES_128_CCM "DHE-RSA-AES128-CCM" @@ -805,14 +1038,12 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) # define TLS1_TXT_DHE_PSK_WITH_AES_256_CCM_8 "DHE-PSK-AES256-CCM8" /* CCM ciphersuites from RFC7251 */ - # define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CCM "ECDHE-ECDSA-AES128-CCM" # define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CCM "ECDHE-ECDSA-AES256-CCM" # define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CCM_8 "ECDHE-ECDSA-AES128-CCM8" # define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CCM_8 "ECDHE-ECDSA-AES256-CCM8" /* ECDH HMAC based ciphersuites from RFC5289 */ - # define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_SHA256 "ECDHE-ECDSA-AES128-SHA256" # define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_SHA384 "ECDHE-ECDSA-AES256-SHA384" # define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_SHA256 "ECDH-ECDSA-AES128-SHA256" @@ -868,6 +1099,34 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) # define TLS1_TXT_DHE_PSK_WITH_CHACHA20_POLY1305 "DHE-PSK-CHACHA20-POLY1305" # define TLS1_TXT_RSA_PSK_WITH_CHACHA20_POLY1305 "RSA-PSK-CHACHA20-POLY1305" +/* Aria ciphersuites from RFC6209 */ +# define TLS1_TXT_RSA_WITH_ARIA_128_GCM_SHA256 "ARIA128-GCM-SHA256" +# define TLS1_TXT_RSA_WITH_ARIA_256_GCM_SHA384 "ARIA256-GCM-SHA384" +# define TLS1_TXT_DHE_RSA_WITH_ARIA_128_GCM_SHA256 "DHE-RSA-ARIA128-GCM-SHA256" +# define TLS1_TXT_DHE_RSA_WITH_ARIA_256_GCM_SHA384 "DHE-RSA-ARIA256-GCM-SHA384" +# define TLS1_TXT_DH_RSA_WITH_ARIA_128_GCM_SHA256 "DH-RSA-ARIA128-GCM-SHA256" +# define TLS1_TXT_DH_RSA_WITH_ARIA_256_GCM_SHA384 "DH-RSA-ARIA256-GCM-SHA384" +# define TLS1_TXT_DHE_DSS_WITH_ARIA_128_GCM_SHA256 "DHE-DSS-ARIA128-GCM-SHA256" +# define TLS1_TXT_DHE_DSS_WITH_ARIA_256_GCM_SHA384 "DHE-DSS-ARIA256-GCM-SHA384" +# define TLS1_TXT_DH_DSS_WITH_ARIA_128_GCM_SHA256 "DH-DSS-ARIA128-GCM-SHA256" +# define TLS1_TXT_DH_DSS_WITH_ARIA_256_GCM_SHA384 "DH-DSS-ARIA256-GCM-SHA384" +# define TLS1_TXT_DH_anon_WITH_ARIA_128_GCM_SHA256 "ADH-ARIA128-GCM-SHA256" +# define TLS1_TXT_DH_anon_WITH_ARIA_256_GCM_SHA384 "ADH-ARIA256-GCM-SHA384" +# define TLS1_TXT_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 "ECDHE-ECDSA-ARIA128-GCM-SHA256" +# define TLS1_TXT_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 "ECDHE-ECDSA-ARIA256-GCM-SHA384" +# define TLS1_TXT_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 "ECDH-ECDSA-ARIA128-GCM-SHA256" +# define TLS1_TXT_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 "ECDH-ECDSA-ARIA256-GCM-SHA384" +# define TLS1_TXT_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 "ECDHE-ARIA128-GCM-SHA256" +# define TLS1_TXT_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 "ECDHE-ARIA256-GCM-SHA384" +# define TLS1_TXT_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 "ECDH-ARIA128-GCM-SHA256" +# define TLS1_TXT_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 "ECDH-ARIA256-GCM-SHA384" +# define TLS1_TXT_PSK_WITH_ARIA_128_GCM_SHA256 "PSK-ARIA128-GCM-SHA256" +# define TLS1_TXT_PSK_WITH_ARIA_256_GCM_SHA384 "PSK-ARIA256-GCM-SHA384" +# define TLS1_TXT_DHE_PSK_WITH_ARIA_128_GCM_SHA256 "DHE-PSK-ARIA128-GCM-SHA256" +# define TLS1_TXT_DHE_PSK_WITH_ARIA_256_GCM_SHA384 "DHE-PSK-ARIA256-GCM-SHA384" +# define TLS1_TXT_RSA_PSK_WITH_ARIA_128_GCM_SHA256 "RSA-PSK-ARIA128-GCM-SHA256" +# define TLS1_TXT_RSA_PSK_WITH_ARIA_256_GCM_SHA384 "RSA-PSK-ARIA256-GCM-SHA384" + # define TLS_CT_RSA_SIGN 1 # define TLS_CT_DSS_SIGN 2 # define TLS_CT_RSA_FIXED_DH 3 diff --git a/noarch/include/node/openssl/ts.h b/noarch/include/node/openssl/ts.h index a5659825..3b58aa52 100644 --- a/noarch/include/node/openssl/ts.h +++ b/noarch/include/node/openssl/ts.h @@ -1,5 +1,5 @@ /* - * Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2006-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -17,12 +17,12 @@ # include # include # include -# include # include # include # include # include # include +# include # ifdef __cplusplus extern "C" { # endif @@ -61,6 +61,11 @@ typedef struct ESS_signing_cert ESS_SIGNING_CERT; DEFINE_STACK_OF(ESS_CERT_ID) +typedef struct ESS_cert_id_v2_st ESS_CERT_ID_V2; +typedef struct ESS_signing_cert_v2_st ESS_SIGNING_CERT_V2; + +DEFINE_STACK_OF(ESS_CERT_ID_V2) + typedef struct TS_resp_st TS_RESP; TS_REQ *TS_REQ_new(void); @@ -156,6 +161,21 @@ ESS_SIGNING_CERT *d2i_ESS_SIGNING_CERT(ESS_SIGNING_CERT **a, const unsigned char **pp, long length); ESS_SIGNING_CERT *ESS_SIGNING_CERT_dup(ESS_SIGNING_CERT *a); +ESS_CERT_ID_V2 *ESS_CERT_ID_V2_new(void); +void ESS_CERT_ID_V2_free(ESS_CERT_ID_V2 *a); +int i2d_ESS_CERT_ID_V2(const ESS_CERT_ID_V2 *a, unsigned char **pp); +ESS_CERT_ID_V2 *d2i_ESS_CERT_ID_V2(ESS_CERT_ID_V2 **a, + const unsigned char **pp, long length); +ESS_CERT_ID_V2 *ESS_CERT_ID_V2_dup(ESS_CERT_ID_V2 *a); + +ESS_SIGNING_CERT_V2 *ESS_SIGNING_CERT_V2_new(void); +void ESS_SIGNING_CERT_V2_free(ESS_SIGNING_CERT_V2 *a); +int i2d_ESS_SIGNING_CERT_V2(const ESS_SIGNING_CERT_V2 *a, unsigned char **pp); +ESS_SIGNING_CERT_V2 *d2i_ESS_SIGNING_CERT_V2(ESS_SIGNING_CERT_V2 **a, + const unsigned char **pp, + long length); +ESS_SIGNING_CERT_V2 *ESS_SIGNING_CERT_V2_dup(ESS_SIGNING_CERT_V2 *a); + int TS_REQ_set_version(TS_REQ *a, long version); long TS_REQ_get_version(const TS_REQ *a); @@ -316,6 +336,7 @@ int TS_RESP_CTX_set_signer_key(TS_RESP_CTX *ctx, EVP_PKEY *key); int TS_RESP_CTX_set_signer_digest(TS_RESP_CTX *ctx, const EVP_MD *signer_digest); +int TS_RESP_CTX_set_ess_cert_id_digest(TS_RESP_CTX *ctx, const EVP_MD *md); /* This parameter must be set. */ int TS_RESP_CTX_set_def_policy(TS_RESP_CTX *ctx, const ASN1_OBJECT *def_policy); @@ -528,113 +549,8 @@ int TS_CONF_set_ordering(CONF *conf, const char *section, TS_RESP_CTX *ctx); int TS_CONF_set_tsa_name(CONF *conf, const char *section, TS_RESP_CTX *ctx); int TS_CONF_set_ess_cert_id_chain(CONF *conf, const char *section, TS_RESP_CTX *ctx); - -/* -------------------------------------------------- */ -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_TS_strings(void); - -/* Error codes for the TS functions. */ - -/* Function codes. */ -# define TS_F_DEF_SERIAL_CB 110 -# define TS_F_DEF_TIME_CB 111 -# define TS_F_ESS_ADD_SIGNING_CERT 112 -# define TS_F_ESS_CERT_ID_NEW_INIT 113 -# define TS_F_ESS_SIGNING_CERT_NEW_INIT 114 -# define TS_F_INT_TS_RESP_VERIFY_TOKEN 149 -# define TS_F_PKCS7_TO_TS_TST_INFO 148 -# define TS_F_TS_ACCURACY_SET_MICROS 115 -# define TS_F_TS_ACCURACY_SET_MILLIS 116 -# define TS_F_TS_ACCURACY_SET_SECONDS 117 -# define TS_F_TS_CHECK_IMPRINTS 100 -# define TS_F_TS_CHECK_NONCES 101 -# define TS_F_TS_CHECK_POLICY 102 -# define TS_F_TS_CHECK_SIGNING_CERTS 103 -# define TS_F_TS_CHECK_STATUS_INFO 104 -# define TS_F_TS_COMPUTE_IMPRINT 145 -# define TS_F_TS_CONF_INVALID 151 -# define TS_F_TS_CONF_LOAD_CERT 153 -# define TS_F_TS_CONF_LOAD_CERTS 154 -# define TS_F_TS_CONF_LOAD_KEY 155 -# define TS_F_TS_CONF_LOOKUP_FAIL 152 -# define TS_F_TS_CONF_SET_DEFAULT_ENGINE 146 -# define TS_F_TS_GET_STATUS_TEXT 105 -# define TS_F_TS_MSG_IMPRINT_SET_ALGO 118 -# define TS_F_TS_REQ_SET_MSG_IMPRINT 119 -# define TS_F_TS_REQ_SET_NONCE 120 -# define TS_F_TS_REQ_SET_POLICY_ID 121 -# define TS_F_TS_RESP_CREATE_RESPONSE 122 -# define TS_F_TS_RESP_CREATE_TST_INFO 123 -# define TS_F_TS_RESP_CTX_ADD_FAILURE_INFO 124 -# define TS_F_TS_RESP_CTX_ADD_MD 125 -# define TS_F_TS_RESP_CTX_ADD_POLICY 126 -# define TS_F_TS_RESP_CTX_NEW 127 -# define TS_F_TS_RESP_CTX_SET_ACCURACY 128 -# define TS_F_TS_RESP_CTX_SET_CERTS 129 -# define TS_F_TS_RESP_CTX_SET_DEF_POLICY 130 -# define TS_F_TS_RESP_CTX_SET_SIGNER_CERT 131 -# define TS_F_TS_RESP_CTX_SET_STATUS_INFO 132 -# define TS_F_TS_RESP_GET_POLICY 133 -# define TS_F_TS_RESP_SET_GENTIME_WITH_PRECISION 134 -# define TS_F_TS_RESP_SET_STATUS_INFO 135 -# define TS_F_TS_RESP_SET_TST_INFO 150 -# define TS_F_TS_RESP_SIGN 136 -# define TS_F_TS_RESP_VERIFY_SIGNATURE 106 -# define TS_F_TS_TST_INFO_SET_ACCURACY 137 -# define TS_F_TS_TST_INFO_SET_MSG_IMPRINT 138 -# define TS_F_TS_TST_INFO_SET_NONCE 139 -# define TS_F_TS_TST_INFO_SET_POLICY_ID 140 -# define TS_F_TS_TST_INFO_SET_SERIAL 141 -# define TS_F_TS_TST_INFO_SET_TIME 142 -# define TS_F_TS_TST_INFO_SET_TSA 143 -# define TS_F_TS_VERIFY 108 -# define TS_F_TS_VERIFY_CERT 109 -# define TS_F_TS_VERIFY_CTX_NEW 144 - -/* Reason codes. */ -# define TS_R_BAD_PKCS7_TYPE 132 -# define TS_R_BAD_TYPE 133 -# define TS_R_CANNOT_LOAD_CERT 137 -# define TS_R_CANNOT_LOAD_KEY 138 -# define TS_R_CERTIFICATE_VERIFY_ERROR 100 -# define TS_R_COULD_NOT_SET_ENGINE 127 -# define TS_R_COULD_NOT_SET_TIME 115 -# define TS_R_DETACHED_CONTENT 134 -# define TS_R_ESS_ADD_SIGNING_CERT_ERROR 116 -# define TS_R_ESS_SIGNING_CERTIFICATE_ERROR 101 -# define TS_R_INVALID_NULL_POINTER 102 -# define TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE 117 -# define TS_R_MESSAGE_IMPRINT_MISMATCH 103 -# define TS_R_NONCE_MISMATCH 104 -# define TS_R_NONCE_NOT_RETURNED 105 -# define TS_R_NO_CONTENT 106 -# define TS_R_NO_TIME_STAMP_TOKEN 107 -# define TS_R_PKCS7_ADD_SIGNATURE_ERROR 118 -# define TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR 119 -# define TS_R_PKCS7_TO_TS_TST_INFO_FAILED 129 -# define TS_R_POLICY_MISMATCH 108 -# define TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 120 -# define TS_R_RESPONSE_SETUP_ERROR 121 -# define TS_R_SIGNATURE_FAILURE 109 -# define TS_R_THERE_MUST_BE_ONE_SIGNER 110 -# define TS_R_TIME_SYSCALL_ERROR 122 -# define TS_R_TOKEN_NOT_PRESENT 130 -# define TS_R_TOKEN_PRESENT 131 -# define TS_R_TSA_NAME_MISMATCH 111 -# define TS_R_TSA_UNTRUSTED 112 -# define TS_R_TST_INFO_SETUP_ERROR 123 -# define TS_R_TS_DATASIGN 124 -# define TS_R_UNACCEPTABLE_POLICY 125 -# define TS_R_UNSUPPORTED_MD_ALGORITHM 126 -# define TS_R_UNSUPPORTED_VERSION 113 -# define TS_R_VAR_BAD_VALUE 135 -# define TS_R_VAR_LOOKUP_FAILURE 136 -# define TS_R_WRONG_CONTENT_TYPE 114 +int TS_CONF_set_ess_cert_id_digest(CONF *conf, const char *section, + TS_RESP_CTX *ctx); # ifdef __cplusplus } diff --git a/noarch/include/node/openssl/tserr.h b/noarch/include/node/openssl/tserr.h new file mode 100644 index 00000000..3e049256 --- /dev/null +++ b/noarch/include/node/openssl/tserr.h @@ -0,0 +1,128 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_TSERR_H +# define HEADER_TSERR_H + +# include + +# ifndef OPENSSL_NO_TS + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_TS_strings(void); + +/* + * TS function codes. + */ +# define TS_F_DEF_SERIAL_CB 110 +# define TS_F_DEF_TIME_CB 111 +# define TS_F_ESS_ADD_SIGNING_CERT 112 +# define TS_F_ESS_ADD_SIGNING_CERT_V2 147 +# define TS_F_ESS_CERT_ID_NEW_INIT 113 +# define TS_F_ESS_CERT_ID_V2_NEW_INIT 156 +# define TS_F_ESS_SIGNING_CERT_NEW_INIT 114 +# define TS_F_ESS_SIGNING_CERT_V2_NEW_INIT 157 +# define TS_F_INT_TS_RESP_VERIFY_TOKEN 149 +# define TS_F_PKCS7_TO_TS_TST_INFO 148 +# define TS_F_TS_ACCURACY_SET_MICROS 115 +# define TS_F_TS_ACCURACY_SET_MILLIS 116 +# define TS_F_TS_ACCURACY_SET_SECONDS 117 +# define TS_F_TS_CHECK_IMPRINTS 100 +# define TS_F_TS_CHECK_NONCES 101 +# define TS_F_TS_CHECK_POLICY 102 +# define TS_F_TS_CHECK_SIGNING_CERTS 103 +# define TS_F_TS_CHECK_STATUS_INFO 104 +# define TS_F_TS_COMPUTE_IMPRINT 145 +# define TS_F_TS_CONF_INVALID 151 +# define TS_F_TS_CONF_LOAD_CERT 153 +# define TS_F_TS_CONF_LOAD_CERTS 154 +# define TS_F_TS_CONF_LOAD_KEY 155 +# define TS_F_TS_CONF_LOOKUP_FAIL 152 +# define TS_F_TS_CONF_SET_DEFAULT_ENGINE 146 +# define TS_F_TS_GET_STATUS_TEXT 105 +# define TS_F_TS_MSG_IMPRINT_SET_ALGO 118 +# define TS_F_TS_REQ_SET_MSG_IMPRINT 119 +# define TS_F_TS_REQ_SET_NONCE 120 +# define TS_F_TS_REQ_SET_POLICY_ID 121 +# define TS_F_TS_RESP_CREATE_RESPONSE 122 +# define TS_F_TS_RESP_CREATE_TST_INFO 123 +# define TS_F_TS_RESP_CTX_ADD_FAILURE_INFO 124 +# define TS_F_TS_RESP_CTX_ADD_MD 125 +# define TS_F_TS_RESP_CTX_ADD_POLICY 126 +# define TS_F_TS_RESP_CTX_NEW 127 +# define TS_F_TS_RESP_CTX_SET_ACCURACY 128 +# define TS_F_TS_RESP_CTX_SET_CERTS 129 +# define TS_F_TS_RESP_CTX_SET_DEF_POLICY 130 +# define TS_F_TS_RESP_CTX_SET_SIGNER_CERT 131 +# define TS_F_TS_RESP_CTX_SET_STATUS_INFO 132 +# define TS_F_TS_RESP_GET_POLICY 133 +# define TS_F_TS_RESP_SET_GENTIME_WITH_PRECISION 134 +# define TS_F_TS_RESP_SET_STATUS_INFO 135 +# define TS_F_TS_RESP_SET_TST_INFO 150 +# define TS_F_TS_RESP_SIGN 136 +# define TS_F_TS_RESP_VERIFY_SIGNATURE 106 +# define TS_F_TS_TST_INFO_SET_ACCURACY 137 +# define TS_F_TS_TST_INFO_SET_MSG_IMPRINT 138 +# define TS_F_TS_TST_INFO_SET_NONCE 139 +# define TS_F_TS_TST_INFO_SET_POLICY_ID 140 +# define TS_F_TS_TST_INFO_SET_SERIAL 141 +# define TS_F_TS_TST_INFO_SET_TIME 142 +# define TS_F_TS_TST_INFO_SET_TSA 143 +# define TS_F_TS_VERIFY 108 +# define TS_F_TS_VERIFY_CERT 109 +# define TS_F_TS_VERIFY_CTX_NEW 144 + +/* + * TS reason codes. + */ +# define TS_R_BAD_PKCS7_TYPE 132 +# define TS_R_BAD_TYPE 133 +# define TS_R_CANNOT_LOAD_CERT 137 +# define TS_R_CANNOT_LOAD_KEY 138 +# define TS_R_CERTIFICATE_VERIFY_ERROR 100 +# define TS_R_COULD_NOT_SET_ENGINE 127 +# define TS_R_COULD_NOT_SET_TIME 115 +# define TS_R_DETACHED_CONTENT 134 +# define TS_R_ESS_ADD_SIGNING_CERT_ERROR 116 +# define TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR 139 +# define TS_R_ESS_SIGNING_CERTIFICATE_ERROR 101 +# define TS_R_INVALID_NULL_POINTER 102 +# define TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE 117 +# define TS_R_MESSAGE_IMPRINT_MISMATCH 103 +# define TS_R_NONCE_MISMATCH 104 +# define TS_R_NONCE_NOT_RETURNED 105 +# define TS_R_NO_CONTENT 106 +# define TS_R_NO_TIME_STAMP_TOKEN 107 +# define TS_R_PKCS7_ADD_SIGNATURE_ERROR 118 +# define TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR 119 +# define TS_R_PKCS7_TO_TS_TST_INFO_FAILED 129 +# define TS_R_POLICY_MISMATCH 108 +# define TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 120 +# define TS_R_RESPONSE_SETUP_ERROR 121 +# define TS_R_SIGNATURE_FAILURE 109 +# define TS_R_THERE_MUST_BE_ONE_SIGNER 110 +# define TS_R_TIME_SYSCALL_ERROR 122 +# define TS_R_TOKEN_NOT_PRESENT 130 +# define TS_R_TOKEN_PRESENT 131 +# define TS_R_TSA_NAME_MISMATCH 111 +# define TS_R_TSA_UNTRUSTED 112 +# define TS_R_TST_INFO_SETUP_ERROR 123 +# define TS_R_TS_DATASIGN 124 +# define TS_R_UNACCEPTABLE_POLICY 125 +# define TS_R_UNSUPPORTED_MD_ALGORITHM 126 +# define TS_R_UNSUPPORTED_VERSION 113 +# define TS_R_VAR_BAD_VALUE 135 +# define TS_R_VAR_LOOKUP_FAILURE 136 +# define TS_R_WRONG_CONTENT_TYPE 114 + +# endif +#endif diff --git a/noarch/include/node/openssl/txt_db.h b/noarch/include/node/openssl/txt_db.h index 0e6c943e..ec981a43 100644 --- a/noarch/include/node/openssl/txt_db.h +++ b/noarch/include/node/openssl/txt_db.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -12,7 +12,7 @@ # include # include -# include +# include # include # define DB_ERROR_OK 0 diff --git a/noarch/include/node/openssl/ui.h b/noarch/include/node/openssl/ui.h index 49e763de..7c721ec8 100644 --- a/noarch/include/node/openssl/ui.h +++ b/noarch/include/node/openssl/ui.h @@ -1,5 +1,5 @@ /* - * Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -12,17 +12,24 @@ # include -# ifndef OPENSSL_NO_UI +# if OPENSSL_API_COMPAT < 0x10100000L +# include +# endif +# include +# include +# include +# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include +/* For compatibility reasons, the macro OPENSSL_NO_UI is currently retained */ +# if OPENSSL_API_COMPAT < 0x10200000L +# ifdef OPENSSL_NO_UI_CONSOLE +# define OPENSSL_NO_UI # endif -# include -# include +# endif -#ifdef __cplusplus +# ifdef __cplusplus extern "C" { -#endif +# endif /* * All the following functions return -1 or NULL on error and in some cases @@ -110,7 +117,7 @@ int UI_dup_error_string(UI *ui, const char *text); * each UI being marked with this flag, or the application might get * confused. */ -# define UI_INPUT_FLAG_DEFAULT_PWD 0x02 +# define UI_INPUT_FLAG_DEFAULT_PWD 0x02 /*- * The user of these routines may want to define flags of their own. The core @@ -122,7 +129,7 @@ int UI_dup_error_string(UI *ui, const char *text); * #define MY_UI_FLAG1 (0x01 << UI_INPUT_FLAG_USER_BASE) * */ -# define UI_INPUT_FLAG_USER_BASE 16 +# define UI_INPUT_FLAG_USER_BASE 16 /*- * The following function helps construct a prompt. object_desc is a @@ -157,17 +164,24 @@ char *UI_construct_prompt(UI *ui_method, * methods may not, however. */ void *UI_add_user_data(UI *ui, void *user_data); +/* + * Alternatively, this function is used to duplicate the user data. + * This uses the duplicator method function. The destroy function will + * be used to free the user data in this case. + */ +int UI_dup_user_data(UI *ui, void *user_data); /* We need a user data retrieving function as well. */ void *UI_get0_user_data(UI *ui); /* Return the result associated with a prompt given with the index i. */ const char *UI_get0_result(UI *ui, int i); +int UI_get_result_length(UI *ui, int i); /* When all strings have been added, process the whole thing. */ int UI_process(UI *ui); /* - * Give a user interface parametrised control commands. This can be used to + * Give a user interface parameterised control commands. This can be used to * send down an integer, a data pointer or a function pointer, as well as be * used to get information from a UI. */ @@ -179,7 +193,7 @@ int UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f) (void)); * OpenSSL error stack before printing any info or added error messages and * before any prompting. */ -# define UI_CTRL_PRINT_ERRORS 1 +# define UI_CTRL_PRINT_ERRORS 1 /* * Check if a UI_process() is possible to do again with the same instance of * a user interface. This makes UI_ctrl() return 1 if it is redoable, and 0 @@ -191,7 +205,7 @@ int UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f) (void)); # define UI_set_app_data(s,arg) UI_set_ex_data(s,0,arg) # define UI_get_app_data(s) UI_get_ex_data(s,0) -#define UI_get_ex_new_index(l, p, newf, dupf, freef) \ +# define UI_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_UI, l, p, newf, dupf, freef) int UI_set_ex_data(UI *r, int idx, void *arg); void *UI_get_ex_data(UI *r, int idx); @@ -202,9 +216,19 @@ const UI_METHOD *UI_get_default_method(void); const UI_METHOD *UI_get_method(UI *ui); const UI_METHOD *UI_set_method(UI *ui, const UI_METHOD *meth); +# ifndef OPENSSL_NO_UI_CONSOLE + /* The method with all the built-in thingies */ UI_METHOD *UI_OpenSSL(void); +# endif + +/* + * NULL method. Literally does nothing, but may serve as a placeholder + * to avoid internal default. + */ +const UI_METHOD *UI_null(void); + /* ---------- For method writers ---------- */ /*- A method contains a number of functions that implement the low level @@ -278,20 +302,26 @@ int UI_method_set_flusher(UI_METHOD *method, int (*flusher) (UI *ui)); int UI_method_set_reader(UI_METHOD *method, int (*reader) (UI *ui, UI_STRING *uis)); int UI_method_set_closer(UI_METHOD *method, int (*closer) (UI *ui)); +int UI_method_set_data_duplicator(UI_METHOD *method, + void *(*duplicator) (UI *ui, void *ui_data), + void (*destructor)(UI *ui, void *ui_data)); int UI_method_set_prompt_constructor(UI_METHOD *method, char *(*prompt_constructor) (UI *ui, const char *object_desc, const char *object_name)); -int (*UI_method_get_opener(UI_METHOD *method)) (UI *); -int (*UI_method_get_writer(UI_METHOD *method)) (UI *, UI_STRING *); -int (*UI_method_get_flusher(UI_METHOD *method)) (UI *); -int (*UI_method_get_reader(UI_METHOD *method)) (UI *, UI_STRING *); -int (*UI_method_get_closer(UI_METHOD *method)) (UI *); -char *(*UI_method_get_prompt_constructor(UI_METHOD *method)) (UI *, - const char *, - const char *); +int UI_method_set_ex_data(UI_METHOD *method, int idx, void *data); +int (*UI_method_get_opener(const UI_METHOD *method)) (UI *); +int (*UI_method_get_writer(const UI_METHOD *method)) (UI *, UI_STRING *); +int (*UI_method_get_flusher(const UI_METHOD *method)) (UI *); +int (*UI_method_get_reader(const UI_METHOD *method)) (UI *, UI_STRING *); +int (*UI_method_get_closer(const UI_METHOD *method)) (UI *); +char *(*UI_method_get_prompt_constructor(const UI_METHOD *method)) + (UI *, const char *, const char *); +void *(*UI_method_get_data_duplicator(const UI_METHOD *method)) (UI *, void *); +void (*UI_method_get_data_destructor(const UI_METHOD *method)) (UI *, void *); +const void *UI_method_get_ex_data(const UI_METHOD *method, int idx); /* * The following functions are helpers for method writers to access relevant @@ -311,6 +341,7 @@ const char *UI_get0_output_string(UI_STRING *uis); const char *UI_get0_action_string(UI_STRING *uis); /* Return the result of a prompt */ const char *UI_get0_result_string(UI_STRING *uis); +int UI_get_result_string_length(UI_STRING *uis); /* * Return the string to test the result against. Only useful with verifies. */ @@ -321,58 +352,17 @@ int UI_get_result_minsize(UI_STRING *uis); int UI_get_result_maxsize(UI_STRING *uis); /* Set the result of a UI_STRING. */ int UI_set_result(UI *ui, UI_STRING *uis, const char *result); +int UI_set_result_ex(UI *ui, UI_STRING *uis, const char *result, int len); /* A couple of popular utility functions */ int UI_UTIL_read_pw_string(char *buf, int length, const char *prompt, int verify); int UI_UTIL_read_pw(char *buf, char *buff, int size, const char *prompt, int verify); +UI_METHOD *UI_UTIL_wrap_read_pem_callback(pem_password_cb *cb, int rwflag); -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ -int ERR_load_UI_strings(void); - -/* Error codes for the UI functions. */ - -/* Function codes. */ -# define UI_F_CLOSE_CONSOLE 115 -# define UI_F_ECHO_CONSOLE 116 -# define UI_F_GENERAL_ALLOCATE_BOOLEAN 108 -# define UI_F_GENERAL_ALLOCATE_PROMPT 109 -# define UI_F_NOECHO_CONSOLE 117 -# define UI_F_OPEN_CONSOLE 114 -# define UI_F_UI_CREATE_METHOD 112 -# define UI_F_UI_CTRL 111 -# define UI_F_UI_DUP_ERROR_STRING 101 -# define UI_F_UI_DUP_INFO_STRING 102 -# define UI_F_UI_DUP_INPUT_BOOLEAN 110 -# define UI_F_UI_DUP_INPUT_STRING 103 -# define UI_F_UI_DUP_VERIFY_STRING 106 -# define UI_F_UI_GET0_RESULT 107 -# define UI_F_UI_NEW_METHOD 104 -# define UI_F_UI_PROCESS 113 -# define UI_F_UI_SET_RESULT 105 - -/* Reason codes. */ -# define UI_R_COMMON_OK_AND_CANCEL_CHARACTERS 104 -# define UI_R_INDEX_TOO_LARGE 102 -# define UI_R_INDEX_TOO_SMALL 103 -# define UI_R_NO_RESULT_BUFFER 105 -# define UI_R_PROCESSING_ERROR 107 -# define UI_R_RESULT_TOO_LARGE 100 -# define UI_R_RESULT_TOO_SMALL 101 -# define UI_R_SYSASSIGN_ERROR 109 -# define UI_R_SYSDASSGN_ERROR 110 -# define UI_R_SYSQIOW_ERROR 111 -# define UI_R_UNKNOWN_CONTROL_COMMAND 106 -# define UI_R_UNKNOWN_TTYGET_ERRNO_VALUE 108 - -# ifdef __cplusplus +# ifdef __cplusplus } -# endif # endif #endif diff --git a/noarch/include/node/openssl/uierr.h b/noarch/include/node/openssl/uierr.h new file mode 100644 index 00000000..72fd9a9d --- /dev/null +++ b/noarch/include/node/openssl/uierr.h @@ -0,0 +1,61 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_UIERR_H +# define HEADER_UIERR_H + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_UI_strings(void); + +/* + * UI function codes. + */ +# define UI_F_CLOSE_CONSOLE 115 +# define UI_F_ECHO_CONSOLE 116 +# define UI_F_GENERAL_ALLOCATE_BOOLEAN 108 +# define UI_F_GENERAL_ALLOCATE_PROMPT 109 +# define UI_F_NOECHO_CONSOLE 117 +# define UI_F_OPEN_CONSOLE 114 +# define UI_F_UI_CONSTRUCT_PROMPT 121 +# define UI_F_UI_CREATE_METHOD 112 +# define UI_F_UI_CTRL 111 +# define UI_F_UI_DUP_ERROR_STRING 101 +# define UI_F_UI_DUP_INFO_STRING 102 +# define UI_F_UI_DUP_INPUT_BOOLEAN 110 +# define UI_F_UI_DUP_INPUT_STRING 103 +# define UI_F_UI_DUP_USER_DATA 118 +# define UI_F_UI_DUP_VERIFY_STRING 106 +# define UI_F_UI_GET0_RESULT 107 +# define UI_F_UI_GET_RESULT_LENGTH 119 +# define UI_F_UI_NEW_METHOD 104 +# define UI_F_UI_PROCESS 113 +# define UI_F_UI_SET_RESULT 105 +# define UI_F_UI_SET_RESULT_EX 120 + +/* + * UI reason codes. + */ +# define UI_R_COMMON_OK_AND_CANCEL_CHARACTERS 104 +# define UI_R_INDEX_TOO_LARGE 102 +# define UI_R_INDEX_TOO_SMALL 103 +# define UI_R_NO_RESULT_BUFFER 105 +# define UI_R_PROCESSING_ERROR 107 +# define UI_R_RESULT_TOO_LARGE 100 +# define UI_R_RESULT_TOO_SMALL 101 +# define UI_R_SYSASSIGN_ERROR 109 +# define UI_R_SYSDASSGN_ERROR 110 +# define UI_R_SYSQIOW_ERROR 111 +# define UI_R_UNKNOWN_CONTROL_COMMAND 106 +# define UI_R_UNKNOWN_TTYGET_ERRNO_VALUE 108 +# define UI_R_USER_DATA_DUPLICATION_UNSUPPORTED 112 + +#endif diff --git a/noarch/include/node/openssl/x509.h b/noarch/include/node/openssl/x509.h index 780386d5..39ca0ba5 100644 --- a/noarch/include/node/openssl/x509.h +++ b/noarch/include/node/openssl/x509.h @@ -1,5 +1,6 @@ /* * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -7,12 +8,6 @@ * https://www.openssl.org/source/license.html */ -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * ECDH support in OpenSSL originally developed by - * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. - */ - #ifndef HEADER_X509_H # define HEADER_X509_H @@ -22,7 +17,6 @@ # include # include # include -# include # include # include # include @@ -34,11 +28,19 @@ # endif # include +# include #ifdef __cplusplus extern "C" { #endif + +/* Flags for X509_get_signature_info() */ +/* Signature info is valid */ +# define X509_SIG_INFO_VALID 0x1 +/* Signature is suitable for TLS use */ +# define X509_SIG_INFO_TLS 0x2 + # define X509_FILETYPE_PEM 1 # define X509_FILETYPE_ASN1 2 # define X509_FILETYPE_DEFAULT 3 @@ -252,9 +254,8 @@ typedef struct X509_info_st { DEFINE_STACK_OF(X509_INFO) /* - * The next 2 structures and their 8 routines were sent to me by Pat Richard - * and are used to manipulate Netscapes spki structures - - * useful if you are writing a CA web page + * The next 2 structures and their 8 routines are used to manipulate Netscape's + * spki structures - useful if you are writing a CA web page */ typedef struct Netscape_spkac_st { X509_PUBKEY *pubkey; @@ -302,6 +303,16 @@ typedef struct PBKDF2PARAM_st { X509_ALGOR *prf; } PBKDF2PARAM; +#ifndef OPENSSL_NO_SCRYPT +typedef struct SCRYPT_PARAMS_st { + ASN1_OCTET_STRING *salt; + ASN1_INTEGER *costParameter; + ASN1_INTEGER *blockSize; + ASN1_INTEGER *parallelizationParameter; + ASN1_INTEGER *keyLength; +} SCRYPT_PARAMS; +#endif + #ifdef __cplusplus } #endif @@ -549,6 +560,14 @@ X509 *d2i_X509_AUX(X509 **a, const unsigned char **pp, long length); int i2d_re_X509_tbs(X509 *x, unsigned char **pp); +int X509_SIG_INFO_get(const X509_SIG_INFO *siginf, int *mdnid, int *pknid, + int *secbits, uint32_t *flags); +void X509_SIG_INFO_set(X509_SIG_INFO *siginf, int mdnid, int pknid, + int secbits, uint32_t flags); + +int X509_get_signature_info(X509 *x, int *mdnid, int *pknid, int *secbits, + uint32_t *flags); + void X509_get0_signature(const ASN1_BIT_STRING **psig, const X509_ALGOR **palg, const X509 *x); int X509_get_signature_nid(const X509 *x); @@ -641,7 +660,7 @@ int X509_get_signature_type(const X509 *x); /* * This one is only used so that a binary form can output, as in - * i2d_X509_NAME(X509_get_X509_PUBKEY(x), &buf) + * i2d_X509_PUBKEY(X509_get_X509_PUBKEY(x), &buf) */ X509_PUBKEY *X509_get_X509_PUBKEY(const X509 *x); const STACK_OF(X509_EXTENSION) *X509_get0_extensions(const X509 *x); @@ -773,6 +792,7 @@ int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflag, unsigned long cflag); int X509_print(BIO *bp, X509 *x); int X509_ocspid_print(BIO *bp, X509 *x); +int X509_CRL_print_ex(BIO *out, X509_CRL *x, unsigned long nmflag); int X509_CRL_print(BIO *bp, X509_CRL *x); int X509_REQ_print_ex(BIO *bp, X509_REQ *x, unsigned long nmflag, unsigned long cflag); @@ -805,7 +825,7 @@ X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(X509_NAME_ENTRY **ne, const unsigned char *bytes, int len); X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(X509_NAME_ENTRY **ne, int nid, - int type, + int type, const unsigned char *bytes, int len); int X509_NAME_add_entry_by_txt(X509_NAME *name, const char *field, int type, @@ -959,6 +979,9 @@ X509 *X509_find_by_subject(STACK_OF(X509) *sk, X509_NAME *name); DECLARE_ASN1_FUNCTIONS(PBEPARAM) DECLARE_ASN1_FUNCTIONS(PBE2PARAM) DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) +#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) +#endif int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, const unsigned char *salt, int saltlen); @@ -1018,106 +1041,6 @@ int X509_TRUST_get_flags(const X509_TRUST *xp); char *X509_TRUST_get0_name(const X509_TRUST *xp); int X509_TRUST_get_trust(const X509_TRUST *xp); -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_X509_strings(void); - -/* Error codes for the X509 functions. */ - -/* Function codes. */ -# define X509_F_ADD_CERT_DIR 100 -# define X509_F_BUILD_CHAIN 106 -# define X509_F_BY_FILE_CTRL 101 -# define X509_F_CHECK_NAME_CONSTRAINTS 149 -# define X509_F_CHECK_POLICY 145 -# define X509_F_DANE_I2D 107 -# define X509_F_DIR_CTRL 102 -# define X509_F_GET_CERT_BY_SUBJECT 103 -# define X509_F_NETSCAPE_SPKI_B64_DECODE 129 -# define X509_F_NETSCAPE_SPKI_B64_ENCODE 130 -# define X509_F_X509AT_ADD1_ATTR 135 -# define X509_F_X509V3_ADD_EXT 104 -# define X509_F_X509_ATTRIBUTE_CREATE_BY_NID 136 -# define X509_F_X509_ATTRIBUTE_CREATE_BY_OBJ 137 -# define X509_F_X509_ATTRIBUTE_CREATE_BY_TXT 140 -# define X509_F_X509_ATTRIBUTE_GET0_DATA 139 -# define X509_F_X509_ATTRIBUTE_SET1_DATA 138 -# define X509_F_X509_CHECK_PRIVATE_KEY 128 -# define X509_F_X509_CRL_DIFF 105 -# define X509_F_X509_CRL_PRINT_FP 147 -# define X509_F_X509_EXTENSION_CREATE_BY_NID 108 -# define X509_F_X509_EXTENSION_CREATE_BY_OBJ 109 -# define X509_F_X509_GET_PUBKEY_PARAMETERS 110 -# define X509_F_X509_LOAD_CERT_CRL_FILE 132 -# define X509_F_X509_LOAD_CERT_FILE 111 -# define X509_F_X509_LOAD_CRL_FILE 112 -# define X509_F_X509_LOOKUP_METH_NEW 160 -# define X509_F_X509_NAME_ADD_ENTRY 113 -# define X509_F_X509_NAME_ENTRY_CREATE_BY_NID 114 -# define X509_F_X509_NAME_ENTRY_CREATE_BY_TXT 131 -# define X509_F_X509_NAME_ENTRY_SET_OBJECT 115 -# define X509_F_X509_NAME_ONELINE 116 -# define X509_F_X509_NAME_PRINT 117 -# define X509_F_X509_OBJECT_NEW 150 -# define X509_F_X509_PRINT_EX_FP 118 -# define X509_F_X509_PUBKEY_DECODE 148 -# define X509_F_X509_PUBKEY_GET0 119 -# define X509_F_X509_PUBKEY_SET 120 -# define X509_F_X509_REQ_CHECK_PRIVATE_KEY 144 -# define X509_F_X509_REQ_PRINT_EX 121 -# define X509_F_X509_REQ_PRINT_FP 122 -# define X509_F_X509_REQ_TO_X509 123 -# define X509_F_X509_STORE_ADD_CERT 124 -# define X509_F_X509_STORE_ADD_CRL 125 -# define X509_F_X509_STORE_CTX_GET1_ISSUER 146 -# define X509_F_X509_STORE_CTX_INIT 143 -# define X509_F_X509_STORE_CTX_NEW 142 -# define X509_F_X509_STORE_CTX_PURPOSE_INHERIT 134 -# define X509_F_X509_TO_X509_REQ 126 -# define X509_F_X509_TRUST_ADD 133 -# define X509_F_X509_TRUST_SET 141 -# define X509_F_X509_VERIFY_CERT 127 - -/* Reason codes. */ -# define X509_R_AKID_MISMATCH 110 -# define X509_R_BAD_SELECTOR 133 -# define X509_R_BAD_X509_FILETYPE 100 -# define X509_R_BASE64_DECODE_ERROR 118 -# define X509_R_CANT_CHECK_DH_KEY 114 -# define X509_R_CERT_ALREADY_IN_HASH_TABLE 101 -# define X509_R_CRL_ALREADY_DELTA 127 -# define X509_R_CRL_VERIFY_FAILURE 131 -# define X509_R_IDP_MISMATCH 128 -# define X509_R_INVALID_DIRECTORY 113 -# define X509_R_INVALID_FIELD_NAME 119 -# define X509_R_INVALID_TRUST 123 -# define X509_R_ISSUER_MISMATCH 129 -# define X509_R_KEY_TYPE_MISMATCH 115 -# define X509_R_KEY_VALUES_MISMATCH 116 -# define X509_R_LOADING_CERT_DIR 103 -# define X509_R_LOADING_DEFAULTS 104 -# define X509_R_METHOD_NOT_SUPPORTED 124 -# define X509_R_NAME_TOO_LONG 134 -# define X509_R_NEWER_CRL_NOT_NEWER 132 -# define X509_R_NO_CERT_SET_FOR_US_TO_VERIFY 105 -# define X509_R_NO_CRL_NUMBER 130 -# define X509_R_PUBLIC_KEY_DECODE_ERROR 125 -# define X509_R_PUBLIC_KEY_ENCODE_ERROR 126 -# define X509_R_SHOULD_RETRY 106 -# define X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN 107 -# define X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY 108 -# define X509_R_UNKNOWN_KEY_TYPE 117 -# define X509_R_UNKNOWN_NID 109 -# define X509_R_UNKNOWN_PURPOSE_ID 121 -# define X509_R_UNKNOWN_TRUST_ID 120 -# define X509_R_UNSUPPORTED_ALGORITHM 111 -# define X509_R_WRONG_LOOKUP_TYPE 112 -# define X509_R_WRONG_TYPE 122 - # ifdef __cplusplus } # endif diff --git a/noarch/include/node/openssl/x509_vfy.h b/noarch/include/node/openssl/x509_vfy.h index d91581c7..adb8bce7 100644 --- a/noarch/include/node/openssl/x509_vfy.h +++ b/noarch/include/node/openssl/x509_vfy.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -180,6 +180,10 @@ void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); # define X509_V_ERR_NO_VALID_SCTS 71 # define X509_V_ERR_PROXY_SUBJECT_NAME_VIOLATION 72 +/* OCSP status errors */ +# define X509_V_ERR_OCSP_VERIFY_NEEDED 73 /* Need OCSP verification */ +# define X509_V_ERR_OCSP_VERIFY_FAILED 74 /* Couldn't verify cert through OCSP */ +# define X509_V_ERR_OCSP_CERT_UNKNOWN 75 /* Certificate wasn't recognized by the OCSP responder */ /* Certificate verify flags */ @@ -358,7 +362,11 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(X509_STORE_CTX *ctx); # define X509_STORE_CTX_set_chain X509_STORE_CTX_set0_untrusted # define X509_STORE_CTX_trusted_stack X509_STORE_CTX_set0_trusted_stack # define X509_STORE_get_by_subject X509_STORE_CTX_get_by_subject +# define X509_STORE_get1_certs X509_STORE_CTX_get1_certs +# define X509_STORE_get1_crls X509_STORE_CTX_get1_crls +/* the following macro is misspelled; use X509_STORE_get1_certs instead */ # define X509_STORE_get1_cert X509_STORE_CTX_get1_certs +/* the following macro is misspelled; use X509_STORE_get1_crls instead */ # define X509_STORE_get1_crl X509_STORE_CTX_get1_crls #endif @@ -397,7 +405,7 @@ int (*X509_LOOKUP_meth_get_new_item(const X509_LOOKUP_METHOD* method)) (X509_LOOKUP *ctx); int X509_LOOKUP_meth_set_free(X509_LOOKUP_METHOD *method, - void (*free) (X509_LOOKUP *ctx)); + void (*free_fn) (X509_LOOKUP *ctx)); void (*X509_LOOKUP_meth_get_free(const X509_LOOKUP_METHOD* method)) (X509_LOOKUP *ctx); diff --git a/noarch/include/node/openssl/x509err.h b/noarch/include/node/openssl/x509err.h new file mode 100644 index 00000000..b1d6a870 --- /dev/null +++ b/noarch/include/node/openssl/x509err.h @@ -0,0 +1,125 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_X509ERR_H +# define HEADER_X509ERR_H + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_X509_strings(void); + +/* + * X509 function codes. + */ +# define X509_F_ADD_CERT_DIR 100 +# define X509_F_BUILD_CHAIN 106 +# define X509_F_BY_FILE_CTRL 101 +# define X509_F_CHECK_NAME_CONSTRAINTS 149 +# define X509_F_CHECK_POLICY 145 +# define X509_F_DANE_I2D 107 +# define X509_F_DIR_CTRL 102 +# define X509_F_GET_CERT_BY_SUBJECT 103 +# define X509_F_I2D_X509_AUX 151 +# define X509_F_LOOKUP_CERTS_SK 152 +# define X509_F_NETSCAPE_SPKI_B64_DECODE 129 +# define X509_F_NETSCAPE_SPKI_B64_ENCODE 130 +# define X509_F_NEW_DIR 153 +# define X509_F_X509AT_ADD1_ATTR 135 +# define X509_F_X509V3_ADD_EXT 104 +# define X509_F_X509_ATTRIBUTE_CREATE_BY_NID 136 +# define X509_F_X509_ATTRIBUTE_CREATE_BY_OBJ 137 +# define X509_F_X509_ATTRIBUTE_CREATE_BY_TXT 140 +# define X509_F_X509_ATTRIBUTE_GET0_DATA 139 +# define X509_F_X509_ATTRIBUTE_SET1_DATA 138 +# define X509_F_X509_CHECK_PRIVATE_KEY 128 +# define X509_F_X509_CRL_DIFF 105 +# define X509_F_X509_CRL_METHOD_NEW 154 +# define X509_F_X509_CRL_PRINT_FP 147 +# define X509_F_X509_EXTENSION_CREATE_BY_NID 108 +# define X509_F_X509_EXTENSION_CREATE_BY_OBJ 109 +# define X509_F_X509_GET_PUBKEY_PARAMETERS 110 +# define X509_F_X509_LOAD_CERT_CRL_FILE 132 +# define X509_F_X509_LOAD_CERT_FILE 111 +# define X509_F_X509_LOAD_CRL_FILE 112 +# define X509_F_X509_LOOKUP_METH_NEW 160 +# define X509_F_X509_LOOKUP_NEW 155 +# define X509_F_X509_NAME_ADD_ENTRY 113 +# define X509_F_X509_NAME_CANON 156 +# define X509_F_X509_NAME_ENTRY_CREATE_BY_NID 114 +# define X509_F_X509_NAME_ENTRY_CREATE_BY_TXT 131 +# define X509_F_X509_NAME_ENTRY_SET_OBJECT 115 +# define X509_F_X509_NAME_ONELINE 116 +# define X509_F_X509_NAME_PRINT 117 +# define X509_F_X509_OBJECT_NEW 150 +# define X509_F_X509_PRINT_EX_FP 118 +# define X509_F_X509_PUBKEY_DECODE 148 +# define X509_F_X509_PUBKEY_GET0 119 +# define X509_F_X509_PUBKEY_SET 120 +# define X509_F_X509_REQ_CHECK_PRIVATE_KEY 144 +# define X509_F_X509_REQ_PRINT_EX 121 +# define X509_F_X509_REQ_PRINT_FP 122 +# define X509_F_X509_REQ_TO_X509 123 +# define X509_F_X509_STORE_ADD_CERT 124 +# define X509_F_X509_STORE_ADD_CRL 125 +# define X509_F_X509_STORE_ADD_LOOKUP 157 +# define X509_F_X509_STORE_CTX_GET1_ISSUER 146 +# define X509_F_X509_STORE_CTX_INIT 143 +# define X509_F_X509_STORE_CTX_NEW 142 +# define X509_F_X509_STORE_CTX_PURPOSE_INHERIT 134 +# define X509_F_X509_STORE_NEW 158 +# define X509_F_X509_TO_X509_REQ 126 +# define X509_F_X509_TRUST_ADD 133 +# define X509_F_X509_TRUST_SET 141 +# define X509_F_X509_VERIFY_CERT 127 +# define X509_F_X509_VERIFY_PARAM_NEW 159 + +/* + * X509 reason codes. + */ +# define X509_R_AKID_MISMATCH 110 +# define X509_R_BAD_SELECTOR 133 +# define X509_R_BAD_X509_FILETYPE 100 +# define X509_R_BASE64_DECODE_ERROR 118 +# define X509_R_CANT_CHECK_DH_KEY 114 +# define X509_R_CERT_ALREADY_IN_HASH_TABLE 101 +# define X509_R_CRL_ALREADY_DELTA 127 +# define X509_R_CRL_VERIFY_FAILURE 131 +# define X509_R_IDP_MISMATCH 128 +# define X509_R_INVALID_DIRECTORY 113 +# define X509_R_INVALID_FIELD_NAME 119 +# define X509_R_INVALID_TRUST 123 +# define X509_R_ISSUER_MISMATCH 129 +# define X509_R_KEY_TYPE_MISMATCH 115 +# define X509_R_KEY_VALUES_MISMATCH 116 +# define X509_R_LOADING_CERT_DIR 103 +# define X509_R_LOADING_DEFAULTS 104 +# define X509_R_METHOD_NOT_SUPPORTED 124 +# define X509_R_NAME_TOO_LONG 134 +# define X509_R_NEWER_CRL_NOT_NEWER 132 +# define X509_R_NO_CERTIFICATE_FOUND 135 +# define X509_R_NO_CERTIFICATE_OR_CRL_FOUND 136 +# define X509_R_NO_CERT_SET_FOR_US_TO_VERIFY 105 +# define X509_R_NO_CRL_FOUND 137 +# define X509_R_NO_CRL_NUMBER 130 +# define X509_R_PUBLIC_KEY_DECODE_ERROR 125 +# define X509_R_PUBLIC_KEY_ENCODE_ERROR 126 +# define X509_R_SHOULD_RETRY 106 +# define X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN 107 +# define X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY 108 +# define X509_R_UNKNOWN_KEY_TYPE 117 +# define X509_R_UNKNOWN_NID 109 +# define X509_R_UNKNOWN_PURPOSE_ID 121 +# define X509_R_UNKNOWN_TRUST_ID 120 +# define X509_R_UNSUPPORTED_ALGORITHM 111 +# define X509_R_WRONG_LOOKUP_TYPE 112 +# define X509_R_WRONG_TYPE 122 + +#endif diff --git a/noarch/include/node/openssl/x509v3.h b/noarch/include/node/openssl/x509v3.h index c93b112f..9ea20275 100644 --- a/noarch/include/node/openssl/x509v3.h +++ b/noarch/include/node/openssl/x509v3.h @@ -1,5 +1,5 @@ /* - * Copyright 1999-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -13,6 +13,7 @@ # include # include # include +# include #ifdef __cplusplus extern "C" { @@ -319,8 +320,9 @@ struct ISSUING_DIST_POINT_st { /* onlysomereasons present */ # define IDP_REASONS 0x40 -# define X509V3_conf_err(val) ERR_add_error_data(6, "section:", val->section, \ -",name:", val->name, ",value:", val->value); +# define X509V3_conf_err(val) ERR_add_error_data(6, \ + "section:", (val)->section, \ + ",name:", (val)->name, ",value:", (val)->value) # define X509V3_set_ctx_test(ctx) \ X509V3_set_ctx(ctx, NULL, NULL, NULL, NULL, CTX_TEST) @@ -495,10 +497,10 @@ DECLARE_ASN1_FUNCTIONS(OTHERNAME) DECLARE_ASN1_FUNCTIONS(EDIPARTYNAME) int OTHERNAME_cmp(OTHERNAME *a, OTHERNAME *b); void GENERAL_NAME_set0_value(GENERAL_NAME *a, int type, void *value); -void *GENERAL_NAME_get0_value(GENERAL_NAME *a, int *ptype); +void *GENERAL_NAME_get0_value(const GENERAL_NAME *a, int *ptype); int GENERAL_NAME_set0_othername(GENERAL_NAME *gen, ASN1_OBJECT *oid, ASN1_TYPE *value); -int GENERAL_NAME_get0_otherName(GENERAL_NAME *gen, +int GENERAL_NAME_get0_otherName(const GENERAL_NAME *gen, ASN1_OBJECT **poid, ASN1_TYPE **pvalue); char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, @@ -862,145 +864,70 @@ int X509v3_addr_validate_resource_set(STACK_OF(X509) *chain, #endif /* OPENSSL_NO_RFC3779 */ -/* BEGIN ERROR CODES */ +DEFINE_STACK_OF(ASN1_STRING) + /* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. + * Admission Syntax */ +typedef struct NamingAuthority_st NAMING_AUTHORITY; +typedef struct ProfessionInfo_st PROFESSION_INFO; +typedef struct Admissions_st ADMISSIONS; +typedef struct AdmissionSyntax_st ADMISSION_SYNTAX; +DECLARE_ASN1_FUNCTIONS(NAMING_AUTHORITY) +DECLARE_ASN1_FUNCTIONS(PROFESSION_INFO) +DECLARE_ASN1_FUNCTIONS(ADMISSIONS) +DECLARE_ASN1_FUNCTIONS(ADMISSION_SYNTAX) +DEFINE_STACK_OF(ADMISSIONS) +DEFINE_STACK_OF(PROFESSION_INFO) +typedef STACK_OF(PROFESSION_INFO) PROFESSION_INFOS; -int ERR_load_X509V3_strings(void); +const ASN1_OBJECT *NAMING_AUTHORITY_get0_authorityId( + const NAMING_AUTHORITY *n); +const ASN1_IA5STRING *NAMING_AUTHORITY_get0_authorityURL( + const NAMING_AUTHORITY *n); +const ASN1_STRING *NAMING_AUTHORITY_get0_authorityText( + const NAMING_AUTHORITY *n); +void NAMING_AUTHORITY_set0_authorityId(NAMING_AUTHORITY *n, + ASN1_OBJECT* namingAuthorityId); +void NAMING_AUTHORITY_set0_authorityURL(NAMING_AUTHORITY *n, + ASN1_IA5STRING* namingAuthorityUrl); +void NAMING_AUTHORITY_set0_authorityText(NAMING_AUTHORITY *n, + ASN1_STRING* namingAuthorityText); -/* Error codes for the X509V3 functions. */ - -/* Function codes. */ -# define X509V3_F_A2I_GENERAL_NAME 164 -# define X509V3_F_ADDR_VALIDATE_PATH_INTERNAL 166 -# define X509V3_F_ASIDENTIFIERCHOICE_CANONIZE 161 -# define X509V3_F_ASIDENTIFIERCHOICE_IS_CANONICAL 162 -# define X509V3_F_BIGNUM_TO_STRING 167 -# define X509V3_F_COPY_EMAIL 122 -# define X509V3_F_COPY_ISSUER 123 -# define X509V3_F_DO_DIRNAME 144 -# define X509V3_F_DO_EXT_I2D 135 -# define X509V3_F_DO_EXT_NCONF 151 -# define X509V3_F_GNAMES_FROM_SECTNAME 156 -# define X509V3_F_I2S_ASN1_ENUMERATED 121 -# define X509V3_F_I2S_ASN1_IA5STRING 149 -# define X509V3_F_I2S_ASN1_INTEGER 120 -# define X509V3_F_I2V_AUTHORITY_INFO_ACCESS 138 -# define X509V3_F_NOTICE_SECTION 132 -# define X509V3_F_NREF_NOS 133 -# define X509V3_F_POLICY_SECTION 131 -# define X509V3_F_PROCESS_PCI_VALUE 150 -# define X509V3_F_R2I_CERTPOL 130 -# define X509V3_F_R2I_PCI 155 -# define X509V3_F_S2I_ASN1_IA5STRING 100 -# define X509V3_F_S2I_ASN1_INTEGER 108 -# define X509V3_F_S2I_ASN1_OCTET_STRING 112 -# define X509V3_F_S2I_SKEY_ID 115 -# define X509V3_F_SET_DIST_POINT_NAME 158 -# define X509V3_F_SXNET_ADD_ID_ASC 125 -# define X509V3_F_SXNET_ADD_ID_INTEGER 126 -# define X509V3_F_SXNET_ADD_ID_ULONG 127 -# define X509V3_F_SXNET_GET_ID_ASC 128 -# define X509V3_F_SXNET_GET_ID_ULONG 129 -# define X509V3_F_V2I_ASIDENTIFIERS 163 -# define X509V3_F_V2I_ASN1_BIT_STRING 101 -# define X509V3_F_V2I_AUTHORITY_INFO_ACCESS 139 -# define X509V3_F_V2I_AUTHORITY_KEYID 119 -# define X509V3_F_V2I_BASIC_CONSTRAINTS 102 -# define X509V3_F_V2I_CRLD 134 -# define X509V3_F_V2I_EXTENDED_KEY_USAGE 103 -# define X509V3_F_V2I_GENERAL_NAMES 118 -# define X509V3_F_V2I_GENERAL_NAME_EX 117 -# define X509V3_F_V2I_IDP 157 -# define X509V3_F_V2I_IPADDRBLOCKS 159 -# define X509V3_F_V2I_ISSUER_ALT 153 -# define X509V3_F_V2I_NAME_CONSTRAINTS 147 -# define X509V3_F_V2I_POLICY_CONSTRAINTS 146 -# define X509V3_F_V2I_POLICY_MAPPINGS 145 -# define X509V3_F_V2I_SUBJECT_ALT 154 -# define X509V3_F_V2I_TLS_FEATURE 165 -# define X509V3_F_V3_GENERIC_EXTENSION 116 -# define X509V3_F_X509V3_ADD1_I2D 140 -# define X509V3_F_X509V3_ADD_VALUE 105 -# define X509V3_F_X509V3_EXT_ADD 104 -# define X509V3_F_X509V3_EXT_ADD_ALIAS 106 -# define X509V3_F_X509V3_EXT_I2D 136 -# define X509V3_F_X509V3_EXT_NCONF 152 -# define X509V3_F_X509V3_GET_SECTION 142 -# define X509V3_F_X509V3_GET_STRING 143 -# define X509V3_F_X509V3_GET_VALUE_BOOL 110 -# define X509V3_F_X509V3_PARSE_LIST 109 -# define X509V3_F_X509_PURPOSE_ADD 137 -# define X509V3_F_X509_PURPOSE_SET 141 - -/* Reason codes. */ -# define X509V3_R_BAD_IP_ADDRESS 118 -# define X509V3_R_BAD_OBJECT 119 -# define X509V3_R_BN_DEC2BN_ERROR 100 -# define X509V3_R_BN_TO_ASN1_INTEGER_ERROR 101 -# define X509V3_R_DIRNAME_ERROR 149 -# define X509V3_R_DISTPOINT_ALREADY_SET 160 -# define X509V3_R_DUPLICATE_ZONE_ID 133 -# define X509V3_R_ERROR_CONVERTING_ZONE 131 -# define X509V3_R_ERROR_CREATING_EXTENSION 144 -# define X509V3_R_ERROR_IN_EXTENSION 128 -# define X509V3_R_EXPECTED_A_SECTION_NAME 137 -# define X509V3_R_EXTENSION_EXISTS 145 -# define X509V3_R_EXTENSION_NAME_ERROR 115 -# define X509V3_R_EXTENSION_NOT_FOUND 102 -# define X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED 103 -# define X509V3_R_EXTENSION_VALUE_ERROR 116 -# define X509V3_R_ILLEGAL_EMPTY_EXTENSION 151 -# define X509V3_R_INCORRECT_POLICY_SYNTAX_TAG 152 -# define X509V3_R_INVALID_ASNUMBER 162 -# define X509V3_R_INVALID_ASRANGE 163 -# define X509V3_R_INVALID_BOOLEAN_STRING 104 -# define X509V3_R_INVALID_EXTENSION_STRING 105 -# define X509V3_R_INVALID_INHERITANCE 165 -# define X509V3_R_INVALID_IPADDRESS 166 -# define X509V3_R_INVALID_MULTIPLE_RDNS 161 -# define X509V3_R_INVALID_NAME 106 -# define X509V3_R_INVALID_NULL_ARGUMENT 107 -# define X509V3_R_INVALID_NULL_NAME 108 -# define X509V3_R_INVALID_NULL_VALUE 109 -# define X509V3_R_INVALID_NUMBER 140 -# define X509V3_R_INVALID_NUMBERS 141 -# define X509V3_R_INVALID_OBJECT_IDENTIFIER 110 -# define X509V3_R_INVALID_OPTION 138 -# define X509V3_R_INVALID_POLICY_IDENTIFIER 134 -# define X509V3_R_INVALID_PROXY_POLICY_SETTING 153 -# define X509V3_R_INVALID_PURPOSE 146 -# define X509V3_R_INVALID_SAFI 164 -# define X509V3_R_INVALID_SECTION 135 -# define X509V3_R_INVALID_SYNTAX 143 -# define X509V3_R_ISSUER_DECODE_ERROR 126 -# define X509V3_R_MISSING_VALUE 124 -# define X509V3_R_NEED_ORGANIZATION_AND_NUMBERS 142 -# define X509V3_R_NO_CONFIG_DATABASE 136 -# define X509V3_R_NO_ISSUER_CERTIFICATE 121 -# define X509V3_R_NO_ISSUER_DETAILS 127 -# define X509V3_R_NO_POLICY_IDENTIFIER 139 -# define X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED 154 -# define X509V3_R_NO_PUBLIC_KEY 114 -# define X509V3_R_NO_SUBJECT_DETAILS 125 -# define X509V3_R_OPERATION_NOT_DEFINED 148 -# define X509V3_R_OTHERNAME_ERROR 147 -# define X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED 155 -# define X509V3_R_POLICY_PATH_LENGTH 156 -# define X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED 157 -# define X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY 159 -# define X509V3_R_SECTION_NOT_FOUND 150 -# define X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS 122 -# define X509V3_R_UNABLE_TO_GET_ISSUER_KEYID 123 -# define X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT 111 -# define X509V3_R_UNKNOWN_EXTENSION 129 -# define X509V3_R_UNKNOWN_EXTENSION_NAME 130 -# define X509V3_R_UNKNOWN_OPTION 120 -# define X509V3_R_UNSUPPORTED_OPTION 117 -# define X509V3_R_UNSUPPORTED_TYPE 167 -# define X509V3_R_USER_TOO_LONG 132 +const GENERAL_NAME *ADMISSION_SYNTAX_get0_admissionAuthority( + const ADMISSION_SYNTAX *as); +void ADMISSION_SYNTAX_set0_admissionAuthority( + ADMISSION_SYNTAX *as, GENERAL_NAME *aa); +const STACK_OF(ADMISSIONS) *ADMISSION_SYNTAX_get0_contentsOfAdmissions( + const ADMISSION_SYNTAX *as); +void ADMISSION_SYNTAX_set0_contentsOfAdmissions( + ADMISSION_SYNTAX *as, STACK_OF(ADMISSIONS) *a); +const GENERAL_NAME *ADMISSIONS_get0_admissionAuthority(const ADMISSIONS *a); +void ADMISSIONS_set0_admissionAuthority(ADMISSIONS *a, GENERAL_NAME *aa); +const NAMING_AUTHORITY *ADMISSIONS_get0_namingAuthority(const ADMISSIONS *a); +void ADMISSIONS_set0_namingAuthority(ADMISSIONS *a, NAMING_AUTHORITY *na); +const PROFESSION_INFOS *ADMISSIONS_get0_professionInfos(const ADMISSIONS *a); +void ADMISSIONS_set0_professionInfos(ADMISSIONS *a, PROFESSION_INFOS *pi); +const ASN1_OCTET_STRING *PROFESSION_INFO_get0_addProfessionInfo( + const PROFESSION_INFO *pi); +void PROFESSION_INFO_set0_addProfessionInfo( + PROFESSION_INFO *pi, ASN1_OCTET_STRING *aos); +const NAMING_AUTHORITY *PROFESSION_INFO_get0_namingAuthority( + const PROFESSION_INFO *pi); +void PROFESSION_INFO_set0_namingAuthority( + PROFESSION_INFO *pi, NAMING_AUTHORITY *na); +const STACK_OF(ASN1_STRING) *PROFESSION_INFO_get0_professionItems( + const PROFESSION_INFO *pi); +void PROFESSION_INFO_set0_professionItems( + PROFESSION_INFO *pi, STACK_OF(ASN1_STRING) *as); +const STACK_OF(ASN1_OBJECT) *PROFESSION_INFO_get0_professionOIDs( + const PROFESSION_INFO *pi); +void PROFESSION_INFO_set0_professionOIDs( + PROFESSION_INFO *pi, STACK_OF(ASN1_OBJECT) *po); +const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( + const PROFESSION_INFO *pi); +void PROFESSION_INFO_set0_registrationNumber( + PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); # ifdef __cplusplus } diff --git a/noarch/include/node/openssl/x509v3err.h b/noarch/include/node/openssl/x509v3err.h new file mode 100644 index 00000000..6b3df12b --- /dev/null +++ b/noarch/include/node/openssl/x509v3err.h @@ -0,0 +1,158 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_X509V3ERR_H +# define HEADER_X509V3ERR_H + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_X509V3_strings(void); + +/* + * X509V3 function codes. + */ +# define X509V3_F_A2I_GENERAL_NAME 164 +# define X509V3_F_ADDR_VALIDATE_PATH_INTERNAL 166 +# define X509V3_F_ASIDENTIFIERCHOICE_CANONIZE 161 +# define X509V3_F_ASIDENTIFIERCHOICE_IS_CANONICAL 162 +# define X509V3_F_BIGNUM_TO_STRING 167 +# define X509V3_F_COPY_EMAIL 122 +# define X509V3_F_COPY_ISSUER 123 +# define X509V3_F_DO_DIRNAME 144 +# define X509V3_F_DO_EXT_I2D 135 +# define X509V3_F_DO_EXT_NCONF 151 +# define X509V3_F_GNAMES_FROM_SECTNAME 156 +# define X509V3_F_I2S_ASN1_ENUMERATED 121 +# define X509V3_F_I2S_ASN1_IA5STRING 149 +# define X509V3_F_I2S_ASN1_INTEGER 120 +# define X509V3_F_I2V_AUTHORITY_INFO_ACCESS 138 +# define X509V3_F_LEVEL_ADD_NODE 168 +# define X509V3_F_NOTICE_SECTION 132 +# define X509V3_F_NREF_NOS 133 +# define X509V3_F_POLICY_CACHE_CREATE 169 +# define X509V3_F_POLICY_CACHE_NEW 170 +# define X509V3_F_POLICY_DATA_NEW 171 +# define X509V3_F_POLICY_SECTION 131 +# define X509V3_F_PROCESS_PCI_VALUE 150 +# define X509V3_F_R2I_CERTPOL 130 +# define X509V3_F_R2I_PCI 155 +# define X509V3_F_S2I_ASN1_IA5STRING 100 +# define X509V3_F_S2I_ASN1_INTEGER 108 +# define X509V3_F_S2I_ASN1_OCTET_STRING 112 +# define X509V3_F_S2I_SKEY_ID 115 +# define X509V3_F_SET_DIST_POINT_NAME 158 +# define X509V3_F_SXNET_ADD_ID_ASC 125 +# define X509V3_F_SXNET_ADD_ID_INTEGER 126 +# define X509V3_F_SXNET_ADD_ID_ULONG 127 +# define X509V3_F_SXNET_GET_ID_ASC 128 +# define X509V3_F_SXNET_GET_ID_ULONG 129 +# define X509V3_F_TREE_INIT 172 +# define X509V3_F_V2I_ASIDENTIFIERS 163 +# define X509V3_F_V2I_ASN1_BIT_STRING 101 +# define X509V3_F_V2I_AUTHORITY_INFO_ACCESS 139 +# define X509V3_F_V2I_AUTHORITY_KEYID 119 +# define X509V3_F_V2I_BASIC_CONSTRAINTS 102 +# define X509V3_F_V2I_CRLD 134 +# define X509V3_F_V2I_EXTENDED_KEY_USAGE 103 +# define X509V3_F_V2I_GENERAL_NAMES 118 +# define X509V3_F_V2I_GENERAL_NAME_EX 117 +# define X509V3_F_V2I_IDP 157 +# define X509V3_F_V2I_IPADDRBLOCKS 159 +# define X509V3_F_V2I_ISSUER_ALT 153 +# define X509V3_F_V2I_NAME_CONSTRAINTS 147 +# define X509V3_F_V2I_POLICY_CONSTRAINTS 146 +# define X509V3_F_V2I_POLICY_MAPPINGS 145 +# define X509V3_F_V2I_SUBJECT_ALT 154 +# define X509V3_F_V2I_TLS_FEATURE 165 +# define X509V3_F_V3_GENERIC_EXTENSION 116 +# define X509V3_F_X509V3_ADD1_I2D 140 +# define X509V3_F_X509V3_ADD_VALUE 105 +# define X509V3_F_X509V3_EXT_ADD 104 +# define X509V3_F_X509V3_EXT_ADD_ALIAS 106 +# define X509V3_F_X509V3_EXT_I2D 136 +# define X509V3_F_X509V3_EXT_NCONF 152 +# define X509V3_F_X509V3_GET_SECTION 142 +# define X509V3_F_X509V3_GET_STRING 143 +# define X509V3_F_X509V3_GET_VALUE_BOOL 110 +# define X509V3_F_X509V3_PARSE_LIST 109 +# define X509V3_F_X509_PURPOSE_ADD 137 +# define X509V3_F_X509_PURPOSE_SET 141 + +/* + * X509V3 reason codes. + */ +# define X509V3_R_BAD_IP_ADDRESS 118 +# define X509V3_R_BAD_OBJECT 119 +# define X509V3_R_BN_DEC2BN_ERROR 100 +# define X509V3_R_BN_TO_ASN1_INTEGER_ERROR 101 +# define X509V3_R_DIRNAME_ERROR 149 +# define X509V3_R_DISTPOINT_ALREADY_SET 160 +# define X509V3_R_DUPLICATE_ZONE_ID 133 +# define X509V3_R_ERROR_CONVERTING_ZONE 131 +# define X509V3_R_ERROR_CREATING_EXTENSION 144 +# define X509V3_R_ERROR_IN_EXTENSION 128 +# define X509V3_R_EXPECTED_A_SECTION_NAME 137 +# define X509V3_R_EXTENSION_EXISTS 145 +# define X509V3_R_EXTENSION_NAME_ERROR 115 +# define X509V3_R_EXTENSION_NOT_FOUND 102 +# define X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED 103 +# define X509V3_R_EXTENSION_VALUE_ERROR 116 +# define X509V3_R_ILLEGAL_EMPTY_EXTENSION 151 +# define X509V3_R_INCORRECT_POLICY_SYNTAX_TAG 152 +# define X509V3_R_INVALID_ASNUMBER 162 +# define X509V3_R_INVALID_ASRANGE 163 +# define X509V3_R_INVALID_BOOLEAN_STRING 104 +# define X509V3_R_INVALID_EXTENSION_STRING 105 +# define X509V3_R_INVALID_INHERITANCE 165 +# define X509V3_R_INVALID_IPADDRESS 166 +# define X509V3_R_INVALID_MULTIPLE_RDNS 161 +# define X509V3_R_INVALID_NAME 106 +# define X509V3_R_INVALID_NULL_ARGUMENT 107 +# define X509V3_R_INVALID_NULL_NAME 108 +# define X509V3_R_INVALID_NULL_VALUE 109 +# define X509V3_R_INVALID_NUMBER 140 +# define X509V3_R_INVALID_NUMBERS 141 +# define X509V3_R_INVALID_OBJECT_IDENTIFIER 110 +# define X509V3_R_INVALID_OPTION 138 +# define X509V3_R_INVALID_POLICY_IDENTIFIER 134 +# define X509V3_R_INVALID_PROXY_POLICY_SETTING 153 +# define X509V3_R_INVALID_PURPOSE 146 +# define X509V3_R_INVALID_SAFI 164 +# define X509V3_R_INVALID_SECTION 135 +# define X509V3_R_INVALID_SYNTAX 143 +# define X509V3_R_ISSUER_DECODE_ERROR 126 +# define X509V3_R_MISSING_VALUE 124 +# define X509V3_R_NEED_ORGANIZATION_AND_NUMBERS 142 +# define X509V3_R_NO_CONFIG_DATABASE 136 +# define X509V3_R_NO_ISSUER_CERTIFICATE 121 +# define X509V3_R_NO_ISSUER_DETAILS 127 +# define X509V3_R_NO_POLICY_IDENTIFIER 139 +# define X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED 154 +# define X509V3_R_NO_PUBLIC_KEY 114 +# define X509V3_R_NO_SUBJECT_DETAILS 125 +# define X509V3_R_OPERATION_NOT_DEFINED 148 +# define X509V3_R_OTHERNAME_ERROR 147 +# define X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED 155 +# define X509V3_R_POLICY_PATH_LENGTH 156 +# define X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED 157 +# define X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY 159 +# define X509V3_R_SECTION_NOT_FOUND 150 +# define X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS 122 +# define X509V3_R_UNABLE_TO_GET_ISSUER_KEYID 123 +# define X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT 111 +# define X509V3_R_UNKNOWN_EXTENSION 129 +# define X509V3_R_UNKNOWN_EXTENSION_NAME 130 +# define X509V3_R_UNKNOWN_OPTION 120 +# define X509V3_R_UNSUPPORTED_OPTION 117 +# define X509V3_R_UNSUPPORTED_TYPE 167 +# define X509V3_R_USER_TOO_LONG 132 + +#endif diff --git a/noarch/include/node/uv.h b/noarch/include/node/uv.h index 717c2e57..df15b836 100644 --- a/noarch/include/node/uv.h +++ b/noarch/include/node/uv.h @@ -202,6 +202,7 @@ typedef enum { /* Handle types. */ typedef struct uv_loop_s uv_loop_t; typedef struct uv_handle_s uv_handle_t; +typedef struct uv_dir_s uv_dir_t; typedef struct uv_stream_s uv_stream_t; typedef struct uv_tcp_s uv_tcp_t; typedef struct uv_udp_s uv_udp_t; @@ -234,6 +235,7 @@ typedef struct uv_cpu_info_s uv_cpu_info_t; typedef struct uv_interface_address_s uv_interface_address_t; typedef struct uv_dirent_s uv_dirent_t; typedef struct uv_passwd_s uv_passwd_t; +typedef struct uv_utsname_s uv_utsname_t; typedef enum { UV_LOOP_BLOCK_SIGNAL @@ -629,7 +631,11 @@ UV_EXTERN int uv_udp_open(uv_udp_t* handle, uv_os_sock_t sock); UV_EXTERN int uv_udp_bind(uv_udp_t* handle, const struct sockaddr* addr, unsigned int flags); +UV_EXTERN int uv_udp_connect(uv_udp_t* handle, const struct sockaddr* addr); +UV_EXTERN int uv_udp_getpeername(const uv_udp_t* handle, + struct sockaddr* name, + int* namelen); UV_EXTERN int uv_udp_getsockname(const uv_udp_t* handle, struct sockaddr* name, int* namelen); @@ -962,12 +968,23 @@ enum uv_process_flags { * the child's process handle. */ UV_PROCESS_DETACHED = (1 << 3), + /* + * Hide the subprocess window that would normally be created. This option is + * only meaningful on Windows systems. On Unix it is silently ignored. + */ + UV_PROCESS_WINDOWS_HIDE = (1 << 4), /* * Hide the subprocess console window that would normally be created. This * option is only meaningful on Windows systems. On Unix it is silently * ignored. */ - UV_PROCESS_WINDOWS_HIDE = (1 << 4) + UV_PROCESS_WINDOWS_HIDE_CONSOLE = (1 << 5), + /* + * Hide the subprocess GUI window that would normally be created. This + * option is only meaningful on Windows systems. On Unix it is silently + * ignored. + */ + UV_PROCESS_WINDOWS_HIDE_GUI = (1 << 6) }; /* @@ -1043,6 +1060,16 @@ struct uv_passwd_s { char* homedir; }; +struct uv_utsname_s { + char sysname[256]; + char release[256]; + char version[256]; + char machine[256]; + /* This struct does not contain the nodename and domainname fields present in + the utsname type. domainname is a GNU extension. Both fields are referred + to as meaningless in the docs. */ +}; + typedef enum { UV_DIRENT_UNKNOWN, UV_DIRENT_FILE, @@ -1072,6 +1099,11 @@ typedef struct { long tv_usec; } uv_timeval_t; +typedef struct { + int64_t tv_sec; + int32_t tv_usec; +} uv_timeval64_t; + typedef struct { uv_timeval_t ru_utime; /* user CPU time used */ uv_timeval_t ru_stime; /* system CPU time used */ @@ -1122,8 +1154,21 @@ UV_EXTERN int uv_os_getenv(const char* name, char* buffer, size_t* size); UV_EXTERN int uv_os_setenv(const char* name, const char* value); UV_EXTERN int uv_os_unsetenv(const char* name); +#ifdef MAXHOSTNAMELEN +# define UV_MAXHOSTNAMESIZE (MAXHOSTNAMELEN + 1) +#else + /* + Fallback for the maximum hostname size, including the null terminator. The + Windows gethostname() documentation states that 256 bytes will always be + large enough to hold the null-terminated hostname. + */ +# define UV_MAXHOSTNAMESIZE 256 +#endif + UV_EXTERN int uv_os_gethostname(char* buffer, size_t* size); +UV_EXTERN int uv_os_uname(uv_utsname_t* buffer); + typedef enum { UV_FS_UNKNOWN = -1, @@ -1157,9 +1202,19 @@ typedef enum { UV_FS_FCHOWN, UV_FS_REALPATH, UV_FS_COPYFILE, - UV_FS_LCHOWN + UV_FS_LCHOWN, + UV_FS_OPENDIR, + UV_FS_READDIR, + UV_FS_CLOSEDIR } uv_fs_type; +struct uv_dir_s { + uv_dirent_t* dirents; + size_t nentries; + void* reserved[4]; + UV_DIR_PRIVATE_FIELDS +}; + /* uv_fs_t is a subclass of uv_req_t. */ struct uv_fs_s { UV_REQ_FIELDS @@ -1252,6 +1307,18 @@ UV_EXTERN int uv_fs_scandir(uv_loop_t* loop, uv_fs_cb cb); UV_EXTERN int uv_fs_scandir_next(uv_fs_t* req, uv_dirent_t* ent); +UV_EXTERN int uv_fs_opendir(uv_loop_t* loop, + uv_fs_t* req, + const char* path, + uv_fs_cb cb); +UV_EXTERN int uv_fs_readdir(uv_loop_t* loop, + uv_fs_t* req, + uv_dir_t* dir, + uv_fs_cb cb); +UV_EXTERN int uv_fs_closedir(uv_loop_t* loop, + uv_fs_t* req, + uv_dir_t* dir, + uv_fs_cb cb); UV_EXTERN int uv_fs_stat(uv_loop_t* loop, uv_fs_t* req, const char* path, @@ -1547,9 +1614,29 @@ UV_EXTERN void uv_key_delete(uv_key_t* key); UV_EXTERN void* uv_key_get(uv_key_t* key); UV_EXTERN void uv_key_set(uv_key_t* key, void* value); +UV_EXTERN int uv_gettimeofday(uv_timeval64_t* tv); + typedef void (*uv_thread_cb)(void* arg); UV_EXTERN int uv_thread_create(uv_thread_t* tid, uv_thread_cb entry, void* arg); + +typedef enum { + UV_THREAD_NO_FLAGS = 0x00, + UV_THREAD_HAS_STACK_SIZE = 0x01 +} uv_thread_create_flags; + +struct uv_thread_options_s { + unsigned int flags; + size_t stack_size; + /* More fields may be added at any time. */ +}; + +typedef struct uv_thread_options_s uv_thread_options_t; + +UV_EXTERN int uv_thread_create_ex(uv_thread_t* tid, + const uv_thread_options_t* params, + uv_thread_cb entry, + void* arg); UV_EXTERN uv_thread_t uv_thread_self(void); UV_EXTERN int uv_thread_join(uv_thread_t *tid); UV_EXTERN int uv_thread_equal(const uv_thread_t* t1, const uv_thread_t* t2); diff --git a/noarch/include/node/uv/unix.h b/noarch/include/node/uv/unix.h index 7208557b..26df0ec1 100644 --- a/noarch/include/node/uv/unix.h +++ b/noarch/include/node/uv/unix.h @@ -31,13 +31,14 @@ #include #include #include -#include +#include /* MAXHOSTNAMELEN on Solaris */ #include #include #if !defined(__MVS__) #include +#include /* MAXHOSTNAMELEN on Linux and the BSDs */ #endif #include #include @@ -64,6 +65,8 @@ # include "uv/bsd.h" #elif defined(__CYGWIN__) || defined(__MSYS__) # include "uv/posix.h" +#elif defined(__GNU__) +# include "uv/posix.h" #endif #ifndef NI_MAXHOST @@ -134,7 +137,9 @@ typedef pthread_cond_t uv_cond_t; typedef pthread_key_t uv_key_t; /* Note: guard clauses should match uv_barrier_init's in src/unix/thread.c. */ -#if defined(_AIX) || !defined(PTHREAD_BARRIER_SERIAL_THREAD) +#if defined(_AIX) || \ + defined(__OpenBSD__) || \ + !defined(PTHREAD_BARRIER_SERIAL_THREAD) /* TODO(bnoordhuis) Merge into uv_barrier_t in v2. */ struct _uv_barrier { uv_mutex_t mutex; @@ -161,6 +166,9 @@ typedef uid_t uv_uid_t; typedef struct dirent uv__dirent_t; +#define UV_DIR_PRIVATE_FIELDS \ + DIR* dir; + #if defined(DT_UNKNOWN) # define HAVE_DIRENT_TYPES # if defined(DT_REG) diff --git a/noarch/include/node/uv/version.h b/noarch/include/node/uv/version.h index cc064e2f..fcb813b3 100644 --- a/noarch/include/node/uv/version.h +++ b/noarch/include/node/uv/version.h @@ -31,8 +31,8 @@ */ #define UV_VERSION_MAJOR 1 -#define UV_VERSION_MINOR 23 -#define UV_VERSION_PATCH 2 +#define UV_VERSION_MINOR 28 +#define UV_VERSION_PATCH 0 #define UV_VERSION_IS_RELEASE 1 #define UV_VERSION_SUFFIX "" diff --git a/noarch/include/node/uv/win.h b/noarch/include/node/uv/win.h index d6b8b3a7..acbd958b 100644 --- a/noarch/include/node/uv/win.h +++ b/noarch/include/node/uv/win.h @@ -25,6 +25,7 @@ #if !defined(_SSIZE_T_) && !defined(_SSIZE_T_DEFINED) typedef intptr_t ssize_t; +# define SSIZE_MAX INTPTR_MAX # define _SSIZE_T_ # define _SSIZE_T_DEFINED #endif @@ -86,6 +87,14 @@ typedef struct pollfd { #define SIGKILL 9 #define SIGWINCH 28 +/* Redefine NSIG to take SIGWINCH into consideration */ +#if defined(NSIG) && NSIG <= SIGWINCH +# undef NSIG +#endif +#ifndef NSIG +# define NSIG SIGWINCH + 1 +#endif + /* The CRT defines SIGABRT_COMPAT as 6, which equals SIGABRT on many unix-like * platforms. However MinGW doesn't define it, so we do. */ #ifndef SIGABRT_COMPAT @@ -292,6 +301,11 @@ typedef struct uv__dirent_s { char d_name[1]; } uv__dirent_t; +#define UV_DIR_PRIVATE_FIELDS \ + HANDLE dir_handle; \ + WIN32_FIND_DATAW find_data; \ + BOOL need_find_call; + #define HAVE_DIRENT_TYPES #define UV__DT_DIR UV_DIRENT_DIR #define UV__DT_FILE UV_DIRENT_FILE diff --git a/noarch/include/node/v8.h b/noarch/include/node/v8.h index 55ad7c8c..a5aaf2d6 100644 --- a/noarch/include/node/v8.h +++ b/noarch/include/node/v8.h @@ -1019,9 +1019,9 @@ class V8_EXPORT PrimitiveArray { public: static Local New(Isolate* isolate, int length); int Length() const; - V8_DEPRECATED("Use Isolate* version", + V8_DEPRECATE_SOON("Use Isolate* version", void Set(int index, Local item)); - V8_DEPRECATED("Use Isolate* version", + V8_DEPRECATE_SOON("Use Isolate* version", Local Get(int index)); void Set(Isolate* isolate, int index, Local item); Local Get(Isolate* isolate, int index); @@ -1739,8 +1739,8 @@ class V8_EXPORT StackTrace { /** * Returns a StackFrame at a particular index. */ - V8_DEPRECATED("Use Isolate version", - Local GetFrame(uint32_t index) const); + V8_DEPRECATE_SOON("Use Isolate version", + Local GetFrame(uint32_t index) const); Local GetFrame(Isolate* isolate, uint32_t index) const; /** @@ -2451,7 +2451,7 @@ class V8_EXPORT Value : public Data { inline V8_DEPRECATED("Use maybe version", Local ToBoolean() const); - inline V8_DEPRECATED("Use maybe version", Local ToString() const); + inline V8_DEPRECATE_SOON("Use maybe version", Local ToString() const); inline V8_DEPRECATED("Use maybe version", Local ToObject() const); inline V8_DEPRECATED("Use maybe version", Local ToInteger() const); @@ -2471,7 +2471,7 @@ class V8_EXPORT Value : public Data { Local context) const; V8_WARN_UNUSED_RESULT Maybe Int32Value(Local context) const; - V8_DEPRECATED("Use maybe version", bool BooleanValue() const); + V8_DEPRECATE_SOON("Use maybe version", bool BooleanValue() const); V8_DEPRECATED("Use maybe version", double NumberValue() const); V8_DEPRECATED("Use maybe version", int64_t IntegerValue() const); V8_DEPRECATED("Use maybe version", uint32_t Uint32Value() const); @@ -2584,7 +2584,7 @@ class V8_EXPORT String : public Name { * Returns the number of bytes in the UTF-8 encoded * representation of this string. */ - V8_DEPRECATED("Use Isolate version instead", int Utf8Length() const); + V8_DEPRECATE_SOON("Use Isolate version instead", int Utf8Length() const); int Utf8Length(Isolate* isolate) const; @@ -2642,23 +2642,23 @@ class V8_EXPORT String : public Name { // 16-bit character codes. int Write(Isolate* isolate, uint16_t* buffer, int start = 0, int length = -1, int options = NO_OPTIONS) const; - V8_DEPRECATED("Use Isolate* version", - int Write(uint16_t* buffer, int start = 0, int length = -1, - int options = NO_OPTIONS) const); + V8_DEPRECATE_SOON("Use Isolate* version", + int Write(uint16_t* buffer, int start = 0, int length = -1, + int options = NO_OPTIONS) const); // One byte characters. int WriteOneByte(Isolate* isolate, uint8_t* buffer, int start = 0, int length = -1, int options = NO_OPTIONS) const; - V8_DEPRECATED("Use Isolate* version", - int WriteOneByte(uint8_t* buffer, int start = 0, - int length = -1, int options = NO_OPTIONS) + V8_DEPRECATE_SOON("Use Isolate* version", + int WriteOneByte(uint8_t* buffer, int start = 0, + int length = -1, int options = NO_OPTIONS) const); // UTF-8 encoded characters. int WriteUtf8(Isolate* isolate, char* buffer, int length = -1, int* nchars_ref = NULL, int options = NO_OPTIONS) const; - V8_DEPRECATED("Use Isolate* version", - int WriteUtf8(char* buffer, int length = -1, - int* nchars_ref = NULL, - int options = NO_OPTIONS) const); + V8_DEPRECATE_SOON("Use Isolate* version", + int WriteUtf8(char* buffer, int length = -1, + int* nchars_ref = NULL, + int options = NO_OPTIONS) const); /** * A zero length string. @@ -2822,9 +2822,9 @@ class V8_EXPORT String : public Name { */ static Local Concat(Isolate* isolate, Local left, Local right); - static V8_DEPRECATED("Use Isolate* version", - Local Concat(Local left, - Local right)); + static V8_DEPRECATE_SOON("Use Isolate* version", + Local Concat(Local left, + Local right)); /** * Creates a new external string using the data defined in the given @@ -5049,8 +5049,8 @@ class V8_EXPORT BooleanObject : public Object { class V8_EXPORT StringObject : public Object { public: static Local New(Isolate* isolate, Local value); - V8_DEPRECATED("Use Isolate* version", - static Local New(Local value)); + V8_DEPRECATE_SOON("Use Isolate* version", + static Local New(Local value)); Local ValueOf() const; diff --git a/winx64/lib/boost/cmake/Boost-1.70.0/BoostConfig.cmake b/winx64/lib/boost/cmake/Boost-1.70.0/BoostConfig.cmake new file mode 100644 index 00000000..539267d9 --- /dev/null +++ b/winx64/lib/boost/cmake/Boost-1.70.0/BoostConfig.cmake @@ -0,0 +1,140 @@ +# Copyright 2019 Peter Dimov +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt) + +# This CMake configuration file, installed as part of the Boost build +# and installation procedure done by `b2 install`, provides support +# for find_package(Boost). +# +# It's roughly, but not perfectly, compatible with the behavior +# of find_package(Boost) as provided by FindBoost.cmake. +# +# A typical use might be +# +# find_package(Boost 1.70 REQUIRED COMPONENTS filesystem regex PATHS C:/Boost) +# +# On success, the above invocation would define the targets Boost::headers, +# Boost::filesystem and Boost::regex. Boost::headers represents all +# header-only libraries. An alias, Boost::boost, for Boost::headers is +# provided for compatibility. +# +# Since Boost libraries can coexist in many variants - 32/64 bit, +# static/dynamic runtime, debug/release, the following variables can be used +# to control which variant is chosen: +# +# Boost_USE_DEBUG_LIBS: When OFF, disables debug libraries. +# Boost_USE_RELEASE_LIBS: When OFF, disables release libraries. +# Boost_USE_STATIC_LIBS: When ON, uses static Boost libraries; when OFF, +# uses shared Boost libraries; when not set, the +# default is to use shared when BUILD_SHARED_LIBS is +# ON, static otherwise. +# Boost_USE_STATIC_RUNTIME: When ON, uses Boost libraries linked against the +# static runtime. The default is shared runtime. +# Boost_USE_DEBUG_RUNTIME: When ON, uses Boost libraries linked against the +# debug runtime. When OFF, against the release +# runtime. The default is to use either. +# Boost_COMPILER: The compiler that has been used to build Boost, +# such as vc141, gcc7, clang37. The default is +# determined from CMAKE_CXX_COMPILER_ID. + +message(STATUS "Found Boost ${Boost_VERSION} at ${Boost_DIR}") + +# Output requested configuration (f.ex. "REQUIRED COMPONENTS filesystem") + +if(Boost_FIND_QUIETLY) + set(_BOOST_CONFIG "${_BOOST_CONFIG} QUIET") +endif() + +if(Boost_FIND_REQUIRED) + set(_BOOST_CONFIG "${_BOOST_CONFIG} REQUIRED") +endif() + +foreach(__boost_comp IN LISTS Boost_FIND_COMPONENTS) + if(${Boost_FIND_REQUIRED_${__boost_comp}}) + list(APPEND _BOOST_COMPONENTS ${__boost_comp}) + else() + list(APPEND _BOOST_OPTIONAL_COMPONENTS ${__boost_comp}) + endif() +endforeach() + +if(_BOOST_COMPONENTS) + set(_BOOST_CONFIG "${_BOOST_CONFIG} COMPONENTS ${_BOOST_COMPONENTS}") +endif() + +if(_BOOST_OPTIONAL_COMPONENTS) + set(_BOOST_CONFIG "${_BOOST_CONFIG} OPTIONAL_COMPONENTS ${_BOOST_OPTIONAL_COMPONENTS}") +endif() + +if(_BOOST_CONFIG) + message(STATUS " Requested configuration:${_BOOST_CONFIG}") +endif() + +unset(_BOOST_CONFIG) +unset(_BOOST_COMPONENTS) +unset(_BOOST_OPTIONAL_COMPONENTS) + +# find_dependency doesn't forward arguments until 3.9, so we have to roll our own + +macro(boost_find_dependency dep req) + + set(_BOOST_QUIET) + if(Boost_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + + set(_BOOST_REQUIRED) + if(${req} AND Boost_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + + if(Boost_DEBUG) + message(STATUS "BoostConfig: find_package(boost_${dep} ${Boost_VERSION} EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR})") + endif() + find_package(boost_${dep} ${Boost_VERSION} EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + + string(TOUPPER ${dep} _BOOST_DEP) + set(Boost_${_BOOST_DEP}_FOUND ${boost_${dep}_FOUND}) + + unset(_BOOST_REQUIRED) + unset(_BOOST_QUIET) + unset(_BOOST_CMAKEDIR) + unset(_BOOST_DEP) + +endmacro() + +# Find boost_headers + +boost_find_dependency(headers 1) + +if(NOT boost_headers_FOUND) + + set(Boost_FOUND 0) + set(Boost_NOT_FOUND_MESSAGE "A required dependency, boost_headers, has not been found.") + + return() + +endif() + +# Find components + +foreach(__boost_comp IN LISTS Boost_FIND_COMPONENTS) + + boost_find_dependency(${__boost_comp} ${Boost_FIND_REQUIRED_${__boost_comp}}) + +endforeach() + +# Compatibility targets + +if(NOT TARGET Boost::boost) + + add_library(Boost::boost INTERFACE IMPORTED) + set_property(TARGET Boost::boost APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::headers) + + # All Boost:: targets already disable autolink + add_library(Boost::diagnostic_definitions INTERFACE IMPORTED) + add_library(Boost::disable_autolinking INTERFACE IMPORTED) + add_library(Boost::dynamic_linking INTERFACE IMPORTED) + +endif() diff --git a/winx64/lib/boost/cmake/Boost-1.70.0/BoostConfigVersion.cmake b/winx64/lib/boost/cmake/Boost-1.70.0/BoostConfigVersion.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/Boost-1.70.0/BoostConfigVersion.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/BoostDetectToolset-1.70.0.cmake b/winx64/lib/boost/cmake/BoostDetectToolset-1.70.0.cmake new file mode 100644 index 00000000..11c1f77f --- /dev/null +++ b/winx64/lib/boost/cmake/BoostDetectToolset-1.70.0.cmake @@ -0,0 +1,156 @@ +# Copyright 2017-2019 Peter Dimov +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt) + +string(REGEX MATCHALL "[0-9]+" _BOOST_COMPILER_VERSION ${CMAKE_CXX_COMPILER_VERSION}) + +list(GET _BOOST_COMPILER_VERSION 0 _BOOST_COMPILER_VERSION_MAJOR) +list(GET _BOOST_COMPILER_VERSION 1 _BOOST_COMPILER_VERSION_MINOR) + +if(BORLAND) + + # Borland is unversioned + + set(BOOST_DETECTED_TOOLSET "bcb") + + set(_BOOST_COMPILER_VERSION_MAJOR) + set(_BOOST_COMPILER_VERSION_MINOR) + +elseif(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") + + set(BOOST_DETECTED_TOOLSET "clang-darwin") + +elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + + if(MSVC) + set(BOOST_DETECTED_TOOLSET "clangw") + else() + set(BOOST_DETECTED_TOOLSET "clang") + endif() + + if(_BOOST_COMPILER_VERSION_MAJOR GREATER 3) + set(_BOOST_COMPILER_VERSION_MINOR) + endif() + +elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Intel") + + if(WIN32) + + # Intel-Win is unversioned + + set(BOOST_DETECTED_TOOLSET "iw") + + set(_BOOST_COMPILER_VERSION_MAJOR) + set(_BOOST_COMPILER_VERSION_MINOR) + + else() + + set(BOOST_DETECTED_TOOLSET "il") + + endif() + +elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MIPSpro") + + set(BOOST_DETECTED_TOOLSET "mp") + +elseif(CMAKE_CXX_COMPILER_ID STREQUAL "SunPro") + + set(BOOST_DETECTED_TOOLSET "sun") + +elseif(CMAKE_CXX_COMPILER_ID STREQUAL "IBM XL") + + set(BOOST_DETECTED_TOOLSET "xlc") + +elseif(MINGW) + + set(BOOST_DETECTED_TOOLSET "mgw") + + if(_BOOST_COMPILER_VERSION_MAJOR GREATER 4) + set(_BOOST_COMPILER_VERSION_MINOR) + endif() + +elseif(CMAKE_COMPILER_IS_GNUCXX) + + if(APPLE) + set(BOOST_DETECTED_TOOLSET "xgcc") + else() + set(BOOST_DETECTED_TOOLSET "gcc") + endif() + + if(_BOOST_COMPILER_VERSION_MAJOR GREATER 4) + set(_BOOST_COMPILER_VERSION_MINOR) + endif() + +elseif(MSVC) + + if((MSVC_VERSION GREATER 1919) AND (MSVC_VERSION LESS 1930)) + + set(BOOST_DETECTED_TOOLSET "vc142") + + elseif((MSVC_VERSION GREATER 1909) AND (MSVC_VERSION LESS 1920)) + + set(BOOST_DETECTED_TOOLSET "vc141") + + elseif(MSVC_VERSION EQUAL 1900) + + set(BOOST_DETECTED_TOOLSET "vc140") + + elseif(MSVC_VERSION EQUAL 1800) + + set(BOOST_DETECTED_TOOLSET "vc120") + + elseif(MSVC_VERSION EQUAL 1700) + + set(BOOST_DETECTED_TOOLSET "vc110") + + elseif(MSVC_VERSION EQUAL 1600) + + set(BOOST_DETECTED_TOOLSET "vc100") + + elseif(MSVC_VERSION EQUAL 1500) + + set(BOOST_DETECTED_TOOLSET "vc90") + + elseif(MSVC_VERSION EQUAL 1400) + + set(BOOST_DETECTED_TOOLSET "vc80") + + elseif(MSVC_VERSION EQUAL 1310) + + set(BOOST_DETECTED_TOOLSET "vc71") + + elseif(MSVC_VERSION EQUAL 1300) + + set(BOOST_DETECTED_TOOLSET "vc7") + + elseif(MSVC_VERSION EQUAL 1200) + + set(BOOST_DETECTED_TOOLSET "vc6") + + endif() + + set(_BOOST_COMPILER_VERSION_MAJOR) + set(_BOOST_COMPILER_VERSION_MINOR) + +endif() + +# Add version + +if(BOOST_DETECTED_TOOLSET) + set(BOOST_DETECTED_TOOLSET ${BOOST_DETECTED_TOOLSET}${_BOOST_COMPILER_VERSION_MAJOR}${_BOOST_COMPILER_VERSION_MINOR}) +endif() + +unset(_BOOST_COMPILER_VERSION) +unset(_BOOST_COMPILER_VERSION_MAJOR) +unset(_BOOST_COMPILER_VERSION_MINOR) + +if("${BOOST_DETECTED_TOOLSET}" STREQUAL "") + + # Unknown toolset + message(STATUS "Boost toolset is unknown (compiler ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION})") + +elseif(Boost_DEBUG) + + message(STATUS "Boost toolset is ${BOOST_DETECTED_TOOLSET} (${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION})") + +endif() diff --git a/winx64/lib/boost/cmake/boost_atomic-1.70.0/boost_atomic-config-version.cmake b/winx64/lib/boost/cmake/boost_atomic-1.70.0/boost_atomic-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_atomic-1.70.0/boost_atomic-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_atomic-1.70.0/boost_atomic-config.cmake b/winx64/lib/boost/cmake/boost_atomic-1.70.0/boost_atomic-config.cmake new file mode 100644 index 00000000..6a54709b --- /dev/null +++ b/winx64/lib/boost/cmake/boost_atomic-1.70.0/boost_atomic-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::atomic) + return() +endif() + +message(STATUS "Found boost_atomic ${boost_atomic_VERSION} at ${boost_atomic_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::atomic +add_library(Boost::atomic UNKNOWN IMPORTED) + +set_target_properties(Boost::atomic PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_atomic-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_atomic-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::atomic IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_atomic variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_atomic_FOUND 0) + set(boost_atomic_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_ATOMIC_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_ATOMIC_DEPS) + list(REMOVE_DUPLICATES _BOOST_ATOMIC_DEPS) + message(STATUS "Adding boost_atomic dependencies: ${_BOOST_ATOMIC_DEPS}") +endif() + +foreach(dep_boost_atomic IN LISTS _BOOST_ATOMIC_DEPS) + set(_BOOST_QUIET) + if(boost_atomic_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_atomic_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_atomic} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::atomic APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_atomic}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_atomic}_FOUND) + set(boost_atomic_FOUND 0) + set(boost_atomic_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_atomic}, has not been found.") + unset(_BOOST_ATOMIC_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_ATOMIC_DEPS) diff --git a/winx64/lib/boost/cmake/boost_atomic-1.70.0/libboost_atomic-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_atomic-1.70.0/libboost_atomic-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..f9663e0f --- /dev/null +++ b/winx64/lib/boost/cmake/boost_atomic-1.70.0/libboost_atomic-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_atomic-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_atomic-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_atomic-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_atomic-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_atomic-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_atomic-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_atomic-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_atomic-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_atomic-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_atomic-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::atomic APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::atomic PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_atomic-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::atomic PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_ATOMIC_DYN_LINK" + ) + +list(APPEND _BOOST_ATOMIC_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_atomic-1.70.0/libboost_atomic-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_atomic-1.70.0/libboost_atomic-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..a22120f0 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_atomic-1.70.0/libboost_atomic-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_atomic-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_atomic-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_atomic-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_atomic-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_atomic-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_atomic-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_atomic-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_atomic-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_atomic-vc142-mt-x64-1_70.lib") + +# Target file name: boost_atomic-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::atomic APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::atomic PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_atomic-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::atomic PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_ATOMIC_DYN_LINK" + ) + +list(APPEND _BOOST_ATOMIC_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_chrono-1.70.0/boost_chrono-config-version.cmake b/winx64/lib/boost/cmake/boost_chrono-1.70.0/boost_chrono-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_chrono-1.70.0/boost_chrono-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_chrono-1.70.0/boost_chrono-config.cmake b/winx64/lib/boost/cmake/boost_chrono-1.70.0/boost_chrono-config.cmake new file mode 100644 index 00000000..277c5d66 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_chrono-1.70.0/boost_chrono-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::chrono) + return() +endif() + +message(STATUS "Found boost_chrono ${boost_chrono_VERSION} at ${boost_chrono_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::chrono +add_library(Boost::chrono UNKNOWN IMPORTED) + +set_target_properties(Boost::chrono PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_chrono-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_chrono-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::chrono IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_chrono variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_chrono_FOUND 0) + set(boost_chrono_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_CHRONO_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_CHRONO_DEPS) + list(REMOVE_DUPLICATES _BOOST_CHRONO_DEPS) + message(STATUS "Adding boost_chrono dependencies: ${_BOOST_CHRONO_DEPS}") +endif() + +foreach(dep_boost_chrono IN LISTS _BOOST_CHRONO_DEPS) + set(_BOOST_QUIET) + if(boost_chrono_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_chrono_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_chrono} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::chrono APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_chrono}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_chrono}_FOUND) + set(boost_chrono_FOUND 0) + set(boost_chrono_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_chrono}, has not been found.") + unset(_BOOST_CHRONO_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_CHRONO_DEPS) diff --git a/winx64/lib/boost/cmake/boost_chrono-1.70.0/libboost_chrono-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_chrono-1.70.0/libboost_chrono-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..42ca3cad --- /dev/null +++ b/winx64/lib/boost/cmake/boost_chrono-1.70.0/libboost_chrono-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_chrono-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_chrono-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_chrono-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_chrono-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_chrono-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_chrono-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_chrono-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_chrono-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_chrono-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_chrono-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::chrono APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::chrono PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_chrono-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::chrono PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_CHRONO_DYN_LINK" + ) + +list(APPEND _BOOST_CHRONO_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_chrono-1.70.0/libboost_chrono-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_chrono-1.70.0/libboost_chrono-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..df9fe664 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_chrono-1.70.0/libboost_chrono-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_chrono-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_chrono-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_chrono-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_chrono-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_chrono-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_chrono-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_chrono-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_chrono-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_chrono-vc142-mt-x64-1_70.lib") + +# Target file name: boost_chrono-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::chrono APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::chrono PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_chrono-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::chrono PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_CHRONO_DYN_LINK" + ) + +list(APPEND _BOOST_CHRONO_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_container-1.70.0/boost_container-config-version.cmake b/winx64/lib/boost/cmake/boost_container-1.70.0/boost_container-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_container-1.70.0/boost_container-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_container-1.70.0/boost_container-config.cmake b/winx64/lib/boost/cmake/boost_container-1.70.0/boost_container-config.cmake new file mode 100644 index 00000000..cbd7ba27 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_container-1.70.0/boost_container-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::container) + return() +endif() + +message(STATUS "Found boost_container ${boost_container_VERSION} at ${boost_container_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::container +add_library(Boost::container UNKNOWN IMPORTED) + +set_target_properties(Boost::container PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_container-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_container-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::container IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_container variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_container_FOUND 0) + set(boost_container_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_CONTAINER_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_CONTAINER_DEPS) + list(REMOVE_DUPLICATES _BOOST_CONTAINER_DEPS) + message(STATUS "Adding boost_container dependencies: ${_BOOST_CONTAINER_DEPS}") +endif() + +foreach(dep_boost_container IN LISTS _BOOST_CONTAINER_DEPS) + set(_BOOST_QUIET) + if(boost_container_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_container_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_container} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::container APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_container}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_container}_FOUND) + set(boost_container_FOUND 0) + set(boost_container_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_container}, has not been found.") + unset(_BOOST_CONTAINER_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_CONTAINER_DEPS) diff --git a/winx64/lib/boost/cmake/boost_container-1.70.0/libboost_container-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_container-1.70.0/libboost_container-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..4c744bfc --- /dev/null +++ b/winx64/lib/boost/cmake/boost_container-1.70.0/libboost_container-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_container-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_container-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_container-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_container-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_container-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_container-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_container-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_container-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_container-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_container-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::container APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::container PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_container-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::container PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_CONTAINER_DYN_LINK" + ) + +list(APPEND _BOOST_CONTAINER_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_container-1.70.0/libboost_container-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_container-1.70.0/libboost_container-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..32c22e5d --- /dev/null +++ b/winx64/lib/boost/cmake/boost_container-1.70.0/libboost_container-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_container-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_container-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_container-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_container-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_container-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_container-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_container-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_container-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_container-vc142-mt-x64-1_70.lib") + +# Target file name: boost_container-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::container APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::container PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_container-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::container PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_CONTAINER_DYN_LINK" + ) + +list(APPEND _BOOST_CONTAINER_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_context-1.70.0/boost_context-config-version.cmake b/winx64/lib/boost/cmake/boost_context-1.70.0/boost_context-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_context-1.70.0/boost_context-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_context-1.70.0/boost_context-config.cmake b/winx64/lib/boost/cmake/boost_context-1.70.0/boost_context-config.cmake new file mode 100644 index 00000000..c86d9ff2 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_context-1.70.0/boost_context-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::context) + return() +endif() + +message(STATUS "Found boost_context ${boost_context_VERSION} at ${boost_context_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::context +add_library(Boost::context UNKNOWN IMPORTED) + +set_target_properties(Boost::context PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_context-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_context-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::context IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_context variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_context_FOUND 0) + set(boost_context_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_CONTEXT_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_CONTEXT_DEPS) + list(REMOVE_DUPLICATES _BOOST_CONTEXT_DEPS) + message(STATUS "Adding boost_context dependencies: ${_BOOST_CONTEXT_DEPS}") +endif() + +foreach(dep_boost_context IN LISTS _BOOST_CONTEXT_DEPS) + set(_BOOST_QUIET) + if(boost_context_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_context_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_context} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::context APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_context}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_context}_FOUND) + set(boost_context_FOUND 0) + set(boost_context_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_context}, has not been found.") + unset(_BOOST_CONTEXT_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_CONTEXT_DEPS) diff --git a/winx64/lib/boost/cmake/boost_context-1.70.0/libboost_context-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_context-1.70.0/libboost_context-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..b939604f --- /dev/null +++ b/winx64/lib/boost/cmake/boost_context-1.70.0/libboost_context-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_context-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_context-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_context-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_context-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_context-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_context-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_context-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_context-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_context-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_context-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::context APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::context PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_context-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::context PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_CONTEXT_DYN_LINK" + ) + +list(APPEND _BOOST_CONTEXT_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_context-1.70.0/libboost_context-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_context-1.70.0/libboost_context-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..92d3c59b --- /dev/null +++ b/winx64/lib/boost/cmake/boost_context-1.70.0/libboost_context-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_context-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_context-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_context-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_context-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_context-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_context-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_context-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_context-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_context-vc142-mt-x64-1_70.lib") + +# Target file name: boost_context-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::context APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::context PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_context-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::context PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_CONTEXT_DYN_LINK" + ) + +list(APPEND _BOOST_CONTEXT_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_contract-1.70.0/boost_contract-config-version.cmake b/winx64/lib/boost/cmake/boost_contract-1.70.0/boost_contract-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_contract-1.70.0/boost_contract-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_contract-1.70.0/boost_contract-config.cmake b/winx64/lib/boost/cmake/boost_contract-1.70.0/boost_contract-config.cmake new file mode 100644 index 00000000..d3dd7b03 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_contract-1.70.0/boost_contract-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::contract) + return() +endif() + +message(STATUS "Found boost_contract ${boost_contract_VERSION} at ${boost_contract_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::contract +add_library(Boost::contract UNKNOWN IMPORTED) + +set_target_properties(Boost::contract PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_contract-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_contract-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::contract IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_contract variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_contract_FOUND 0) + set(boost_contract_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_CONTRACT_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_CONTRACT_DEPS) + list(REMOVE_DUPLICATES _BOOST_CONTRACT_DEPS) + message(STATUS "Adding boost_contract dependencies: ${_BOOST_CONTRACT_DEPS}") +endif() + +foreach(dep_boost_contract IN LISTS _BOOST_CONTRACT_DEPS) + set(_BOOST_QUIET) + if(boost_contract_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_contract_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_contract} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::contract APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_contract}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_contract}_FOUND) + set(boost_contract_FOUND 0) + set(boost_contract_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_contract}, has not been found.") + unset(_BOOST_CONTRACT_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_CONTRACT_DEPS) diff --git a/winx64/lib/boost/cmake/boost_contract-1.70.0/libboost_contract-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_contract-1.70.0/libboost_contract-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..83281a9e --- /dev/null +++ b/winx64/lib/boost/cmake/boost_contract-1.70.0/libboost_contract-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_contract-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_contract-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_contract-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_contract-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_contract-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_contract-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_contract-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_contract-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_contract-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_contract-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::contract APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::contract PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_contract-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::contract PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_CONTRACT_DYN_LINK" + ) + +list(APPEND _BOOST_CONTRACT_DEPS system headers) diff --git a/winx64/lib/boost/cmake/boost_contract-1.70.0/libboost_contract-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_contract-1.70.0/libboost_contract-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..c2444d2a --- /dev/null +++ b/winx64/lib/boost/cmake/boost_contract-1.70.0/libboost_contract-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_contract-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_contract-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_contract-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_contract-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_contract-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_contract-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_contract-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_contract-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_contract-vc142-mt-x64-1_70.lib") + +# Target file name: boost_contract-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::contract APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::contract PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_contract-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::contract PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_CONTRACT_DYN_LINK" + ) + +list(APPEND _BOOST_CONTRACT_DEPS system headers) diff --git a/winx64/lib/boost/cmake/boost_coroutine-1.70.0/boost_coroutine-config-version.cmake b/winx64/lib/boost/cmake/boost_coroutine-1.70.0/boost_coroutine-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_coroutine-1.70.0/boost_coroutine-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_coroutine-1.70.0/boost_coroutine-config.cmake b/winx64/lib/boost/cmake/boost_coroutine-1.70.0/boost_coroutine-config.cmake new file mode 100644 index 00000000..e4a92bc4 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_coroutine-1.70.0/boost_coroutine-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::coroutine) + return() +endif() + +message(STATUS "Found boost_coroutine ${boost_coroutine_VERSION} at ${boost_coroutine_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::coroutine +add_library(Boost::coroutine UNKNOWN IMPORTED) + +set_target_properties(Boost::coroutine PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_coroutine-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_coroutine-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::coroutine IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_coroutine variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_coroutine_FOUND 0) + set(boost_coroutine_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_COROUTINE_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_COROUTINE_DEPS) + list(REMOVE_DUPLICATES _BOOST_COROUTINE_DEPS) + message(STATUS "Adding boost_coroutine dependencies: ${_BOOST_COROUTINE_DEPS}") +endif() + +foreach(dep_boost_coroutine IN LISTS _BOOST_COROUTINE_DEPS) + set(_BOOST_QUIET) + if(boost_coroutine_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_coroutine_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_coroutine} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::coroutine APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_coroutine}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_coroutine}_FOUND) + set(boost_coroutine_FOUND 0) + set(boost_coroutine_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_coroutine}, has not been found.") + unset(_BOOST_COROUTINE_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_COROUTINE_DEPS) diff --git a/winx64/lib/boost/cmake/boost_coroutine-1.70.0/libboost_coroutine-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_coroutine-1.70.0/libboost_coroutine-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..d6af00ab --- /dev/null +++ b/winx64/lib/boost/cmake/boost_coroutine-1.70.0/libboost_coroutine-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_coroutine-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_coroutine-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_coroutine-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_coroutine-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_coroutine-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_coroutine-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_coroutine-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_coroutine-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_coroutine-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_coroutine-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::coroutine APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::coroutine PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_coroutine-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::coroutine PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_COROUTINE_DYN_LINK" + ) + +list(APPEND _BOOST_COROUTINE_DEPS chrono context thread headers) diff --git a/winx64/lib/boost/cmake/boost_coroutine-1.70.0/libboost_coroutine-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_coroutine-1.70.0/libboost_coroutine-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..6ea18744 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_coroutine-1.70.0/libboost_coroutine-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_coroutine-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_coroutine-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_coroutine-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_coroutine-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_coroutine-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_coroutine-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_coroutine-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_coroutine-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_coroutine-vc142-mt-x64-1_70.lib") + +# Target file name: boost_coroutine-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::coroutine APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::coroutine PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_coroutine-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::coroutine PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_COROUTINE_DYN_LINK" + ) + +list(APPEND _BOOST_COROUTINE_DEPS chrono context thread headers) diff --git a/winx64/lib/boost/cmake/boost_date_time-1.70.0/boost_date_time-config-version.cmake b/winx64/lib/boost/cmake/boost_date_time-1.70.0/boost_date_time-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_date_time-1.70.0/boost_date_time-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_date_time-1.70.0/boost_date_time-config.cmake b/winx64/lib/boost/cmake/boost_date_time-1.70.0/boost_date_time-config.cmake new file mode 100644 index 00000000..1b3452c2 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_date_time-1.70.0/boost_date_time-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::date_time) + return() +endif() + +message(STATUS "Found boost_date_time ${boost_date_time_VERSION} at ${boost_date_time_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::date_time +add_library(Boost::date_time UNKNOWN IMPORTED) + +set_target_properties(Boost::date_time PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_date_time-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_date_time-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::date_time IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_date_time variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_date_time_FOUND 0) + set(boost_date_time_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_DATE_TIME_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_DATE_TIME_DEPS) + list(REMOVE_DUPLICATES _BOOST_DATE_TIME_DEPS) + message(STATUS "Adding boost_date_time dependencies: ${_BOOST_DATE_TIME_DEPS}") +endif() + +foreach(dep_boost_date_time IN LISTS _BOOST_DATE_TIME_DEPS) + set(_BOOST_QUIET) + if(boost_date_time_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_date_time_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_date_time} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::date_time APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_date_time}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_date_time}_FOUND) + set(boost_date_time_FOUND 0) + set(boost_date_time_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_date_time}, has not been found.") + unset(_BOOST_DATE_TIME_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_DATE_TIME_DEPS) diff --git a/winx64/lib/boost/cmake/boost_date_time-1.70.0/libboost_date_time-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_date_time-1.70.0/libboost_date_time-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..a628c18a --- /dev/null +++ b/winx64/lib/boost/cmake/boost_date_time-1.70.0/libboost_date_time-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_date_time-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_date_time-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_date_time-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_date_time-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_date_time-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_date_time-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_date_time-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_date_time-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_date_time-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_date_time-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::date_time APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::date_time PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_date_time-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::date_time PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_DATE_TIME_DYN_LINK" + ) + +list(APPEND _BOOST_DATE_TIME_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_date_time-1.70.0/libboost_date_time-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_date_time-1.70.0/libboost_date_time-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..46b7e8d4 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_date_time-1.70.0/libboost_date_time-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_date_time-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_date_time-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_date_time-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_date_time-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_date_time-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_date_time-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_date_time-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_date_time-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_date_time-vc142-mt-x64-1_70.lib") + +# Target file name: boost_date_time-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::date_time APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::date_time PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_date_time-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::date_time PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_DATE_TIME_DYN_LINK" + ) + +list(APPEND _BOOST_DATE_TIME_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_exception-1.70.0/boost_exception-config-version.cmake b/winx64/lib/boost/cmake/boost_exception-1.70.0/boost_exception-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_exception-1.70.0/boost_exception-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_exception-1.70.0/boost_exception-config.cmake b/winx64/lib/boost/cmake/boost_exception-1.70.0/boost_exception-config.cmake new file mode 100644 index 00000000..a42053fd --- /dev/null +++ b/winx64/lib/boost/cmake/boost_exception-1.70.0/boost_exception-config.cmake @@ -0,0 +1,20 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::exception) + return() +endif() + +message(STATUS "Found boost_exception ${boost_exception_VERSION} at ${boost_exception_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::exception +add_library(Boost::exception INTERFACE IMPORTED) + +set_target_properties(Boost::exception PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) diff --git a/winx64/lib/boost/cmake/boost_fiber-1.70.0/boost_fiber-config-version.cmake b/winx64/lib/boost/cmake/boost_fiber-1.70.0/boost_fiber-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_fiber-1.70.0/boost_fiber-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_fiber-1.70.0/boost_fiber-config.cmake b/winx64/lib/boost/cmake/boost_fiber-1.70.0/boost_fiber-config.cmake new file mode 100644 index 00000000..d6bd9c05 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_fiber-1.70.0/boost_fiber-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::fiber) + return() +endif() + +message(STATUS "Found boost_fiber ${boost_fiber_VERSION} at ${boost_fiber_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::fiber +add_library(Boost::fiber UNKNOWN IMPORTED) + +set_target_properties(Boost::fiber PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_fiber-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_fiber-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::fiber IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_fiber variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_fiber_FOUND 0) + set(boost_fiber_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_FIBER_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_FIBER_DEPS) + list(REMOVE_DUPLICATES _BOOST_FIBER_DEPS) + message(STATUS "Adding boost_fiber dependencies: ${_BOOST_FIBER_DEPS}") +endif() + +foreach(dep_boost_fiber IN LISTS _BOOST_FIBER_DEPS) + set(_BOOST_QUIET) + if(boost_fiber_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_fiber_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_fiber} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::fiber APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_fiber}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_fiber}_FOUND) + set(boost_fiber_FOUND 0) + set(boost_fiber_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_fiber}, has not been found.") + unset(_BOOST_FIBER_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_FIBER_DEPS) diff --git a/winx64/lib/boost/cmake/boost_fiber-1.70.0/libboost_fiber-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_fiber-1.70.0/libboost_fiber-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..e8400a06 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_fiber-1.70.0/libboost_fiber-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_fiber-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_fiber-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_fiber-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_fiber-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_fiber-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_fiber-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_fiber-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_fiber-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_fiber-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_fiber-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::fiber APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::fiber PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_fiber-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::fiber PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_FIBER_DYN_LINK" + ) + +list(APPEND _BOOST_FIBER_DEPS context filesystem headers) diff --git a/winx64/lib/boost/cmake/boost_fiber-1.70.0/libboost_fiber-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_fiber-1.70.0/libboost_fiber-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..50c066f9 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_fiber-1.70.0/libboost_fiber-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_fiber-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_fiber-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_fiber-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_fiber-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_fiber-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_fiber-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_fiber-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_fiber-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_fiber-vc142-mt-x64-1_70.lib") + +# Target file name: boost_fiber-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::fiber APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::fiber PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_fiber-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::fiber PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_FIBER_DYN_LINK" + ) + +list(APPEND _BOOST_FIBER_DEPS context filesystem headers) diff --git a/winx64/lib/boost/cmake/boost_fiber_numa-1.70.0/boost_fiber_numa-config-version.cmake b/winx64/lib/boost/cmake/boost_fiber_numa-1.70.0/boost_fiber_numa-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_fiber_numa-1.70.0/boost_fiber_numa-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_fiber_numa-1.70.0/boost_fiber_numa-config.cmake b/winx64/lib/boost/cmake/boost_fiber_numa-1.70.0/boost_fiber_numa-config.cmake new file mode 100644 index 00000000..f472ccb6 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_fiber_numa-1.70.0/boost_fiber_numa-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::fiber_numa) + return() +endif() + +message(STATUS "Found boost_fiber_numa ${boost_fiber_numa_VERSION} at ${boost_fiber_numa_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::fiber_numa +add_library(Boost::fiber_numa UNKNOWN IMPORTED) + +set_target_properties(Boost::fiber_numa PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_fiber_numa-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_fiber_numa-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::fiber_numa IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_fiber_numa variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_fiber_numa_FOUND 0) + set(boost_fiber_numa_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_FIBER_NUMA_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_FIBER_NUMA_DEPS) + list(REMOVE_DUPLICATES _BOOST_FIBER_NUMA_DEPS) + message(STATUS "Adding boost_fiber_numa dependencies: ${_BOOST_FIBER_NUMA_DEPS}") +endif() + +foreach(dep_boost_fiber_numa IN LISTS _BOOST_FIBER_NUMA_DEPS) + set(_BOOST_QUIET) + if(boost_fiber_numa_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_fiber_numa_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_fiber_numa} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::fiber_numa APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_fiber_numa}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_fiber_numa}_FOUND) + set(boost_fiber_numa_FOUND 0) + set(boost_fiber_numa_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_fiber_numa}, has not been found.") + unset(_BOOST_FIBER_NUMA_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_FIBER_NUMA_DEPS) diff --git a/winx64/lib/boost/cmake/boost_fiber_numa-1.70.0/libboost_fiber_numa-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_fiber_numa-1.70.0/libboost_fiber_numa-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..f0ffde78 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_fiber_numa-1.70.0/libboost_fiber_numa-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,61 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + return() +endif() + + +set_property(TARGET Boost::fiber_numa APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::fiber_numa PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + ) + +set_target_properties(Boost::fiber_numa PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_FIBER_NUMA_DYN_LINK" + ) + +list(APPEND _BOOST_FIBER_NUMA_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_fiber_numa-1.70.0/libboost_fiber_numa-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_fiber_numa-1.70.0/libboost_fiber_numa-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..9551a72a --- /dev/null +++ b/winx64/lib/boost/cmake/boost_fiber_numa-1.70.0/libboost_fiber_numa-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,61 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + return() +endif() + + +set_property(TARGET Boost::fiber_numa APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::fiber_numa PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + ) + +set_target_properties(Boost::fiber_numa PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_FIBER_NUMA_DYN_LINK" + ) + +list(APPEND _BOOST_FIBER_NUMA_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_filesystem-1.70.0/boost_filesystem-config-version.cmake b/winx64/lib/boost/cmake/boost_filesystem-1.70.0/boost_filesystem-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_filesystem-1.70.0/boost_filesystem-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_filesystem-1.70.0/boost_filesystem-config.cmake b/winx64/lib/boost/cmake/boost_filesystem-1.70.0/boost_filesystem-config.cmake new file mode 100644 index 00000000..d15797d8 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_filesystem-1.70.0/boost_filesystem-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::filesystem) + return() +endif() + +message(STATUS "Found boost_filesystem ${boost_filesystem_VERSION} at ${boost_filesystem_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::filesystem +add_library(Boost::filesystem UNKNOWN IMPORTED) + +set_target_properties(Boost::filesystem PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_filesystem-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_filesystem-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::filesystem IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_filesystem variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_filesystem_FOUND 0) + set(boost_filesystem_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_FILESYSTEM_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_FILESYSTEM_DEPS) + list(REMOVE_DUPLICATES _BOOST_FILESYSTEM_DEPS) + message(STATUS "Adding boost_filesystem dependencies: ${_BOOST_FILESYSTEM_DEPS}") +endif() + +foreach(dep_boost_filesystem IN LISTS _BOOST_FILESYSTEM_DEPS) + set(_BOOST_QUIET) + if(boost_filesystem_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_filesystem_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_filesystem} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::filesystem APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_filesystem}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_filesystem}_FOUND) + set(boost_filesystem_FOUND 0) + set(boost_filesystem_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_filesystem}, has not been found.") + unset(_BOOST_FILESYSTEM_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_FILESYSTEM_DEPS) diff --git a/winx64/lib/boost/cmake/boost_filesystem-1.70.0/libboost_filesystem-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_filesystem-1.70.0/libboost_filesystem-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..4e63fdde --- /dev/null +++ b/winx64/lib/boost/cmake/boost_filesystem-1.70.0/libboost_filesystem-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_filesystem-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_filesystem-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_filesystem-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_filesystem-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_filesystem-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_filesystem-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_filesystem-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_filesystem-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_filesystem-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_filesystem-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::filesystem APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::filesystem PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_filesystem-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::filesystem PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_FILESYSTEM_DYN_LINK" + ) + +list(APPEND _BOOST_FILESYSTEM_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_filesystem-1.70.0/libboost_filesystem-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_filesystem-1.70.0/libboost_filesystem-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..63191d52 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_filesystem-1.70.0/libboost_filesystem-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_filesystem-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_filesystem-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_filesystem-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_filesystem-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_filesystem-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_filesystem-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_filesystem-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_filesystem-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_filesystem-vc142-mt-x64-1_70.lib") + +# Target file name: boost_filesystem-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::filesystem APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::filesystem PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_filesystem-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::filesystem PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_FILESYSTEM_DYN_LINK" + ) + +list(APPEND _BOOST_FILESYSTEM_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_graph-1.70.0/boost_graph-config-version.cmake b/winx64/lib/boost/cmake/boost_graph-1.70.0/boost_graph-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_graph-1.70.0/boost_graph-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_graph-1.70.0/boost_graph-config.cmake b/winx64/lib/boost/cmake/boost_graph-1.70.0/boost_graph-config.cmake new file mode 100644 index 00000000..f260d209 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_graph-1.70.0/boost_graph-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::graph) + return() +endif() + +message(STATUS "Found boost_graph ${boost_graph_VERSION} at ${boost_graph_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::graph +add_library(Boost::graph UNKNOWN IMPORTED) + +set_target_properties(Boost::graph PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_graph-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_graph-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::graph IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_graph variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_graph_FOUND 0) + set(boost_graph_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_GRAPH_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_GRAPH_DEPS) + list(REMOVE_DUPLICATES _BOOST_GRAPH_DEPS) + message(STATUS "Adding boost_graph dependencies: ${_BOOST_GRAPH_DEPS}") +endif() + +foreach(dep_boost_graph IN LISTS _BOOST_GRAPH_DEPS) + set(_BOOST_QUIET) + if(boost_graph_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_graph_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_graph} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::graph APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_graph}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_graph}_FOUND) + set(boost_graph_FOUND 0) + set(boost_graph_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_graph}, has not been found.") + unset(_BOOST_GRAPH_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_GRAPH_DEPS) diff --git a/winx64/lib/boost/cmake/boost_graph-1.70.0/libboost_graph-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_graph-1.70.0/libboost_graph-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..46e73071 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_graph-1.70.0/libboost_graph-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_graph-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_graph-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_graph-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_graph-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_graph-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_graph-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_graph-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_graph-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_graph-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_graph-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::graph APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::graph PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_graph-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::graph PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_GRAPH_DYN_LINK" + ) + +list(APPEND _BOOST_GRAPH_DEPS regex headers) diff --git a/winx64/lib/boost/cmake/boost_graph-1.70.0/libboost_graph-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_graph-1.70.0/libboost_graph-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..83c2b447 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_graph-1.70.0/libboost_graph-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_graph-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_graph-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_graph-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_graph-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_graph-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_graph-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_graph-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_graph-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_graph-vc142-mt-x64-1_70.lib") + +# Target file name: boost_graph-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::graph APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::graph PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_graph-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::graph PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_GRAPH_DYN_LINK" + ) + +list(APPEND _BOOST_GRAPH_DEPS regex headers) diff --git a/winx64/lib/boost/cmake/boost_graph_parallel-1.70.0/boost_graph_parallel-config-version.cmake b/winx64/lib/boost/cmake/boost_graph_parallel-1.70.0/boost_graph_parallel-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_graph_parallel-1.70.0/boost_graph_parallel-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_graph_parallel-1.70.0/boost_graph_parallel-config.cmake b/winx64/lib/boost/cmake/boost_graph_parallel-1.70.0/boost_graph_parallel-config.cmake new file mode 100644 index 00000000..57bd3001 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_graph_parallel-1.70.0/boost_graph_parallel-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::graph_parallel) + return() +endif() + +message(STATUS "Found boost_graph_parallel ${boost_graph_parallel_VERSION} at ${boost_graph_parallel_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::graph_parallel +add_library(Boost::graph_parallel UNKNOWN IMPORTED) + +set_target_properties(Boost::graph_parallel PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_graph_parallel-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_graph_parallel-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::graph_parallel IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_graph_parallel variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_graph_parallel_FOUND 0) + set(boost_graph_parallel_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_GRAPH_PARALLEL_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_GRAPH_PARALLEL_DEPS) + list(REMOVE_DUPLICATES _BOOST_GRAPH_PARALLEL_DEPS) + message(STATUS "Adding boost_graph_parallel dependencies: ${_BOOST_GRAPH_PARALLEL_DEPS}") +endif() + +foreach(dep_boost_graph_parallel IN LISTS _BOOST_GRAPH_PARALLEL_DEPS) + set(_BOOST_QUIET) + if(boost_graph_parallel_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_graph_parallel_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_graph_parallel} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::graph_parallel APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_graph_parallel}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_graph_parallel}_FOUND) + set(boost_graph_parallel_FOUND 0) + set(boost_graph_parallel_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_graph_parallel}, has not been found.") + unset(_BOOST_GRAPH_PARALLEL_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_GRAPH_PARALLEL_DEPS) diff --git a/winx64/lib/boost/cmake/boost_graph_parallel-1.70.0/libboost_graph_parallel-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_graph_parallel-1.70.0/libboost_graph_parallel-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..28e43481 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_graph_parallel-1.70.0/libboost_graph_parallel-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,61 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + return() +endif() + + +set_property(TARGET Boost::graph_parallel APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::graph_parallel PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + ) + +set_target_properties(Boost::graph_parallel PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_GRAPH_PARALLEL_DYN_LINK" + ) + +list(APPEND _BOOST_GRAPH_PARALLEL_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_graph_parallel-1.70.0/libboost_graph_parallel-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_graph_parallel-1.70.0/libboost_graph_parallel-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..d85327b3 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_graph_parallel-1.70.0/libboost_graph_parallel-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,61 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + return() +endif() + + +set_property(TARGET Boost::graph_parallel APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::graph_parallel PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + ) + +set_target_properties(Boost::graph_parallel PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_GRAPH_PARALLEL_DYN_LINK" + ) + +list(APPEND _BOOST_GRAPH_PARALLEL_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_headers-1.70.0/boost_headers-config-version.cmake b/winx64/lib/boost/cmake/boost_headers-1.70.0/boost_headers-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_headers-1.70.0/boost_headers-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_headers-1.70.0/boost_headers-config.cmake b/winx64/lib/boost/cmake/boost_headers-1.70.0/boost_headers-config.cmake new file mode 100644 index 00000000..e595cea6 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_headers-1.70.0/boost_headers-config.cmake @@ -0,0 +1,20 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::headers) + return() +endif() + +message(STATUS "Found boost_headers ${boost_headers_VERSION} at ${boost_headers_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::headers +add_library(Boost::headers INTERFACE IMPORTED) + +set_target_properties(Boost::headers PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) diff --git a/winx64/lib/boost/cmake/boost_iostreams-1.70.0/boost_iostreams-config-version.cmake b/winx64/lib/boost/cmake/boost_iostreams-1.70.0/boost_iostreams-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_iostreams-1.70.0/boost_iostreams-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_iostreams-1.70.0/boost_iostreams-config.cmake b/winx64/lib/boost/cmake/boost_iostreams-1.70.0/boost_iostreams-config.cmake new file mode 100644 index 00000000..a1c0c3e2 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_iostreams-1.70.0/boost_iostreams-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::iostreams) + return() +endif() + +message(STATUS "Found boost_iostreams ${boost_iostreams_VERSION} at ${boost_iostreams_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::iostreams +add_library(Boost::iostreams UNKNOWN IMPORTED) + +set_target_properties(Boost::iostreams PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_iostreams-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_iostreams-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::iostreams IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_iostreams variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_iostreams_FOUND 0) + set(boost_iostreams_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_IOSTREAMS_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_IOSTREAMS_DEPS) + list(REMOVE_DUPLICATES _BOOST_IOSTREAMS_DEPS) + message(STATUS "Adding boost_iostreams dependencies: ${_BOOST_IOSTREAMS_DEPS}") +endif() + +foreach(dep_boost_iostreams IN LISTS _BOOST_IOSTREAMS_DEPS) + set(_BOOST_QUIET) + if(boost_iostreams_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_iostreams_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_iostreams} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::iostreams APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_iostreams}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_iostreams}_FOUND) + set(boost_iostreams_FOUND 0) + set(boost_iostreams_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_iostreams}, has not been found.") + unset(_BOOST_IOSTREAMS_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_IOSTREAMS_DEPS) diff --git a/winx64/lib/boost/cmake/boost_iostreams-1.70.0/libboost_iostreams-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_iostreams-1.70.0/libboost_iostreams-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..86d82eea --- /dev/null +++ b/winx64/lib/boost/cmake/boost_iostreams-1.70.0/libboost_iostreams-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_iostreams-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_iostreams-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_iostreams-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_iostreams-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_iostreams-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_iostreams-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_iostreams-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_iostreams-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_iostreams-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_iostreams-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::iostreams APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::iostreams PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_iostreams-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::iostreams PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_IOSTREAMS_DYN_LINK" + ) + +list(APPEND _BOOST_IOSTREAMS_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_iostreams-1.70.0/libboost_iostreams-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_iostreams-1.70.0/libboost_iostreams-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..e489f1e2 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_iostreams-1.70.0/libboost_iostreams-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_iostreams-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_iostreams-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_iostreams-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_iostreams-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_iostreams-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_iostreams-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_iostreams-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_iostreams-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_iostreams-vc142-mt-x64-1_70.lib") + +# Target file name: boost_iostreams-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::iostreams APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::iostreams PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_iostreams-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::iostreams PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_IOSTREAMS_DYN_LINK" + ) + +list(APPEND _BOOST_IOSTREAMS_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_locale-1.70.0/boost_locale-config-version.cmake b/winx64/lib/boost/cmake/boost_locale-1.70.0/boost_locale-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_locale-1.70.0/boost_locale-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_locale-1.70.0/boost_locale-config.cmake b/winx64/lib/boost/cmake/boost_locale-1.70.0/boost_locale-config.cmake new file mode 100644 index 00000000..b5b93fe2 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_locale-1.70.0/boost_locale-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::locale) + return() +endif() + +message(STATUS "Found boost_locale ${boost_locale_VERSION} at ${boost_locale_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::locale +add_library(Boost::locale UNKNOWN IMPORTED) + +set_target_properties(Boost::locale PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_locale-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_locale-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::locale IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_locale variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_locale_FOUND 0) + set(boost_locale_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_LOCALE_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_LOCALE_DEPS) + list(REMOVE_DUPLICATES _BOOST_LOCALE_DEPS) + message(STATUS "Adding boost_locale dependencies: ${_BOOST_LOCALE_DEPS}") +endif() + +foreach(dep_boost_locale IN LISTS _BOOST_LOCALE_DEPS) + set(_BOOST_QUIET) + if(boost_locale_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_locale_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_locale} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::locale APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_locale}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_locale}_FOUND) + set(boost_locale_FOUND 0) + set(boost_locale_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_locale}, has not been found.") + unset(_BOOST_LOCALE_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_LOCALE_DEPS) diff --git a/winx64/lib/boost/cmake/boost_locale-1.70.0/libboost_locale-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_locale-1.70.0/libboost_locale-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..8577ea37 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_locale-1.70.0/libboost_locale-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_locale-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_locale-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_locale-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_locale-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_locale-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_locale-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_locale-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_locale-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_locale-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_locale-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::locale APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::locale PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_locale-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::locale PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_LOCALE_DYN_LINK" + ) + +list(APPEND _BOOST_LOCALE_DEPS system headers) diff --git a/winx64/lib/boost/cmake/boost_locale-1.70.0/libboost_locale-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_locale-1.70.0/libboost_locale-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..e46e340f --- /dev/null +++ b/winx64/lib/boost/cmake/boost_locale-1.70.0/libboost_locale-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_locale-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_locale-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_locale-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_locale-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_locale-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_locale-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_locale-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_locale-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_locale-vc142-mt-x64-1_70.lib") + +# Target file name: boost_locale-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::locale APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::locale PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_locale-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::locale PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_LOCALE_DYN_LINK" + ) + +list(APPEND _BOOST_LOCALE_DEPS system headers) diff --git a/winx64/lib/boost/cmake/boost_log-1.70.0/boost_log-config-version.cmake b/winx64/lib/boost/cmake/boost_log-1.70.0/boost_log-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_log-1.70.0/boost_log-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_log-1.70.0/boost_log-config.cmake b/winx64/lib/boost/cmake/boost_log-1.70.0/boost_log-config.cmake new file mode 100644 index 00000000..7607494c --- /dev/null +++ b/winx64/lib/boost/cmake/boost_log-1.70.0/boost_log-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::log) + return() +endif() + +message(STATUS "Found boost_log ${boost_log_VERSION} at ${boost_log_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::log +add_library(Boost::log UNKNOWN IMPORTED) + +set_target_properties(Boost::log PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_log-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_log-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::log IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_log variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_log_FOUND 0) + set(boost_log_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_LOG_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_LOG_DEPS) + list(REMOVE_DUPLICATES _BOOST_LOG_DEPS) + message(STATUS "Adding boost_log dependencies: ${_BOOST_LOG_DEPS}") +endif() + +foreach(dep_boost_log IN LISTS _BOOST_LOG_DEPS) + set(_BOOST_QUIET) + if(boost_log_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_log_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_log} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::log APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_log}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_log}_FOUND) + set(boost_log_FOUND 0) + set(boost_log_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_log}, has not been found.") + unset(_BOOST_LOG_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_LOG_DEPS) diff --git a/winx64/lib/boost/cmake/boost_log-1.70.0/libboost_log-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_log-1.70.0/libboost_log-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..fac5a932 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_log-1.70.0/libboost_log-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_log-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_log-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_log-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_log-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_log-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_log-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_log-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_log-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_log-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_log-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::log APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::log PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_log-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::log PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_LOG_DYN_LINK" + ) + +list(APPEND _BOOST_LOG_DEPS atomic chrono date_time filesystem regex thread headers) diff --git a/winx64/lib/boost/cmake/boost_log-1.70.0/libboost_log-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_log-1.70.0/libboost_log-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..043128c8 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_log-1.70.0/libboost_log-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_log-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_log-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_log-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_log-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_log-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_log-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_log-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_log-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_log-vc142-mt-x64-1_70.lib") + +# Target file name: boost_log-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::log APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::log PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_log-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::log PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_LOG_DYN_LINK" + ) + +list(APPEND _BOOST_LOG_DEPS atomic chrono date_time filesystem regex thread headers) diff --git a/winx64/lib/boost/cmake/boost_log_setup-1.70.0/boost_log_setup-config-version.cmake b/winx64/lib/boost/cmake/boost_log_setup-1.70.0/boost_log_setup-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_log_setup-1.70.0/boost_log_setup-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_log_setup-1.70.0/boost_log_setup-config.cmake b/winx64/lib/boost/cmake/boost_log_setup-1.70.0/boost_log_setup-config.cmake new file mode 100644 index 00000000..0180ffa8 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_log_setup-1.70.0/boost_log_setup-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::log_setup) + return() +endif() + +message(STATUS "Found boost_log_setup ${boost_log_setup_VERSION} at ${boost_log_setup_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::log_setup +add_library(Boost::log_setup UNKNOWN IMPORTED) + +set_target_properties(Boost::log_setup PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_log_setup-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_log_setup-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::log_setup IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_log_setup variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_log_setup_FOUND 0) + set(boost_log_setup_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_LOG_SETUP_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_LOG_SETUP_DEPS) + list(REMOVE_DUPLICATES _BOOST_LOG_SETUP_DEPS) + message(STATUS "Adding boost_log_setup dependencies: ${_BOOST_LOG_SETUP_DEPS}") +endif() + +foreach(dep_boost_log_setup IN LISTS _BOOST_LOG_SETUP_DEPS) + set(_BOOST_QUIET) + if(boost_log_setup_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_log_setup_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_log_setup} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::log_setup APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_log_setup}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_log_setup}_FOUND) + set(boost_log_setup_FOUND 0) + set(boost_log_setup_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_log_setup}, has not been found.") + unset(_BOOST_LOG_SETUP_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_LOG_SETUP_DEPS) diff --git a/winx64/lib/boost/cmake/boost_log_setup-1.70.0/libboost_log_setup-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_log_setup-1.70.0/libboost_log_setup-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..874d45bf --- /dev/null +++ b/winx64/lib/boost/cmake/boost_log_setup-1.70.0/libboost_log_setup-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_log_setup-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_log_setup-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_log_setup-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_log_setup-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_log_setup-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_log_setup-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_log_setup-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_log_setup-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_log_setup-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_log_setup-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::log_setup APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::log_setup PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_log_setup-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::log_setup PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_LOG_SETUP_DYN_LINK" + ) + +list(APPEND _BOOST_LOG_SETUP_DEPS atomic chrono date_time filesystem log regex thread headers) diff --git a/winx64/lib/boost/cmake/boost_log_setup-1.70.0/libboost_log_setup-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_log_setup-1.70.0/libboost_log_setup-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..56ceb460 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_log_setup-1.70.0/libboost_log_setup-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_log_setup-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_log_setup-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_log_setup-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_log_setup-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_log_setup-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_log_setup-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_log_setup-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_log_setup-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_log_setup-vc142-mt-x64-1_70.lib") + +# Target file name: boost_log_setup-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::log_setup APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::log_setup PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_log_setup-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::log_setup PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_LOG_SETUP_DYN_LINK" + ) + +list(APPEND _BOOST_LOG_SETUP_DEPS atomic chrono date_time filesystem log regex thread headers) diff --git a/winx64/lib/boost/cmake/boost_math-1.70.0/boost_math-config-version.cmake b/winx64/lib/boost/cmake/boost_math-1.70.0/boost_math-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_math-1.70.0/boost_math-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_math-1.70.0/boost_math-config.cmake b/winx64/lib/boost/cmake/boost_math-1.70.0/boost_math-config.cmake new file mode 100644 index 00000000..ce462fcb --- /dev/null +++ b/winx64/lib/boost/cmake/boost_math-1.70.0/boost_math-config.cmake @@ -0,0 +1,20 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::math) + return() +endif() + +message(STATUS "Found boost_math ${boost_math_VERSION} at ${boost_math_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::math +add_library(Boost::math INTERFACE IMPORTED) + +set_target_properties(Boost::math PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) diff --git a/winx64/lib/boost/cmake/boost_math_c99-1.70.0/boost_math_c99-config-version.cmake b/winx64/lib/boost/cmake/boost_math_c99-1.70.0/boost_math_c99-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_math_c99-1.70.0/boost_math_c99-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_math_c99-1.70.0/boost_math_c99-config.cmake b/winx64/lib/boost/cmake/boost_math_c99-1.70.0/boost_math_c99-config.cmake new file mode 100644 index 00000000..af3df620 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_math_c99-1.70.0/boost_math_c99-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::math_c99) + return() +endif() + +message(STATUS "Found boost_math_c99 ${boost_math_c99_VERSION} at ${boost_math_c99_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::math_c99 +add_library(Boost::math_c99 UNKNOWN IMPORTED) + +set_target_properties(Boost::math_c99 PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_math_c99-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_math_c99-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::math_c99 IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_math_c99 variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_math_c99_FOUND 0) + set(boost_math_c99_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_MATH_C99_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_MATH_C99_DEPS) + list(REMOVE_DUPLICATES _BOOST_MATH_C99_DEPS) + message(STATUS "Adding boost_math_c99 dependencies: ${_BOOST_MATH_C99_DEPS}") +endif() + +foreach(dep_boost_math_c99 IN LISTS _BOOST_MATH_C99_DEPS) + set(_BOOST_QUIET) + if(boost_math_c99_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_math_c99_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_math_c99} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::math_c99 APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_math_c99}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_math_c99}_FOUND) + set(boost_math_c99_FOUND 0) + set(boost_math_c99_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_math_c99}, has not been found.") + unset(_BOOST_MATH_C99_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_MATH_C99_DEPS) diff --git a/winx64/lib/boost/cmake/boost_math_c99-1.70.0/libboost_math_c99-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_math_c99-1.70.0/libboost_math_c99-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..ac20ea92 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_math_c99-1.70.0/libboost_math_c99-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_math_c99-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_math_c99-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_math_c99-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_math_c99-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_math_c99-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_math_c99-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_math_c99-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_math_c99-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_math_c99-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_math_c99-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::math_c99 APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::math_c99 PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_math_c99-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::math_c99 PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_MATH_C99_DYN_LINK" + ) + +list(APPEND _BOOST_MATH_C99_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_math_c99-1.70.0/libboost_math_c99-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_math_c99-1.70.0/libboost_math_c99-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..1b2e4c72 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_math_c99-1.70.0/libboost_math_c99-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_math_c99-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_math_c99-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_math_c99-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_math_c99-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_math_c99-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_math_c99-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_math_c99-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_math_c99-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_math_c99-vc142-mt-x64-1_70.lib") + +# Target file name: boost_math_c99-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::math_c99 APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::math_c99 PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_math_c99-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::math_c99 PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_MATH_C99_DYN_LINK" + ) + +list(APPEND _BOOST_MATH_C99_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_math_c99f-1.70.0/boost_math_c99f-config-version.cmake b/winx64/lib/boost/cmake/boost_math_c99f-1.70.0/boost_math_c99f-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_math_c99f-1.70.0/boost_math_c99f-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_math_c99f-1.70.0/boost_math_c99f-config.cmake b/winx64/lib/boost/cmake/boost_math_c99f-1.70.0/boost_math_c99f-config.cmake new file mode 100644 index 00000000..dc509b0f --- /dev/null +++ b/winx64/lib/boost/cmake/boost_math_c99f-1.70.0/boost_math_c99f-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::math_c99f) + return() +endif() + +message(STATUS "Found boost_math_c99f ${boost_math_c99f_VERSION} at ${boost_math_c99f_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::math_c99f +add_library(Boost::math_c99f UNKNOWN IMPORTED) + +set_target_properties(Boost::math_c99f PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_math_c99f-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_math_c99f-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::math_c99f IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_math_c99f variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_math_c99f_FOUND 0) + set(boost_math_c99f_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_MATH_C99F_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_MATH_C99F_DEPS) + list(REMOVE_DUPLICATES _BOOST_MATH_C99F_DEPS) + message(STATUS "Adding boost_math_c99f dependencies: ${_BOOST_MATH_C99F_DEPS}") +endif() + +foreach(dep_boost_math_c99f IN LISTS _BOOST_MATH_C99F_DEPS) + set(_BOOST_QUIET) + if(boost_math_c99f_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_math_c99f_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_math_c99f} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::math_c99f APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_math_c99f}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_math_c99f}_FOUND) + set(boost_math_c99f_FOUND 0) + set(boost_math_c99f_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_math_c99f}, has not been found.") + unset(_BOOST_MATH_C99F_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_MATH_C99F_DEPS) diff --git a/winx64/lib/boost/cmake/boost_math_c99f-1.70.0/libboost_math_c99f-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_math_c99f-1.70.0/libboost_math_c99f-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..38336baf --- /dev/null +++ b/winx64/lib/boost/cmake/boost_math_c99f-1.70.0/libboost_math_c99f-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_math_c99f-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_math_c99f-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_math_c99f-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_math_c99f-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_math_c99f-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_math_c99f-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_math_c99f-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_math_c99f-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_math_c99f-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_math_c99f-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::math_c99f APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::math_c99f PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_math_c99f-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::math_c99f PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_MATH_C99F_DYN_LINK" + ) + +list(APPEND _BOOST_MATH_C99F_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_math_c99f-1.70.0/libboost_math_c99f-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_math_c99f-1.70.0/libboost_math_c99f-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..afc49bd0 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_math_c99f-1.70.0/libboost_math_c99f-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_math_c99f-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_math_c99f-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_math_c99f-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_math_c99f-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_math_c99f-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_math_c99f-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_math_c99f-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_math_c99f-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_math_c99f-vc142-mt-x64-1_70.lib") + +# Target file name: boost_math_c99f-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::math_c99f APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::math_c99f PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_math_c99f-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::math_c99f PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_MATH_C99F_DYN_LINK" + ) + +list(APPEND _BOOST_MATH_C99F_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_math_c99l-1.70.0/boost_math_c99l-config-version.cmake b/winx64/lib/boost/cmake/boost_math_c99l-1.70.0/boost_math_c99l-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_math_c99l-1.70.0/boost_math_c99l-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_math_c99l-1.70.0/boost_math_c99l-config.cmake b/winx64/lib/boost/cmake/boost_math_c99l-1.70.0/boost_math_c99l-config.cmake new file mode 100644 index 00000000..d5a42493 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_math_c99l-1.70.0/boost_math_c99l-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::math_c99l) + return() +endif() + +message(STATUS "Found boost_math_c99l ${boost_math_c99l_VERSION} at ${boost_math_c99l_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::math_c99l +add_library(Boost::math_c99l UNKNOWN IMPORTED) + +set_target_properties(Boost::math_c99l PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_math_c99l-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_math_c99l-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::math_c99l IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_math_c99l variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_math_c99l_FOUND 0) + set(boost_math_c99l_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_MATH_C99L_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_MATH_C99L_DEPS) + list(REMOVE_DUPLICATES _BOOST_MATH_C99L_DEPS) + message(STATUS "Adding boost_math_c99l dependencies: ${_BOOST_MATH_C99L_DEPS}") +endif() + +foreach(dep_boost_math_c99l IN LISTS _BOOST_MATH_C99L_DEPS) + set(_BOOST_QUIET) + if(boost_math_c99l_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_math_c99l_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_math_c99l} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::math_c99l APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_math_c99l}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_math_c99l}_FOUND) + set(boost_math_c99l_FOUND 0) + set(boost_math_c99l_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_math_c99l}, has not been found.") + unset(_BOOST_MATH_C99L_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_MATH_C99L_DEPS) diff --git a/winx64/lib/boost/cmake/boost_math_c99l-1.70.0/libboost_math_c99l-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_math_c99l-1.70.0/libboost_math_c99l-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..ca7ed0e0 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_math_c99l-1.70.0/libboost_math_c99l-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_math_c99l-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_math_c99l-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_math_c99l-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_math_c99l-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_math_c99l-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_math_c99l-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_math_c99l-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_math_c99l-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_math_c99l-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_math_c99l-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::math_c99l APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::math_c99l PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_math_c99l-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::math_c99l PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_MATH_C99L_DYN_LINK" + ) + +list(APPEND _BOOST_MATH_C99L_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_math_c99l-1.70.0/libboost_math_c99l-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_math_c99l-1.70.0/libboost_math_c99l-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..2b55d929 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_math_c99l-1.70.0/libboost_math_c99l-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_math_c99l-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_math_c99l-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_math_c99l-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_math_c99l-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_math_c99l-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_math_c99l-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_math_c99l-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_math_c99l-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_math_c99l-vc142-mt-x64-1_70.lib") + +# Target file name: boost_math_c99l-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::math_c99l APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::math_c99l PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_math_c99l-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::math_c99l PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_MATH_C99L_DYN_LINK" + ) + +list(APPEND _BOOST_MATH_C99L_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_math_tr1-1.70.0/boost_math_tr1-config-version.cmake b/winx64/lib/boost/cmake/boost_math_tr1-1.70.0/boost_math_tr1-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_math_tr1-1.70.0/boost_math_tr1-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_math_tr1-1.70.0/boost_math_tr1-config.cmake b/winx64/lib/boost/cmake/boost_math_tr1-1.70.0/boost_math_tr1-config.cmake new file mode 100644 index 00000000..6204c59f --- /dev/null +++ b/winx64/lib/boost/cmake/boost_math_tr1-1.70.0/boost_math_tr1-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::math_tr1) + return() +endif() + +message(STATUS "Found boost_math_tr1 ${boost_math_tr1_VERSION} at ${boost_math_tr1_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::math_tr1 +add_library(Boost::math_tr1 UNKNOWN IMPORTED) + +set_target_properties(Boost::math_tr1 PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_math_tr1-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_math_tr1-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::math_tr1 IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_math_tr1 variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_math_tr1_FOUND 0) + set(boost_math_tr1_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_MATH_TR1_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_MATH_TR1_DEPS) + list(REMOVE_DUPLICATES _BOOST_MATH_TR1_DEPS) + message(STATUS "Adding boost_math_tr1 dependencies: ${_BOOST_MATH_TR1_DEPS}") +endif() + +foreach(dep_boost_math_tr1 IN LISTS _BOOST_MATH_TR1_DEPS) + set(_BOOST_QUIET) + if(boost_math_tr1_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_math_tr1_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_math_tr1} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::math_tr1 APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_math_tr1}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_math_tr1}_FOUND) + set(boost_math_tr1_FOUND 0) + set(boost_math_tr1_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_math_tr1}, has not been found.") + unset(_BOOST_MATH_TR1_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_MATH_TR1_DEPS) diff --git a/winx64/lib/boost/cmake/boost_math_tr1-1.70.0/libboost_math_tr1-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_math_tr1-1.70.0/libboost_math_tr1-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..e2557680 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_math_tr1-1.70.0/libboost_math_tr1-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_math_tr1-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_math_tr1-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_math_tr1-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_math_tr1-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_math_tr1-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_math_tr1-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_math_tr1-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_math_tr1-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_math_tr1-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_math_tr1-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::math_tr1 APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::math_tr1 PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_math_tr1-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::math_tr1 PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_MATH_TR1_DYN_LINK" + ) + +list(APPEND _BOOST_MATH_TR1_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_math_tr1-1.70.0/libboost_math_tr1-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_math_tr1-1.70.0/libboost_math_tr1-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..0199594a --- /dev/null +++ b/winx64/lib/boost/cmake/boost_math_tr1-1.70.0/libboost_math_tr1-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_math_tr1-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_math_tr1-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_math_tr1-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_math_tr1-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_math_tr1-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_math_tr1-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_math_tr1-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_math_tr1-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_math_tr1-vc142-mt-x64-1_70.lib") + +# Target file name: boost_math_tr1-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::math_tr1 APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::math_tr1 PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_math_tr1-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::math_tr1 PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_MATH_TR1_DYN_LINK" + ) + +list(APPEND _BOOST_MATH_TR1_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_math_tr1f-1.70.0/boost_math_tr1f-config-version.cmake b/winx64/lib/boost/cmake/boost_math_tr1f-1.70.0/boost_math_tr1f-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_math_tr1f-1.70.0/boost_math_tr1f-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_math_tr1f-1.70.0/boost_math_tr1f-config.cmake b/winx64/lib/boost/cmake/boost_math_tr1f-1.70.0/boost_math_tr1f-config.cmake new file mode 100644 index 00000000..88dac194 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_math_tr1f-1.70.0/boost_math_tr1f-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::math_tr1f) + return() +endif() + +message(STATUS "Found boost_math_tr1f ${boost_math_tr1f_VERSION} at ${boost_math_tr1f_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::math_tr1f +add_library(Boost::math_tr1f UNKNOWN IMPORTED) + +set_target_properties(Boost::math_tr1f PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_math_tr1f-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_math_tr1f-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::math_tr1f IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_math_tr1f variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_math_tr1f_FOUND 0) + set(boost_math_tr1f_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_MATH_TR1F_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_MATH_TR1F_DEPS) + list(REMOVE_DUPLICATES _BOOST_MATH_TR1F_DEPS) + message(STATUS "Adding boost_math_tr1f dependencies: ${_BOOST_MATH_TR1F_DEPS}") +endif() + +foreach(dep_boost_math_tr1f IN LISTS _BOOST_MATH_TR1F_DEPS) + set(_BOOST_QUIET) + if(boost_math_tr1f_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_math_tr1f_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_math_tr1f} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::math_tr1f APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_math_tr1f}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_math_tr1f}_FOUND) + set(boost_math_tr1f_FOUND 0) + set(boost_math_tr1f_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_math_tr1f}, has not been found.") + unset(_BOOST_MATH_TR1F_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_MATH_TR1F_DEPS) diff --git a/winx64/lib/boost/cmake/boost_math_tr1f-1.70.0/libboost_math_tr1f-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_math_tr1f-1.70.0/libboost_math_tr1f-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..683a5f36 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_math_tr1f-1.70.0/libboost_math_tr1f-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_math_tr1f-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_math_tr1f-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_math_tr1f-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_math_tr1f-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_math_tr1f-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_math_tr1f-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_math_tr1f-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_math_tr1f-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_math_tr1f-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_math_tr1f-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::math_tr1f APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::math_tr1f PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_math_tr1f-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::math_tr1f PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_MATH_TR1F_DYN_LINK" + ) + +list(APPEND _BOOST_MATH_TR1F_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_math_tr1f-1.70.0/libboost_math_tr1f-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_math_tr1f-1.70.0/libboost_math_tr1f-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..603e694d --- /dev/null +++ b/winx64/lib/boost/cmake/boost_math_tr1f-1.70.0/libboost_math_tr1f-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_math_tr1f-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_math_tr1f-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_math_tr1f-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_math_tr1f-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_math_tr1f-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_math_tr1f-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_math_tr1f-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_math_tr1f-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_math_tr1f-vc142-mt-x64-1_70.lib") + +# Target file name: boost_math_tr1f-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::math_tr1f APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::math_tr1f PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_math_tr1f-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::math_tr1f PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_MATH_TR1F_DYN_LINK" + ) + +list(APPEND _BOOST_MATH_TR1F_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_math_tr1l-1.70.0/boost_math_tr1l-config-version.cmake b/winx64/lib/boost/cmake/boost_math_tr1l-1.70.0/boost_math_tr1l-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_math_tr1l-1.70.0/boost_math_tr1l-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_math_tr1l-1.70.0/boost_math_tr1l-config.cmake b/winx64/lib/boost/cmake/boost_math_tr1l-1.70.0/boost_math_tr1l-config.cmake new file mode 100644 index 00000000..a90ad16d --- /dev/null +++ b/winx64/lib/boost/cmake/boost_math_tr1l-1.70.0/boost_math_tr1l-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::math_tr1l) + return() +endif() + +message(STATUS "Found boost_math_tr1l ${boost_math_tr1l_VERSION} at ${boost_math_tr1l_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::math_tr1l +add_library(Boost::math_tr1l UNKNOWN IMPORTED) + +set_target_properties(Boost::math_tr1l PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_math_tr1l-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_math_tr1l-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::math_tr1l IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_math_tr1l variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_math_tr1l_FOUND 0) + set(boost_math_tr1l_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_MATH_TR1L_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_MATH_TR1L_DEPS) + list(REMOVE_DUPLICATES _BOOST_MATH_TR1L_DEPS) + message(STATUS "Adding boost_math_tr1l dependencies: ${_BOOST_MATH_TR1L_DEPS}") +endif() + +foreach(dep_boost_math_tr1l IN LISTS _BOOST_MATH_TR1L_DEPS) + set(_BOOST_QUIET) + if(boost_math_tr1l_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_math_tr1l_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_math_tr1l} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::math_tr1l APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_math_tr1l}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_math_tr1l}_FOUND) + set(boost_math_tr1l_FOUND 0) + set(boost_math_tr1l_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_math_tr1l}, has not been found.") + unset(_BOOST_MATH_TR1L_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_MATH_TR1L_DEPS) diff --git a/winx64/lib/boost/cmake/boost_math_tr1l-1.70.0/libboost_math_tr1l-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_math_tr1l-1.70.0/libboost_math_tr1l-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..e919ca87 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_math_tr1l-1.70.0/libboost_math_tr1l-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_math_tr1l-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_math_tr1l-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_math_tr1l-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_math_tr1l-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_math_tr1l-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_math_tr1l-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_math_tr1l-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_math_tr1l-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_math_tr1l-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_math_tr1l-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::math_tr1l APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::math_tr1l PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_math_tr1l-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::math_tr1l PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_MATH_TR1L_DYN_LINK" + ) + +list(APPEND _BOOST_MATH_TR1L_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_math_tr1l-1.70.0/libboost_math_tr1l-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_math_tr1l-1.70.0/libboost_math_tr1l-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..98bb71ba --- /dev/null +++ b/winx64/lib/boost/cmake/boost_math_tr1l-1.70.0/libboost_math_tr1l-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_math_tr1l-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_math_tr1l-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_math_tr1l-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_math_tr1l-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_math_tr1l-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_math_tr1l-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_math_tr1l-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_math_tr1l-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_math_tr1l-vc142-mt-x64-1_70.lib") + +# Target file name: boost_math_tr1l-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::math_tr1l APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::math_tr1l PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_math_tr1l-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::math_tr1l PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_MATH_TR1L_DYN_LINK" + ) + +list(APPEND _BOOST_MATH_TR1L_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_mpi-1.70.0/boost_mpi-config-version.cmake b/winx64/lib/boost/cmake/boost_mpi-1.70.0/boost_mpi-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_mpi-1.70.0/boost_mpi-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_mpi-1.70.0/boost_mpi-config.cmake b/winx64/lib/boost/cmake/boost_mpi-1.70.0/boost_mpi-config.cmake new file mode 100644 index 00000000..a20c844d --- /dev/null +++ b/winx64/lib/boost/cmake/boost_mpi-1.70.0/boost_mpi-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::mpi) + return() +endif() + +message(STATUS "Found boost_mpi ${boost_mpi_VERSION} at ${boost_mpi_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::mpi +add_library(Boost::mpi UNKNOWN IMPORTED) + +set_target_properties(Boost::mpi PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_mpi-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_mpi-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::mpi IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_mpi variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_mpi_FOUND 0) + set(boost_mpi_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_MPI_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_MPI_DEPS) + list(REMOVE_DUPLICATES _BOOST_MPI_DEPS) + message(STATUS "Adding boost_mpi dependencies: ${_BOOST_MPI_DEPS}") +endif() + +foreach(dep_boost_mpi IN LISTS _BOOST_MPI_DEPS) + set(_BOOST_QUIET) + if(boost_mpi_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_mpi_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_mpi} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::mpi APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_mpi}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_mpi}_FOUND) + set(boost_mpi_FOUND 0) + set(boost_mpi_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_mpi}, has not been found.") + unset(_BOOST_MPI_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_MPI_DEPS) diff --git a/winx64/lib/boost/cmake/boost_mpi-1.70.0/libboost_mpi-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_mpi-1.70.0/libboost_mpi-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..84a6e8b0 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_mpi-1.70.0/libboost_mpi-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,61 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + return() +endif() + + +set_property(TARGET Boost::mpi APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::mpi PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + ) + +set_target_properties(Boost::mpi PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_MPI_DYN_LINK" + ) + +list(APPEND _BOOST_MPI_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_mpi-1.70.0/libboost_mpi-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_mpi-1.70.0/libboost_mpi-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..9ad7a559 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_mpi-1.70.0/libboost_mpi-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,61 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + return() +endif() + + +set_property(TARGET Boost::mpi APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::mpi PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + ) + +set_target_properties(Boost::mpi PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_MPI_DYN_LINK" + ) + +list(APPEND _BOOST_MPI_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_numpy-1.70.0/boost_numpy-config-version.cmake b/winx64/lib/boost/cmake/boost_numpy-1.70.0/boost_numpy-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_numpy-1.70.0/boost_numpy-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_numpy-1.70.0/boost_numpy-config.cmake b/winx64/lib/boost/cmake/boost_numpy-1.70.0/boost_numpy-config.cmake new file mode 100644 index 00000000..8684e22d --- /dev/null +++ b/winx64/lib/boost/cmake/boost_numpy-1.70.0/boost_numpy-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::numpy) + return() +endif() + +message(STATUS "Found boost_numpy ${boost_numpy_VERSION} at ${boost_numpy_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::numpy +add_library(Boost::numpy UNKNOWN IMPORTED) + +set_target_properties(Boost::numpy PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_numpy-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_numpy-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::numpy IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_numpy variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_numpy_FOUND 0) + set(boost_numpy_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_NUMPY_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_NUMPY_DEPS) + list(REMOVE_DUPLICATES _BOOST_NUMPY_DEPS) + message(STATUS "Adding boost_numpy dependencies: ${_BOOST_NUMPY_DEPS}") +endif() + +foreach(dep_boost_numpy IN LISTS _BOOST_NUMPY_DEPS) + set(_BOOST_QUIET) + if(boost_numpy_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_numpy_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_numpy} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::numpy APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_numpy}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_numpy}_FOUND) + set(boost_numpy_FOUND 0) + set(boost_numpy_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_numpy}, has not been found.") + unset(_BOOST_NUMPY_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_NUMPY_DEPS) diff --git a/winx64/lib/boost/cmake/boost_numpy-1.70.0/libboost_numpy-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_numpy-1.70.0/libboost_numpy-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..1430526b --- /dev/null +++ b/winx64/lib/boost/cmake/boost_numpy-1.70.0/libboost_numpy-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,61 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + return() +endif() + + +set_property(TARGET Boost::numpy APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::numpy PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + ) + +set_target_properties(Boost::numpy PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_NUMPY_DYN_LINK" + ) + +list(APPEND _BOOST_NUMPY_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_numpy-1.70.0/libboost_numpy-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_numpy-1.70.0/libboost_numpy-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..c947da3b --- /dev/null +++ b/winx64/lib/boost/cmake/boost_numpy-1.70.0/libboost_numpy-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,61 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + return() +endif() + + +set_property(TARGET Boost::numpy APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::numpy PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + ) + +set_target_properties(Boost::numpy PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_NUMPY_DYN_LINK" + ) + +list(APPEND _BOOST_NUMPY_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_prg_exec_monitor-1.70.0/boost_prg_exec_monitor-config-version.cmake b/winx64/lib/boost/cmake/boost_prg_exec_monitor-1.70.0/boost_prg_exec_monitor-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_prg_exec_monitor-1.70.0/boost_prg_exec_monitor-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_prg_exec_monitor-1.70.0/boost_prg_exec_monitor-config.cmake b/winx64/lib/boost/cmake/boost_prg_exec_monitor-1.70.0/boost_prg_exec_monitor-config.cmake new file mode 100644 index 00000000..1e4ce942 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_prg_exec_monitor-1.70.0/boost_prg_exec_monitor-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::prg_exec_monitor) + return() +endif() + +message(STATUS "Found boost_prg_exec_monitor ${boost_prg_exec_monitor_VERSION} at ${boost_prg_exec_monitor_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::prg_exec_monitor +add_library(Boost::prg_exec_monitor UNKNOWN IMPORTED) + +set_target_properties(Boost::prg_exec_monitor PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_prg_exec_monitor-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_prg_exec_monitor-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::prg_exec_monitor IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_prg_exec_monitor variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_prg_exec_monitor_FOUND 0) + set(boost_prg_exec_monitor_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_PRG_EXEC_MONITOR_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_PRG_EXEC_MONITOR_DEPS) + list(REMOVE_DUPLICATES _BOOST_PRG_EXEC_MONITOR_DEPS) + message(STATUS "Adding boost_prg_exec_monitor dependencies: ${_BOOST_PRG_EXEC_MONITOR_DEPS}") +endif() + +foreach(dep_boost_prg_exec_monitor IN LISTS _BOOST_PRG_EXEC_MONITOR_DEPS) + set(_BOOST_QUIET) + if(boost_prg_exec_monitor_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_prg_exec_monitor_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_prg_exec_monitor} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::prg_exec_monitor APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_prg_exec_monitor}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_prg_exec_monitor}_FOUND) + set(boost_prg_exec_monitor_FOUND 0) + set(boost_prg_exec_monitor_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_prg_exec_monitor}, has not been found.") + unset(_BOOST_PRG_EXEC_MONITOR_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_PRG_EXEC_MONITOR_DEPS) diff --git a/winx64/lib/boost/cmake/boost_prg_exec_monitor-1.70.0/libboost_prg_exec_monitor-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_prg_exec_monitor-1.70.0/libboost_prg_exec_monitor-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..84ee81c1 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_prg_exec_monitor-1.70.0/libboost_prg_exec_monitor-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_prg_exec_monitor-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_prg_exec_monitor-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_prg_exec_monitor-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_prg_exec_monitor-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_prg_exec_monitor-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_prg_exec_monitor-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_prg_exec_monitor-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_prg_exec_monitor-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_prg_exec_monitor-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_prg_exec_monitor-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::prg_exec_monitor APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::prg_exec_monitor PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_prg_exec_monitor-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::prg_exec_monitor PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_PRG_EXEC_MONITOR_DYN_LINK" + ) + +list(APPEND _BOOST_PRG_EXEC_MONITOR_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_prg_exec_monitor-1.70.0/libboost_prg_exec_monitor-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_prg_exec_monitor-1.70.0/libboost_prg_exec_monitor-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..90f607e5 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_prg_exec_monitor-1.70.0/libboost_prg_exec_monitor-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_prg_exec_monitor-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_prg_exec_monitor-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_prg_exec_monitor-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_prg_exec_monitor-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_prg_exec_monitor-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_prg_exec_monitor-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_prg_exec_monitor-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_prg_exec_monitor-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_prg_exec_monitor-vc142-mt-x64-1_70.lib") + +# Target file name: boost_prg_exec_monitor-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::prg_exec_monitor APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::prg_exec_monitor PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_prg_exec_monitor-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::prg_exec_monitor PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_PRG_EXEC_MONITOR_DYN_LINK" + ) + +list(APPEND _BOOST_PRG_EXEC_MONITOR_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_program_options-1.70.0/boost_program_options-config-version.cmake b/winx64/lib/boost/cmake/boost_program_options-1.70.0/boost_program_options-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_program_options-1.70.0/boost_program_options-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_program_options-1.70.0/boost_program_options-config.cmake b/winx64/lib/boost/cmake/boost_program_options-1.70.0/boost_program_options-config.cmake new file mode 100644 index 00000000..82815ff5 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_program_options-1.70.0/boost_program_options-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::program_options) + return() +endif() + +message(STATUS "Found boost_program_options ${boost_program_options_VERSION} at ${boost_program_options_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::program_options +add_library(Boost::program_options UNKNOWN IMPORTED) + +set_target_properties(Boost::program_options PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_program_options-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_program_options-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::program_options IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_program_options variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_program_options_FOUND 0) + set(boost_program_options_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_PROGRAM_OPTIONS_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_PROGRAM_OPTIONS_DEPS) + list(REMOVE_DUPLICATES _BOOST_PROGRAM_OPTIONS_DEPS) + message(STATUS "Adding boost_program_options dependencies: ${_BOOST_PROGRAM_OPTIONS_DEPS}") +endif() + +foreach(dep_boost_program_options IN LISTS _BOOST_PROGRAM_OPTIONS_DEPS) + set(_BOOST_QUIET) + if(boost_program_options_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_program_options_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_program_options} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::program_options APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_program_options}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_program_options}_FOUND) + set(boost_program_options_FOUND 0) + set(boost_program_options_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_program_options}, has not been found.") + unset(_BOOST_PROGRAM_OPTIONS_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_PROGRAM_OPTIONS_DEPS) diff --git a/winx64/lib/boost/cmake/boost_program_options-1.70.0/libboost_program_options-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_program_options-1.70.0/libboost_program_options-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..ea866014 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_program_options-1.70.0/libboost_program_options-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_program_options-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_program_options-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_program_options-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_program_options-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_program_options-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_program_options-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_program_options-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_program_options-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_program_options-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_program_options-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::program_options APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::program_options PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_program_options-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::program_options PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_PROGRAM_OPTIONS_DYN_LINK" + ) + +list(APPEND _BOOST_PROGRAM_OPTIONS_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_program_options-1.70.0/libboost_program_options-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_program_options-1.70.0/libboost_program_options-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..8c77f9fd --- /dev/null +++ b/winx64/lib/boost/cmake/boost_program_options-1.70.0/libboost_program_options-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_program_options-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_program_options-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_program_options-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_program_options-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_program_options-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_program_options-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_program_options-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_program_options-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_program_options-vc142-mt-x64-1_70.lib") + +# Target file name: boost_program_options-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::program_options APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::program_options PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_program_options-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::program_options PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_PROGRAM_OPTIONS_DYN_LINK" + ) + +list(APPEND _BOOST_PROGRAM_OPTIONS_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_python-1.70.0/boost_python-config-version.cmake b/winx64/lib/boost/cmake/boost_python-1.70.0/boost_python-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_python-1.70.0/boost_python-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_python-1.70.0/boost_python-config.cmake b/winx64/lib/boost/cmake/boost_python-1.70.0/boost_python-config.cmake new file mode 100644 index 00000000..b4e70119 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_python-1.70.0/boost_python-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::python) + return() +endif() + +message(STATUS "Found boost_python ${boost_python_VERSION} at ${boost_python_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::python +add_library(Boost::python UNKNOWN IMPORTED) + +set_target_properties(Boost::python PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_python-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_python-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::python IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_python variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_python_FOUND 0) + set(boost_python_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_PYTHON_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_PYTHON_DEPS) + list(REMOVE_DUPLICATES _BOOST_PYTHON_DEPS) + message(STATUS "Adding boost_python dependencies: ${_BOOST_PYTHON_DEPS}") +endif() + +foreach(dep_boost_python IN LISTS _BOOST_PYTHON_DEPS) + set(_BOOST_QUIET) + if(boost_python_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_python_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_python} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::python APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_python}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_python}_FOUND) + set(boost_python_FOUND 0) + set(boost_python_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_python}, has not been found.") + unset(_BOOST_PYTHON_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_PYTHON_DEPS) diff --git a/winx64/lib/boost/cmake/boost_python-1.70.0/libboost_python-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_python-1.70.0/libboost_python-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..fa026c21 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_python-1.70.0/libboost_python-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_python27-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_python27-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_python27-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_python27-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_python27-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_python27-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_python27-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_python27-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_python27-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_python27-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::python APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::python PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_python27-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::python PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_PYTHON_DYN_LINK" + ) + +list(APPEND _BOOST_PYTHON_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_python-1.70.0/libboost_python-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_python-1.70.0/libboost_python-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..31070dea --- /dev/null +++ b/winx64/lib/boost/cmake/boost_python-1.70.0/libboost_python-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_python27-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_python27-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_python27-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_python27-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_python27-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_python27-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_python27-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_python27-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_python27-vc142-mt-x64-1_70.lib") + +# Target file name: boost_python27-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::python APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::python PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_python27-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::python PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_PYTHON_DYN_LINK" + ) + +list(APPEND _BOOST_PYTHON_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_random-1.70.0/boost_random-config-version.cmake b/winx64/lib/boost/cmake/boost_random-1.70.0/boost_random-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_random-1.70.0/boost_random-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_random-1.70.0/boost_random-config.cmake b/winx64/lib/boost/cmake/boost_random-1.70.0/boost_random-config.cmake new file mode 100644 index 00000000..0ff00d9a --- /dev/null +++ b/winx64/lib/boost/cmake/boost_random-1.70.0/boost_random-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::random) + return() +endif() + +message(STATUS "Found boost_random ${boost_random_VERSION} at ${boost_random_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::random +add_library(Boost::random UNKNOWN IMPORTED) + +set_target_properties(Boost::random PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_random-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_random-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::random IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_random variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_random_FOUND 0) + set(boost_random_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_RANDOM_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_RANDOM_DEPS) + list(REMOVE_DUPLICATES _BOOST_RANDOM_DEPS) + message(STATUS "Adding boost_random dependencies: ${_BOOST_RANDOM_DEPS}") +endif() + +foreach(dep_boost_random IN LISTS _BOOST_RANDOM_DEPS) + set(_BOOST_QUIET) + if(boost_random_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_random_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_random} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::random APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_random}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_random}_FOUND) + set(boost_random_FOUND 0) + set(boost_random_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_random}, has not been found.") + unset(_BOOST_RANDOM_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_RANDOM_DEPS) diff --git a/winx64/lib/boost/cmake/boost_random-1.70.0/libboost_random-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_random-1.70.0/libboost_random-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..2ca4e003 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_random-1.70.0/libboost_random-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_random-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_random-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_random-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_random-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_random-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_random-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_random-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_random-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_random-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_random-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::random APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::random PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_random-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::random PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_RANDOM_DYN_LINK" + ) + +list(APPEND _BOOST_RANDOM_DEPS system headers) diff --git a/winx64/lib/boost/cmake/boost_random-1.70.0/libboost_random-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_random-1.70.0/libboost_random-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..ed2d60e7 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_random-1.70.0/libboost_random-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_random-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_random-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_random-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_random-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_random-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_random-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_random-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_random-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_random-vc142-mt-x64-1_70.lib") + +# Target file name: boost_random-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::random APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::random PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_random-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::random PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_RANDOM_DYN_LINK" + ) + +list(APPEND _BOOST_RANDOM_DEPS system headers) diff --git a/winx64/lib/boost/cmake/boost_regex-1.70.0/boost_regex-config-version.cmake b/winx64/lib/boost/cmake/boost_regex-1.70.0/boost_regex-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_regex-1.70.0/boost_regex-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_regex-1.70.0/boost_regex-config.cmake b/winx64/lib/boost/cmake/boost_regex-1.70.0/boost_regex-config.cmake new file mode 100644 index 00000000..94c5976c --- /dev/null +++ b/winx64/lib/boost/cmake/boost_regex-1.70.0/boost_regex-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::regex) + return() +endif() + +message(STATUS "Found boost_regex ${boost_regex_VERSION} at ${boost_regex_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::regex +add_library(Boost::regex UNKNOWN IMPORTED) + +set_target_properties(Boost::regex PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_regex-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_regex-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::regex IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_regex variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_regex_FOUND 0) + set(boost_regex_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_REGEX_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_REGEX_DEPS) + list(REMOVE_DUPLICATES _BOOST_REGEX_DEPS) + message(STATUS "Adding boost_regex dependencies: ${_BOOST_REGEX_DEPS}") +endif() + +foreach(dep_boost_regex IN LISTS _BOOST_REGEX_DEPS) + set(_BOOST_QUIET) + if(boost_regex_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_regex_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_regex} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::regex APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_regex}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_regex}_FOUND) + set(boost_regex_FOUND 0) + set(boost_regex_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_regex}, has not been found.") + unset(_BOOST_REGEX_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_REGEX_DEPS) diff --git a/winx64/lib/boost/cmake/boost_regex-1.70.0/libboost_regex-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_regex-1.70.0/libboost_regex-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..c467a361 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_regex-1.70.0/libboost_regex-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_regex-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_regex-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_regex-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_regex-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_regex-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_regex-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_regex-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_regex-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_regex-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_regex-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::regex APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::regex PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_regex-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::regex PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_REGEX_DYN_LINK" + ) + +list(APPEND _BOOST_REGEX_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_regex-1.70.0/libboost_regex-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_regex-1.70.0/libboost_regex-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..6c6dd314 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_regex-1.70.0/libboost_regex-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_regex-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_regex-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_regex-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_regex-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_regex-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_regex-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_regex-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_regex-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_regex-vc142-mt-x64-1_70.lib") + +# Target file name: boost_regex-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::regex APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::regex PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_regex-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::regex PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_REGEX_DYN_LINK" + ) + +list(APPEND _BOOST_REGEX_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_serialization-1.70.0/boost_serialization-config-version.cmake b/winx64/lib/boost/cmake/boost_serialization-1.70.0/boost_serialization-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_serialization-1.70.0/boost_serialization-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_serialization-1.70.0/boost_serialization-config.cmake b/winx64/lib/boost/cmake/boost_serialization-1.70.0/boost_serialization-config.cmake new file mode 100644 index 00000000..059e99c2 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_serialization-1.70.0/boost_serialization-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::serialization) + return() +endif() + +message(STATUS "Found boost_serialization ${boost_serialization_VERSION} at ${boost_serialization_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::serialization +add_library(Boost::serialization UNKNOWN IMPORTED) + +set_target_properties(Boost::serialization PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_serialization-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_serialization-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::serialization IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_serialization variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_serialization_FOUND 0) + set(boost_serialization_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_SERIALIZATION_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_SERIALIZATION_DEPS) + list(REMOVE_DUPLICATES _BOOST_SERIALIZATION_DEPS) + message(STATUS "Adding boost_serialization dependencies: ${_BOOST_SERIALIZATION_DEPS}") +endif() + +foreach(dep_boost_serialization IN LISTS _BOOST_SERIALIZATION_DEPS) + set(_BOOST_QUIET) + if(boost_serialization_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_serialization_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_serialization} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::serialization APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_serialization}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_serialization}_FOUND) + set(boost_serialization_FOUND 0) + set(boost_serialization_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_serialization}, has not been found.") + unset(_BOOST_SERIALIZATION_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_SERIALIZATION_DEPS) diff --git a/winx64/lib/boost/cmake/boost_serialization-1.70.0/libboost_serialization-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_serialization-1.70.0/libboost_serialization-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..cd5ce9cc --- /dev/null +++ b/winx64/lib/boost/cmake/boost_serialization-1.70.0/libboost_serialization-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_serialization-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_serialization-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_serialization-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_serialization-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_serialization-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_serialization-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_serialization-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_serialization-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_serialization-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_serialization-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::serialization APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::serialization PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_serialization-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::serialization PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_SERIALIZATION_DYN_LINK" + ) + +list(APPEND _BOOST_SERIALIZATION_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_serialization-1.70.0/libboost_serialization-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_serialization-1.70.0/libboost_serialization-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..32dfc2f8 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_serialization-1.70.0/libboost_serialization-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_serialization-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_serialization-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_serialization-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_serialization-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_serialization-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_serialization-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_serialization-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_serialization-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_serialization-vc142-mt-x64-1_70.lib") + +# Target file name: boost_serialization-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::serialization APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::serialization PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_serialization-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::serialization PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_SERIALIZATION_DYN_LINK" + ) + +list(APPEND _BOOST_SERIALIZATION_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_stacktrace_addr2line-1.70.0/boost_stacktrace_addr2line-config-version.cmake b/winx64/lib/boost/cmake/boost_stacktrace_addr2line-1.70.0/boost_stacktrace_addr2line-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_stacktrace_addr2line-1.70.0/boost_stacktrace_addr2line-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_stacktrace_addr2line-1.70.0/boost_stacktrace_addr2line-config.cmake b/winx64/lib/boost/cmake/boost_stacktrace_addr2line-1.70.0/boost_stacktrace_addr2line-config.cmake new file mode 100644 index 00000000..ed926b94 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_stacktrace_addr2line-1.70.0/boost_stacktrace_addr2line-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::stacktrace_addr2line) + return() +endif() + +message(STATUS "Found boost_stacktrace_addr2line ${boost_stacktrace_addr2line_VERSION} at ${boost_stacktrace_addr2line_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::stacktrace_addr2line +add_library(Boost::stacktrace_addr2line UNKNOWN IMPORTED) + +set_target_properties(Boost::stacktrace_addr2line PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_stacktrace_addr2line-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_stacktrace_addr2line-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::stacktrace_addr2line IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_stacktrace_addr2line variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_stacktrace_addr2line_FOUND 0) + set(boost_stacktrace_addr2line_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_STACKTRACE_ADDR2LINE_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_STACKTRACE_ADDR2LINE_DEPS) + list(REMOVE_DUPLICATES _BOOST_STACKTRACE_ADDR2LINE_DEPS) + message(STATUS "Adding boost_stacktrace_addr2line dependencies: ${_BOOST_STACKTRACE_ADDR2LINE_DEPS}") +endif() + +foreach(dep_boost_stacktrace_addr2line IN LISTS _BOOST_STACKTRACE_ADDR2LINE_DEPS) + set(_BOOST_QUIET) + if(boost_stacktrace_addr2line_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_stacktrace_addr2line_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_stacktrace_addr2line} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::stacktrace_addr2line APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_stacktrace_addr2line}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_stacktrace_addr2line}_FOUND) + set(boost_stacktrace_addr2line_FOUND 0) + set(boost_stacktrace_addr2line_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_stacktrace_addr2line}, has not been found.") + unset(_BOOST_STACKTRACE_ADDR2LINE_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_STACKTRACE_ADDR2LINE_DEPS) diff --git a/winx64/lib/boost/cmake/boost_stacktrace_addr2line-1.70.0/libboost_stacktrace_addr2line-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_stacktrace_addr2line-1.70.0/libboost_stacktrace_addr2line-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..94631de5 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_stacktrace_addr2line-1.70.0/libboost_stacktrace_addr2line-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,61 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + return() +endif() + + +set_property(TARGET Boost::stacktrace_addr2line APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::stacktrace_addr2line PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + ) + +set_target_properties(Boost::stacktrace_addr2line PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_STACKTRACE_ADDR2LINE_DYN_LINK" + ) + +list(APPEND _BOOST_STACKTRACE_ADDR2LINE_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_stacktrace_addr2line-1.70.0/libboost_stacktrace_addr2line-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_stacktrace_addr2line-1.70.0/libboost_stacktrace_addr2line-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..6c7d7d5b --- /dev/null +++ b/winx64/lib/boost/cmake/boost_stacktrace_addr2line-1.70.0/libboost_stacktrace_addr2line-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,61 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + return() +endif() + + +set_property(TARGET Boost::stacktrace_addr2line APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::stacktrace_addr2line PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + ) + +set_target_properties(Boost::stacktrace_addr2line PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_STACKTRACE_ADDR2LINE_DYN_LINK" + ) + +list(APPEND _BOOST_STACKTRACE_ADDR2LINE_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_stacktrace_backtrace-1.70.0/boost_stacktrace_backtrace-config-version.cmake b/winx64/lib/boost/cmake/boost_stacktrace_backtrace-1.70.0/boost_stacktrace_backtrace-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_stacktrace_backtrace-1.70.0/boost_stacktrace_backtrace-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_stacktrace_backtrace-1.70.0/boost_stacktrace_backtrace-config.cmake b/winx64/lib/boost/cmake/boost_stacktrace_backtrace-1.70.0/boost_stacktrace_backtrace-config.cmake new file mode 100644 index 00000000..64a70f6c --- /dev/null +++ b/winx64/lib/boost/cmake/boost_stacktrace_backtrace-1.70.0/boost_stacktrace_backtrace-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::stacktrace_backtrace) + return() +endif() + +message(STATUS "Found boost_stacktrace_backtrace ${boost_stacktrace_backtrace_VERSION} at ${boost_stacktrace_backtrace_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::stacktrace_backtrace +add_library(Boost::stacktrace_backtrace UNKNOWN IMPORTED) + +set_target_properties(Boost::stacktrace_backtrace PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_stacktrace_backtrace-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_stacktrace_backtrace-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::stacktrace_backtrace IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_stacktrace_backtrace variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_stacktrace_backtrace_FOUND 0) + set(boost_stacktrace_backtrace_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_STACKTRACE_BACKTRACE_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_STACKTRACE_BACKTRACE_DEPS) + list(REMOVE_DUPLICATES _BOOST_STACKTRACE_BACKTRACE_DEPS) + message(STATUS "Adding boost_stacktrace_backtrace dependencies: ${_BOOST_STACKTRACE_BACKTRACE_DEPS}") +endif() + +foreach(dep_boost_stacktrace_backtrace IN LISTS _BOOST_STACKTRACE_BACKTRACE_DEPS) + set(_BOOST_QUIET) + if(boost_stacktrace_backtrace_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_stacktrace_backtrace_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_stacktrace_backtrace} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::stacktrace_backtrace APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_stacktrace_backtrace}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_stacktrace_backtrace}_FOUND) + set(boost_stacktrace_backtrace_FOUND 0) + set(boost_stacktrace_backtrace_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_stacktrace_backtrace}, has not been found.") + unset(_BOOST_STACKTRACE_BACKTRACE_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_STACKTRACE_BACKTRACE_DEPS) diff --git a/winx64/lib/boost/cmake/boost_stacktrace_backtrace-1.70.0/libboost_stacktrace_backtrace-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_stacktrace_backtrace-1.70.0/libboost_stacktrace_backtrace-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..8d5665a0 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_stacktrace_backtrace-1.70.0/libboost_stacktrace_backtrace-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,61 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + return() +endif() + + +set_property(TARGET Boost::stacktrace_backtrace APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::stacktrace_backtrace PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + ) + +set_target_properties(Boost::stacktrace_backtrace PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_STACKTRACE_BACKTRACE_DYN_LINK" + ) + +list(APPEND _BOOST_STACKTRACE_BACKTRACE_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_stacktrace_backtrace-1.70.0/libboost_stacktrace_backtrace-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_stacktrace_backtrace-1.70.0/libboost_stacktrace_backtrace-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..bc5f296f --- /dev/null +++ b/winx64/lib/boost/cmake/boost_stacktrace_backtrace-1.70.0/libboost_stacktrace_backtrace-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,61 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + return() +endif() + + +set_property(TARGET Boost::stacktrace_backtrace APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::stacktrace_backtrace PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + ) + +set_target_properties(Boost::stacktrace_backtrace PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_STACKTRACE_BACKTRACE_DYN_LINK" + ) + +list(APPEND _BOOST_STACKTRACE_BACKTRACE_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_stacktrace_basic-1.70.0/boost_stacktrace_basic-config-version.cmake b/winx64/lib/boost/cmake/boost_stacktrace_basic-1.70.0/boost_stacktrace_basic-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_stacktrace_basic-1.70.0/boost_stacktrace_basic-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_stacktrace_basic-1.70.0/boost_stacktrace_basic-config.cmake b/winx64/lib/boost/cmake/boost_stacktrace_basic-1.70.0/boost_stacktrace_basic-config.cmake new file mode 100644 index 00000000..8834ca8e --- /dev/null +++ b/winx64/lib/boost/cmake/boost_stacktrace_basic-1.70.0/boost_stacktrace_basic-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::stacktrace_basic) + return() +endif() + +message(STATUS "Found boost_stacktrace_basic ${boost_stacktrace_basic_VERSION} at ${boost_stacktrace_basic_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::stacktrace_basic +add_library(Boost::stacktrace_basic UNKNOWN IMPORTED) + +set_target_properties(Boost::stacktrace_basic PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_stacktrace_basic-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_stacktrace_basic-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::stacktrace_basic IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_stacktrace_basic variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_stacktrace_basic_FOUND 0) + set(boost_stacktrace_basic_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_STACKTRACE_BASIC_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_STACKTRACE_BASIC_DEPS) + list(REMOVE_DUPLICATES _BOOST_STACKTRACE_BASIC_DEPS) + message(STATUS "Adding boost_stacktrace_basic dependencies: ${_BOOST_STACKTRACE_BASIC_DEPS}") +endif() + +foreach(dep_boost_stacktrace_basic IN LISTS _BOOST_STACKTRACE_BASIC_DEPS) + set(_BOOST_QUIET) + if(boost_stacktrace_basic_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_stacktrace_basic_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_stacktrace_basic} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::stacktrace_basic APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_stacktrace_basic}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_stacktrace_basic}_FOUND) + set(boost_stacktrace_basic_FOUND 0) + set(boost_stacktrace_basic_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_stacktrace_basic}, has not been found.") + unset(_BOOST_STACKTRACE_BASIC_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_STACKTRACE_BASIC_DEPS) diff --git a/winx64/lib/boost/cmake/boost_stacktrace_basic-1.70.0/libboost_stacktrace_basic-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_stacktrace_basic-1.70.0/libboost_stacktrace_basic-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..7ed5e595 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_stacktrace_basic-1.70.0/libboost_stacktrace_basic-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,61 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + return() +endif() + + +set_property(TARGET Boost::stacktrace_basic APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::stacktrace_basic PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + ) + +set_target_properties(Boost::stacktrace_basic PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_STACKTRACE_BASIC_DYN_LINK" + ) + +list(APPEND _BOOST_STACKTRACE_BASIC_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_stacktrace_basic-1.70.0/libboost_stacktrace_basic-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_stacktrace_basic-1.70.0/libboost_stacktrace_basic-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..955aed1f --- /dev/null +++ b/winx64/lib/boost/cmake/boost_stacktrace_basic-1.70.0/libboost_stacktrace_basic-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,61 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + return() +endif() + + +set_property(TARGET Boost::stacktrace_basic APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::stacktrace_basic PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + ) + +set_target_properties(Boost::stacktrace_basic PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_STACKTRACE_BASIC_DYN_LINK" + ) + +list(APPEND _BOOST_STACKTRACE_BASIC_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_stacktrace_noop-1.70.0/boost_stacktrace_noop-config-version.cmake b/winx64/lib/boost/cmake/boost_stacktrace_noop-1.70.0/boost_stacktrace_noop-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_stacktrace_noop-1.70.0/boost_stacktrace_noop-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_stacktrace_noop-1.70.0/boost_stacktrace_noop-config.cmake b/winx64/lib/boost/cmake/boost_stacktrace_noop-1.70.0/boost_stacktrace_noop-config.cmake new file mode 100644 index 00000000..b84882cd --- /dev/null +++ b/winx64/lib/boost/cmake/boost_stacktrace_noop-1.70.0/boost_stacktrace_noop-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::stacktrace_noop) + return() +endif() + +message(STATUS "Found boost_stacktrace_noop ${boost_stacktrace_noop_VERSION} at ${boost_stacktrace_noop_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::stacktrace_noop +add_library(Boost::stacktrace_noop UNKNOWN IMPORTED) + +set_target_properties(Boost::stacktrace_noop PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_stacktrace_noop-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_stacktrace_noop-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::stacktrace_noop IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_stacktrace_noop variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_stacktrace_noop_FOUND 0) + set(boost_stacktrace_noop_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_STACKTRACE_NOOP_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_STACKTRACE_NOOP_DEPS) + list(REMOVE_DUPLICATES _BOOST_STACKTRACE_NOOP_DEPS) + message(STATUS "Adding boost_stacktrace_noop dependencies: ${_BOOST_STACKTRACE_NOOP_DEPS}") +endif() + +foreach(dep_boost_stacktrace_noop IN LISTS _BOOST_STACKTRACE_NOOP_DEPS) + set(_BOOST_QUIET) + if(boost_stacktrace_noop_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_stacktrace_noop_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_stacktrace_noop} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::stacktrace_noop APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_stacktrace_noop}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_stacktrace_noop}_FOUND) + set(boost_stacktrace_noop_FOUND 0) + set(boost_stacktrace_noop_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_stacktrace_noop}, has not been found.") + unset(_BOOST_STACKTRACE_NOOP_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_STACKTRACE_NOOP_DEPS) diff --git a/winx64/lib/boost/cmake/boost_stacktrace_noop-1.70.0/libboost_stacktrace_noop-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_stacktrace_noop-1.70.0/libboost_stacktrace_noop-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..8f32f927 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_stacktrace_noop-1.70.0/libboost_stacktrace_noop-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_stacktrace_noop-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_stacktrace_noop-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_stacktrace_noop-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_stacktrace_noop-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_stacktrace_noop-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_stacktrace_noop-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_stacktrace_noop-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_stacktrace_noop-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_stacktrace_noop-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_stacktrace_noop-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::stacktrace_noop APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::stacktrace_noop PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_stacktrace_noop-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::stacktrace_noop PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_STACKTRACE_NOOP_DYN_LINK" + ) + +list(APPEND _BOOST_STACKTRACE_NOOP_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_stacktrace_noop-1.70.0/libboost_stacktrace_noop-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_stacktrace_noop-1.70.0/libboost_stacktrace_noop-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..30f8cfac --- /dev/null +++ b/winx64/lib/boost/cmake/boost_stacktrace_noop-1.70.0/libboost_stacktrace_noop-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_stacktrace_noop-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_stacktrace_noop-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_stacktrace_noop-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_stacktrace_noop-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_stacktrace_noop-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_stacktrace_noop-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_stacktrace_noop-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_stacktrace_noop-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_stacktrace_noop-vc142-mt-x64-1_70.lib") + +# Target file name: boost_stacktrace_noop-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::stacktrace_noop APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::stacktrace_noop PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_stacktrace_noop-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::stacktrace_noop PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_STACKTRACE_NOOP_DYN_LINK" + ) + +list(APPEND _BOOST_STACKTRACE_NOOP_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_stacktrace_windbg-1.70.0/boost_stacktrace_windbg-config-version.cmake b/winx64/lib/boost/cmake/boost_stacktrace_windbg-1.70.0/boost_stacktrace_windbg-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_stacktrace_windbg-1.70.0/boost_stacktrace_windbg-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_stacktrace_windbg-1.70.0/boost_stacktrace_windbg-config.cmake b/winx64/lib/boost/cmake/boost_stacktrace_windbg-1.70.0/boost_stacktrace_windbg-config.cmake new file mode 100644 index 00000000..9bc760df --- /dev/null +++ b/winx64/lib/boost/cmake/boost_stacktrace_windbg-1.70.0/boost_stacktrace_windbg-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::stacktrace_windbg) + return() +endif() + +message(STATUS "Found boost_stacktrace_windbg ${boost_stacktrace_windbg_VERSION} at ${boost_stacktrace_windbg_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::stacktrace_windbg +add_library(Boost::stacktrace_windbg UNKNOWN IMPORTED) + +set_target_properties(Boost::stacktrace_windbg PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_stacktrace_windbg-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_stacktrace_windbg-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::stacktrace_windbg IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_stacktrace_windbg variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_stacktrace_windbg_FOUND 0) + set(boost_stacktrace_windbg_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_STACKTRACE_WINDBG_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_STACKTRACE_WINDBG_DEPS) + list(REMOVE_DUPLICATES _BOOST_STACKTRACE_WINDBG_DEPS) + message(STATUS "Adding boost_stacktrace_windbg dependencies: ${_BOOST_STACKTRACE_WINDBG_DEPS}") +endif() + +foreach(dep_boost_stacktrace_windbg IN LISTS _BOOST_STACKTRACE_WINDBG_DEPS) + set(_BOOST_QUIET) + if(boost_stacktrace_windbg_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_stacktrace_windbg_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_stacktrace_windbg} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::stacktrace_windbg APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_stacktrace_windbg}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_stacktrace_windbg}_FOUND) + set(boost_stacktrace_windbg_FOUND 0) + set(boost_stacktrace_windbg_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_stacktrace_windbg}, has not been found.") + unset(_BOOST_STACKTRACE_WINDBG_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_STACKTRACE_WINDBG_DEPS) diff --git a/winx64/lib/boost/cmake/boost_stacktrace_windbg-1.70.0/libboost_stacktrace_windbg-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_stacktrace_windbg-1.70.0/libboost_stacktrace_windbg-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..43f72447 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_stacktrace_windbg-1.70.0/libboost_stacktrace_windbg-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_stacktrace_windbg-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_stacktrace_windbg-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_stacktrace_windbg-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_stacktrace_windbg-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_stacktrace_windbg-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_stacktrace_windbg-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_stacktrace_windbg-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_stacktrace_windbg-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_stacktrace_windbg-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_stacktrace_windbg-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::stacktrace_windbg APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::stacktrace_windbg PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_stacktrace_windbg-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::stacktrace_windbg PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_STACKTRACE_WINDBG_DYN_LINK" + ) + +list(APPEND _BOOST_STACKTRACE_WINDBG_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_stacktrace_windbg-1.70.0/libboost_stacktrace_windbg-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_stacktrace_windbg-1.70.0/libboost_stacktrace_windbg-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..a927a9e6 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_stacktrace_windbg-1.70.0/libboost_stacktrace_windbg-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_stacktrace_windbg-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_stacktrace_windbg-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_stacktrace_windbg-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_stacktrace_windbg-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_stacktrace_windbg-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_stacktrace_windbg-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_stacktrace_windbg-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_stacktrace_windbg-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_stacktrace_windbg-vc142-mt-x64-1_70.lib") + +# Target file name: boost_stacktrace_windbg-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::stacktrace_windbg APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::stacktrace_windbg PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_stacktrace_windbg-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::stacktrace_windbg PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_STACKTRACE_WINDBG_DYN_LINK" + ) + +list(APPEND _BOOST_STACKTRACE_WINDBG_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_stacktrace_windbg_cached-1.70.0/boost_stacktrace_windbg_cached-config-version.cmake b/winx64/lib/boost/cmake/boost_stacktrace_windbg_cached-1.70.0/boost_stacktrace_windbg_cached-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_stacktrace_windbg_cached-1.70.0/boost_stacktrace_windbg_cached-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_stacktrace_windbg_cached-1.70.0/boost_stacktrace_windbg_cached-config.cmake b/winx64/lib/boost/cmake/boost_stacktrace_windbg_cached-1.70.0/boost_stacktrace_windbg_cached-config.cmake new file mode 100644 index 00000000..41ccb7f4 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_stacktrace_windbg_cached-1.70.0/boost_stacktrace_windbg_cached-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::stacktrace_windbg_cached) + return() +endif() + +message(STATUS "Found boost_stacktrace_windbg_cached ${boost_stacktrace_windbg_cached_VERSION} at ${boost_stacktrace_windbg_cached_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::stacktrace_windbg_cached +add_library(Boost::stacktrace_windbg_cached UNKNOWN IMPORTED) + +set_target_properties(Boost::stacktrace_windbg_cached PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_stacktrace_windbg_cached-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_stacktrace_windbg_cached-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::stacktrace_windbg_cached IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_stacktrace_windbg_cached variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_stacktrace_windbg_cached_FOUND 0) + set(boost_stacktrace_windbg_cached_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_STACKTRACE_WINDBG_CACHED_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_STACKTRACE_WINDBG_CACHED_DEPS) + list(REMOVE_DUPLICATES _BOOST_STACKTRACE_WINDBG_CACHED_DEPS) + message(STATUS "Adding boost_stacktrace_windbg_cached dependencies: ${_BOOST_STACKTRACE_WINDBG_CACHED_DEPS}") +endif() + +foreach(dep_boost_stacktrace_windbg_cached IN LISTS _BOOST_STACKTRACE_WINDBG_CACHED_DEPS) + set(_BOOST_QUIET) + if(boost_stacktrace_windbg_cached_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_stacktrace_windbg_cached_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_stacktrace_windbg_cached} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::stacktrace_windbg_cached APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_stacktrace_windbg_cached}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_stacktrace_windbg_cached}_FOUND) + set(boost_stacktrace_windbg_cached_FOUND 0) + set(boost_stacktrace_windbg_cached_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_stacktrace_windbg_cached}, has not been found.") + unset(_BOOST_STACKTRACE_WINDBG_CACHED_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_STACKTRACE_WINDBG_CACHED_DEPS) diff --git a/winx64/lib/boost/cmake/boost_stacktrace_windbg_cached-1.70.0/libboost_stacktrace_windbg_cached-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_stacktrace_windbg_cached-1.70.0/libboost_stacktrace_windbg_cached-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..793ea39f --- /dev/null +++ b/winx64/lib/boost/cmake/boost_stacktrace_windbg_cached-1.70.0/libboost_stacktrace_windbg_cached-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_stacktrace_windbg_cached-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_stacktrace_windbg_cached-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_stacktrace_windbg_cached-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_stacktrace_windbg_cached-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_stacktrace_windbg_cached-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_stacktrace_windbg_cached-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_stacktrace_windbg_cached-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_stacktrace_windbg_cached-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_stacktrace_windbg_cached-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_stacktrace_windbg_cached-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::stacktrace_windbg_cached APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::stacktrace_windbg_cached PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_stacktrace_windbg_cached-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::stacktrace_windbg_cached PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_STACKTRACE_WINDBG_CACHED_DYN_LINK" + ) + +list(APPEND _BOOST_STACKTRACE_WINDBG_CACHED_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_stacktrace_windbg_cached-1.70.0/libboost_stacktrace_windbg_cached-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_stacktrace_windbg_cached-1.70.0/libboost_stacktrace_windbg_cached-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..caeed8c9 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_stacktrace_windbg_cached-1.70.0/libboost_stacktrace_windbg_cached-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_stacktrace_windbg_cached-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_stacktrace_windbg_cached-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_stacktrace_windbg_cached-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_stacktrace_windbg_cached-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_stacktrace_windbg_cached-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_stacktrace_windbg_cached-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_stacktrace_windbg_cached-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_stacktrace_windbg_cached-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_stacktrace_windbg_cached-vc142-mt-x64-1_70.lib") + +# Target file name: boost_stacktrace_windbg_cached-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::stacktrace_windbg_cached APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::stacktrace_windbg_cached PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_stacktrace_windbg_cached-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::stacktrace_windbg_cached PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_STACKTRACE_WINDBG_CACHED_DYN_LINK" + ) + +list(APPEND _BOOST_STACKTRACE_WINDBG_CACHED_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_system-1.70.0/boost_system-config-version.cmake b/winx64/lib/boost/cmake/boost_system-1.70.0/boost_system-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_system-1.70.0/boost_system-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_system-1.70.0/boost_system-config.cmake b/winx64/lib/boost/cmake/boost_system-1.70.0/boost_system-config.cmake new file mode 100644 index 00000000..8d99a5eb --- /dev/null +++ b/winx64/lib/boost/cmake/boost_system-1.70.0/boost_system-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::system) + return() +endif() + +message(STATUS "Found boost_system ${boost_system_VERSION} at ${boost_system_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::system +add_library(Boost::system UNKNOWN IMPORTED) + +set_target_properties(Boost::system PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_system-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_system-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::system IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_system variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_system_FOUND 0) + set(boost_system_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_SYSTEM_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_SYSTEM_DEPS) + list(REMOVE_DUPLICATES _BOOST_SYSTEM_DEPS) + message(STATUS "Adding boost_system dependencies: ${_BOOST_SYSTEM_DEPS}") +endif() + +foreach(dep_boost_system IN LISTS _BOOST_SYSTEM_DEPS) + set(_BOOST_QUIET) + if(boost_system_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_system_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_system} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::system APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_system}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_system}_FOUND) + set(boost_system_FOUND 0) + set(boost_system_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_system}, has not been found.") + unset(_BOOST_SYSTEM_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_SYSTEM_DEPS) diff --git a/winx64/lib/boost/cmake/boost_system-1.70.0/libboost_system-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_system-1.70.0/libboost_system-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..548a6e74 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_system-1.70.0/libboost_system-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_system-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_system-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_system-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_system-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_system-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_system-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_system-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_system-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_system-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_system-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::system APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::system PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_system-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::system PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_SYSTEM_DYN_LINK" + ) + +list(APPEND _BOOST_SYSTEM_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_system-1.70.0/libboost_system-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_system-1.70.0/libboost_system-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..0e9af72f --- /dev/null +++ b/winx64/lib/boost/cmake/boost_system-1.70.0/libboost_system-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_system-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_system-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_system-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_system-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_system-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_system-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_system-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_system-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_system-vc142-mt-x64-1_70.lib") + +# Target file name: boost_system-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::system APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::system PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_system-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::system PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_SYSTEM_DYN_LINK" + ) + +list(APPEND _BOOST_SYSTEM_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_test_exec_monitor-1.70.0/boost_test_exec_monitor-config-version.cmake b/winx64/lib/boost/cmake/boost_test_exec_monitor-1.70.0/boost_test_exec_monitor-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_test_exec_monitor-1.70.0/boost_test_exec_monitor-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_test_exec_monitor-1.70.0/boost_test_exec_monitor-config.cmake b/winx64/lib/boost/cmake/boost_test_exec_monitor-1.70.0/boost_test_exec_monitor-config.cmake new file mode 100644 index 00000000..7254136d --- /dev/null +++ b/winx64/lib/boost/cmake/boost_test_exec_monitor-1.70.0/boost_test_exec_monitor-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::test_exec_monitor) + return() +endif() + +message(STATUS "Found boost_test_exec_monitor ${boost_test_exec_monitor_VERSION} at ${boost_test_exec_monitor_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::test_exec_monitor +add_library(Boost::test_exec_monitor UNKNOWN IMPORTED) + +set_target_properties(Boost::test_exec_monitor PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_test_exec_monitor-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_test_exec_monitor-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::test_exec_monitor IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_test_exec_monitor variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_test_exec_monitor_FOUND 0) + set(boost_test_exec_monitor_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_TEST_EXEC_MONITOR_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_TEST_EXEC_MONITOR_DEPS) + list(REMOVE_DUPLICATES _BOOST_TEST_EXEC_MONITOR_DEPS) + message(STATUS "Adding boost_test_exec_monitor dependencies: ${_BOOST_TEST_EXEC_MONITOR_DEPS}") +endif() + +foreach(dep_boost_test_exec_monitor IN LISTS _BOOST_TEST_EXEC_MONITOR_DEPS) + set(_BOOST_QUIET) + if(boost_test_exec_monitor_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_test_exec_monitor_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_test_exec_monitor} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::test_exec_monitor APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_test_exec_monitor}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_test_exec_monitor}_FOUND) + set(boost_test_exec_monitor_FOUND 0) + set(boost_test_exec_monitor_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_test_exec_monitor}, has not been found.") + unset(_BOOST_TEST_EXEC_MONITOR_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_TEST_EXEC_MONITOR_DEPS) diff --git a/winx64/lib/boost/cmake/boost_test_exec_monitor-1.70.0/libboost_test_exec_monitor-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_test_exec_monitor-1.70.0/libboost_test_exec_monitor-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..475fe770 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_test_exec_monitor-1.70.0/libboost_test_exec_monitor-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("libboost_test_exec_monitor-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("libboost_test_exec_monitor-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("libboost_test_exec_monitor-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("libboost_test_exec_monitor-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("libboost_test_exec_monitor-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("libboost_test_exec_monitor-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("libboost_test_exec_monitor-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("libboost_test_exec_monitor-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " libboost_test_exec_monitor-vc142-mt-gd-x64-1_70.lib") + +# Target file name: libboost_test_exec_monitor-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::test_exec_monitor APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::test_exec_monitor PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/libboost_test_exec_monitor-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::test_exec_monitor PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_TEST_EXEC_MONITOR_DYN_LINK" + ) + +list(APPEND _BOOST_TEST_EXEC_MONITOR_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_test_exec_monitor-1.70.0/libboost_test_exec_monitor-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_test_exec_monitor-1.70.0/libboost_test_exec_monitor-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..d07b4a32 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_test_exec_monitor-1.70.0/libboost_test_exec_monitor-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("libboost_test_exec_monitor-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("libboost_test_exec_monitor-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("libboost_test_exec_monitor-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("libboost_test_exec_monitor-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("libboost_test_exec_monitor-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("libboost_test_exec_monitor-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("libboost_test_exec_monitor-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("libboost_test_exec_monitor-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " libboost_test_exec_monitor-vc142-mt-x64-1_70.lib") + +# Target file name: libboost_test_exec_monitor-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::test_exec_monitor APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::test_exec_monitor PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/libboost_test_exec_monitor-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::test_exec_monitor PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_TEST_EXEC_MONITOR_DYN_LINK" + ) + +list(APPEND _BOOST_TEST_EXEC_MONITOR_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_thread-1.70.0/boost_thread-config-version.cmake b/winx64/lib/boost/cmake/boost_thread-1.70.0/boost_thread-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_thread-1.70.0/boost_thread-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_thread-1.70.0/boost_thread-config.cmake b/winx64/lib/boost/cmake/boost_thread-1.70.0/boost_thread-config.cmake new file mode 100644 index 00000000..9ee4f804 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_thread-1.70.0/boost_thread-config.cmake @@ -0,0 +1,102 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::thread) + return() +endif() + +message(STATUS "Found boost_thread ${boost_thread_VERSION} at ${boost_thread_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::thread +add_library(Boost::thread UNKNOWN IMPORTED) + +set_target_properties(Boost::thread PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_thread-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_thread-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::thread IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_thread variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_thread_FOUND 0) + set(boost_thread_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_THREAD_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_THREAD_DEPS) + list(REMOVE_DUPLICATES _BOOST_THREAD_DEPS) + message(STATUS "Adding boost_thread dependencies: ${_BOOST_THREAD_DEPS}") +endif() + +foreach(dep_boost_thread IN LISTS _BOOST_THREAD_DEPS) + set(_BOOST_QUIET) + if(boost_thread_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_thread_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_thread} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::thread APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_thread}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_thread}_FOUND) + set(boost_thread_FOUND 0) + set(boost_thread_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_thread}, has not been found.") + unset(_BOOST_THREAD_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_THREAD_DEPS) + +include(CMakeFindDependencyMacro) +find_dependency(Threads) +set_property(TARGET Boost::thread APPEND PROPERTY INTERFACE_LINK_LIBRARIES Threads::Threads) diff --git a/winx64/lib/boost/cmake/boost_thread-1.70.0/libboost_thread-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_thread-1.70.0/libboost_thread-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..b03c84de --- /dev/null +++ b/winx64/lib/boost/cmake/boost_thread-1.70.0/libboost_thread-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_thread-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_thread-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_thread-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_thread-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_thread-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_thread-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_thread-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_thread-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_thread-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_thread-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::thread APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::thread PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_thread-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::thread PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_THREAD_DYN_LINK" + ) + +list(APPEND _BOOST_THREAD_DEPS chrono headers) diff --git a/winx64/lib/boost/cmake/boost_thread-1.70.0/libboost_thread-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_thread-1.70.0/libboost_thread-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..373c0bd0 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_thread-1.70.0/libboost_thread-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_thread-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_thread-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_thread-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_thread-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_thread-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_thread-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_thread-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_thread-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_thread-vc142-mt-x64-1_70.lib") + +# Target file name: boost_thread-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::thread APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::thread PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_thread-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::thread PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_THREAD_DYN_LINK" + ) + +list(APPEND _BOOST_THREAD_DEPS chrono headers) diff --git a/winx64/lib/boost/cmake/boost_timer-1.70.0/boost_timer-config-version.cmake b/winx64/lib/boost/cmake/boost_timer-1.70.0/boost_timer-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_timer-1.70.0/boost_timer-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_timer-1.70.0/boost_timer-config.cmake b/winx64/lib/boost/cmake/boost_timer-1.70.0/boost_timer-config.cmake new file mode 100644 index 00000000..469c405a --- /dev/null +++ b/winx64/lib/boost/cmake/boost_timer-1.70.0/boost_timer-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::timer) + return() +endif() + +message(STATUS "Found boost_timer ${boost_timer_VERSION} at ${boost_timer_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::timer +add_library(Boost::timer UNKNOWN IMPORTED) + +set_target_properties(Boost::timer PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_timer-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_timer-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::timer IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_timer variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_timer_FOUND 0) + set(boost_timer_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_TIMER_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_TIMER_DEPS) + list(REMOVE_DUPLICATES _BOOST_TIMER_DEPS) + message(STATUS "Adding boost_timer dependencies: ${_BOOST_TIMER_DEPS}") +endif() + +foreach(dep_boost_timer IN LISTS _BOOST_TIMER_DEPS) + set(_BOOST_QUIET) + if(boost_timer_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_timer_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_timer} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::timer APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_timer}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_timer}_FOUND) + set(boost_timer_FOUND 0) + set(boost_timer_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_timer}, has not been found.") + unset(_BOOST_TIMER_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_TIMER_DEPS) diff --git a/winx64/lib/boost/cmake/boost_timer-1.70.0/libboost_timer-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_timer-1.70.0/libboost_timer-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..0c0866df --- /dev/null +++ b/winx64/lib/boost/cmake/boost_timer-1.70.0/libboost_timer-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_timer-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_timer-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_timer-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_timer-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_timer-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_timer-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_timer-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_timer-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_timer-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_timer-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::timer APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::timer PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_timer-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::timer PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_TIMER_DYN_LINK" + ) + +list(APPEND _BOOST_TIMER_DEPS chrono headers) diff --git a/winx64/lib/boost/cmake/boost_timer-1.70.0/libboost_timer-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_timer-1.70.0/libboost_timer-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..4aaee2ba --- /dev/null +++ b/winx64/lib/boost/cmake/boost_timer-1.70.0/libboost_timer-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_timer-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_timer-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_timer-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_timer-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_timer-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_timer-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_timer-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_timer-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_timer-vc142-mt-x64-1_70.lib") + +# Target file name: boost_timer-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::timer APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::timer PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_timer-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::timer PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_TIMER_DYN_LINK" + ) + +list(APPEND _BOOST_TIMER_DEPS chrono headers) diff --git a/winx64/lib/boost/cmake/boost_type_erasure-1.70.0/boost_type_erasure-config-version.cmake b/winx64/lib/boost/cmake/boost_type_erasure-1.70.0/boost_type_erasure-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_type_erasure-1.70.0/boost_type_erasure-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_type_erasure-1.70.0/boost_type_erasure-config.cmake b/winx64/lib/boost/cmake/boost_type_erasure-1.70.0/boost_type_erasure-config.cmake new file mode 100644 index 00000000..020fb4a1 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_type_erasure-1.70.0/boost_type_erasure-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::type_erasure) + return() +endif() + +message(STATUS "Found boost_type_erasure ${boost_type_erasure_VERSION} at ${boost_type_erasure_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::type_erasure +add_library(Boost::type_erasure UNKNOWN IMPORTED) + +set_target_properties(Boost::type_erasure PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_type_erasure-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_type_erasure-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::type_erasure IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_type_erasure variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_type_erasure_FOUND 0) + set(boost_type_erasure_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_TYPE_ERASURE_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_TYPE_ERASURE_DEPS) + list(REMOVE_DUPLICATES _BOOST_TYPE_ERASURE_DEPS) + message(STATUS "Adding boost_type_erasure dependencies: ${_BOOST_TYPE_ERASURE_DEPS}") +endif() + +foreach(dep_boost_type_erasure IN LISTS _BOOST_TYPE_ERASURE_DEPS) + set(_BOOST_QUIET) + if(boost_type_erasure_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_type_erasure_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_type_erasure} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::type_erasure APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_type_erasure}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_type_erasure}_FOUND) + set(boost_type_erasure_FOUND 0) + set(boost_type_erasure_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_type_erasure}, has not been found.") + unset(_BOOST_TYPE_ERASURE_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_TYPE_ERASURE_DEPS) diff --git a/winx64/lib/boost/cmake/boost_type_erasure-1.70.0/libboost_type_erasure-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_type_erasure-1.70.0/libboost_type_erasure-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..af996cd8 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_type_erasure-1.70.0/libboost_type_erasure-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_type_erasure-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_type_erasure-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_type_erasure-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_type_erasure-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_type_erasure-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_type_erasure-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_type_erasure-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_type_erasure-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_type_erasure-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_type_erasure-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::type_erasure APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::type_erasure PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_type_erasure-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::type_erasure PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_TYPE_ERASURE_DYN_LINK" + ) + +list(APPEND _BOOST_TYPE_ERASURE_DEPS chrono system thread headers) diff --git a/winx64/lib/boost/cmake/boost_type_erasure-1.70.0/libboost_type_erasure-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_type_erasure-1.70.0/libboost_type_erasure-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..e12c6130 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_type_erasure-1.70.0/libboost_type_erasure-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_type_erasure-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_type_erasure-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_type_erasure-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_type_erasure-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_type_erasure-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_type_erasure-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_type_erasure-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_type_erasure-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_type_erasure-vc142-mt-x64-1_70.lib") + +# Target file name: boost_type_erasure-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::type_erasure APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::type_erasure PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_type_erasure-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::type_erasure PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_TYPE_ERASURE_DYN_LINK" + ) + +list(APPEND _BOOST_TYPE_ERASURE_DEPS chrono system thread headers) diff --git a/winx64/lib/boost/cmake/boost_unit_test_framework-1.70.0/boost_unit_test_framework-config-version.cmake b/winx64/lib/boost/cmake/boost_unit_test_framework-1.70.0/boost_unit_test_framework-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_unit_test_framework-1.70.0/boost_unit_test_framework-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_unit_test_framework-1.70.0/boost_unit_test_framework-config.cmake b/winx64/lib/boost/cmake/boost_unit_test_framework-1.70.0/boost_unit_test_framework-config.cmake new file mode 100644 index 00000000..702665e4 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_unit_test_framework-1.70.0/boost_unit_test_framework-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::unit_test_framework) + return() +endif() + +message(STATUS "Found boost_unit_test_framework ${boost_unit_test_framework_VERSION} at ${boost_unit_test_framework_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::unit_test_framework +add_library(Boost::unit_test_framework UNKNOWN IMPORTED) + +set_target_properties(Boost::unit_test_framework PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_unit_test_framework-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_unit_test_framework-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::unit_test_framework IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_unit_test_framework variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_unit_test_framework_FOUND 0) + set(boost_unit_test_framework_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_UNIT_TEST_FRAMEWORK_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_UNIT_TEST_FRAMEWORK_DEPS) + list(REMOVE_DUPLICATES _BOOST_UNIT_TEST_FRAMEWORK_DEPS) + message(STATUS "Adding boost_unit_test_framework dependencies: ${_BOOST_UNIT_TEST_FRAMEWORK_DEPS}") +endif() + +foreach(dep_boost_unit_test_framework IN LISTS _BOOST_UNIT_TEST_FRAMEWORK_DEPS) + set(_BOOST_QUIET) + if(boost_unit_test_framework_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_unit_test_framework_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_unit_test_framework} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::unit_test_framework APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_unit_test_framework}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_unit_test_framework}_FOUND) + set(boost_unit_test_framework_FOUND 0) + set(boost_unit_test_framework_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_unit_test_framework}, has not been found.") + unset(_BOOST_UNIT_TEST_FRAMEWORK_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_UNIT_TEST_FRAMEWORK_DEPS) diff --git a/winx64/lib/boost/cmake/boost_unit_test_framework-1.70.0/libboost_unit_test_framework-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_unit_test_framework-1.70.0/libboost_unit_test_framework-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..e2e928ff --- /dev/null +++ b/winx64/lib/boost/cmake/boost_unit_test_framework-1.70.0/libboost_unit_test_framework-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_unit_test_framework-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_unit_test_framework-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_unit_test_framework-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_unit_test_framework-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_unit_test_framework-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_unit_test_framework-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_unit_test_framework-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_unit_test_framework-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_unit_test_framework-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_unit_test_framework-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::unit_test_framework APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::unit_test_framework PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_unit_test_framework-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::unit_test_framework PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_UNIT_TEST_FRAMEWORK_DYN_LINK" + ) + +list(APPEND _BOOST_UNIT_TEST_FRAMEWORK_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_unit_test_framework-1.70.0/libboost_unit_test_framework-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_unit_test_framework-1.70.0/libboost_unit_test_framework-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..6cb8dbc1 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_unit_test_framework-1.70.0/libboost_unit_test_framework-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_unit_test_framework-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_unit_test_framework-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_unit_test_framework-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_unit_test_framework-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_unit_test_framework-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_unit_test_framework-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_unit_test_framework-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_unit_test_framework-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_unit_test_framework-vc142-mt-x64-1_70.lib") + +# Target file name: boost_unit_test_framework-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::unit_test_framework APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::unit_test_framework PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_unit_test_framework-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::unit_test_framework PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_UNIT_TEST_FRAMEWORK_DYN_LINK" + ) + +list(APPEND _BOOST_UNIT_TEST_FRAMEWORK_DEPS headers) diff --git a/winx64/lib/boost/cmake/boost_wave-1.70.0/boost_wave-config-version.cmake b/winx64/lib/boost/cmake/boost_wave-1.70.0/boost_wave-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_wave-1.70.0/boost_wave-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_wave-1.70.0/boost_wave-config.cmake b/winx64/lib/boost/cmake/boost_wave-1.70.0/boost_wave-config.cmake new file mode 100644 index 00000000..48e254a2 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_wave-1.70.0/boost_wave-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::wave) + return() +endif() + +message(STATUS "Found boost_wave ${boost_wave_VERSION} at ${boost_wave_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::wave +add_library(Boost::wave UNKNOWN IMPORTED) + +set_target_properties(Boost::wave PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_wave-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_wave-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::wave IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_wave variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_wave_FOUND 0) + set(boost_wave_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_WAVE_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_WAVE_DEPS) + list(REMOVE_DUPLICATES _BOOST_WAVE_DEPS) + message(STATUS "Adding boost_wave dependencies: ${_BOOST_WAVE_DEPS}") +endif() + +foreach(dep_boost_wave IN LISTS _BOOST_WAVE_DEPS) + set(_BOOST_QUIET) + if(boost_wave_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_wave_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_wave} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::wave APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_wave}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_wave}_FOUND) + set(boost_wave_FOUND 0) + set(boost_wave_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_wave}, has not been found.") + unset(_BOOST_WAVE_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_WAVE_DEPS) diff --git a/winx64/lib/boost/cmake/boost_wave-1.70.0/libboost_wave-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_wave-1.70.0/libboost_wave-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..55ca6cad --- /dev/null +++ b/winx64/lib/boost/cmake/boost_wave-1.70.0/libboost_wave-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_wave-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_wave-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_wave-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_wave-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_wave-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_wave-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_wave-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_wave-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_wave-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_wave-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::wave APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::wave PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_wave-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::wave PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_WAVE_DYN_LINK" + ) + +list(APPEND _BOOST_WAVE_DEPS chrono date_time filesystem thread headers) diff --git a/winx64/lib/boost/cmake/boost_wave-1.70.0/libboost_wave-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_wave-1.70.0/libboost_wave-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..8b82d98e --- /dev/null +++ b/winx64/lib/boost/cmake/boost_wave-1.70.0/libboost_wave-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_wave-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_wave-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_wave-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_wave-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_wave-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_wave-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_wave-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_wave-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_wave-vc142-mt-x64-1_70.lib") + +# Target file name: boost_wave-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::wave APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::wave PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_wave-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::wave PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_WAVE_DYN_LINK" + ) + +list(APPEND _BOOST_WAVE_DEPS chrono date_time filesystem thread headers) diff --git a/winx64/lib/boost/cmake/boost_wserialization-1.70.0/boost_wserialization-config-version.cmake b/winx64/lib/boost/cmake/boost_wserialization-1.70.0/boost_wserialization-config-version.cmake new file mode 100644 index 00000000..114bba07 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_wserialization-1.70.0/boost_wserialization-config-version.cmake @@ -0,0 +1,12 @@ +# Generated by Boost 1.70.0 + +set(PACKAGE_VERSION 1.70.0) + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/winx64/lib/boost/cmake/boost_wserialization-1.70.0/boost_wserialization-config.cmake b/winx64/lib/boost/cmake/boost_wserialization-1.70.0/boost_wserialization-config.cmake new file mode 100644 index 00000000..6f7e2f93 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_wserialization-1.70.0/boost_wserialization-config.cmake @@ -0,0 +1,98 @@ +# Generated by Boost 1.70.0 + +if(TARGET Boost::wserialization) + return() +endif() + +message(STATUS "Found boost_wserialization ${boost_wserialization_VERSION} at ${boost_wserialization_DIR}") + +# Compute the include and library directories relative to this file. +get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) +get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../include/boost-1_70/" ABSOLUTE) +get_filename_component(_BOOST_LIBDIR "${_BOOST_CMAKEDIR}/../" ABSOLUTE) + +# Create imported target Boost::wserialization +add_library(Boost::wserialization UNKNOWN IMPORTED) + +set_target_properties(Boost::wserialization PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_BOOST_INCLUDEDIR}" + INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB" +) + +include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-1.70.0.cmake) + +if(Boost_DEBUG) + message(STATUS "Scanning ${CMAKE_CURRENT_LIST_DIR}/libboost_wserialization-variant*.cmake") +endif() + +file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_wserialization-variant*.cmake") + +macro(_BOOST_SKIPPED fname reason) + if(Boost_DEBUG) + message(STATUS " ... skipped ${fname} (${reason})") + endif() + list(APPEND __boost_skipped "${fname} (${reason})") +endmacro() + +foreach(f IN LISTS __boost_variants) + if(Boost_DEBUG) + message(STATUS " Including ${f}") + endif() + include(${f}) +endforeach() + +unset(_BOOST_LIBDIR) +unset(_BOOST_INCLUDEDIR) +unset(_BOOST_CMAKEDIR) + +get_target_property(__boost_configs Boost::wserialization IMPORTED_CONFIGURATIONS) + +if(__boost_variants AND NOT __boost_configs) + message(STATUS "No suitable boost_wserialization variant has been identified!") + if(NOT Boost_DEBUG) + foreach(s IN LISTS __boost_skipped) + message(STATUS " ${s}") + endforeach() + endif() + set(boost_wserialization_FOUND 0) + set(boost_wserialization_NOT_FOUND_MESSAGE "No suitable build variant has been found.") + unset(__boost_skipped) + unset(__boost_configs) + unset(__boost_variants) + unset(_BOOST_WSERIALIZATION_DEPS) + return() +endif() + +unset(__boost_skipped) +unset(__boost_configs) +unset(__boost_variants) + +if(_BOOST_WSERIALIZATION_DEPS) + list(REMOVE_DUPLICATES _BOOST_WSERIALIZATION_DEPS) + message(STATUS "Adding boost_wserialization dependencies: ${_BOOST_WSERIALIZATION_DEPS}") +endif() + +foreach(dep_boost_wserialization IN LISTS _BOOST_WSERIALIZATION_DEPS) + set(_BOOST_QUIET) + if(boost_wserialization_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + set(_BOOST_REQUIRED) + if(boost_wserialization_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + find_package(boost_${dep_boost_wserialization} 1.70.0 EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + set_property(TARGET Boost::wserialization APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_boost_wserialization}) + unset(_BOOST_QUIET) + unset(_BOOST_REQUIRED) + unset(_BOOST_CMAKEDIR) + if(NOT boost_${dep_boost_wserialization}_FOUND) + set(boost_wserialization_FOUND 0) + set(boost_wserialization_NOT_FOUND_MESSAGE "A required dependency, boost_${dep_boost_wserialization}, has not been found.") + unset(_BOOST_WSERIALIZATION_DEPS) + return() + endif() +endforeach() + +unset(_BOOST_WSERIALIZATION_DEPS) diff --git a/winx64/lib/boost/cmake/boost_wserialization-1.70.0/libboost_wserialization-variant-vc142-mt-gd-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_wserialization-1.70.0/libboost_wserialization-variant-vc142-mt-gd-x64-1_70-shared.cmake new file mode 100644 index 00000000..67216775 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_wserialization-1.70.0/libboost_wserialization-variant-vc142-mt-gd-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_wserialization-vc142-mt-gd-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_wserialization-vc142-mt-gd-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_wserialization-vc142-mt-gd-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_wserialization-vc142-mt-gd-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_wserialization-vc142-mt-gd-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_wserialization-vc142-mt-gd-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=on + +if(NOT "${Boost_USE_DEBUG_RUNTIME}" STREQUAL "" AND NOT Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_wserialization-vc142-mt-gd-x64-1_70.lib" "debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=debug + +if(NOT "${Boost_USE_DEBUG_LIBS}" STREQUAL "" AND NOT Boost_USE_DEBUG_LIBS) + _BOOST_SKIPPED("boost_wserialization-vc142-mt-gd-x64-1_70.lib" "debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}") + return() +endif() + +message(STATUS " boost_wserialization-vc142-mt-gd-x64-1_70.lib") + +# Target file name: boost_wserialization-vc142-mt-gd-x64-1_70.lib +set_property(TARGET Boost::wserialization APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) +set_target_properties(Boost::wserialization PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG CXX + IMPORTED_LOCATION_DEBUG "${_BOOST_LIBDIR}/boost_wserialization-vc142-mt-gd-x64-1_70.lib" + ) + +set_target_properties(Boost::wserialization PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_WSERIALIZATION_DYN_LINK" + ) + +list(APPEND _BOOST_WSERIALIZATION_DEPS serialization headers) diff --git a/winx64/lib/boost/cmake/boost_wserialization-1.70.0/libboost_wserialization-variant-vc142-mt-x64-1_70-shared.cmake b/winx64/lib/boost/cmake/boost_wserialization-1.70.0/libboost_wserialization-variant-vc142-mt-x64-1_70-shared.cmake new file mode 100644 index 00000000..a9db93f9 --- /dev/null +++ b/winx64/lib/boost/cmake/boost_wserialization-1.70.0/libboost_wserialization-variant-vc142-mt-x64-1_70-shared.cmake @@ -0,0 +1,72 @@ +# Generated by Boost 1.70.0 + +# address-model=64 + +if(CMAKE_SIZEOF_VOID_P EQUAL 4) + _BOOST_SKIPPED("boost_wserialization-vc142-mt-x64-1_70.lib" "64 bit, need 32") + return() +endif() + +# layout=versioned + +# toolset=vc142 + +if(Boost_COMPILER AND NOT Boost_COMPILER STREQUAL "vc142") + _BOOST_SKIPPED("boost_wserialization-vc142-mt-x64-1_70.lib" "vc142, Boost_COMPILER=${Boost_COMPILER}") + return() +endif() + +if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL "vc142") + _BOOST_SKIPPED("boost_wserialization-vc142-mt-x64-1_70.lib" "vc142, detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override") + return() +endif() + +# link=shared + +if(NOT "${Boost_USE_STATIC_LIBS}" STREQUAL "" AND Boost_USE_STATIC_LIBS) + _BOOST_SKIPPED("boost_wserialization-vc142-mt-x64-1_70.lib" "shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}") + return() +endif() + +if(NOT BUILD_SHARED_LIBS) + _BOOST_SKIPPED("boost_wserialization-vc142-mt-x64-1_70.lib" "shared, BUILD_SHARED_LIBS not ON, set Boost_USE_STATIC_LIBS=OFF to override") + return() +endif() + +# runtime-link=shared + +if(Boost_USE_STATIC_RUNTIME) + _BOOST_SKIPPED("boost_wserialization-vc142-mt-x64-1_70.lib" "shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}") + return() +endif() + +# runtime-debugging=off + +if(Boost_USE_DEBUG_RUNTIME) + _BOOST_SKIPPED("boost_wserialization-vc142-mt-x64-1_70.lib" "release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}") + return() +endif() + +# threading=multi + +# variant=release + +if(NOT "${Boost_USE_RELEASE_LIBS}" STREQUAL "" AND NOT Boost_USE_RELEASE_LIBS) + _BOOST_SKIPPED("boost_wserialization-vc142-mt-x64-1_70.lib" "release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}") + return() +endif() + +message(STATUS " boost_wserialization-vc142-mt-x64-1_70.lib") + +# Target file name: boost_wserialization-vc142-mt-x64-1_70.lib +set_property(TARGET Boost::wserialization APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(Boost::wserialization PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE CXX + IMPORTED_LOCATION_RELEASE "${_BOOST_LIBDIR}/boost_wserialization-vc142-mt-x64-1_70.lib" + ) + +set_target_properties(Boost::wserialization PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "BOOST_WSERIALIZATION_DYN_LINK" + ) + +list(APPEND _BOOST_WSERIALIZATION_DEPS serialization headers) diff --git a/winx64/lib/google/benchmark/benchmark.lib b/winx64/lib/google/benchmark/benchmark.lib index 1f36e6abd6a9b5d0915848ed25c8ae061280a39d..ae55db0f46aa22e2eb8388b3afd7be2093d91200 100644 GIT binary patch delta 764 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�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 ~+?*}$jQsYs>E2f!yf5Tau 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 z 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�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

T6WUuqPuaF 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 l@GP5ZWc|jxUO+w*bE|V6lqx& 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

LVE9-M*}G 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

{t+kkwPOZXO|7?18Lj0$H9qf22_CfvjgCi|z>8 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

TMN6V(NTU+6q4F%R5Z=NJ_U-yw5NGrSu#` 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�p^QGs)JW!CR8LgB~5 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 dxG1M+lHe2 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 z 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

cgypI4zMayS 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%0D%fY{?zs*zXWxz-BFosGLoBflk(fF}rO_cOt;-7D zS>zz!5NyXIBBJQBM=V28zbCQ8GGKng_zIMuVQ?UrhOq+Yfnog7!xdV5@U(c22gVI2N5%h?B|DZ>F1s;z)c@>aG^b5dBz)gVU(`$e#24bi?(PMsMfkXlvP(H9&TGF;J`m~G z;p#v%Q&7)47o#^I#{s_$=GKj?K)Eo`IJpG0BXFV{%Q-sOi*VA+I&|^W*5V`gI_%l; zCqXlAp4@qYHDC%Xif7m1#CqfLgQZDhEZs#GF)WfyBFfKjj=XL=|E^n3FhH4w#I19=wZyPyLD`81uhYAVVbjCsV)3AU6~(39Z6!ub4Mb_1z!9bWcS>v}$``EM zye{pSP9&BkhqlyjVwpI!)b*!bkyyw|jF?JHX_T1Kyp7zJkJ8$g_E)gR;R4XGli1(% zd^u}a!!QyFf0ZX2$Zy@9Q{w169Ia_wqj>?8c))04pdE_yT$~@EfaZ|C>B@Ljd1GxN zRvE92qh3k-y_s?GSryeY%j;)k9%-zQ?xzTzbYF?J9){Hv#z-`pQM>R%tXy?>iYd>f zAWN7XtX)|C;8Nhf?5a~mKL+G`eFDgMpajvSwy24P=mrgqoKe~vmiCUN?IiJh9}k?; zfp|Ux56qEHJUX0ka(P8O5yPVQH1WE(ns9SMJ3EpT$U7rb1Tr(6Rv`00_OyGvS$9Pw zgKdaLEaW_aaw(16P})XIW38mLog|VU;DN!QfUoCT48QGWj`l?|X?A5iR^HGMuTONx zNQNY<7}rQ%IxMYBUIbZXvOQLE>%p#-5DPg^;supPZYYf+Q5r>}GTso}l%@$+qaMe)yw@FtFY6<14x`te$2Bos0>a2NJL>?G2w-LAdHJh=rW{kXC6A z87$54d7m!LD!4e)*T1YAug_)|T}GB?6;xQZ5YuM3(%1}Fn%_LpG)i5B%4%$?le=&e zsxQ`FU0;a0d^g;g$zE4Xn9}CH$)85Ad@e#{%Wb+M{uCoVd_OdFN z?Rs4md>XK(^V!0m0!-KL)&kSDyYqnQ+TELh>Dt}9fL$tgJP7Ox!5#&sYj@WJ(^bKL z2DU)1ehy4?-V27LIdk_#&3Pm+&G`gin)7&I3+3L^fN9RlfL$ZB+kt6*PXg2YRs+-g zxXFO#_ZwiE-yeZpEB9^%run%MXB|@oLYgmk(faeBfV01a;_IQ|OIE+THb_U_Bkm)7 z&~0~@g6dg9$|`m$NS?Xf-cMrETOF(Uq+5*qE!>Xuhy3QO4OTUe8~Rc+L*P0< zzRvZ4Xc#&0l=6k46@ahc_YHu*0)&5Rj^Q~s0aB(n1O62dexdm*z&imC#B=Tf90qtd z;2gkv0G9*a3wQ(IeSnVw-VgXX-~)i406qjrefT!uQFz{)2f0-*v5@mWmiAkNg&cl6 zK+}Z{7IL`a-P~(wV=OIVX`Dl-=}Ik)`?)Et%+hKtjc?7XA!nhbEw(g&eHUhZ*Bb@( z^hd!vr&;UQ!bQQym{&?pB6)q3^o~tXR!d!;WLjftIm!}&yOSLJL&(TawN`>w>xZ-juXncb+ah^W_fAlcUOlRe% zoqE^hWh$A9=H`jMCR`fP&_P5@K?(Q{lni6?VI<&~js7OSR~;ZFGY1eEJN1Bk*9JgJ z=wINFN{Cp?WGbqh6FL(W-Y1*V z`n$C!V!AX(XIE*TO%c;+dP>_2jw!9XQnD2ejWj8WA0y-7QdBx@Tj8`Lia@2a!<<^;^v(p3 zx~Pcd4^}vz!EN!KwgCB( z8`{5}F6iu?WC2`}rR*oB6}r+`p)0K$?6-dB_5FgJ4}Jlb3Pc;FeLjuJBIb~gYCFHX zlU$`^nucLFcOUddx}Gn9MQ-<`Ij4g|vfcYlx1ZE}hy&3`eZgb5n zg3A z?H#02+V<%B8$PbLAbA0_=cf*{(EH`qU?LYTOr{`CKyL_i+Ko{(%8YyL!%x*HSBa*vpDPif?y(mc9{UVuDw3G{Du`mCjb<*9<@ zdH31A3O5c9DAf_5VH&%GaX4pgfGzHp;)V-Ik>+5{LmkS)wR+^@)uH~N%~6`JgiJrw z$1()x|7^&iHRAKgfGpe30O=&>TDA}iIk#EbT?X?hRgx`3yUmt)?Xcw{RSrBh&9Q^n z@^izMmknE9F>IM<*+NX&qBOEaX&!B9x7W$tWf6QUYT4WapJ>QkL&>JCrVDUk1tQ)Y zXB@DLeO1S`pqv%ZwKG7Y1LGjWkYF2OTw|4dwhiOWWepYOwdM6;nZ!{uYdVmIM13Q- zPB}sb6~o9N^>Ake(A$@xay89g)j8_UZ8lCP=F^idF{BiEwabuu+hNFKxGA_-jF%yU zgA9=|_=;ML!V6#Yn_lUs6lH;7bJ8*Fe#&gQA;5 z`!0oHP?RjH(WwEhP>b%cOd-~Nri77KyG;3ZH<@x;P>arr&uPSbr+5~ba(No2e8)0{ zSofJim(ng%el8v+)z`3bu($(X^JIW2+ubC~g1vbfY2u)$S)bW(lUR3|c!c`yoJDPo zdkQPR`UdiLw&t!01GLNBb74+74yW4g1$N~)=K-trx%9h1IVZs88qny{D{#Io&jDgK zR&XbGS5%kRXUD5wIna7_?@YS`(b=J1UfNL?;Y~E|Bo@MVY_LO%(D(*Q>uz1hsJLAg zE*8e6>gOMD(-Q&4c|F;;!De%aC#x&3sn-O>gAYE~6(MkUr>mA2&VH0i(wTdc}75SBtXXC=Nul7dlOdP3!;psTIF-xNG2~Lq5MteDNQWkKeLD$Ag?SA#r}8fm#@3b7r;ltt|@rL%sA1!i??zk<+Y?zPMy)_rDl z*y?|z9cC;+0nY4z8MmZmMz+kQ(9aE&g$#MrGK5(78PcJ4G`GW$&f<|Pf($ux_UuG# z7M7xA#aeC%Sc@=Zfn^A>?lS}ptM((-&(VfS*Y@emT)x^Hx$0qt*DGUK51z;hJAQ)* z-4no5JH9|UHGC(wgP3uBJIv_JTpkH9Bi>XIuS?X-o|P4D?Ah1H4KRZYSz#GMEaXJ^ zaqVzms{9s8Xh|>r#oA>|j^_lRq2O)~#;VYpdLFSHV4vV*Jz5jk^$V6N`}Kwa-%7q^ z+E!dy<@{OYGixfsHM43GHRZL~KCeDpHM>511O`6hM+dWvGr%+%t=j{$(1AFN3>oB~RstB==^AOS~?Gb~u!=>o5J&`~@GGW+6lbI^a z!K^LkRO!-l+4K}BO9O1;C^37O+0LDj>^3P&%cpVf8t;?At=gJ68oj5)6K)>?H+>$$ zKQ1@12T4;+!ZXgOJgqT(3K?;d3Uiw6m?PE>D@0+w%F}N7q{?uElpF`6C(b2eA}%i& zkDeB&M+!hAFWB{dx^BWlHu-H_;mRQz;JDt-$6AQ9%t7UOgW z75^EA)(hK;fEki*8nFEZn+|Lc*pS1eEGCx(Fja(0Z91BiRn;=GQ83{)wJg+vu8p+5LZfyzpi zQqxf>HQhE~M~9j2OM`JCQAvJpnUHxlV~2uh>z{o3q~A+|i!}1a1D!f`6|y-2CkbMS zmy_I{fMqy6Aa!zSSDbs{Jfjn-pHv;Mm|>~{sT3i85j*ZpbGQ?W`G|4(fgmXuIWQ4j zfH!i$J!0yGmaD`<4*90E`wW&1vo7><*Y)T7W6AV(S#*DE(Te#knzUZfUbtXMM~hZF zz8IL^L5o&97FR9lTsv;TwTS_VHiJfcxddlPClZB2pVU}eyS-*CGs0n)_GktcwBx~$ zCd)MhumNx=Aj>!mkapaR^MdWPGYAW4G>cs)^yZGO-CC( zHtgCkv98##${G(eHk`64`GSwyaFO*^A)sAryEK0j$r~2t-v`Jl%#A>Xu8%HRnEw>0 zV^>jM_+h|z2=QUS@D?EOFbne;2t`{LYA!8py_rgBX8ZDFYLn_kr^i-%OYTZ1<+FjU z8=|dC<-yURFYALAtZ&0}bhGj)66}=W_aO(+(=PoU&_<7*fYy#UuQsGiJqpM7h5SbMCI3$E z(F6XmS6`DVzhu%V+0==gKMhrlX$x}}IT@@gCK~GE6*9YZGe|4;W~w-=Ow)9t|BK>u z50*O$|3_au#t@-u&3uoO zjU7MkoD=iC6H_9^XP=nQNj_$8x=3*Z-4&4tlG(4SgEl0hQDMmXMlAYc{XSiovPruhc+Tq6ZyA*{%9oY9ApcA3F+^E6FIP1AH- z-~Tf7x{nhvSjbrl>^Ql1xxqrt>4>5<-B|_;IkSLix_X0!oW(ZXQkyPa8q!<|AGAHmgjBuc1 zMCJm>DhD_i%tp%@(zbO!v+AL(_jv5G!Y5(_7>{ zQ04%lmXzh^EN=q8sXP1PEme1jX*{H~`^?oq2V8{g&BHZYZE({Uw0R0yVXQ8|6=ftg z04m^iHU&=N8}3%v1@=;r?zJbXPhk{s13rjOJ||%A;4?g3VoH{4 z(wqveP#A}=L+~9>0_1xZ1JZ$i2WRl(mlO^~Hvp&SD9b8CT)$t5dGheB2RM7@@wsUZ zxP5(5D&kl0Y^sRFLQ+L5jgnQ`A8b16k<#eIjtjd^j9A)GX${K|ZJlT|P`wGAsje63 zc=68~xHH`Bu1ZiJaU^KHeJXe#C^Z2eL7QWwdNfY14l>7fb9{DfhW^B(cw{!~8?Q>S zd_k2u3tOtQ%##6G?z7Dn>wmQ(A{KI<#xF%TaRAj^iECw&32O82OG~r z_tVlQ+fql}PdGr*=wUe(CD~mheE~3j<}8PP)R`eztED{vO!uXJ3E0g(-Ppiu0o`~5 zv_o*digSAQbb~%jl*21$Ji;7qWfQ?~k8%Vy;l*lEE~g43(JA7(WS)}RD|M(Er+e@{ zs6!z@a)?JQbcXLX6Oc9aEWk;Ca{v*~IQ4*+12zEO2$%qT3~(MGwW$e^e3=hO_waYC zd&G2cyV5qBs{!3BWj)mo*F5!98SAMc)>Bro$~=lCno>=@D2uix70abW(1Rj%lxRv* zq0=})Dnd~}Uc$2B%i!@6eLb!M{xkyeffM*Jr*|g za4Ww0^??{j8v5uUF6s#l90^RjytV-R()x_Q)Fj(NR92&%TUI923 z@CHEMb2A_!Y3CNedca!&e*}03Ao+7A;Lff{wfSNg+0BY{59otdq{P%xl(rdfrL<2C z)`$Cf7+M0Zc1)P}HW@5^MVf~@P?1_CWmpcAG!?1O|L<@cET9dd%*l|m`!-nMvq2jt zWMqR)QWMYy??gKw8I=AOl;G|#UK{*H_HA%lO=4zw-Oez=27jR1nH?^GJ<$%Y0;C!z0cnSe0cnRz0BMIy0cnTJ0BMI0<7^4^NECoZeH?((b8L4&>)N3*v+IV)8mo`B zLt?rUpVFumN~85D?Mq9e^&KCk9bRUz^md3Onc5*LmDFwZ_@UII;~8Kz^rh;1_Q2Sh z8z5-J%esiA&B4H*dX1!}KL<*%wwVkXV}MCGZ_B=>%c9h-N5O8ZI$7JeHAxiZbPtxD zG0m=ksBGl82b#$Dxfk#l!21A?2fQEfM8F3C`K}KEQUm@0x2T?&SjgFAY4ia~vki|( z$L;D;+_42GIy;i>>iy7rv1T_C8AsU5U1(b~yic~R?-Ajqwyl4FR5Jp>E8Esb;AETg z)+`E_D~&~{5oDZtxFH1j;Rzua9FXM<4hkSIZC5f-EflK$VVQ%Coy#CBzQ^T&e3vT# z>2B`9dCAUlH+<=?dl`ps{HawkV!G+L(kL~hZM5lLwzMz||Aa6Vlpoq5mfp>f(e1aJ z+xu!%dTmC?i;zI$=t2g-sIA+=)Mz*#w-2ZUx?F9)k2;mAZFabBSs#h5t44YD5RwUHzTAUwcQ9JRWpbnJNZCVACliMG$rmM=6`1a(Q`i6wGuF8_c5=^KQ z8sBdpoCt)AYpSZG1E~nVkAYS*IBu+$WK?T!bgT-WvgaZBK#liy4SK&fdK|9vd!rKo z`Mpu{%l+Qy=T@_b>9(;-qwXlpy037$DrOBI>uC(Na9`%SoYyg9bF-=uQ34%CF* z41Lg*ADQcME^hrmvU{ZKH<FKoa)IWa;(N*z7!7L9tJes#psyvCcFVx&c%s?-m*a-+f5Y!Gq3Iv;lI~)6Kt@13UWFF3D8B&YlQsd)1$+%~ zA>iwP%K?80_$$D-0Jj3Z1NbrEuK?+$@5VWQCsn8vUN`DfsZjTX32W3wEadzHmN=w@U?8Gpi@sYvOSG-69-`QR}yA#I?8D_!pa+@r3 zY_H>u@5m18sZcRG-g5!zc+Uf*2g9xKO|Z_~>ginaXrDE{7{mAX9ba3325Kxbg(^ z%x$4%(px7MFU+UaMVBqiUj$gvy0HYPl5WbsjhAczOxB#6K}$3bUMfHM0uD0UBo~&- zokGi9sYLX&U&$H)F&b-x^3`FaloZTwGjD5oPN0+cCTD4oWUp_-kF9%t#agHzw@FiVZm}s+Ta@{3HV@Mxtl^u>$XP`8D0&dNs_0DOmnJa-W*^zpwL2wk0tpO1g=2;jDXH8oOlDDSyR*e0T#S$$kYfze2`WlpV(|3~zDc?Gr zc+B`FTX}kOF2>cTkUI{(XB(g=IM=Bj7xg_xQY5Qd-DY_)?=lBv#maUs{JzX3A_k}Y zdH_xX+y#(t(G!q`%mI8BuovKgc*3rLM*{8!cr9QE@GihT0PhFf6Od)y3vex9F5stt zeF6F6_uve+at{S959a|mJ;!!;s$mPLnz`MmmD?*PI}=&Xd`}^P?tpR*5!Em7Kga#$ z8^zvcYaC)B2MbmlrBNT0c9x}0v9yJjw%F3XV`;Q>y|>NM)>~Q~^e7T$K#?$5$mtKg zdPZmm7%Xj&5nVPhs*X{H45;Bl(P-jJI|bFEnE(=zC&(XsFIauQ%-RX(z7UDzz5oZVJ4}YFmW+*{ zHGy&3i6{u;t{mq~VCr6TfKh?|fHSyV%$1-O;GB>11NqrPSm8J;y&M}4O<3*J0cM~EdG*Z@A7 zA`wqmGqw@WOtg)WCd{YiUiC6=<}cikKM3E)L%wCc!r?;MaT^R}t3i9l`fF*#B1J(jQ0k{zXx~+;8TF#0sJ8#!Kc_z~brz~LyzYQR$f*8s9r{UgBh0G|WA67YGzn*o0e_%PrLfR6&U0e%;7Eg--8 z^%FqEa?Vcy_W^tnkn;T*Am9HUoWU@NyvoBl0H^2J?(jksA&X(q&MRj}bGRK}81zqD zV-O2Ddq4(CWBWmA2Ur@dP-(*~jV%B}gPg{O8Qv5b409TQ-5|8h21^^>n22Sfo!aZ4 ztB@|np~TVa;){y#3O2w&FRgUadV-tp`}ztN<_pc8{B}C)BbOpW zA*~y?AP=WyTaUyL-$i&_gi_KP$B2nZmb-EjYXjyWw*~LeQ5DRy+da{THx~ijt8p(u z5q{~&3mWlJWZ>j3;xtG6D#foJxr-jhuhn5((5%tgZpII``3X&%pQye5F@9*9pBN7o zh&U^ZCO)=Fst#FpVsBf{1jv@qNgTisFv8d3Z<}Zvezf18uozeQEP;4d)c=J0co|P1 z^ge;V?GqflwmyLv59UamJq@>+-vaT3Qa@{+;$=L6&`BK3aoOH-hb~^R59w_mLW~C= zLYxnI#QYYBhfMWOr#8JEct{)XOXPE)Y$~6`-dZw@bo(S4n!XM(9()pUK53QtEf7yC zqi{;uX^%K1n#W%{@`hji?XNQT8j@>DxhB6N?lr{loDq)j#!Awopwji_PPS)gHWekp zto$*i0Qk0COB-@Ud@o-TZCQ&SoAj-uh%Id>9j~^m1)^6zoPbRHyxPPU1g{8$3EnU|3{p_7=$JNb%O$Iu$d$L(SH;U#|6<{E0W zb@wG>^Kl0gA!~4ngCoGg#gHM5uNYTpl8l4N9^T4F+2^Dc87_DE{1wJ%b0 zen*Zo5t!2If!!^%?^zmSGNtu}Z_#w4fX$b5b1m&bU<-vd262W?^FIyPZc>8zz*?oV z?M90|08I1y39tv`-mfg}N`!k43+;7an%{4MX?{SYg?K)m8l1iT7hF66*Z&B}jf~8( zy`ACMT}OHp$mZ0;jRdJufk=>A!JaHcf)i_INhC;xaY^M(GPFdUDb!S_)W_qM^CclQ z_-e#>xVLn6gKrRN2rkXUiNozy^H2KS)tCHXaOz`C&XKICKuyM{Op8xPxtK{AsB83b zr(jny8J&uP_Km}(2otJe@us?ZDOm*Meo7vXl>8KIsXyh+y2Sh#wic28IB#DZ4gW3( z8V6(GI=~||r%6rdLDa#xV+;jb_!LSG40Hb>H}!HpGhr{oONPB6B<6K~#Mk>f4=>H% zmzwmA=J&VF@B5_`y_|#0{r@q)565pAoM&q$Pcmgj=+=c!F^+~RJ2{44g>E_OTQwjB zQUiDe;KhLV0?q_{3UC(Si-5BM-vF!!q(l;cjF%e$83)e=?1O^N17tT*6X3gmmjG@7 zycCdMkG&i)2W7beaBsk7z%bxdfX4tX1dISK0z4h?8o=`b7Xw}nxCHQ4z*aztV=3V0 zfXe_^;yteeTn~6X;9G#p0cle=05bl*3ujYcY;Z?)@4@)G9DRS?Wy~b<{<_PUNhj&o zUB;mqbmV^BWgPZ@pp3)+50r6424y@7erFd%6*}HeEadD4zp1o71`9bOEN!%e@i>U(gs=DNJ~4;(oV6o(=2U@r7?=p_n^Pm=WV^Iiq1|S%kW;iP=6eWjjKR=0 z2lgAGZ8jJ_W40T5;Dxr(U>&vBmo+oh6dw^m z-l>NhhL_@!Ck$t7NVmaQ@Z>QtEG(+T4@P%|q?&`}W^{-Dc7Sp^dK>vJ)qs4T8q@oD zKk&-~(GRtT0vdqRb8L6-qx<4r4uMbzzBboEs<$K-a=veAl%CRFwzN%_mJfe;QkeI$ znMy3Z2OtmIpKfdwI7|iZjkF#GE?fg&g_}EDru!gL)dtjzo!59DnKR6f+L>c}8+!Am z&2B`ChHIe1Zk|5qjso(vJxXR945YgU%NSIt3!y?R_eFq51I7R;rccmBS1}O_Ijbz~ zIfIe?ozF9sz6os4(9(7+8H;`j`Cw!jx;ofpQMigSh|XxkPB9$QYR&0Ea*<2^kCNB? z%N)^B{dzR+vUP^LsRPm$c<}J}p+6hDY7Vnp_6_`XR-@)}bcaH8i8l6p8M`&WONDuD z>}n<~S%%8UrZ@X5=^aDc(64ke|K={5!6~P>Gm^)|cq_aC`aAd(jltgu_873n{djdF zus;gz7r?d%#=*3$g1rZqnpxO`vOg|H zlNZNfV~1Enbxl)hi@Vd48YNg3v@~{n|R0zK=Fmzm(?L96A90^)2U@;&%4VupfoCEkV z;9S7Z0WSgE3;94BWx(t*K+5EDK>CZjpc(2fh=rV7TvOUU1`9a{TN*V;(@}#o-B3$A z(bA|9nvPvkn(hKi^ZOqd`aqbMGaUPqIiD$^_xgETpf1J|%VjV>$6&sQ5?PBX6C z0wQ;cNs_nDp&>OHHw8PFZctkMsNRXQZ7#)Wa!Dp_ozNQ{roDMHa?tKm`K6tuQ5Yy5 znasmCm2f$Xw=A|Uf|AV@vpWsgqk>HVHczmt?bQ|b>Pz=+W59WOkjdhA6`gsYhXCg>=u=;nKm# z&TL=ePF~+lNU_p#Y=e^U^$()R?mjf^3CzdOQ#EnP?1~xE1Ly6-gRVLk;l#nNKN{}mrjsW*eVEF(j0j!kK@hnh5FN8-)MgGx+k_< zY{&%UGY!%^aqkZ~YDnnSY95B`9{`RA+yY1^_7Nao^3Q-X0MWu~<{Nwh$lmq80p0@m zcfdyg(e7$q3HT4db%6f_q+9|ZX`Iy{^%VBNPMi?NKQXDf{P>dud~Vi$=vG~* zjhvguSfk=J4>~{Am8hjouc|W2_cstCINgKgUk=@4)I&Yv(Q`NS@&e`n9s<}4@HD_( z0r{T00a9n4ILOr*V)`9%rM+XWnwWe_biqf>Akig<0j*2cL0Nj`Ch^J`m|BkOTX0G| z80NTAl7fx3;2?+TbB!x(85aBUwFPG;zbQAD{4KkmCxhrub+Fmyxwteeo@6P&xf zV0|-+5nDF`f14m$Yzzi$u3)tKw+|qV4X@_~TVStphHZfiYTX6wF>%cg1N*V0`#!LP z5nSguG)TW2{tp!V>K>=`#RYrNTp5e6!Fj|tEm>7;G6rOfYE8yEeY00xRz9E=t`xUAu)_}tBw)kSrz5=ta~td z9mIb^t}xHBwOS=<{Xi2f#pxcD|81zJcLQY2#A6#wkUH@>;E90$0;~Z106KK-JP$ioTc^d6>b;QuKYbv3A`t^&9JCDP6nth-$%4e&r( zRTB$2{m`gYT7QFK+eKi-VWwMdu(aJH(Pb0W4I;SYTqaf->ZCgE8DY&@7~K%*O@&zl zoq}s8rM0(sU;0^0NQIwm;R@YRxIRPNCbU?Zc8BAZ_XE*p39g|UaZbj`9U0A`Zf>j? zsc@TLOpn#!d)RU%=~FZz)m3`p^zzPdB}dJjT~iqzXzOeimFq7v>!lfr=9Y6z z#?m-ZKxv(6fxl}kA5YR*6Rw=E0VTMXJN%%?nf~tu1jXi1@fF9b${TC(sSm?MQ=c&u z%8adaw}r^kG|#ooZkxfp;vOsq`PdVXCFcRhEqp{enbAHNko>z7`lu#HOn0?Z+I{A# zjdWT*f*GVPQFxKPO!zZE`nw`6tCr%%uM$VlZp^RC60#t{{5q1~Yv8q}1Dpi*Pr>~k z_CZ-c{1681x$DSAneh{8l|{3MA=f-~Q}we;A>(8Mxz{|g8CS5jZ>Z36f84wnzgxCVYdoZb2aplY)@f<7k@a{Ho6WdJ z&DUSfb_=fgdN%y~@JG;Pd5m)W{KjLvZ{fbM?n1rhLf=b%$et9>y#Kd(8`e?L1eJojJJc$ob1zl)op6#YX^Z1vodpTRA^l80I?8kiX9$zTxYKiX?2 zCS zv5l#;xxjkDg~DM1)2l0h{Z8)Sw1knTUAJCAMzzuklH$#Vn<&l&oRzUt3w0h#A4zyiS8 zfENPR0oDS}0lW^d9`FIc2EeBP6M$<08v!=~&ISA(;5@*O0Gj~&;#u~09+2pvHlf+)qpnu za{uic0WSl*3Givan*lch-U9e1z*_;o0K5(GK=Ax_z@q@~0Ob6xI{`Vv@-D!$0q+I8 z2=G3@YQP5pX97M1NWJ_vAnVyJ&}OY?iRlhkO5?0FrG07BIe1g0d3%FWKV?S0gG$-X zN5xvG!o+DprNM~9#j2||q)GM@V43<_5Ry}cH3v*0_H^Q!2w1~hdjHR)g+CftSTJ^* z{9dpNfNenVklf6PA}o=WUxlj;R!%? zDLn~z0^s)n%K)DStOtAskni~{Aceml_@u%o7IM~G+D3x~who6xQUfiii&`T&5OTDk zvr)HgaGV(p4KiVdqi&b#io2-Pc2t+#l^Dfr;eyiPc#j(~oRZ^=1*Riq=K#A!Xyw3k zq>Nm-U1(PWyGt-u&G!m+BQXC+*+Za=4rtPkK|2H|1Gi^_Zhu^3m8g*PF>0SZl_2$S zRV0E-m1C@muzN8IQX@_{aouu!RNokW@^FWuR_ISV6vdtmYL42 z(6nu6oQ9!I+~TXPZL2fWeW=!=D4vbuDGnpWvl^#~nNvz$ZQwglO89RZN>>{xT?5E> zTMS4Eo?#t0v5@nQrM+h`PeZAU9PbahhvRkV3#Mj?Q?7FZPdIvvx-Zm#+#R6HUCE*N zg%{%@jlQmB)k5Cbc#8aTZ$;M@+CzQqmg_pWxAj0tNbhNQ5}1$)8($6GOpq0SMY9VYzK{50pH&r7}PIA9j#y zuF{|cy|0d4^2w6tR%tKPS;n;b__DQ1UcmG8gWXpwl`8>0ZXF?)tt@sS6ZiQ6+Q9Df z)q>p) zOz-8&O>Xj^s@}>w1qwDm=hB6flOTn`3+8 z>cs4s;~VfDdJU_~+$??2^~iOgdcx{tU(q9;Lbd;N5_O0q+GI0?5|(P(ZGm9tQX-;Bde{ z1C9V>SLH}R@@y0!T?SiN>d=Yl)FP!lXRgv^c&8TS(Qi;R9=`z#!%z^`Blb&(N)qjz z=;u=ROzgfPCm**sTXzG3;=o99U{mY!lH+?n1U0xD+(n=rijx*LEhy#geez>me7dex zVFzIz@=ZNlA%}4(7yj2cY%WPD0LiS5!IG4;JzFeu&|we6L@vI^AV9v$QD$OS2r8`H zCl-=PKT3NUsg!1W0oxC_qOJVWj@u)kMm>_uk8oQK$YPhqgX~Wv7FVgAO`4cqEQ}|r z7YnO^K!Su2IB}?hWyx{QvzTj}_k$9Y+Et(-xom^8B~b0gvLH2Y^@zuq!ZM8N+Ol?GIv=OCwc1rJbw6&U}tz0d68*Yb7Cim+& z_EWOp%JZ!BLO#zmtA}il&LF5Dj zu5_an~ zIx%UveQ6yOv5+iGR2r>7X$1!B$Gc-A3TtMv=b#Y%RqeL1>8_aiy0_}EjSUBAmT8K8M66Bvg_a%(tVNa z7kFl4pnZ8IXdLjHk8^R>DmthzqR>QRecaG1uNYU5 zvdn?+6RZ@EhYj-`PXOe5o@i|P5#S4V!ZHW7X&*znY}5>N|6^^0SjhRgrBSj<`-7!X z#gsM%mT_{JHWD#dT6@^OFOv1f<5-avs%lFY2Rk(VUnF}7l$ik)910p^7RG3Q%BBh? z>#{JiPCeXki$Rq~_1r3kWcOehgKBjE)QIIi5Rhd*2#{j>mlYE+jkT1GVVniepnyG0fC3iw#FcnUc&cvbt&g@`U zIKv=!gMe1^n;Qgpnh5lo?m?bVZF>Wf+dNKznvzcw026?x0#ty^k9#;zG4VK>fBMIEbMB`61B!d6ybe-!& z<0aDG!HK(6B09J+fF1|upoDaAb!94WW#PqHBm1Es!J36XI?!rfzMCu9U zchsMGYaX4vpKX{N6n*q1(_TihD#xkT0T@fGScWm96_*)F;ks|@U_Gv!| zn)YdL0H(ALERD`X`?D6Ca zY^zQ8Ets%g9Rf`6%|WT?x_^T+I1tu|RE)A}0sj`P-u2TGU6_U<-&J-;%Q%QRE}q~* z3mG4i>Yn^eJ>2S^GP$ydofqGd~4<2Jl6|i@?#B0G|i^Iba<5yb5?R;4c8luT6mD>k~Ma1R6Yp zLCeEA5U1xbodVfqYHa) z1~yhO*AytS^8*d0NuV8yGm3L1+WO{@fg@eA>Y3h=90X3z?HJcMA5)xXT@tUKExI0d zv+zN0^JvkDR@e7~QbY6I39^&o^U$&_uc%4P_eP-+PgX2%aEZ|AyXtVld4LRT&j%a@ zco87qD+VZ{2RAf28V5}0bP($!0}V>czFc}s4+`bdPcX_QPcT<5-v#B|4&?Ge7zy<7 z$^}caf-3=ZwH94am!-1X_>84OcM~xMBG?|8^aUqWCd5Kc8}d`ydV|r-yaR68u$32u z|CGt=f>9=~3g*h>c~F9btX^CBS)kf5w&Gnk7Zi^7ny&Wgx|B+e%UDWUEky7h?y)^` z;>TQ7PQ-M1ozfVFC@uSPdIen0ks9zl!6>J91asxY%Jaz%Z0D`8`}U64cD#5j2D2G4 zEGRBRhNOa5x^%NyJlS^;dshLr*PkwDBT( z7&ht;T#GQ50w%!lG}?{Q!J7PmwEWR?W3+WGQMC9uVYD>1?n0DnJi?_MbeCcpr*HZ& zJCLRX+%Ur$hL+#P`2s2pb9hyNVPw#|`a{e5@_7U+qvVvvp&g|~EbYHeJ)ynascBix;#B3_ z7fPne`Gv3U;IhKA1Iqa*m_i0Wi1W{3{L#a!oSntjnXBe*{@A(`)%+wU+Pbe`i!B(mxK*lFzW@K6nR)l#x8&s|xO_kFkMKY5 z+_`h-o;hdc%zk1MHVg?n135mHkCs=LQ*Wiql}>yQT0TORG2|~eZcxh)wSj|L?n3*u ze5E9VK1x{2e~vz^^o26zy(J1|=ASK;4|n~fq#_O=l6gIL98l!aqsfc$IbVhm99_4j8-UE*J$+HnO zEwj`GFF70eeZWSzVdkw_Y~4nT)M?*c3J?Ll==4hee7jj-4H>jgK z*uX&@b)o$_y4CPZCG(CDLwe`sqj1vMcdP|7DLtuJdCWoOO)%89Ufl6MRZ7|+ov`#= zuqzKbKCI`$2696dCH+U#s3>}E6En-p;df%|)Z~_r8MM{4D*K?ep|02-)HY^I%RtfU zxIwk8t}r?tR9hF?ueSe@9^rIFD_b!iSId%}>Z-J)A|AUul*b%Z-c-lq+zsWq6>+G< z)6F7a2X8wMmNR|8DDAKxnr!`)?uOkc?GT7!UrgF7kbVC44wQo(xHl!FV(gAYOTjx8 zf3Jti!K%}^QAA*42o!naYi7)@t>Ok{^|@|P_G&S6SsHCNn>c^KUQ7cgzR(m7HB4-A z(#CY5dXn9wF9$M>Uj{Nv0~)LHLbfgyP7_dZDaAKLXB|L(-lG9+mYp{H+^~|MU`r z?qgFya;APpOFi4^nD>5ZVz$TCq3kwKy`p9#H1iu2v?`#7y$6keWG{;CqytR%;fh(^9BOMqD@lPB; z7NuEA15W^x)mIj}A(iSlX4{lpvb7AmbbmoNeWfs6m!}izr}=_Qqz2q z(;s@ijKN;~ZmQ1^V1;2`40Yl2O~7M-&A=0Y3E*Vlr9i1YffwWVmw-P4UJj(1(Fj$| zNa;Dh$}7T~l$Vo+*)0;NVp0So*Fu!4+C=^8Rhm?P0{9~R~%>Y5XE zGn#W!yJYY_>DwJ!Oy5|>S3Bd|vSr=BkSnTfq$08?-|&z_%KP+a+kt3rsd`p#fAEovkhFntZBc)}X@>td>@6)4w|ArQ+_PryN z)xHm4%i)z!eoy~*usn15Yg*O5iiU>9s!M9>n=_5k`vUZ-JlpO6g+_e<$*V?@GFy-c zZzpJ!@;*Hpbtg1KHR=wbtVYeix4fLCJbOQC6)MovEE?6vPO5Mf+aGb7G4ec%!Xqba zsiIKEwyT{ew`@&(7jjrNmsG@SMII{;9j8Klnpz#lOD`H*9b<*En#(OUug;>mWw2Fq zrIdvk_C8Ikkr~4FP16oP?*E0RO+=2Urjd%sPWZ~>I%4I0ddkSr(yFDVl?!Dx?Z^0* zeL{z5`D@+ZM6IHwmXW%{nVc_^z2&O9H`AO~GPAb6Hc>k!`y;5N(`xJ%erMk_|Gks` zUub>|8lsv{3cLD1N0fJup*~Gz?4#lnQ1f-Up4I%L@hx{`DPy0`qWNY_I>S(Oas)c9 z3g`N8-*j=oq%Ee4A8kJ)XPB!tl8Shoy{tTrs3`B#Qw~pc+Ng^Ptv0TMe$L9Gjei}U zwjAzJ12c`5#$0rM!av@zde<$bKp$n>`5dP`q$1u2_*~_A&>rQb8H`OkhTg3w0%4b4 zS<{Ar5$*|wQLR{E$8Ly?n~KG}!j2tCa|#!>^Tn823D_l(!iD^7lG}czl~9z}l`t%E z1!2d+4i4_E=U}?ooNPPBQTbqOBv=|B-drN1befW=`^_h!UScmE?^(&maErtFLd1)x zTweF8?&gU{b?Hc5EZ!N9D*HTrU5mU9Ywi$3_wbZgn`CrDF!(UMILZ&N)T6N~+gnF& z)(Dthe7+57|hHR4ohGGK{T?l8lUTqal98p_Nts5CW@Bo@X)hR99FQuur zF>ns@1Uz!1rihE{q9Dy~XD2kFbAL95_6F;80%rUg{Mn1&#c3cM0Dr*wo7kg{tN(e zRGRs#r8TLDcc0@iwaVMzcpDwBVgaY2K>0$mBB0Ivx8zhco*In3NXxv$G?Jwioa{gr zw|z>kOEt?>!QO^PnICe0{QgY?X&%u2WGGBamdP_XD$+h~)-oM}fBx)DCFu6?ne}r7H-T-S0^?VvXlWWWd=W zt{ETq51Y3J*lyU|E{ApN1p`y<95*=CZbgMy?Uc)cQ|(-6PPI$U{cOXV?M0b!;C*{A z5{6lWfpf}n2Jl$mOdw_gc(uUOfwO=$z}diyfENNU0bT^80oMZ`1vUVm2Q~uV0A37a z-ZTNlaHRXK6nBP!f`g5Fq_!1@M|qzaiEq7k&`4H6RB9x;l95L83*lKK;e^`od2fCr z8H>>7@*9bN+&}Ej`|p`v<=&f3#c1beS+fZ)EzI9++`7ep**I>{Y;sxqXeTwcSxEsu zPNR7Yd8V}usffo}r^-9mP-riF95u^%y{lQiv;2CbH~#K_@~U6zu(PB*k2+>{a%%*s zWpJ-G&Am)@%?09~Ekm}}3-uVNbA_^I#17Z%Lv;-u2bPha10Eg)p_ku`viJ7%%Y=yD zo8H0jxXfe-YkF4;%g(*d-}GKS(o{kL({tRQ>8-YbgEf{5ZEGw#l5Iw~1j>C&)K_#$ zSzo;jWPL>klJyny*Vb2c&0JcVLz5`g?r@_ud?S<5 zy)MoijqYusXmo1>4jxyxeluir%nTYGz4t#wLFm<^(IqE#gsZc(Hku5ccMW%cs+pa( zikfkrH<=$>!~2G+KnbA4YP37MiUF)$Yf%N%0w5op>*Q_x`(?9&(>=^ zYW7DV6Js{e#OUIbrgsm;+_v=Om)_TGzTE?C%@$nApTEhC5PvniTF-HVCU>X}95gu> zIy4;PkBoW^)c0LpC*%g9|of>vH{{i(&YXn zJZo~FhcGY6VsiJPyfc@-R#TJnP3Q^NV<`dhuDPBZmEs^CSKdE0SGl!}K+Wa2K{Gnq z1`e8$3;oG7qyHke)r?3*yqU;v<*^4;c^^y7)$7*TaHwHlTtxJzr*{#c#NwKkCm-Ua0 zZ5S)@gcg=NZqUZwI?e-7F+@JyGvdxeT(1rUuKh8Gc zbI=ksKT;9zI_Qb=*uAd2&+6HX<8x;_!_&=+Xn5rT!z+gv&kq@%zn=XIop8PU^=wWv zpnC6>`gSm~9Vo%wgz~o)w^dQVRvb5IE4gfU^vN5{KF=8oDICm(yj33Ojwr8p#)8w* z%6NJj50Yww7RdaKL*1`VuaoDcwKjjw$HKNU!+D+=!*~DD-QdiR9o;YcWTM%}Vg(gl z9>sI(@F!cQU@w}>i%Y!(Pp@qiKhxcc>1mWP2?~EyCQ+3nqvPBVP6IJ1=X4VuA!d%{ zZsQBU!@lX9zSYR%Bxk#cB<r(*=j62_Ab0A*9IOd-vu4RI9Buf0_!!}hZ)pn5$ZE!|tMP}6Pe*}=X-J+wDf6*- zxa7?YfDO+N#XUQq%_P~2G7BG1^-mlwPdTmwo&{VFoC|yv*a+MJ?s_ z>B-oWk2|WJ$6j%Zs<)Bq0uL=8Z!0m|si6KMyak}%5$b;(@B5&h7oK%TsjT7M(pVfI zGEt)Q!bV+L(}dIQ1KStN32^FjHl=KI73Gm|RFj$+nB_Pgb&^_j6fa1JTL&D|bURhXUg+YqVf zBvfPTKSEmubPpoP{gU|RE{S16;ZkS*?}`q-2TFC-YU4k_2_LII7}D7nd`ju+Euf7P zn=u_wH(-nLH7S?XNq(SDCwVS0HHoT<3S`{OnRN-NK}x_dHO=_hrS1sgp&D*{eRFcw z?riYv#qSJj^Xu4)iQm2vNNs)tcs=k<;Elj{fIkQR8+ae^KR^yRy$Add_&$(w`v6F7 ze#U7tDV?pZJcd$U4*Th8akaUn@NV=BKwn(31l>xOZv#B&o0e!!vusG{5;SuJRn0xn zhC@uc67adeOaDNkF!`?a4M?$uy-#)~YTq=YaNgG>J-$exj))Y#mwhwTeJkDk&%Fb| zF&tbg1l!#vZzskPKprMchiiLKf6%_`6LmQ;P_G-Ts}3iw*+cm#xL+v za_HFp?l5@m6M1HM@k9QS)Ahfs91jusMSJ!6Vw`^ehf-Wgy$W_ zQbJ3PBILL}dpsx&*X*dPKs_n3EOop;INmFuo|3!UKxZ|Uok6`Qygfj5$b{(8?kIhQ|MxF%0o>d zy6=17kNHx~R)t>L6dFIfcE&|jh|)iuuCx zoo!ImLBNrQKOZcn1OA`v==OCW;6vUJULjZ=s>Wt1zRPy3%K*f7{lN? z9GstVSz~RpIH7jzo$_s%HLJNck)w16Ll|aqCO2f{>rW~YfuDk=V6xAHH|)i!ciFF=vM>b&b-GvYEJ%DGa6wHLpE`GTU(ZJ&AuOnf$oVIv+c7 zNu0gEo>LRLFJYyd43_kiV$LbC4@fPoo|1c@O{#M7o-#a;*eUr+xcBH#*eJ=wTOVxe z0C_I{^v2V?`&WBcKkJ;9%ahMbT9sd(*u(ehxP&fP)O&}wKv?osEI&jq-B+W_35AFK zq-7|zz3%h7caiX#o^!yG^mL!p4dq5W8te4HJ2tlrKB}v`r27B~VVo<8IO&3EK1f_@ z1}r4iS)iIcD-}NdM0Gxvfl}w=As22NNKBt#&w^5CgL+z?z0dJ%vGypQyf9=|k02DQ z*$08#M$%kbisjdcX4`pOqG3)}+d^3etBK)tKIg!HsQTf!bu1Ev%O0ve3*{9mn$r`o zF0-aksv0&5?8Wb)D*+M6rk>;vHLk=kAkA?{U^#Fn;OBum1FL|$0BeA|0$BtN2R;J) z9FXd_JMbUCJ%H~3_XKW*_w5B_7yaHqCOHb61l$KmbKe(u9&kTkEwC7P0dRldCBOrK z*yq|i5O@W!1o%DRLBJmZ4+h=N@y@t|V zm^B>B0Sy=E7|2|d*y184W_^rbx7#1>aH^yzqQMvI)^0vl{Q5ikJA;%OkT8n_j(9#{ap z1~>@#L*QWG?ZB;p_W_3hX-eAyp8#$Tq# zTL!JCXHR-yVFwRB@oP@YenDLeaifue59UWk-DgN{x}d?%I)e1gHyPXa(Y2Db)&| zhGR+kZ+RP=bsC?o5nn-UVe@?mp;#lX0DiOo%=a`dB-TD9a2}txp}{bc^UwYQS>YSQuh-I~G@hi(96ePVa3(4lew~g7bbs+WP=6JJYX!yKt_!ee1iLW^wGx!B zK3)S#S08iA%A<1EnjUvk_)^Fj-4ne1@XW5jg$QjfaYoI&Apct9@cbeFJ=5N$C%&88u!7?pB|GNEHfIXw8u|~Gw;FO6{ z+;U5e15+IwH#pTH*9FLkmo@mc__G(~$HgK=V6Z^t^~VBj_df_c48K|Y{|;pStp(B)d8W9U zBB_YSnGedNfh+IRY<9AmYfGD*Zct3K8-e1vz@yo5!&@~wUDZXi(^Xw-K^jq%owf(J?7^_(`)sVf&ktAFGWG<<*zG+{siyf+h=?CoqU_Wy}QF~1NQE? zL3=-7iul&yO?6!8oeh2Op6)P0H-w2MJNnBjil_N9W%SCHf!!Cy7Y#z3 zW+q*dj!r!4p>fN;vo-E4+L;05NV&~Iwr?8Hvel}iy5hEjdfajbtT0b&`1qpj`ItU& zR2RA|zs3Ix=gs1*@OI8{I|%o0L00Nn07_wjnfKeX$zxk@^%qFhgSuLHmx5}MC%y%0 ziSVuib-z$Q26dlMKLyn!;jBun1*bKnQY*mQ4}Vm*pYDqP^iq{FBjutZRdtwZS;JFp z1NX9zqU%J>hB=KjI)Wav@dwa0;VZ$t=3u8*b~4;IgjID~-37A~-VWZVp)KZV><1~o ze`0=P|3~zpX@ zjpI?W8g7&0ec*UOH+&1J>5I9lDFgPKnl_x1s-`t*)O4m((YT6=H@71(^H$1GD zs^XdFSEW_avzlret7__T8m{WBkfOq&&Zpk1>GzIHQPU;D>ZO|cOGm0HozAU*#pVN_ zHEN1X6ZKqe)bj;bI+9ZLR36n+d20-{tw;4#9@SIBQ9YICCTCW&038m#?-1Tb7I4#K z6^kwD*otfP&-Uenkut~S%mi~RGWg=qHJTDvR*G=hbLV7CR33uiz#Z^5mdXAQGLKjW z8BH|l-WTQj@E;!ST+oJC7R2?JE8L?C#+8`8gRyc&+4ux081!KzuaZ+-Y%MLboj0XD zLAJVT1+v#$2w@j^XMp-}Pf{~MtrzO6pmYf1I#BNmkLAiBdE(EY9ueL@KY@HkkK3fN`p@cV=8bf~508m8NnG>U{ZF~VN zjp-zSMsR)Ol^n)E%I!YHl?}}!u=+*af!G*v2Tp9MY0|@JqX>B8{=#(g&*%;=#-F|T zZFCU|!RRo|0_@Yv?;QlB!3+jY0&WdF4>$xk8@LVdOTY;5>%i@S*8_I|E(I0>9|9Hu zDc7OESAoNTZvl4%Zin~p1f=Z0hrdfh3tsjEuLys8;Lmqe_g(nCU+ThoY8A9fT~$&M zZ=>VU+f?2y_@7e9;tR3GK3Wg(ZP1sJ{Zcazh*VEGZCUvZPp8 z%v_9jDy{=9?i6ftVez&2;W#Cjs2Dy)`(hu|Iu_kXhs2))E!`qNf*R1esvu_HZbv3E1*AENS;ndPQgk|b*o_|~hCYJ4Rh*tbh9vtKCW(vLJ z*iw}nMH-HKrFh8P(}!g8A{*jS+&OwjiO%*)@qrSs&sVlSFta96gJMSKT%D(P#?{Ln z@6!x;0>{-<3Oq1QJTAnJ)H$gEp-+s zwbaW&Jta@rD*qjD!p*d=f=4ZB!{2^U{HIsHSyAICrMcx2|N{e z6tEgN64(Yj8Yoqx)1+0RNvzsQZR-^oD&lPctzn&knhgqr|0;Oy1__*PF~p~9PFbGZ zokb~?MMvSOEXVFmUNfjNp{!z1YcC2FuU`g_!nhQF+<( zC`oLQi5W0ib>Y0R$*{V+jcvon?AHMKoopQW6=4c`#`*1^2T~DE0kX)d1X3QS0;vf1 zK*n06kkS=u%Hw1b<$dgmFjATVR0JItrXq}Rig08=5m;B>kVO%AXq379iXils-uJWD z>f;*+w(3(`o>YmR)MwW5$*@WF(dia3D+OR*6lh=MjVchSh^!Y^UKw&ic^|t1-GfZm zl0?TSsX!l!^Tv{7vrx7q`2v#tLKX#jAL?eV6b0&|(-xiwB=Pq#PP@HOuXWEiCTVqV z^6;cS^`v`;LB_V2^Xr~CUNI{{U|*E)=g3!8K2i~{5qYP)grPnG)!0m@d^&PQ<=bXY zTa878vdZ@o?$u;bJ}-&@dij+vr;)Q>Yk+U0%xb{b(Mqwo+LHzhJ|Y>`uK{l&{W0?q zguW=iiB17XMP#Lf@-`u6<)tZo;ButjX9A7vF7ZXs0KOlD8Ih9qDqPz#^v+@LmpEoN za*S#$-f=Ig&19FU+`9`-R24=_wRY#Ng!zb*;^wYhdj?!h|RfiS{zv)8Y3BZeh z{JwhAQhCw26{K{8N_o#9l=58PYK*y21ir6twUQ2DzX91HyY=)mAoUtL@N*iF zV!)hw`dj9)g9Xhcmz;TBU+F0sujiT!2FxiLh4Wfuwj0&L6>Vy|Z>Nt|ejwoLCJ|_e4@{i=rR+jwF@28nY@atT| ze-%R_l*tC*VL)ho+buw-T^lE9ya7BO_$F{F@Gan(z_)=jfbRe)&v$_|{g)7#*0-c| zb&K*IGj}8Koou)@j<><_Hagx1j>p{8_;xbXw%%~ZbHxN~Fty8K+%lNO6?gNaso&ZU zc^r9(2nS^ljc=tCcV#h4rBFF}j|b}Bo4^V0x5Zuw3Xn~x#k=D_y`=1}%4;|QI#h?| z{)D;<>P&AOl_T}C+7!br-=Ko8FTnpC(;1#U@M|o2V%qNjGW~Y~nTcEsrkO}e7w#*s z%iJ|x;9QVfM4_|f_m$14Jt4-5_AFW=^QB7todQs z_|CAbB7;;`+X9)E?SPckHAtMwij*$eSKdN%H|=6_NFbemVR!bZ=31vu|`Ct2%NG@`(PKRC&4`xZku!>r)8Z;}P{DEv9VbhD`PkLDhPxh?#bgMs{> zL(E*47^I*%KuU`o5ENpd6MP`DXnsqw+8Q5UjOEZo*oxN z?1u$x;(c(wmnBE`*cAcv^5;m}lc`Rq#VNaUYML(UkJICNXIZ|3<7~;cCkmsKlFcyt zCl`4(pXMT|i1fTGk8Y6i`ZpK#IIWB))d(h(1zHQ}#YMn(}puO4$TdA?ZK)Y4{p zGI&1L=R1ka=Gz?Yp$OJUhMCN_zLkhP;7xOmRK(+spvoI!sQ&f}wBI|1Jh&=QBK{Yg z?`N^UXVRC5l8alox4U;180zU}IeI$Ur70F@nEjQLTyds3Nh;#e@|4F0i1PZ^1_!{_ z3#9+6J&==s!54?;%=>Nd`D{7a`@@rZmpi_5ldPSs)aGo^&J44^a_4c96 zfV7m?zqzBs12M#YV4#HLSjID1>}+%tkLcwuA%*T^2Y$F1?T#eujetv@NtI)+F$FynV&@is5$0J z(SQtRETzra3}N%iG2c;4)@&a}wxtxRhS@JU#*?iy$4Kdbvhvu?qrCpLSv}|{2I0RW zWvgv5x8i-nLkIo%OVqz3f6bMWV_W#powPZ>h2NQ%2KmnTu^My>WSF8shS@I~#3P(k zgGlK~#L8QY993TbY7o1NwN5@DQ0hnUzFV`{{IOB1KwgRl<$C-}T2;vP;k@$n#7WG+ zz~InVhNsC>!*qGtH=p?_SCW&8cOV{^)T2C*owf95I2>g)8|;=^l5=qxYe_ z;51HjA*UNU<%DZ&&{LVH<+y33m%!-;94)kS?>KH)#9tsdBJyCYh+@_sU}Jpy^5PON zA%`oJ;4~BNIECAo1-e)rbhv@B#_-vy7$1D4?L@}2OXUXrWm z+m~MGs<}MXgS*+p?EL^nV^_<(-%4=5y1x`ypKle;G#{rH(-O8CY9BlY#IgFr?muN7 zojRuxozsJ5sIAQe|2kq#ju|jkdoleSGZ+Ho_yMmkV2ps@bT*LhI0rZmcrNf1;B?@* z!1I9L1Xcn0{nbE@EqukbZb(IB103aDXYNM4yInX+Rl_~uc(hmLxk0jw3Q-wel@w)m z>Il1RRM;ZhuT|bFDQNDNl^O4M)w3qtOo=d@CSht-hz$$2O*HhN#5`X6OQ6Dz{cg@%6%_8O=BehM53ycNjA{0w+H z@HQaL^mgD};IDukz&n9I1pWs2bKp|oUBJ75Ox-fzOTgv8w}JNn3-SJYfy}G>fcz4! zU(>3RRK)wc0HgMK_ZBwG^f~JO+ zMk&`zZM*@r${GXLr>rcm<6!Y2v^PFqdx0om6hD(1#fe-67iIe5&4qV4x%5q_6%iW-LGMN#C| z1O&s8pm+h5}ymY%&qnZs&(sfUA9ScqB<8~E`%)}7lHaaw4%WK8K{2> zbq}cDNCEgqP|Jm~8peC!zRbtKqbWa(za{;pVOUy({r#~So>Q@EM4x(D6>G#TpNgd` z52;Vorb=HdOgps+leJ{5oww?tE&QGa;Ay}{AZvT9Ka#aTO~9-1yBWxDP5`N0e|OqN zN>?W7(;GSRpt0V3HqN;HN6wQG5&Ehac0Z&(q@Vtx+#=y3kn20ll-)E`BDEupvnW zOos8)JH@8ytl0Sm9J&-8u>M`7$VQK?BQG>N#isij*=*UD>cH1jcW=X~J|ppA)g-E^ z`AGPwWya*h-AF|Atyki$68t!JQ8iDpDS!i9Y-A>%9aoDn&ti7bOa#~2MKeK295eCC z=z4DCYGWz&3OlaHUH#n|FLeT$ZBjK^S!&m_<6EtacgjHnC`TmK=04X^;)7}WzLi)I zUTZL%Jt8s4W$X)!+n5l20U~ORk6tOqUPT9VUm@u${9P;tRgtakr%folD;CSBG%5xj znuVvw*{_Xz3AkdKVHKUSk)rwV$~gDr9VuTQc$NolMMZc~Npk1p?b=@+F#7(M!8k~3 zr|w}kI^M+cp&>ZhrgKwx>1XGI@hcyorBtn;?_DEhR6VGRgkqid6DgxOjZW{DgVH^A zxu^Lpa`(HSek#;zP)me*6Vx|_8aB}K4g__p@X8&p5|oC!0aU%b_eD@YlW+&2{5WO` z%h1C?y&ffH%gcT7hD$;%rm+acwTDLo-w3;oec#V!LPOPzdV4k;<(7KcLi2ju3hija zvcOcrXo9gAje|3*NNQ@VUoVwr87tl>{!n|5pDm#(1EE@FIXpv@YN$yKEpul|K-NMB zjnRr<&w8}AJPR#*QARA6Az<$V!~E9vx@Pm+z|r7c3p@+>9bf`@9k2uVeIU!{9|C^> zyaBi#_+#K(z#D;^fHwjE3%nUvhj-r!u(zk&6Ay(=WI=D8B{!2!3j0ZwW9O11H&5+o!4{hqCV#A zON?VHp6zVhu@}FOIv)X^YnV4-W+%V-C%|KXw*W5y{uFpI@K)eL;Lm_J18)P~4*WUr z*T7!@DX(7wsZ*R6t2#wWS5+vF7NNX=Iw8Y9SiTePIsXKkK|_CLm$yVvPf`=T?s77Y z6GjZbz3zR;I9wPLguxRHChPzb*-xE~QH_9OfMcj=)T?S9u8SWf+%GGhI7|W0>#xlT94(AgN_|9rsX6VjwELG53^!+wnoqGMcGSKF8+!d7 z_#XMX!g*KXzB^E|I`u%wxE?4O_v8#ov7>6)3mdMvyv7+4&yXzR8IonPeLqDOOkg$J z4eu~MYaeWGSa ztgjIz)6K#odiV6;x3u#Np6GNzdks8+NFZEa1QQPXPX=(VWm#t~5 zam&{{;VK=PzBw*tB6k0-Y0_3O^?pbEp-^!rDVH#4krp&)Ec59oSX1^F*2JbJ9^w_~ z+qoRK*^z~dt?e>F39YAQW;&aOa$*?-fx5G49zfYa+5G|70(=;F74T2MPT-@!6~I3O z9|1lFd=B^*;0wUN0$&3@4x}6Y1dwTa638V9PXnuf&j7hM!t=m|z!!l33w#myBj8Iw zZZo?YcspcSw0G@01sFykz%J;eDu$+c(W>8A>}V(h7GwMBUwJZp{tcVoBe9hPl-g zxV1fRm780Mz^!d~Yj1PwlEAHPd5fpi4!nIpa(e#l;D#sHeg{0h{@eI_sJ{$i)-3J1 zM4V|ZYYR|hzb$aXkKtf7;!pia+fZNZi-hT=Vip2B4F4rGy!j2Qfvlp|0AUi|%fKUm ze*?yVe+QlfTnju0_zJKV_z&PEz<&bUfa`$Y0ImnpfqWJCE#PZF%IS3=6@|xLsiKg= zp0tj)(ok4V;I`y28C4U=DE2qFJUl;eYY1_bf z{{YB*;o)PNFQg*UTdllR=5DwHhDJ;WrxN#_gR`)hGmzpBcHqotEGC!5c^%5bR!8Vw z(?MLqfh776;|U0GT=?Vz^hef|@rP4YLAS<~&BIYrq>P z)P11Jh1%#S?s%t9Fe66EB(!=^`s_SV`s@wvE~_`ai$;T?c-F4Q9Cg&upw?6{Ev(R9 zkNUeH4n-Wzp)QD%5b9{A75J|$(gjhcJL*zYsaL7lR*$;x>wjRIib}Tg0a6oup4|hS zn?xPGf0Xbh)y>6*I;=8ElT4hp$6c$ar^a)VU{&?Ca|2EhI|~+Tf@H`TB+kiWrBi{B z_P{=tSYi=CUX&F}EQ*Ql46h$;=e1FOKL(x*yct*z{0Z<%;4Q!#fIkKP82B^bO~79O z`8B@;{uy`&@Nd97fdi17WkBwRxEy#a@VCH|f%gFED%}e_2iOH{1l|wi7yTaibKnZ# z?|=^gp9cN`_)p+U;0EBIfCc!TRlq}mj{x7m`)|hIRlVBtuV4D9>SpzR`#)K5m@d6g z8Yl*iIK-dtGJ6zmiS&+;da}g#G9P)>FlZFJwpcSAhmt^RCQ=cP^)9By{XByQ!1nOb}GeNQZMTU#c<2lu44%n1uJD3lZ8qQfA(VfS*Q#Gjx@|m;l}Wr zT7l$U1{@3gB9N}qmw;5Jwa(2UrL(-0_l&ulW^0ryH?X{*ufwh-pRdzKHhi5*AblNl zy+jd0YIC`#K96SR;_e8W{WAKAJnkr-kEbw3gc(WE!bM90kD)8a3@w>(*bGcO9>yxF zAs$Z)PU-9@mN&s~h*>Q{9bJZS;`ivg>GzPe{z;fZH_oj!Pod8U?!hexOE=mjNxCbe z>!%n$z#*A@N1hue(q)C9qkFCM&%>-~}#6w8;oX z0ZPp~s3^UVB}Z_w%8~)r|0(dk%(9e3KrqZ$?0mm7(R$t#nIlrSg&fD-eyO3m6zMyW%{S1R&jd-?d z1!u*m_jm&+^%U;~rT!tk2`#SoL1+zkHYg3p?MwCUB1ioilsS|A^og4t z^(ZKP_E|@L2uh#53Wbf zEDTM|<6D}I6mB%Vkd0%zBuRGrDj(4Zy4M)CJL>V7* zniP7HKz&Q9+!GdHvz3(X&92vK8I6%ZpWMK1U1xxRB#3)c6wm&zGa}^AHu3~nc?X>r1o41795h{h~G=>%Lg>j z!eZXRX$dX#W7dG?C4S5r5DdP5X96jv9rQ+~AGl5vTCm;l0$}Q9vibNKOM<+6Z3m{*%AU-4+ zle(9ISk`kS#O50h&#}&R)-RAd>AtEy{TV5JQ-h0 z#AwEVD`wgcJBJ@bK|-=rF?g$nL0OCL7|Eu5aZ=nFvfsW#+{3hw_xNIo0t)#gk``a& z_x**F!M~$XSFPZ%K1-?sIV@W}IKJ>*@yzBR1JyIT!%-a6Qr;1$tCX4!O8v3#JKmd) zIt8Y#ck4mv6aV9Q4}sF+>LpNnO<`L84l3xkEx}vE&GEMo>UgB}Rp7?mK9*0yqRm>jZEjtns%~bhw>$XMszcC`!+yeshDJFO zs;ar>67kGv%t=>E?#WL1R8A9_J~Xq{J;S2JyuPxj;R2ldoXPKtCPO;Ek9`c(3$r4> zk}0txW{vm+dofSwud$P5rr~b~e}wt8JrLRJ?Eq{94h6OVhXFf*I|Alsf!_u01^g{=Z{WSaDDW}hKESoWeSrg@o%;a? z1B-#X0QUzT3p@Z=0Xz^`11te1fCmBR0}lq?1UwXYEATMjQsCjhhk!=_IZ>|^_#W^m z;O8Kdk-&q2M+3(Kj{%+zJQkP$js|`iI0pDl;PJp817pCufa8Eq0#5+aU-}9D+CLWm zuGj9J^hX}={3TKm?-t~R@@_L!#EaqkrbOunO)yk1eV#Nc4Xf$942Q6s@4`8+=yHmy z*CI1sb^ThD<#ii^qN0_BX)^XB4BwizM)fT?#|J$j__a`~YX4_=D&UtV4u^Ej_)NpTyQ$?i?uuGA%SmAHXB_|0c9kB8AC zV3}+ytG`(FV17P0@=E!IK(h7haCm{$RV#jvSZ05YW$(+NzAvS}?F!u$xl8%PiU#DpV^z^5#>;@iS^C3Rb~XI8d0ZSw!mfKu^pUI->TzQuuT6awg76< z8E|b$CMLUhY&%E6G9x`$FNG6KWO^v&Zl0EvmmL2oN%C}45+3|0`Lmp*+90f&jDT!JQv7z z>~!GW!1I9j0IPv)x7Gmn2A&UOe#`)}e7FvOt)cRPUsZ&^eembI%y>ngGOpK!0^3jn zT$w;B;_Zm^E00>IJdP!raE`}v{PR(k6YC6>ww$<|IUDbs5@;Zy|Ju7ybloj;gk5CV zmJ+5q#B15+!2or0Kx$+D2CQWx&a@2W&o4R-U?%_`M4<}@aBTSaDG>Sad;qPTUrbQj5bd|N|P3ie`}sG<1h zj=uZc5FG^A4al_a4rK1^wTErtl0u2?c+^Mb1s4#bSV^~2rOYsN!}}-4S6@L0yexX$3_Wu|q1T7eNh%eI-{u&|M54+wxEF zD9o4f_qBeis-QGItr5#mS<#X9RaPg|%(zH;PoqfPRp{k}zdx~_J35~?bTL@0Y;FQu zR7xi{`IU;_7FMc#jPmRYq+5Lekl%hFkk!Hu@b|@!qFS&*>UG7S`NiTum7i3^V`El% z%w^?mbiB76uM!3IDN#PlMgpnyRRgO+R1JagYP=|1HKZ-k?%r7*cDk%3nx|#iLAW<0 zpq4j+GbdD*jRp^aWJb(_{!>dF|BJ(ebw*?q(WhP+iZNSP_|=PP46E0-phishHNeAw z-v%BHycS3^<0+h)ZKNXJGRLFOqP$?4g}NYhBkrKH8%0-P33AIgw{czj>P`v6%8$6L zPPH9P$Ox=oW=80_eJ6ujE>-??P`3-kf|&L|y$Y{iX153n<{JE6vkU&y%U5w@i;23q z7x-#!?t&bsxWhZ~B)3VPh#?p5OX07U?JLk+HS?5WU|m1VdAXc_9S7^AA}J(rAYHbj z?lP1Y{4UyuzY^k%YJTe~AS2MeoYn&y<+rv~q!y9iXwukxUQDv2qI2?a5@m9D6DQLw@=|6`?+uBQz^< zc&1&l5z+>i=VdnKKz>uWWO&Qu>Dxf&`8z;<^S=#$oy%)dx}T=u&yg@T}o4y z4Ak25Ks(Ep$ogta9b8LMY`0M4Pq}g(1kn zne0sJj1SpNuSNQn&;xaOanx%Wq=H8{1Yl7rU0C>qA6Oc#)#y=p=rS>siJ-nMl+Byp zf-^RhH?zUxH?f%gMyR-~@*l!5v9+-V{W7^#g}!qbsOoV<-hw~&k7FJ!SyB8nX9aLK zCLVf1k@I>m#zRofGrtGRvJYnlELiQuv@?&k22L={U9iCtzh_q<&0si?_dW-l4BP|A zS-yJ$`OSL)Sv-8(c|xQj(qF5*pP9Q6?=BaPlGJdIIUZYi%1d2xo7R@-A(hgg%u2%@ z(3Fy#HC`@mIe!+jX!ye%JSbH0B=w*zo(B(0zrEDSHlJJFZK)2ji@zxb$v;%4lg#h>i9-D)K^ zaKL^XYN1E*mpV?%I4UP&h6opp7yi=S>i(Jf%7GrLM-Vt{tKS5#1b++hcf&CJrQGS<<7q>QLAoikqs3V?&Zl;+VMbX>R-vv^M3SA{YN}I#VyT{x$y%SiJ1cgZohvEy*RNNjs3TIpV zUA+tb)61tUeQB0bPI4MLD`XpY5Ur8(wy$kUInfgRLSkC!P@<@H{mdA85G5J_9np3CgRt+@53LX)%*ZRt^1+z&!)Pf ziI0Qsb&UCD{SmBR{M{tlAL^nw))t96xvAV z0+G@o3FXmQRbE=5vACO;MQAUC3;SHOP=&@ddu9;FO3la0S8Suk1;o}DP5Uk^Oih=R z3Qc(wn)1>LZO4IF{ukPF-fy}Op-wSZ7EP;%Evpgtv9~H}#hW&7YU=A7X4E7aOo34~ z6_e9t6JC9HvMA|mDrPjyZB9h}MT~fmwM}CWy`-UTX7pg}&}^(n(r`&ly(U4E)Lb{G zvA(v7+gBK|d=yFJ-s&jy@+R|TWsWOsMWmF!OQF&>V@%PZQ&Mei*xLvI->RAd^ zJrr3oI%5ir(`9U@Dp_ot?k_RSI8J_sJQgmp-;h%}30b=5>cG71JVH|19ihAz5R3Bi z5?<_+DZDZH2rrZ7z2k&ON`DRn7(HYjzv_&-U3$cFGyts2{ zNU89YN8u?iFX71wa72MCi$n8~3-7F09>U9{d6S*+NU89YN8u?it?;^VdqI{mZ$uOU z^vX$iI7-&~N!b;T0mXaCqsjK@#DM7f;<T~v!TlAt!{@R3+aGIDbebzCjdMq-d^rm zOzrXPO|AR16DBDg^;F&lh(dXJ3G)hgK%W9(zL<|NGil~CPMD-rn98Ftm6ukSKSkGK zQM!-z@Gcu8}|rJ)g*X?&$m5{ zJU7QH$GGyX7auyTAM3@rd)N#h74i0fT$L9!R0b>UDFY@&ZMB%2cb22jOk+R0=bK|( z`DVa_`D8#Q3utf|KuR+}dCUOirL}-fknjCjEZ|KvQ_PiVtLYOKn!b#1(g9wW^K*?X-wb%O_Zg7M0*-YVKuR+}dCUOi zrOkjBAl;j?Sip06S%B;^fPV7k-s!skv3!LZ4K_pjQjQn6ij!2tL4dnQYuvCQK-sGtEm&9$lGUW*^i3idA)M-MkG*Q zhn#bB*Zb#H`DWhhz3(v0G&SZvD6Tf9Na@yA%H!5n%F8SBCP!`F<>uM+k3@5~qCV?M zzL~e7_nDW;@_y$skCbMf@|bzbOPhH#%zLxc5ziw!bLDP%%`N9w&8bPum>qPHASaC@ zd;3emWQ-zTVXr%`-#ns|-Fzrg5s#jx^4J+|2lTu+T zkHS`7T48tK_LMAjN=ekpx);S#%iOw)TWYHs6HPtLhEz@O-2_VMd(GKGws=zVwX`n< zCv5h`ON%>)f)vg-N1iJ0Izwgf(t67L0sDNG`8DkK$DkaRj@Q(em!Dw!c`@vp|0uv^ zz0dqimOt5LJ}J$7m)7#R>HX>~b=oocSpFq4O=C<|6(n}dNHy=|oCL#G!R2hi zxyPBWEk1u@pw{c#n9R%0$siT+xJi%U87hM{_LLz7`{ZGbxeG6MuOs(3^UaWF^U07* z7Q!ABb=gU2h8P|)M0sf~WF_Q%bruUbsFx$DR{e95v<;lE2;b{{=VGQd&nzcEQV}_J zMR{u=A?4*Iz>-h005|nsfSEM#0w+LHDnR8?fXYiNz~^xL$5}M6IEnyzX>r=aTuwJ< z#A;Vgs+jUrzB+kEu-fZeIr}wN@sZMQ6y>qCro6m_I;5B7Y>Ie3TA`kvk5Dsd>U<|u zQYuvCQK-uE3AMBB1F(~;&VG(x;q$e31dof1xOTD=>TfR9*S;Sjz=cvgCq`CE+sK3H zU*h?#vQSl@GS8Ul4X)+;<_^U_cwZ3JF`cgj8wCx-{(Ia|jr?3h!7@fO`SPh{T5j+``$OH|+c zeJxGWZSfn_V)C`O99fWc`a1LL+JfNvJ1!k& z9&+jMAwauyxYgAcq@Y&Ff90(-lyf0_r&eCC)as@8M3l{8ywW zw)Beh_soj)_sxp*56p`6B3GJ|(iQ2-y9ZydJfD2x?OncA>EA(+^Fyv0s|r>d+!kPI zXc$q8;oP?{Fe;d1HJ7rJK}t2pw1um=Jy8xZy?X(f=DmTe=Js}80jY?0yW`zys65M~ zuRsrz)!ePn!saa1T*YVQ(H1C=%ob}=sdYIw?_k ztn8GRm*;dvuT<)gkX6b$*v~vC_2}}h;&N80ysEdMMx}-smD)`r`|q+`Yl;f%?IbyP+@;Gc+~VG@b^+!tYclpv(WY& z6>v4fBL_^!VwB?kjUH|_BKsMT>ATH{Y$?7yAF8J_VMEZdd>3@w#KQtnJ!-zm`r8xwxhqobG>y^0JqTIPdtZhRw8u4f{ufRSSO%q!!)? zq{lW9U#40}D&k%5csCjSCMmJw{>tfO?t!3Rm*n4m#LPK zQjsZ-B2!*oBICl#+(ot_Y9*#~6#7|Ylk*W-CN105iHwwrOnDTU^70bd(*coPhsbKP zXxYmsNX_NfGS`)zM&11PdarjCqx-FFqbsIbM@n0x%42I(d3lMDiz<^^*OLgp3@7s= z72!8}FTzY(_@omdDHWmeC_?4sB|%YRC7s1ytR;z^41wD&sv#Fm~t2UVNtwIFTe5UCcuwM>~niB_DtG7 z$BCVkid}gWyYlkV_ICq)4e2)C@%xXzN?)_56?<}tQcm(t2JgLo-yalo-#mi1T^pQ~ z*?32IFF@4F%S+T;!j#nTo<#jdRMi{*_o(4X*==!A-;s}~GimiZPSm8#Ha$+%%F9dC zT&$E7^w@J1JYt^QMbPeR0AHMOUuTVavs_*n0?yt+J4iuX;+kAj4>94DoFGbnEZ zq@}#PM9*bPxr_ceoK>5*_5Q|{vYOEyjRNoxy; zbGQD~&Vf#xq*R>Bqd1k9mv(YtQBs^d+w!R_+WDXKo`w_*ee7FJn*)7}lk=#1*;Te_ ze8>pWb};7JkMUbbSIcu!5w95XRbGjq^0WdjDat+D%A-&cy;92aK8pAgl5Iy$$S2z} z)dlysY$K)FraWew^767aE>22j+r7w=uV%5fNAYrVrDR)%1zKsdBSY9ctmCyY`G`4F zU-D!~L#>09?vbXvXYkp|%S+5$mXy1gr=q9glO^WEkIP5QnY8&NCuUMAX5~@L%F9d4 z@jz8P1*Wk}mPr+9$beC#Bi0JZ8J{^0Ia=HA-gtYUJuI zS?aF0vsk<7jWtUJ!ntHu5MXYjC`ocwgTE5&@!>q|@5D(#`%5>poU7;el5-(QMLf=O zSKcN=O&TIJ;>Ixb7fU38~@ zG@@IbkLWUK-ApGsQYt#-QFO}7OLSa(loTBYcEe{}`?c=H^kuLcZ_S{7;rqRBM9)7t zpoe`aM>||~MoOnnEAJkBz4G!BC6^rKF3QbOyiG5E*%=m9xTp-@@4YCW>b)p4Y2`d8 zN>VCH?WWwCQ%G27ki zz`#+e9mQ<6#5)b*_Zs}hPrk8zdv=q~&G!e)%LyH-6MA{i-V;U=CHSD8tROrcVb`1`2O)Ja-n_y#<&Tj~Si9TLOxME(IPp@qIf=ssK;Cfxl<)H!kGv zEk!6Sr}n-NynQ$by~I9dG}PB)mp<8m#&p5qoFZ9cz$B+$r4xrjCCi8M`%W1!K+m-V zUB3^1S5-F7lH*3H2c?FEqmSgo*;W(VG2rvWS^YiOd$*XsM-8Q`%In6c{=OJ-@VYq) zX_#a5Vq}<$-}MY8xl*Y|8XmgF+fD;r4r~UF268uyu|R(R@j%L{1Amp?q@e(JAsIM@ z4<|D^ju6#Z1a)9}dG!eVHxoxw6qkzFN`g<@Usny2Z?x;3_uNOniD^mTFPxTR!DCuV z@#nj8PRocM(n5J=l0z9@$ajzMy%=Q9?>@4JcQda!Rgss?+e1N5gPvG|{RKz3CA@Nr8RFS@HG_CGpNz$hYRGVUpS&aev?V19{)YE!Ot8a1d z6$lXz6)sei!T8&O_wWJc5}Tc;cdeoFZ0qr4uw)rbt!c^9!L}0PmgZ71eYRK^ zGpJK~5qi0*at2Q36rGA%;RZ0vI;OBnvD^zU)E#8jPYedK?AqF_pGY9*wag-=OHP!> zB`3-==G41|x>xo}r5+jXKK3(}s;Nsft3wlZ^S7Kzh1N0UqEg!!m5LaZ+SaI4i&H65 zs#40MN-58&RQmJNQF2G)aNJuW?kM#_J@vd3&MACfo}Z4tz!~V5Lxm=WO7{xzSX!Z{ z$9s4f{?ki!Y%;dQ;+d9mChLeJZP7m0xQ{k)0IeBD!94^K`il0j%=qpuR4wrE+$qT) z7U*h+%|NCJzMqurx1j!1Gb9!97UP!kSjHDWT&=a3YV8sr({-t-*5X+vyyG6((Y~I4+0PgR0;%{P`b;Dqh8BU z_gvx9Sn<5BmTkz0c8~8Kw@w~FShzv*pMBTo?C;=v%Je;D_B~}#+E~>JE~3~qP((fq z&X`axJ_g=?_~X4>xUGj?l8Zc$wZ2xBb{3BomW+$pFafjnMtN`Cat5q0Piy%2qV0K0TN_7p!5F_K z|IdqePKDLd@-;c2O5>x)m0ZzNV#em07zWHKF@^IQHgDc+3ymT*aX9``au={M?~OT! zE;h^j)n6cmpI*(`q-KF?L8)Khb%2^FyiQOj%M;%Ob%IdWf@+d*RP$e;S}X7#1T|6a zJ`PG_rZhC>w?JvkLkHNHhlA3X*)jW6pI?36(7S(QZIiQwmfMOEQDwc zEu*9i8{dHHn+^1tCWhx=9{hcc`Muiw=2!Bv_xHnB@#1}2nHFG`%9Q{4{T$PPQg{;# zf7I4mpN|Hz{R#DLy9Ib0@F0YT2DOa>jssF|CjeP+-339a9g>Pj0k6DA&E1IioD27o zYMcl@W9dL)%KP0h7U zfo-G@O)g87Jw^h}a8a3fZR>=(3*an^)8vva4E{X z#DOeaN(=96n~w-2D;8YYVM)oT+Xr+PbPqhTOLM0f_g<1bsQ~qtK>d1me0L|x*tiP(h7c$HB^o_b}-qNEWrP4;3snHyAHei^UFi_{3803Lzg zPXbxcJ_V!!KMkA;d+UgebMC>DV_7Gye@Osms_#)uBWSo=vwAjDSnV^ zJ;Z=H)k7^AE5$GOR4IO#YhoBMr^NUx#rD?WdpGZDE6CyT&0SJ)#}|wn-o2l)AB+u$ zw4vMT#iJ7KDzJgl)~LUdx{Dc|YmIuRJi!|EE}^akm99p;TkiIzM%9>Equwjerq-w& zZ)geCsPn+1(Om(2F-?ssXAV`>nP#fl)TMXT>g2gIa;#IYKF*bnTdGcd6W`j1KYQ`} zS)*}Y z+tIZek!p=gN{eLWu}D_l3x?X(TjO{e9B-rJec*V^RehEzV90FJsZc z{#;+3TWLlf(K0pt>2zr0i!MVea-%eH-?|YcdRf(ZD@yTX0kkC9QTttRjt}Y7=fPv) ze(yoLn$!$fZ&&m3GDoup1hNZ=L5O;lLJ7ymRu9!lhG-%jWMiz~0b8taQP+0iaAyu9hek%5U*~c$34u6&T*0EjO3Q?>NTh8LkLkgM6@`*XrV-+(JtyJzMV1Rp~ob($q56S@Y|mzy+XC;`pk9yq?dTo6VOq$JeveQX4fmDb{Rf) zrwVtWCwHt;`>L9&^&?_Qy-H(4Wr6^8Xo55_6SM1@J+>Yw%T-ckR-H8)?OtJ0_x3|H zu1SH%hcW}_A0*5(YwD$ojpq5VK73kjb4z_fry+oAo<3#PEK`QcvY@yxY5ZUm_{;X+Y4pB~f_=E(quW~v{)UYHNsr`k?7m_BHz3X9p>d27NgEEy@gdA2L z`bWJ}qYT$(sEAiI5aq4#b}|%ZD1drcc()kJv~w!9IxS!_yhzeux`-GO&(`)yvk(b@elQ-92H;mxh@=jj8O8Qi3Y=)%~TEFb|$z zJF5ZZ%C5LcftZ_98*nm-I0m8-tkwOc1HXf{y1#T72Q}Ch{1bp^;CkbMY$s0uq7d>X z0{PvOfYh+9Q68&?k=vw@9ztyP~zeSSS&m=fXjCPG0(c#DaU5iu}-OAPbz zGDd(poe>GIaH%rU@zPVf`H2Xh&7o(T0ds6OA1Iy4@Hmnm4Ie{3z|X{22=kDY@y`3> zqdSUA5x#kQ$a)#V;-A;Ot@#1k<45tve01`0vLr)e`r~vXkig5j(!ETWp_c{Zj+b@u zO}GO5_*R-Ww<#r3E^5(!|Bwo}PhIlBW16Anp2-LHeeF-hkno+cl4M*ajs@dN)^ipV zy{LHLweWeeKNrWlSMuG^55AATH=5r?5@pgKEE9<=(Qy7W^5KJIj{o_*rUGS>fWBkEXGTfWrbY9%)zS|ERYQ@bQ==^ z(IsseDOBdBv~DO%l&TeRyi;9HHbI^eXOU%$Rwv&9^)d?V0`HHYo|n7Nxx4=YHR~MS zeIJze6EQz@d}Mb}IzGZadL4P880zGS6G7Dr#ieK3Pjn%u)w?r3_ARUx>S<7~2(`iS zh9c#!3GX0K8g3M*yM%WJsQZLEAJjjDx*n8%$6yrSN|k~#PBbW$!8bsui+vBMt>CQ{ zcn^V6X*}(yzd7o_0>mQk7zaw7?K44*hZl-*C{RIXo4qPwXZs?ADu)D#wS925TgA&^ zzNTJuwhO&M7fn=15w>|F_bRmJtbNYHSDB<|FuJ|rqCYFJc2 z#fP9gHE0A>Twg*6BxN(E&`&WkVg9pz()|}OTedrzXRqYT`vRo0KN`9 z7x)Hn25=K_De(6|rvFXg9l$>T9|OJxd=*mhHt>(YcYuc>J)41Jf$svlydhrSd7T3m zHCs*F+z=0@DHqRUnImn&ySuCt6-?6?qr(zRQ%)V0?JQ42a_K~E=QJJl1x(Y?xul6* z0S@|TSAdl3&_3-9#Vc@@7)m>!8jdxqh8t+80_P~p8)D0GHF zy)C>IhRW0#PBvhYom;I}(|2x7S0%M`TUwl-(sN$!cullq^^unbKs_> z@3brOrlrZYYfgz-%GML#k)hkqSrByAKVO4_NcIs+F)WJ~Wu&QL8Q2FpPSio0^EBa^ z8Slk;#Z7s|jqi*G(Rf_(;CTndD&haBu0iP7;I&*=)>m0e<|<$d6&m3L1&2%v+EZG6WPE-y6{}e=gV93Nr6B&3qK;BxSbf8K@uUEq@Yj4^O^@7BG0_Z@cVwnO*s z-5ikq3%rb1w{G%e#`}oz9K2}!g=|5_L6xA?x{D{%K%qEHtapD3YOwHDff^!Ie`LZS zp$32&D%509#|Tvo>L{V6gF0HM*`S6AMaiKBKM0(QLqozF!9xeYA+oh>u5EBJIb}{7 zHwHF3QZLTN?CkW~#doJ&Ka)*g2Tk9B1AT2_VU(cF={1hY7#8|{jJB2W`f{{+eSXR6 z$u!%SF6Ivhi8v@U+3@dxGX(SQhrmI=6~I}*mB6{c`+%1LR{xy~KnQ635$>L)4nLZoCAIIF=UHs79Emuo%g__+!RRro0RKp1&>ly;6N3Ga-Bj@l*0mNH$%D3aiBEK zv}KxR>ot|xcKN;1F)s)+B?bWFl|`{(dBur~eDukV1c+2S<&Y+#gG}&ziMeoj9*bYSasi>4y0n4g=*kyZ}5C_#$vB@VCI#z?Xn)fxiRpjOSkg z?h1SrNKtwXI0g7RkhS+4z@Gx&1X2h_A#$w)Na-P?%G+S>qGy4&Fq?-FHV^Z`Hd6?N ztKbMJ|B2Y4_~Con5BC#Na9+{WfHOE$G>3x+wRaB2U)}EbPcLl_Fk@%cYPLqaTLEN+ zPG1Vj-faAddGcE)5lZt2-^FajKkM2uW(S>bi2<30Q-I743YBIDDU7;U-a%5^TmJ$`9{bGf0^ z%|yd32T#N0Qa3l&M~Z5DK9N@pnRHrr0s(}*39lggKDgB(AsP)Hbz=nnF5DCU>7_z6 zK2cjUb87NntoZnv8MCKX#kr2kEa4MR<Xkb?Ih{J}JjNol)FdDL>{`JHuO;LZFgyq|pY zt5{;ySYPBM2GDe)O~fTvoO5MkXYoidEEf#9lboCN!kYP8dmmBYZOKX6`;nq)p|WTI zk8Re=@%QfD_)o8GnWQbPnK>;!v+XHbwo_PGz2I_Tii5VH4_Ibm_VjvD0+vrX{=BOJ z1a+V%aDrhDDbNYoqkuF}M+0d{q9KtcRoCcl&JSIu5@G2Jw!zlj^OPZNc-FQ#+~2O?5W?Qu1(8vFTTDE|Lc58t)-~_I=gf?sCST~dCt#4>3GVMpf(Hdb<5ifYLoEL zId{%GhEMDW>b;2HLNhhzh9r4Ugc=S$Yg2AhWiFBAoP2G@R!plB&tPd6EcYS^py$2B zk_yeAG=mkGKcRg02h+@SOu$-nw!V1wIIT z0k{SDBJcy?68u$ny7Q6EkakZnWJ*&%q_YTr9iLxFpQc}F(fX=Xluf_52)3XfHxStrc)))lC%^TgM$01cu%XB>D5;Ze=L zB~(4AD}~AfMe*5yzoSBChmA$pE9VOQjSe>qA+1=1G6hXT zEc+GT#}cqkRhBNN@@8Kz#(bxSn_M+V7w1v6c-;$vi}M&AuZQ~b_eJLSju_xmS8|%6 zi40&ae#Z*@<>Rl^@Ni!mJ?8=kf`_tbV0l~!tOQ;JtOiy97XT*#nGd)pmFYn+!&;e= z(%pNM$2TdDjS}Upw!B9zZ-eE%YI&P1&ooroHi8q|*5+hW=T?LXH+6Oek3L+;P-p*8 z1<|n)nz2}L9Ir%IQeDasZ<@<1U%u8iN~1$EEQJ!^Lri11dA|u~5i;Gs2Qrd3&Dn&% zMmtAymz3@ar@V&{N_n;^9|`pV*@i5kQs6(fJ)3)(!GsO(;9<@+pieji)LdAGWY_36 zaHfYeU<7#7fT8&NE<&4YTbhuPu~TYh!nc=w^oSQ{0KJT5{`uOF)`!oZuS{b&U-w6o zkLiv8nfAV>377|_<|`@9SLHEZm1px6jqMCmFUZ$Ebfk6`_bM)2wV^4m__KoYMY^?bTOdvn$2C-Qc17WD>id9of(_peQ!Ss>#44 zkTWR02>Ej{Rqml?8hk`+w9umJZcn0o9*G9bL9R!5lA$_w+DM018A9A8`GXf@Ak7$Bex09u-j}?W5Dw$M zbtjs7KFw#z3+Rt+U%(%{_yW?B#ACeFVIslzZ4Leh`NMmVw4`jXNtqT>FWqE~*|O08 zD1Y$s(yn>9su@nByj8~s7Wp6G4_-_pX?fQZJ7vp-1ctIT1CrmcTbQ+T-A)v9eE zmNH&1t;?jy?N1d(CNi1~1ChY*#I8wB zDQ+*$Z|xzU-ogqpdC$ta5vIf;^rDn+H+tX|7G?xkPRo%-ULvjh!QU(=(o#L&0BR#ISK)7p{7J^$av_EYlRuZyjxx!-T1N7o`34s83NZPb z*c7!%fmjS}O8OLU!sD@~o_vk>+Qw$krU`*~R)*q%Zjd$SLOvijw{GD3yl@gD;-H_c z@ZgHRMdC=txdLw;{48^al;loq=@JPhKU%MCsYQd`|2eBoG8FMWcxAKU@s)+E8a~BO z%t7_$W4wj&O(#+B{R-wm{%D9VQr5@5pPzsq_hB8QI*{9BCBvAAgHff;&RBlSO4O_V zFW6vGOAN-~B_`@m%xe5#Qizh2MGMur85v~*QXGdOz*WtK3-jawPj(>GX5k$Yo%+gT zq9vdxSsMY-#6*;v%vT5w(=~mG`TS0nLX%8-L+|^0oLEysJ`)CBq!gdS=O`N98~IeM zDTDn;et`yq2~n13E`5d+-rY>v;{29lc3_m5j76QAn}F{0z!NPP*|Fu-6h)P>1Lqna zhb$q9-CFYvj6fI$i%eP*!j>_X{Dl-0kU%WMF9@F6f@tv6 z?q29*+7pL)!MuAgbr^p2Y@NR4afzXuzw}$(HJm>(F`*Vl{NmZ~nby|*ZR?LOw&jOW zeWhDo|0}mS(l>Yw*)Mwx(~xcUlC}5>8Wc`q;Z0K0Jc{4=r&Sk!@S=#3&NO1X5%=Qj zHEiepeP_U>!;?%zRad?%v;rm>t4YLz@Y3zWvP5|oDf zoux|iy)U{2)ba8}9-8|n2z557Pb5`qEbq^tbnbmCD9yh*bU03wCvF0DoKTN|(vpdz zqcU``pJPTqk2&H2(g9f4r;YfD?qIg>TXbLg<1*fL80yk^^j1jLH$Cghd@0nR5PeY zgnATIvrrHS8NM3@BJ69h0ilk)l>;o4c6VmB+l`Plo)@5yI1zWf10Qjz~4g`@CA|p|I4q%y@xd@b7Uoc z_QM~7o- uiShxnB4!v?K5H7aB5Oxw5qj(2+@Ijj3T1nIU;B3$w zE}K&^*JK48={RUxrX>zaZ3hPzr-B}B_+fWHR55Bx3gBjBsR zkAbbgzXFfO2Y&)Q7Wj7{w)Av92h#uNAHaKo{{(&j?AF_9_!}?}xGU<)9>8(H9f1>o zI{}-3E^rxeXW%Em-oVd+y8uTZ&AS3e0e1tQ1l%2X5pXXcrF(DSY~YuH2SZf%2Oa~A z0EYql0!ILgfwZ&zf!_xn0=yk~IPflD3Gg1^5a7eWqk!)Nj|T1tDLe*v7;q>s3LFMJ z2{;@$26!y+9N-Ax6yOQKi-9KsF9VJOQt(d(-T)i}q;$uCe*vBXJQcEgDzFq-3ZyKT z0V{xK0_%X|fZqg;2V&senE>n!Av_yMxjhfq4|qP1!g&Gko4^Z!j{q+MwgAh4Gx9M- z0;~m20w#c!z-xe0fJ=a10j>Z}1O5a!6G)$}S-^*ZwZQejI$$BBb}n#t;Cx^NcnOfw zd>L>U@N(cJU<2?`;1$3pfeV3{J$9}Fz6@Lpd;@qba2(nN*8$H3E(10IuLs@?yaD)Q z;Elka1HS=W1N=5{J@95Aw#IO70b(_s^F1I|#W~*xehT~n@SnijfQ6`QZwDR@yc2jf za0QT4Y(K)^)uEZ}e&7}1Z(scRF5Mm?-ieiTyXU#pZI&%doiHHfIzL7t*~%>tXJAsU zLr?v6!dq)7SG=&51s*9^4r^iirNE(8AmyTWsjZs==Uqd&&S#+5_9>8kMM=3% z0qg)Z+KF?ej(6>zg*plWpkfC%nmGUN9-c2^# z&6c;`@}97~y1ozvp<+mqG1Pt7&|{cxgt>!pHamZXg2}-pYoQ3Pu}f=yAeD% zX}8c_v?)z{GKSmU#k?s)p81984tRPozwQJM0D=$h^E8NCn)05>R0x zqaR_gS2(iyi;b@F z(USOj+PQZ{xoHI67ix^9&H=Tr7=g<`Jt=oRBk&41^&um04R}kNXV(-LGgU?of_qF%IuqOUN55^ zEGXY`xU|KTwx2>mJll%l6CG+9hrnQ_6b0k(E`CSYSLN@}J$~EgKz<)uhLZK%_E58) zly20eyiEwDJYSP3*&?Fx4ev|3Gk7!v=-)UqVf)RchH-3N0tca?uH%6tW9QFEWN(jX z))XO%6ZhvQ%dUyO)`zAhUiTkg_=lSOz=_$nQGZ++SnO04epGQeHDcDbG5hWvC7QMMZPb_9z

0W|lb8Hy}t(F`+LKOD%SITpyG83AO`oM7&+wM9cpi$;0P2&Ft*G#TtN z=J2fVC6v{%^|6>})*17lkx6w(x0GrGLNVR6kJSimF10WnJ4gou%sBnE3;izlHh!1; z7{AMXjo)Q=e2AJ}Qo58%d8_eR%JX>%X6pXHX}pBafomdo%G#X%^bqgwB>Lc7VAP11 z+x6DEuq%{$qLiAc34#7oBfCNLgRVxI=h1>X^QDC9L2;2#vaB8hCwyARmEawQzXkYv z50#6#wymt@C0ANSy%+=NtyrNH`@Cd1=sppwE72o`Ejz7d=45dbhqc4i!?_gv47Cft zBkW6i3d)e*b}EqHcN&nxdAHzierPz4)ou~~`r^-bnc=*S3aw^D2S)H5n&Nybd!$@v zo#nA4mG`RUZL&Oerp}5`Zdu=wN;~|r7B`^Z!BrIdf%g@Wq?{~;wB=60)(82CF|1Qz zJk+i6f;w56uI)QtrON>3R0!-Ws9UUuS;1x@Tk>4XpXXc-YNJqI`~7BcszMFKMc^U3 z97@C=!xG)0Jr7Q=s?Xj+#1s`Ims09GdWM3^3YaqPT}&ILbSL0w!@SPyZLkbTJ-!|| z4tN8w3iu5mb@^LBe$!1rN(aw+QOiUMC;D36{f4q_B}jLJmCbl*WzemU}@$J`+XS*guYutM4_1FZh1 zn8vX5Jq-0^x*q{D?afAAU$oLkN*8b_?;(Uzp3UwucA9qw-#3a<&eQXvy24;|aXF7o zP0U`)5{NA=EiTq|XUk}W%V|(e*Jo%e9K6J}8m693)LdAjb{7uSh(eCQ1RHA@5EbTz zH`*wkh~|?Mj6QIRz%rC*S$zEngqkar#x0=c3AF;$uMei#{t2k}BL0TRR&c@xnXU#8 z!JYf?_tdWVPcJQRp7vHzGqcKfgzFi#v#Tp+^4vMmo-*%&0G33rm%=OucNauz`b_?b z{MooQNFQSJgFVwzC1kvGR^_ySN5m-H;~y@s`(LO*%Vx5Q@Z1u(((O16=L|;x{{F7{ zeLQ|!OU8G57r(z5ddhC_WW(&!LkH#e1`YymA0QL3AMkA8mw{g~zw3bef1b8*@ z0N^)){eZUu4+PQ@{s1MUs!z&wZn8X9sLES!d6Wy~wOZa^Ebs4@$5PdB93doC;LtHp zc~-Wgl+FwHjb-gz??SquDjBgKG{tHzUTZl)h_4@n(LS1eea!1jkpGs?pDm4 ze^YpOg3{fJ+01)ec&wp55b8Nl9}D$6P{Gq2p9W`4sA}qk5}-ZW5%?fHW_GL2R-ZHMbaRFx8tDXK!XxI@F(t#yBEekZrq{ScgL!zJ*0 zs3$Jy3k<(IVAsh|3qC_h zsDSLt!NC;`3`;KyRCZ@Kv)W1QPky!XL~q3G+loTYXYywN*q zMe5}>E6QK&akCH>0T!+yT*DbSOI-$t7@WDpMgJIdz!|J7bUAErj4}|RnDlT zt(n&8V~(wvbW65+!zQpiIG@xDIGqe!Ph&qHmeEGwVBj;r(ZFYcOv!V=a^Uko)=4h_ zzX5y^_$}aXfjYe+1{QGl5(AKkQ3#dZ77$=L>t~^mbcjQC|UX} z{W^U7(z8l+8z9GmsRX%2=D&OOv zZbZj2PaJxJ%15WZ^Fqq^0>byl-*52uK1TJ;CCX(25795veX}I8hd6t^xo%A(}&ovG;N>wd3+ZaClM9*Ii2WBNI zaPWLsopO7s!-_T&Cfu~wy!vTBVTI}^!|YT=yIx=PZ>eb0_VpBvl9fl$??%h}uTr$@O42LZOk~FmSrqNQb|~8TL`9-zPNJrAPEHz@4BlbY z`dO-K&Db+d9cGxFs#@dpMeSCt)c(=GqUpyyh_x0Y5rJf3W& zJW7r}yU_9$S>At@axE@RuUwZSJ8sRQT&vPI{mekc)C9JIh1)_r5u64?FKJBe?08Ba zD#yn%8+#?aZwUj7ll->2_miL%tqthuxxjx)+)mwaW zit1h7Cruq|n4PM6x^Aldvjty>8um4`nzV)`<;nsY7 zmd7b+<^5OHu=ilrGF=VJw*RCoiZ>o(b>@;OvZzlMvv~vlyQQ01Gt5ra zmF}vP9jKI+pAJ8WHS z-Ig6<)3{kNx3%p)5)>rXm%0@4%t#|_2uoZg^JzSF|UD{LnfaP8s0rZ@r=-g2!11VPL>cOIW5&D2MA@i6Mwk&g11Qwc%#NCidciGNO2@C z!wqxz1(Icbs>0LW|6oM8lHMXxl`T@P{Leh5yGU>RT44C^!}p99|j{sZ_Ca4T>N5GpF}Bdw4V)mBoj zl(+KsMCz0`)=&k`nU;5<_@Ww+ zaFM2+iC)gyHD7#L-7fHIE#8{=65j%QTYOnKZLK|8sMnGv z$RAAe2KkcYOXZe#965v&8|Cid`-Br@SLQ<;+0gxvZrp+55NvtTpG1FTh8v2BFTp+) zSj0IRi7LjDPGpFAXCrs2xE9IbYOOqRxqn`$d%$~ID3*oZ{REWW-5I5%cTcs{Bv3r@ zBhTRgs6MgEQZItqLGF6m_BvtuXC zsour!;RTj$r)+c0L_faf zk}8QeilD~P39m%o4r#q;m#e|$s_%XAf~1l&dEUkHU>nK>USOE_ndQh_`28sG1K^<;AzKw%EY3D|5&n+HpYPJe z;-+hweXzGPJlRqO!dqw#A*rm!89%hcES=P==*nH;*wAAab0;3xM^3>0Az>+to=~ix z6g?}&5ijb=denYyG&xUfH8(_QiSz0lD_HN5# z)u6oNAk$C4j^X4+L%Gi1KwTs8eP$@v`A&CzTY>XELt*#}AEM7rFjU&j1+cGxTH(^B zld5A)XGOh+(BNkWKlu()>@15d?LownIG*+RR3Ff4s421+h*2I0>fH!454}VA+&px~ zlZSF;7^Cil8fx8^?pZvZC6AF(7Y>#)E!SGa*<&3f)tQQ{x zJ_?k25f))^H#C8L7j0cz_2Tvrj4zZhwy#n?uvV2kQ0h_uA;7cC-tqvbnblsGL&O2imfho2s%owhO4TUC}NWg4#ga1*BZr0ehm< z+2^2cC*?Yopw1EAR71H=A?gi%mNkez+u!mASRRiu-XQIQhYaO9e}SH#EAf3~DA(B& z6}P?@I}@1qJ_Smj-Ds#zY!_%H$#%gJQXvN01^nFqxOPD$#@+LrEAYw33UvplbA?(5 z>LQ`McELoHbaklD>TefpP2Vnv$I*O0dPvw>8n${#c3I`>+e zz8)ndcbiU`NVVyfn<^`yAAhV$&hcLb*;osIT?qI~Ewq<+^=&TLD+-oA)k)#n)$- z7^)L(x*9mz^xO=&% zO$ORMyU8h&*F$!5EJ7WOzcKh*!9J;8(rk^7g%O(}vn_qu# zk0S&I%$-#;IdUk>wj3oe4i1Ez4$V9k?`@70#TO1f#*P8%FhZ$)&|kr^@kn2K4%8Sg_UH9 zFF4DJ8;1CWWvA{sFPaZz8TJHHSoRa+#HUHQJek7q9yL@@STNj=34l|ui&;MB13*Xf zlag~g;+YXr=>x!{OkitU<8PR9wq0_wK+#hx0F-f zLkOij{}g=ooO>A0T$3f|?&7QUQk}~+=j_mM)~S(HtL42di2ginIU|s#x-fHFb9K2j zUZh;-dAwhFFBz&m^7wN+(~u=sPwi_zuM=`Lydt-KB6@RKFgrU#MyFwtS(`VcT<0l# zuJSe-sy(^+2%cG#B{vW1sCJuLq^%X39TC#}Xy@nZnO5^jsf;R*GOE1XHUBO=Q=27M zSE7ApuJ*~OhE7>|*FLFyWkfLlI!DX*wmC=&wGKW|d5;>ZJ#zUPo(WGH`)i$r9o2Hl z!EHQxC{2S9$xUA;V``878H+Re7|n%F8`B|AA*7&yt&WM-V`-4p@QY7e z+=@-Q_q`BqK1io$sP~n?j&?G7G$DZAqDY5u2|+6Z`L*T{g0 z*}i#p?X3Fw?3@oAgrym|7}4v+=dTEn)*y1@r{oRHmUwRiG9Bze`TLw_abs8T&jvDS zIHXs4PCtTwv9?M{>E7qcTaHl53;G$rku%LPR`5W@mc+8PBlco#9`OEF3_;oB3p~fS zp|QoWe2hUw;_Ht`^bwiDU`Ou*{QVGr7lyL*Eb#i_5BAA<00}gguQ53 zDZk^1+KL*pJ-^pdol}+T(FKzZvf0a{r)dUnKai~WIG$Avr$sT3F)uYhrjt&V%;Mt= z|0HZL&$OQmJPbGnh`}Z2RNzS9X+VBgDUcoAzQ_$N3Q{VP%4;@vT_@o2k+vk%{g09b}|%`umK zC;p@}W(CV;E5oGpcqZkoMkwX^E40SuSh6;|4?(i6LOCFm zIh|?<#&_*1l*^&yG|OKF76KcL(w|{7jFhfIQ65KTl;_K^rf6O=zvdvsaUo$U0*~+M zjlVvj{DLq|kveJw>U!~MqS-^hG?!=gczZIen6IKwnTlYTuz-AMzV{;_)AF(T-W#mW zk#aG5gzfT#x5Q9f`i>)qQ&tvUv3Vmxu-YF2wCiw|6mKHC@uA`^Kqs+ltZAW;vBe9E z8GGwqJYieLcem3lk2bZ0OT_zFU-`?{^0S_&nyCGr}+N)Kpq6K6fKu($y~ zUHp|URXWymqb94#7oHy=9}-G44_`2Mwl@0%F>uR+XyM=u3w>`Oo%Rha*CMbQH)PJx z)=UuxbL_hkok;oV8BAzFu-;5pzQ_2+N`lC|osxY4Id`5%WcEE?QW;906N_=L|_Xl7bWQ4mPi2+L~hhJ`G36rQ477VHw`ci#|eT1Tl~nG&jW zsg%nSb1QjhF+#K6F<))sWE{;YTz!-9^-XxMJbUbh#7^#2D}AsR9NB{{e9zgzGheXvV_PRn)t?`!<;D*VS(;p8_gl5Xuy zx*qd){pB|!qR4qBF#!!-P+TvmN4V0aSW&4L1ZIk<_ViS~fceblTUU57wGMCH!=|GZ ztMxRcSavOTHX#W>-so=qB`s4wOMXtQX-oKgi>4=HS3J5AZ-}p7hW|VLdKxi~zmTov z7eHNnAp5eLK`ljnmFMgWk-k=_%PsW>P&W#XZXQaV2&KM7cyEKcQ>gu5fw;;q&lwKt zD?&{LwL;!|%dNR*B9F+1-0`()|oo{&;+i;J8nl3SS>w%-+CER*Y zdkFPqG!pKFTV$To57c`RQbR!1%2y5rHAkr9KqZ8Vg8HgZnEy0X3{;))NB)ulU_%Bw zA;zFEV_=v8%NmGd@USog2Ra2q91~_79bya$zjjdgEd#@E85oXZ;88MYv(Oyx zKMjRBj`w7)REt;CPL*Y8G#uuJZ0EuAA+~^bHOiI!ZMgDCSau6beEj;r31P3{4)=Y* z#j_}e0>?;WRw4)l{U+``lnffhPxF2`ZqhqT%zsqbk04do;SU#+F##CCACfn!THZGs zzxxF07~kf9(@fl-(F6bKchm#-ILKxMdcr#ZML6~NyD z9{|1t{6FB!z>k2h0Ji{N1^xs08n71M_$F`x@DD&b%Dn}A7Wg*sx4=IFZ-7B~2l#DZ z3veUw&%6(81@=N7ZwBrHd>6PI@I4?7esewm4gh`#90vRtI0E=L;Ay~5fn~tYff(m> zwgN8#LZ2Ecf!%@Cz#V}s%bq~?D++)=0QLg@2Dmfu8DJss72s~b*MNHh{|MX*_ztii z@I&B%z|VjO0rOGb{ee3J4*~80JQT=*J=%R8*dyi2Kqu?80_R7#OUiZb1x3qQ;5=X` z*ZDtCw5tV}jZ(^Wo&!ajT;TlHP_FY9DBA7V6o|VTDc2bW9&4Eb=XgW84%gwc4k~~xomSw`8IzRj@R%ajcm>WChH^zuG_Ud@U7A-%8mhnIvbv%+Fq$9s(Psc1 z;vYY+Vs>1oRVrpqj&rA)io~qiIZ`q-{Hd2W))K|7<-5|X+iiFFMUM+BKCWhJwRc*5 zN_p{{${@n9bJiR5V<)(ta_zQAK%ZrpN>Z-iW2&KGWd6luecE?RS>Vgdd z*pQdwPs2y!En_#LoI49}?7;kxPF+vqBZ#gJ`}^uJST4s%7TJeztK5d;36pXQkDzzK zSn$-+Qs4Qi=?*|;MX%>>-404OUHU1gSK%F-=iCoUTfCl_w1RU^NK769Zvg(*;P2Nc z0(0p+TABk;vle`r_jmw3kKb}|eaE4Cdz|g%FLQLRLz(zO^0GU>pvisN6K+l zftPn!)~)(8x&6_HV6e^MUHsN&*cc8yU0|388}&W}cszKh`x;IK9u7PYcm!}Numo5O z90X_V7#8J$O5QE;J&POonY29+?fw|V%9m#`VgLJts2VdRdeR(JGa?) zDr|Wr-P^;TAA9?j_)I+9#l@sYz1$6;XVR(nYxWG7^od|SCM;vpsqPUl^%%&Z|0GYD4 zfb)TG1HTUZBakxlCm>aJHY8G2mXzzTL8QE1hH{L_rCE;BSYO_$DQhfr>C87G@dhiC~uL*yvP=4m>486g0%!G<*Rb0rDsG6C`)>iPU zj3{2;R$GC)zOb0bm52<*r_8FI0jcd{DF%b><3OfkeaPt_Gs|JTA4Nzw z+9Gb5D#mfm0b0BU*6k8pniIlppDsPLqYn_HOOyCcGmIVo+ z$~Wx*{&)fpql6pju5t*d%ViYRD^#{=ri2QW<0~x7VfecmNimmJxE-6qpHPDx*Rr{# zs3R6s+X>CzgTq1@Y7#+U`q-W0H!$OPeYclR;ol5oq1*yw`o9Ncn0L|4P~9Y@Q~AnU zZSLmQ4#Uv?L?>|?^Le7x(TV8xLc_=cKcX6okeF)PlUt=hzcB5mWr9#8tv!?T20uZ` zpg~oRP(MVbCw*C71Sh<8D#eKEHWz=x!X+c4h?UrEV2-b^m%(+*mPZsZrCy$%mEqRK zGLk2KIJVj;*@p`&9>a>bz`))qxObSw#-Nd8P-)=Xfjucv#_e7FE|%y{z|n^JGqkk% zt@i^N=>x!{fUAI`fIkOv#BVi_`LPDbl3tEn)RHFUI_wQ7Z@r;hnfFlM`<7=$F*2x@ zDpq5CzLPk@C>i$8g;U-d?v?p|;kx{-Pd2T?u8l=j31a~*jOOD_Mh#i<1l5r3m2hEC z1CMIRswZzx{HK?%iq6qb&lYyXiz9$uVV8jGbJMd9Nl{;DrilgB131L+4}q^8(|IT` z20RQ%DLDejv>yp%!9@1;3Wk)fJ67J^=C04am1XUuvjotsmI{vlu?wTsr2b0o4aj?< zn&`UQmKh&MzX!eXOQkH+Z~n(y@)W96Z)-ukB*uu!MVXgLbFCB;xzz7i(=MJf0B%Ty zitp0O)tX_6)0*V6`1%Tj_yL*=x`SYJe^MO6JV_{uEVrvonuWK(nGiDAG>`}5Z!`W* zg?TrZNQ$Y2IiwTrY$S(ytc3WL(u)S2;;5SEaH7@ZR;H6&ZYSQ=(%V~_7WW`e_7sY8{u!#Nr1ZWC&bW~D{tY}zFHP|W$X|2$ zr58JigoPI@?Z37|c6T}{MRp%6O((mS8 zG(Uq9QE4WHQ5>|dmDkHq+uaryF1!kv($1E|x7V<}Wi~19vNlB%-tnGT;MJf$7U~&L zZw0LK-pIMHh2)w8)wIf=;qRmLR@pZ`3duIdsV5hShb?v+!P_nU>-wii{|L`O2ew?Z z+@SOy>je%j5pW+@KZ=@B#<5z=qDO1^>!gpadnUT0qKmq9{w{ zjW*Q(wBQ;@{NGVWsupxZpF7W?7W_qco)-KQoS9j);F)Y%;M;s5y}bJZv|F-Y7?vX0 z!#!aQNVeq$CHp8Za8R;s=r5*Z{}ZL7l1)k%cq@+!yp^||Tk9Qc-=KQlF72CDs0Z^L zwr?I3itU>fLU}S?g`9gKB;)?}&1dP`H)684af&ysT5MySX1#nnI=)*lU>X{W=!E44bz%oE zaIjXgp{-7Qk;boHL8+=nkizm{l&kXSmZH4v+`j8T|Gn$$r1M1jsS&!BFEv89^7S<0 z&)}SwMI$Eci2!=}M`Lr@#=0F%E1w&RXV~q=;Q=AG+@KJL+*3TmZbMrkPH9>FEA4vR zN--%o+Cp}fN4Hkx{ZERqK+LwR779fvo+p$i#h-&SJ&P2-p5Ct8d4mk%9KPS~-uI%@ zQjBxdv$p}cw%njxm!}_HwV^$^{vz4tD^W6Pn@PD2-S(8XyP?|AT1h$ysGow*`@oXw zB6=aG4&c1U1DWYI;PWrQ?-IQ$UfLTxw}Xugq>IYM*MLt)Vq2Td-T@Lv;Pw;IJ~V|I z*AvkQm%LyZ_E2XvzRbZv)3}9X#g>llCfl3C@xgnU9CUa%La86>@u1XUAqGl4Qma9| zkAb2*=c}L!;9-^LECtm|sJlU_6T@au+=C}MAcXyUz4A zgezKnvOS1Sywb|>rqs*t_TckQ^^PAj9;agw8{JL)D;zIGWD_((Z%OAx>YqAtx-1^$ z*vQ32(gQEUI;Ws#RJ|`L%nLRQdI6^!{_n8#h57R`kdBA10O_vzDv)n|4LAw-IvN)qu#R zahZmEsS7lv90JS#GKgjWOkxSaR(c{s`Fqh7woIOd_qG3n%Io|S*b84~tLrzL)V{>)c z%X7l4M8)*@tSPzf-E}Ln+VoYtwM)x|73bn9vx-5QX#R5NH*oL^9&-+5m6yAd`ZX2+ z`E9*`ER%asfLbP`v`m!8GEtswQbk!DupgmCLZgezSOoYFKH$Uh>-M9Tl|3QOPV`fh zpO4Ei!&_S~l3!*eS{e6)xndDw6mH?e5~yjT+4AQd+;C#pCAxz7EWXRzD`}CkeY7`_`vk= z1Nl6y+!u=JZaFy|swiD3noi%#55$vv{lUV6yCS|pZJd5_%3C(!fzb0iWPUz1mCL>7 z&7wxwR1~RqPC3pcLS)0p>yHM7X_1IvVIvcqgx)`~uiPwr*lFD2Cc?>U)e_R^8aH)I zlLM`NeQ#{sg!iQ+Qk|lgA*H!pJu_Y1aASuZy62_2pN?mP_2{{yrPB~QUulMD>+2r|%rE-=rs4xep(w6x&L@IAgW=J&+zCk3`e5g%KXsEA`dVxUzx z8jo~G&f~&1(Yr)|WbMxXKQI(JxpXe7u}WZ;A6>Lj;0|3v zcpZy+pJf{b4g`(_Mu8^+OM#<+rvpa=Cj(Cc-VGcB{1A8wkSRYE$WGB|z%jtFKn`G) z0c(I~0_%YjfZUB>BJeukxxnuMF96;KEC)UStN=a=oDAgd8dHH-CgW5Cxx>daU{Byo z;8DO?z|p{3AoHdUcs6h@@J8S~;BCN5fOi1D3j8^+0r)tu5x4<(HSlHNHNY0&65s%Q z=SJwH*1@E3L@{{OVjNLyDA&0Q6!p147NnBW)g;ul0-1&+-|}9yyiJzpZ!cc4xdeQ+ zQ7Bz@A@h=A3Th17s%-#U&ep=dWaLQ=AHyDZG5nZ=eZc%|{2*JyXtlpkWAZmWQ8h&h z8_(bima^_bz$htMCs5Dbx#Z=11jl#9yh@h)dTm5%7(fue*&OChf{Mv*%fjMKCZr%j zGEKp#Z!B&Qp6R9_%=;#cAbztNC`I*(&i0LFzrZEJG#|LI*x^SYJ%V_GK8{R}Vrg-` z4M}D6zrPfD#hcv9Ozz0^&{})+i;i2lTD-F6>1WAKNsp!P>%`qGfPfR^O%Kn=kY|SSYHMa_KND|Gy-K3H_$s<0t>{>fL=k-Sus~;q zWz`Q+z#TyLQRNtP1iw!$65ctpYA4U}_i$$WUdQyahf@F^YYtvJVf$QuTRxEb-xGK) zuorL|aA)AxfW3jg!@G9@Vlkz&E6_!Jy8-tA?hc#-Am^9BM`Ap7=`(rwB$+$Qsci?af;$A5(3*tQ|1`zn1`c-%&SlKc*WE87h%)u^ zcE2dWE#Ha@Zx{%R&uBSESItS_^hg+31T&UXb`6o%dkoCu@o5NncExltA#7JOO7G%# zg~y6^g!4DQ6+59x`@AQRlKiBVWKz1GReA55yWGkGj9?}m!$41{9RPr={M(-)Ht<#nwmb$bfe=SuAr?)c$t6fP$NShyz~D*?S-DUw|? ze-SfJ!bMzQig;%r^QyNg;zOX&YOF}<26D<9fZSGI7ZkC&3A2cw5sTurVg3lttSm)* zP_`oWc>#wTG%5qW0NT1~PqF#@guPI@x8#w#8~DDOdV$%41_*d0kL!r^sLu zi|vSjX8r@5tFsi_Ls^O~!x3d^OE5!N;}g`L(tP(gDw5r9U?@J|m-sKMh0R);DTDIu z(ZZ3)SJgsN>W!^D_D7W01;wdOU@Xr2rC>cR+#fGpk)=3aj^Gi!{0(3~oxxuqd6HDx z@@=ORSbGY5%*iPQetDm5DDZH-+MeQm7V4nIP0E$=Gvy6M&MU90+Cb_c!Zy%~K$&j> zCw%6xzYTO>1OfE&m$PjHWhn6Q{r1~kpNEKNcl+hq7P=7qwN7daU5==<%t-0BIm+9D zTv1+Em6kYHC!tmITF+6F`N-HL;PwCpJ*qK+_se1z1F5k;EVhU_+NJ@KG z%G-oc%Im7KnGR{lb67Ta1KPTa(@w#ZNX5*` zs<83Q?Wy*c@S*)vN_anEg-X~k10`&D$r9EDuKtEUD4uw&Kt894mth9P%kYxomC~$kkIgvF+6+>zvm9lsyxR@cbv8rW)|9WG z1>|dAygA&q_RH7rvdCAi&EvF!lIz1AC~;rg+ADF>whlG~3^P#T{zf<(0^4Fwp0oCZ zlx|v}JkC%nudD2dE+1fd9~mg`-+*&|mOA2jbVAJKuOl)vr<46BxR|!b=KIzUctx~Z zy0)5O28zh=l1jNPWps`$BT{+-g7V%$HYl&F$|zGinls|%S<2|Wh$*39J>F(JI$kp+ zK66%8ePz|`gify{BeF4q@DKfVR->AO6=jG!w2y7hZS60aw)Q@zt-Y^lYxlBkZBni* z$xvP%bWC|&Res6w`{^mePvMh_{5EwWQfe;0j@iCxnu7G-^R=5hQlh@Wd{6bvV1Cd# z8fHNC{G}`!4mztd<;lTwL#0s_oD0aQy@Yejq#qqIy4~04c9m@}k-`ij%0PMazEWOS$w8(* zRzJM?rYv&sVLRlYGx}H^Df!OoaCs%)**1N%t&>T)4o4xCcbuWRuAQuteQY;{DqEd4WZ6y&lr6nUzn;ampOr<&GfV}hE#?ei z{XN}|sIzYl(JOK@hZrn!!weL;f3h)Kk>^yOXKL4-h!&O3S&-6sCgst>E3d1{{3Ns> zbX+_*zDEDXep$xX#zZ`I4z%k;pZ~+h*E%ADoi*6jWioiYZBvqR9s1!bZ-b$_u5FQN z3@(Z{Kaj=le3C^5a~(!YYlw1vcv~$~XAQ_@k&0Z#fHK*o=WTnFl?k(6$dth`<*N9ARzU*Mpb zW@+hC*@$4v;N~@m!1?G$g{#28VOfzE$oaG($nbxp99vibrtNiza~HkRFHNLPL5J!AhAYFHbUUJE1zs z%RKhVZwfp6!9PO!_Xh$Q@xi8lzq4%vlF~ygmA4t8l(+rLi{nbk@_HL7xHwCBMG@Lu z{_^sV(}hj0|6YdHeU2qqdMtZs_JC2AV9F3)d6F3@LH`h*`fH}>Tzks!SI7r#(~(lo zKjk@48Rc!iGUS+0vJAh36x@-e43CT;kM#1FVQ$_F;nL0RsckFw(2yO=J;nc_Jjo1{ zdk+2&?J4&uwjD)E=eCr`xh>^wzjEj3P_o<$kb-YzDfeGTkVks8S?--ZMwg?8hlc1_ z(kVU>1?J?2VM_xALgp%G-YB&hemRx&H+p zdubN^ZialC%dg*B?!F>q;L=Cb_E*3qP}iVG#E zynI7t?%#BNyO`rV$+FxLDYzj^Sq{sh!x_fW(iUrmu$g+cIjU=D$c;suGUUc04iC9e zUHwCD+7Ju(VcVmxqwLrkDIHH$9>-IaxBc{$BPz)<{w7jzKxmB3Z>JB9AUpI*(bxZ? zF}56KE;PhOnM?6!D^D^5W~FU^w)V)}2-^lE*!+_}PZVL4nTSJj@o#`ki<;^x!mO^box!;#X${);9sJYexol=E#D4Ts1h_*gch5_4? z(N9`)LQ35*mB-G8@-mu}n~~As{SN%v^FsQJ&dE-9C~tgLI#;ujNdix|8AA&DO5t0T zcfX;sNMKtT^ZfSCm^b#a1JAi;OeTAKhRqmKnlZ{_#waf+F-6G==mrD{d$Ic^W<~mp z$*lt79^Kpv2k%I8WvPBryE+kxoz{8Nb!%oLiSbB4bDUOd%)Yi5PWu()?g7Y@&J0i0PM7{IW%j9&a{?6 zhq?ocO(fm(byw9qAitr9!5>>wN6K}YaZh=V8Y6HGL64FU_d4 zt16K{;fyle3>l@K6KV3vi#mv2KCvNi*%^U+%BiiqTQ}`#?ha&6a}OXhY^oiqC8Zgq zJZ6;gGHT^d5u`p#MlI@$j55Y8y-*bN<*B&Bfa zx9}K~QzE`ZvXwoLMmbE66TmjF6Bo3VM2`RDltc#1F^M(FBwm{~iADY-ezmP6ekIo= zGGM!s_-Hh~{t!I00*-Nc&S{_u&nI;bs5j0fH62vNd8Fons*`Zv05w^7H-p+$p12Lv z9zxv(s#e0i2daXv(HNKNU?IX`}*@DJ*J*Y1WkDKyq zeD{IU_Dj%M7_5J&@&Qc;C_FswW!>nl_R11!qQ?{{uxuIINqUR z&mbsRW9K7*38%L+Y?nF{#WJ<#7RnK6|JQcZB5)w>(OThNG*iK1)|u<^9i` zs>T1GIfdA5i#c5?Mym77sm9lN=2YX$W=^@=|20|6X~W*gBE7cNoQAwZrIp$dyV`q1 zE_QXUgxaolb$giA57DvGkpNPzLoa&eePSrr;fW5)<61rqho-vW?PYmf>8s%mwmhx^ zRUQwf)n~bXy7DM3%DcewSP3ZaKi;f%=Q%lF>{hBK@!!0aTHMKIRpaYCv#RlBGpi>; zDXz?7R?GVuqiQxdiJN|X2U@A2u53pvYSrLeEb6oWp)J)s+W{x#I&7aRj|N?N|Fpav zP_oKn`&7empKRr^eX6_zERXF|-UOxnURKQ-AEih8y%A6vA1hyt zkCO7bJWChkV88b<#4$8vQBFrF_ItT)$b9!ETs_XEqj!}9L6yaz0Ao#io?_1RY~Z?Hmgk>p6q?c{0_;U|7}cX*n{dVBYVj12B!Z{M&@2aE^6bOl**j)D09lA%qfq# zqP&MJui5f~vXs-1Zu>1e6Q9#~DFfyxSRJ(N)VrLL!hks@rESZ8he&MDvS%M5OOt~^?H<u2BnHd4h53 zah2W;%y34A*I}~NW3*P2)wk~8`?@8W`ZyAfV-q#ugPL2eKxD1M8T$CTVjjQfMUgIa z>)EY^YkLRM)OzGv%<7nrS=4}g@`X6-*`FLYTf8f~!Mg(u#S8K9()%*sT~EcLthHvqlYICfXqC|JHDfc=N}eh;^<)hCM3 zX^McHf}RW}@J3am7B_$ly4U=O6{8$gZ( ze-p@6#@_<&2fPV50QhYnyQAL$a@6;`z%zk21IGhz0bU4P4x9!20g&Z(D{uhb^GB4n zR^p^wXT9Y;VJJP_OvAlzc~PF67h%sTA3X1b*`+(2hrYr1z^k*De%(S)wncmIj5aajom71lbuow;Zl(*7Q*8M0= z7Q(KS7&i?u5bDsy_$#GddJw2!J~n|9KHij~N)^RGfm69R{*z1d(KuvgKi)Kltm0%j z-%~ftj!H`IQH;s=F4EziTOS-L%Jh8+$TaQ^q&U6{bE0`i3LDc~-tC5Ropy-cEg3}b zQbcx6XpqJ)dJp5}dIhp9dE$D-^y#xI#V;->T~ia);;|j^o)4fEuy7Xf-Qg^{8hg`F zysiPV_!j}0MWf-@r&&bGb(UEkYXjwVLKe+OWM^f`qF+Q1K(0U*Wpiw&Oy!tCn5shD zekp2C7VU1Oh?HiL@|Z=+>x3+#;)PfB`K9Q^^or-7Uk%$T|GlKm$}!WnCCi?*Sw>0~ zPkB^4<#j@qJ%Y%>Csq2htOX*iS3s(A+tMbSnYlf+U9GBE5ap ztZx7AD%&mlwpv?DN*jpETZ!ybUMJYv&k@;6StRw-2m;8JDyiGp)(%_Z&S<}zbp^SX z(zaBGYppRMZy&80Wm`9-Tx3eH8in_x zEL!t?mLfJSoi-QErB$O`A8xl^ZCiKeRcowB>B&*b;|PNCIw9MyKxE;)HvF2kF*IJ2 zYi{AduH3~FY1kIKUT(9Bl#2sYFoY?*n+??|cKz#!EPPtKKdau3Ab?x}BV>Dj8N@Su zf4g>F8m)4Z(pBNgV=bnn6s9@mv#rCS3F)dV|HSGeCqUBlPadiCs$3cN~mX*7b1xK zByI#=1a^1Che?9q(NX-?i0>J`Hy;%m{$Y8LUZ0vJl{HobNV(1u+*aN)Lj_g|CO>c~ zZihdRqv-|a?|0stuym^PK9Ju{v(0(_l~=BZ~Qlu)fQ&THYm!9=0m{w4kFHT27=lTb|YyrmV+}oBpb(q$B#M+f6woU|MZfM zNNDhO_;AC>^?2_HMAx_J^-x58DujoVOS9@^ao9yNFpd?;&TQOFw?PTh*9>99bdytz zKVB8x)!||ikm;@j4gfx2vzC(Q3tNE8bCTi?>Rx)&KLHGc!B;?q;)_ zi~auo^U3Bs@0rUxbI#mn-Wg*;;&$DI4$1vV$Sl)bz5o&EY%c%l!M5=v(h5X*lz{Tq z8?;x@>Uf61zNBOlhd8!5yd7HF{7&ebp>;hC(N&R-*Fh zL3EHexh=I$O~cqhm(H729X(olg;`c<&mEV!vTsLqDupbmCypGGaiuofl`BS$UmQ_rNyP{Wzjtn?~J5QPnm6ht%yUB0gz;lATFEZSMTWs=3o^vak2n zADg*K1{8LMN-jdbUc0YEk>C*|R(X_;^0qqOi;mYxmE7NkN`8qKgfA*#4ztbrmM9+7 zWTKMzI!5-on3F~EILj7~a2Gk7(($@09Ym4f=SZjWC>7;xalB_7uam0yLK~{M4=)HW z2K%abr_COgR)#0zoB66)b88wZ>Ko=Qx-5GIyp=^^__U8L44tZ=zU4{-Q6#t*GEg3+ zp}b9wx7qQ!Nd+75g79LquY%zR!-1MmX;2lkyY!U3Qnr<3UPIkG$|$8XrDA|vcOr@e zk0QOwqjZ$V3QBpbpp@55Dq)T|D@~iR0Y%rClq&I-sInJ+FDO6L?%9)8_{o!J%tD!t zLv|vIY5PDF3Ap86d6b0mIG3+HmJQ`~Qv4g*sFYsD3$9Kh{yh$Z12w6{-`Rdx_9}Zh zi;>LAzFks@{m8W=M3LaHkcaXpJ>~6kyiXjjlPa5q8K_hv^@s6-@Dwt0pl#AeBVQSl zN@Z;>V`V+4eBp%5OV7_obcrfPBO7b!A&TIhMNIezk5W+{n{?%|NmpJcRdE^SKd0uTkm+?B=R+QL3tXH2ZzCdnowzQ^JX2EeeW#lBDQ^KIAk)Od^*RMD>xVtYuvPSj!ggs}=b|g|qeVAIOHM z80Z&*&H(z8pgf>=@ncuLA*7+H;87xz@Vjk4{8J+u>ST`%B?upxm?O1|Y{&_eOF`V$ zUJC9i^uW9hb_}csgjF$V){L2rL4UZ5f;kO^2UGvTtf;PPta939+O1)_!k^ABjp%&; zGSDHgzZR6~ZUG$x`ZT1aJq9BE4nui6jco^)RLWXfd0A{R)mEg+bc-x&L`8$~g4+b0 z43wxgmfWz~CW1$`p`H(J?MAgl5q`39aVNi_g;@6BWjmu@pL8!hb2M{a+y3Ac!VmZ5tqn~+b!9bC zj&~#*o8Ky770Pcj!SeDOPwc1%D`9PiV?$WMhqT4t!7Bou;D|eR}~E(Ib!;#k)uWwji? zHaCmJO;9*Gxm<6`p-6I|^ zzY=D9<@ZiV`KMB9pQ8L-`8^<^{Qex0O;>)`{9h@*EUYZQ35AuPk1_|>Xa>jUqb#Ps z?dD=yGk97}?X;re5mnVghYTNCGqkp7*pR9bLyLwMjT|z(cI4QgtxALivIy}_Q+%(4 zb!Np^hG6ZL-$zm2SbkeUS$-b_W%+#^l&{$U%JRDrl;!sc(AA*727MOvNzfNTe+$a; z`zKJA-)CLFD{wpOv z+g4~TIN{;Mc<`9=vG~mnjo>QIsA_1Kx3D7odFmju7(ajhtQqO|qg^lOJyDmYa@F&m zm`mBKNy??AV8(N4sv!mATMjwpf)?OMGann5n1%(QOvk05ls?O~)}BOq+_~~L8Qa9p zC*+vVdaZx&hxT0R-OzR$T!-a`F^aSR7$yc^?y%h8Ifdb^IDH|aeAs4^47tX@)A3PDKn!q3ESZV zT{7)*W!p*rGhQFx6SW>8g)3dZlYV!XSGw(IXdPQILx(y|9qgn>@X;^_9eaVYlitgG zMEsmn36XZvmB;Ra@=|otOIb-U+jyPya_S|1Tt8HYuCDaR(H*Z`cs{Moa2TE7LSxO& z{jykp)-9Fn3{R!ALeVaI-9-VN!2&$fiAPtv$m*SzK7u zvt}Nehv}X`JJ{5-cCZ_Pw1fREAZErq`7Un1ga&#Qs)TS}c^d9nEo{bbbvNdfQiPvu zYzMm>R-wEy6|7JPyArH~+K?^u16|ibOU_Q}NROx;KC*Vy&|$ShimOKqE*dtfc*Ky} z5yPr$i-!-Xtu-C#D5938B|ab4%(*aZw<+*69qF0kQ2$XstfC^I7aIP*&~P${U7&1; z{|(B}KL$Mq^gp20pr3#)0{t)OcR)V{y#q7{<%jz2Y04366s_8bBEi@3KIL6&5UM-J z<1kI#C02LH*r|@+;~16WMptBjPV0%HWv+3^jg7_tb>VK?5g{osu*WSFC7Jkt9FSbZfMn_){~Y zJ^Sqjpy$QMEkKtF;>>k}xZ`U$Rrx4>;idlHfro7f!4vpxh~l3bKU<-%7ygil-9N6N zOskqcTRul9wH_0w%}}fX_c(=FrE%sg%{|P48_E)L56}CYZT#Ca71{Bkac3&Nhlf&f zjA8tly&(BunBn~$*@kKQ2Pmr&sHN!v(Dy-^&JRGDts+>c)oeu+34ZK&I5kdeBf&2n zkJ3|jY=G78R>%8)G5bXk`!36V^V`jS{OI(q&`i0X{eG6ZR`auByI+5VGip|z^^3PG z^7MpLlk#*A6j@B9+Zr*GJl&O9`l*9#mL@{G3Yja97so0u-|?sseN>Sat=-h2{yi7V`xGt>lQ#l0O9%#4Hjzm_P4w@a}#4R|oL4RzE zbjP;ieF5yyUDICK5IpNhWHeB|j5WRlq+^mPKz)Qa1L#Ks{81|#itv$O3&CTPa|wQT zboEFie#Lw0eq9k}6WEC>#ml{c2s29*tp4!jRar8fz&fcIKWi9&_SD&xU^-|P_tIwc za!@qx!4;rP-<5{{7j!;1zHY-ba!T9)}3~;P;PEM_|_6S&g%*>ae=hP*FE)e&ZOOeT+*6eo`3! zYUy)PbWQJ5r^}eZAsT1+{`?+^vx>|JHj#e%sl1!vN_lOi zy%jE&g<1?h?Yr7bdspNt>AKgbjqt~N;abA4)?1&iYW;L2$o2Kw#O`DU1R0q6+WUkJ+hUu5__P*rO&Celf7<*kD& z<$X@7_|&Q5BSBUb_ah?JX;g7BdRNBys&IS1Qs~6D(=mJ&$|*y0=?&tec=wyaN>Gk& z(C@5zHaPVV=}~CP+l<#L?{iYmJn z44ENME)IPyp{TULE_{IOh2XK);=J*xsf$Y517x$&!gxf^?_q>H7>rB!Y>Aup)DFeB zKpDqxo9AsV>l5iYmdd*mu9W9S=k19&#fYex2XG&YptKLn%29j1w%%dJ4i90*fp;W+ zqw%|?t9QrAk;pQW*nSJ)^>S^-_B}D4;dRfG_YRsE_wk^N|0$r%7~5PgmPj+S@>-3p zH?fRP>?aRXLf+CE#*b`gm*o}2TKMaQpDY0MxA!+k=J z0;uup^Ay!MyTI(mO|Po2nm()XGLc=r^_)O$Pc91XX^FG2boWSd>nd{re*MijGV?O^ zlpD=jG^337eV~->{h(t(A27}9o-Pv;MFKXe%44;mJeP^PK(;?asNru5ec4`-x&rXq z!|?2(Z`ToNUx&QrHJ6BBa4|#_9&9JKmmQJ!lTO}5x=5nDEqJf;Iw9{{9_9*b?4y5U zdc@1oZz1gPS-7Wz$DF}bydCP3o29DEzBdo+BQswe(bU|+Buzbw3bK7oF|C=D49dcm zjOhbx$CF4WX_d!GTIF?0Q>+e?H1z_QD?*(WUsLZ#;XsXF_oS40{4?~7R1|mK5#2nH zteZp2lXb%e*RQiWqM5f{2ZtyU>_nK#`@o=1wg-8MrDq314WGm7*I8$wBpc)FL~upB zA47+AlcBec=;((fN#&>Z#P)U6k$Ub(R4qDeBhu2NJeD5ib)xh%iSdRf4TOBNM~-8w-pjnUMJ*!%fl$<$+gxI&}sPm zU%%Gc{V-EL%#L%@zKHZYIro}UVVw+9ml(6`v<*Ra3w0xoON zlKRpe(aMRKc2KPl=|@z`V+*CcPL#dJcI76vOSRB-`21nN&U-tG*Q$|{=9ju|{-`>o zUc3379m*dcL(!p9drgX=R#N`xNSip?^(cuV!D8r7c})g&s?m6tgE z-i8blKhcFqi&ccjAsDU`$3@7ac*0w_(a6fS*O8#(L%o1b_Qf!H7N6jaBK&0IOE)y_ z2*=?mUdA;%^Y}BYmk$L0AyB5_=VtxT0SQ(rk>i3!dc= z(9h!ignrnO!}5Ba?I+Y#&2My@>K(UsR)b+j;dq60ocP`TR9IOB!SC(<_@_qlSUaDvO`kWXzN#Vpp~=_dfNWKa z`DR1DVH+%5M$qRDk#Dq0!ABR)X$>tn_{Tw#0>pJXvDgF%^|q2?2JNT+v| zw*{`0*ERCKJVD+MAoMdr(}uph*Y6JpYBG~|y{=V6t*->i3fBtT|6nkCVTUW{RI)zZ z$hyqP8h6M_-oDq#nn;(PmA4tORi3Myi`rS@?8y4t-FQuXNa*9hW2HJ8zwd;E-szT5 zj{F!9^v(CPCthTXt*=V)9Bv20f@VC!nRBu#Me0tj zzm67elzlsy0nI|1-gcDK6>K)rBvNTAkJ40Lrp;AsHpGd~Pq(mRYVK8#-T^z*hhjo3oi zd%PaXpsbMCqK?LIBdQr=w6z*vQ(Lv5uCc;hr(kbk7Hh}V^Uwdc=b>}Czq%&F0|o7u z0QoZDc6Whr8#ucxk74wM#Z8_j#82@{!Ak0{q^j7%r>wr$LwhS9fKt96g0gp5hpelG zi6|0W2)!t;(xA+Hhob)cjMV=EUcD%d`XA_=`okwccSs{2>AJGLoyBV8Gfd#Or;(%) zC$n~@DtT{!RSA)|R3`!GA<4^>XSQ>u_&Z!}FaFEQ>$g=xvs2dY6 zZgL@Y7TKLrWY@*J)x-+cbR*Mdb@&YDcE&R-+6!|vw_gm(_*Z~3w?F8*F+|#pQC_RD z%_6sBP+l5)Y+H{M8NLLeB}$kL{V5>{j|Yzu9*f`5DE_GlRcPEm)Byo|7nxWA_Z{AT z&J9bKaZD#&#@$NyV^^0D=|&>ut%ob+Wu9@fk?y?+KRovFrTa#xI*I4sgkDVt#O&Q$ zV#Rzv>eqHFh~#{njii5au&pA9^tcq|ZGt3}m$9TXZ?p%ZN!S?5#H`tDqkVLnV%9eN ze|$?x#%;2#q`Z4dta3AHkCUpXRJFffMIpnuLiA-MJ_bczbtUSn+Qv>0a?4jQIl{2oPzmSKc;ANO|2L{`(Plc$&x0^)I#~ zet%n52lBahuZ0!#2^k1Fx%JK_r~lKn-b6ZUsXWeFDlaQhV+|;S3g!(2eodO3J|+qW zYC;u^Ja%&GGOHmNb-_`BcZY>lkA4@Oen8wg^{jRk5m6-g1QAhQkfSKe`X8s|W}u!& z@S5-iRDMYqgS=u)D)qFvW2ytC!n?1+iv4~}MzmM^cTVgjm><##h)C;y<+1)(UdE-u zjLmXWNFK#IG&b8EYP~yDF#L|sps10%*(4JmJ%}Q@eW9`g8uYHGuo^t%OC8Z*Hlvc` zT*rwh5)6P`l@~QA%YuV7$P5b3AEBL8YcRIsRGeOYneSBUfF8W7D6AgzE5LRtu+DU( z9&_~JrceT;fFu@_N%HRqHv%l)JV9Aj!uZ$yJ*6S`rjGVDoG>aY^1%=RVzf= zT~Z#qOUf(5p>oj_BFEfkiVZn90JAc-0tZ~OK;XnU9w3j$nfi#fqa2&bWH*i+G+)nc z4>R2{nCgp1)HN^0@tT)Mu)k**&b0Y#$6>-)Kn9x2AlT892z6h80E*#b80awFszV0{ zBKPFUk&KGCX=g9t2 zj<;dYt`R@MW@&fiIVoxq9Xa!sM)$Ilp#D;E+En8B+E8}6gjx3niiW{W}##SsZD1y~?W!h_I zR>oSE2tU@cT-~WcS-fLXoO^%$TzETWXe%p#BIbdZh5?Tf6R9ee6l^jtTPoDKLX5VM z1J^?Fyj7l;3)P^&+?MDKu@O$LWG~p$A=9!d(H(4dl7rxd;+grJsUg+i@vwNA0w;`@@Nx5rE-7fjBjvmbRNlOj zPfP6+T{hw2>Qq1cHcCna!JWkT{}59nc+4E{?TqHb;Mo zr&!CA41}2>HgvPHuG+{9Rk49PjLyA?*%+DC6w-x28!*?97qE$aUC?ttJpC$9hJg1- z5#9$OyehmAKx%sdklMBY^^ywwJI>v+Kx@SBs}A+-Vc&5O&=V5gaG>7_Ivr>$>W{qO zOrU>6iKYR4Ajmcie?jcRYj*SC3e{wA4(QwMRw9iJRdeUp&TE*X-=rgU$)@O(J}9&$ zeJIE?anBsvedhX5t-_L(RI4zX`LznGpCY_sAbzO(HJ~3e zmY}^5{tVD@pff?){9cCN*}YK_o+FvK+BTGsu2jgFLA`lf~9%cM`z2_QQi3$`}y&b#NW%c+iz*&mtFnbwY_qM`_Ayg)8N`U3dAEGbQBu z85mG-lYRKiko?%FSWl5Tt3;J~PXLiQx8ZwdF02AOJX%BVR3u#vdUw41ilog{M4D4X z;-X~nPc~MRQCMYmgh;rL$M}WMNw@=h#VFzLgK~f44?r3JJ3(1AcXvgTNDt^z9-C|B zb+4qkGW~3*N9{}cH>oAv75O{7PqHh*)Q=OgQFex(9(RSd??VSi%N3EXP%Dos)XM8# zZGVVd6`rv5wf%4!ZD%^&mr|{ndd^;dnSIiTba#aYf9Etvq+c~Ej~!&?ISqD63-lW5 zh4}cl1?dPM0p_{qihbzl!r zwlcY(toz<@bsv%L?N;8M#+F@+DL7fx-g}T*pqMGj{$ylMK}2yMfn5HA=4uNW+GSbE z#w*JslIs!U#3Pb_1taYPc{ z`^O;#KJ*HDhvsk;2&goe#UvA-du0&3A{7(ETDtJd6)U7EO#3nt93I z=VO?o2`54i8+OXO(IB_kJ~`o!z)5(;*-!XK?IpY`@)Q@IGZ$Ux1YONNerC)@c*~ve zh&0zIkGV#9ZRVOLI0-MN_`>_7J>kVC`ZG^{=m_1;A4gtgQodZ--s@wm3`;NUebRq2R2;@K2534yEg# zXIy>lfojG(bs~z_Y$%f{5PKy>{M(LV6A2Q=FWf(`HvRA#&=Ih&1!eqa7=Es6qlmPB zuDo?{rM%Bc6>S}$yA~0d7HVjGRa}(1OW;)-mA47;Qr_pJnzjzly$cbUnnpEKQkRkp&ZNj(A(P;S0#?YfHmE{S{XiJ?{sdX0XsY+aBj~OQK zf^1BcyIPG^+DuF(lvivRiBNftY##QvV_^tA&^%mZg4ta`?83Z@AHN$9Pc+N|kKG%J z;FQ#*Cw+(7RAuGxpKNStsf1PdMBU^@lW_@msBbgpSKJQDIDXGOzwAl`k#?w+#}2jf zO3z)#1=n~N>k?Q^4CT>1!Ncrcum^tY_QyXpQj@pyv3bqBTIq#aKZ%rGEv=lB*0uT0 z@ch&*_*j|oz>+`{H0l!~lDXdE>Q2SOiURJMP=jS7cWJ95G zsWA$xbI>8c0)V?IwJ^?`G;798yZ#vNeK3w;;jV-*8SfiF8TW4*;oj$jOQg$=%3BXt z%4=)cu?a3H=_sfx(aQ@~l8r)L$wCb}70+^GK0Loil*3@j5bQLnHqWy$72 z+TvE0x#(Hy1^S-Jy1~rs0?mw#-n3vc*RdF)b5)<{s-CWn)sT5rqK=ZeH}^pv5$8Mp38*kyE!9vxIco9))M2I3b!_Z4ut`f}5=f@q(#b zOavi+mF2HY6g1REFR`mOHi1-ZxEB9cBQNCzw*YBBX078r>UjSJI{yN?+Y{yRrSpgm z1=33aj{?$50Ve?IrGRGuT_irv2C5XqHN^&b+x0+yLQR+#tOnwePhRjO&}QNN4M^j{ zbuGP=U@z1*A4vOfphLE$;97QdsG>X$uGmffB4}mmmcs8#g=fZmJMCvRRL$3_pb4QS zo1#*zBBCl_f%1AZ||V3({MJoBN|88r**xM_hKR$^ek zHQMylgiFW8amNgx9&3zbmx3MY*72V6qPS~`1D*3?t|K8j8hhp8dFDCc%EP7VM*dT- zZ1wiR(_+Iv6kYQ1z+V788#D@93wjvne9*%|uLAudXa!z?GS)N?^k~qpf*u2U6XCCt3jz(B3o9l6l}-O zUtH8uE>j57BaN?Iwyapyru(+qJ;s3T9&0tP-P=MoHhjcDrRiHzPzp#BTM^%Ol8ml?0fw{Pgu`bS&Quc) zDZ^P54(G;#Qt|JF&Oj?AFhlV?Q=V^Bx+31ln6`VxatTIXE3a{GdOy^9b!+b>i%kTI zW3X8y4#lRinwxZHriw$oiGxtYVG*7o63SBdwh*~Q(bfx=+i#k{LcqHHh7UBdsRno{ z5(i5g;Ive~csP6__g7!t%dnE=(PY{N<46}UCR7|D9@!+hUo0-JZ`EXduA4N>R> zMHz>257S|WU4dUC4^iJsDI-RBY~H0!9!U~X(8h;4ia9GiYa@kT-+G7sJu0l)7J_U;v~h}*U5`)pY+Cpt;Q4i z5*wRiHuZq(QraS}3|eeuSgQG3pzeQ^uF|%+8$^D)ePVxCU$QI3o~)}jw!&e>25cJ) zUY0(}3ZPe{FY|!oJ?nTofVPS4e$e5c#mCV=I{qC6v{iVlgI^HD){>*dyx<aU5+5^xrU;q~q`fnyW{14@uR!|Vj~uTc z7x$ivZ3&R3V+N3>V=<7%>NcPq66gDY-VxO5Y@Y>EzY%ofbPk{pNc|3VXsknJK-=WK z=Q}hH=s8R$2&BFyP4=ycAS$V0Y;pmY6i!&S9N- zcAZ0+DriCg)=<9e9qtWAqha2JMMW-zehc&l&~JnO1@van;}Ey+fW|;k-8Ov((;v0A?S92X^L>p5-XH$7lang&6%(~zipg!eIX8{t6&x3aW74Mkma9t< z@n#uC?c4lAK41{FVrD3ezSOR)vXhPdpeYKg#YeFJ7C)LZyiCA2EkaSjUr>Obn4Y?OD+iQu?E%Vy zKLD+{7JQ;eu-fs~805CMG`~|yQ8IpRa)k5EEu5IfWO5M^{+03HX|hcipSh$TU%!b` znbG)~4l^8IFECT>hy@k{nt3evIK=s~^V#+15{eFbrUB`oXAY1KdRl;V(8JE>V)4Pr z?kfd-4@d_+s9$8*z#&<9ALiq*V~$vl-$P%(KQ;dT2_Lt+N*tbi%*wOw!>nzXH@8tT zSE-Fo0=1c|9Nf@8%p$NtS4(gzc((Cxd;7PU=Xh^ly8ESuO+vY_yAMSM!^nVn4U@E# z)$5>zpwMy?2f=THQhqx?nM=1EWOFG|B*1q#hPRtRk)V&`Q7h_hkmD6OUc!DO48*N2 ze~tHC7b@M%>xi;UVBZ$fWjCLCP*O6ZMsdm%pqc9icq5wuKHXI4BQxIHy3+x}j`F2R$ zgTZ5VI0nBr{s-c&sIIB2X{^!n@S})Cvaw=kxzGb8;`MNn*qNTN*efAsrm+f?>6~W7 zex?&Uksey0Jhq?8s~wMOw*S(0_tN%$6jgHbuFo0|XKh?64e)q=5)HP@U&ATcZj|;o4{ly+R&Z*4p>X$Z%j``9CWy=53rWlWNW$LC3=wOu8JPZOX zZ=vJa62}^0LMRKcj%7{2TK9N_V2o6H6_ePMCN!NTC9~#FcMI=SO0u!FTPdt|7Pyj< zk2#JQSoQevW4xIdEa|dZALX37NG3Ko9YND{IO~B?eHQ4WJjZvaF(hl42DZPfImQ?! zmOZ70!_-~V5b%xxodk*+O1>687L;j5Jtd{E&UMI%BEe5!r@Z?OiUf~19wn*nwmRO6 zj+eMsr;Q?uR$KB38*y{*$x#S_Cp*Ur?HXu&LFft%YJDJnOw|+2*=kf{Jn+z-NIa(s zhk-Rz&1#&loKAjLHOM=3PrjtAY0##!u4aDMydgR^W!qa{HLIaZQeaL>OOX()A`dE( zrR3Q)m&pkR(t1a&a1*G_-^~3lVCRb061)eNUnr=nn?vouiD+Y~zfw@@aGYs#8=!gZ z84}^%7wBGj8x3l|9dMaS8Ud8O;Kl>}{Im?5@cz@|z+*OIE%2-CHsaLP%$?Dg{#bzP zWonc%@$bUGu!GkUCRN~!OF2^Ox0}OJLK(kPKp96YgGz~AgOsVfh;-YQ^6rEy<(a-m z^E>Sp!qWcQa8hP^_c_!iea;_&hVLGt-WVsg-=~La%}y4xl9G(1%DH7qHT3x+IN?0V zxQ1nV*4`@9NuW%_WJ6zZG9}Wxhm^Mwu9TO#OgBjdm(VYvcu$rli?1Cmi1TG*1zC~L z2WL#Ep~7Ulh@ATqXYY%DYP8y$xS$aY6(nB+@y(k)JHyg@68bz|=}i(H-&q{Wj>n>9 zqUw=V<@gDV$VG(XkOIw)M7p_7dCTEic}{fs?TnH4WvhTZ%Q14{XPcI#8ztY2;KRpw za@560PQdRM(4;XUEX|*pjgse7HOxkJxWJ5N@@+r~)YgYla6?1oa9(7*!XxG9Ob2Z% zDC7IQ>7X6#I%q_gzJi_d)*2KEO3z(;Wqd?26a4VmHS81gz>it$t9|iLjYwkdf;lw} zv!++n&6>kT(wrhl(nG;v3P^8H7HQiWf4i6c@K zDzC}dQiUqvHFNGY*hdbf>fX5W}!tc8Ds*HbQ)4^2oUEx$Vn^Z0VWgMkWGj;C<=9nlP!m!lKl5U)-5bBM1Mp9cR^gdmx8Y{+kp2o;5#_-a zHmpR-!pePjw7wm3#jwL(uD}jRICnFCt%#sshI4Xt)ZPP>@y-Qh26)JchDg6~QQkUZ z>qKKS!HMyjiX)crrbz0Y(qUwGMDb5ecG6)1;Phse!r2W|lp*0H6%WQQopcy)E1geV zUzSLvqdZDSd8RQ;A)VE5GbfaHeCaF>^|&fB%{#6h?4Xzik4h3#I1gnbrM0fhK&0P& zD6bU~P@a|2ZCjV|&znDc9B#tjI{H#NG71N3vdcr>I1h5FX_#A8S5lIExOxY&Sz%$4 z{F2+4Y$SNG>mv|Fa34IDnuPbFLGe;}wwm4IrSO+<)08Hk?To^Knl6x_cRqRtME7V4 z(RC*8z2QnIQ6$)cbSm!|gW{57%?{H$F1ZbG6TX$*&wCS*pN+{*a_V|YyGNXNK!O*S zBxkx{gRcJ5=5#gseO(ty(p^$Mf6EaC29hlDgYrMpkAeFyj_MWZTIRyRP|U+2Z~O zy@qg$+c^o}<4QDq6zRE>xbCoGHm)h)a%ZW4}%#x$RK|qNW2SxtmwLI+S-Gz!ZJg=G`J`vx^`l zqDX)-rJ%j!NN?qZG_Xfp1HXm8@Jgazmwpgc@#B97G?3j9JXux)r<|HXl%1((H@I4W zC=zT#qLufWK}qepmzRG4H{lz3d`a$&TFaR1Bx#4O9VqYL!ALQj+d3nmF-}56`k|)s z)+1@k3*|LWLTlhAe3qRrp--bmKH26qH#X^nsBVyT>9k{9#x>JX+-0s*66tKP@-`wA zlj^^JJ%_XVQt=6smBn$i|m>g*x`B}PB+2i1FHBu>_yg@jJ$x$q^}`)d9p|O zzef=*2k#$IqCB8?@p}os#!w}H3wWGl{U&}lhZasc*`){#;4ATlWMh}c>tW?B18_fk zAy{VL__#Vuh*zLm3J!!taol1ujs>lnQ6pBe9K%9Yik~%19~Tb%4J7B8g@f}!hr|8? z(6d1=0=)vX5|r|O4U*T+F;OJ=!0~n&mO|1&^vd3qO8dXN=T&raj<1RCu{E_1qMjwPa(p zR|>1mC$fr5v$28k;a(npX6naSH)I^wfHIyxG3$sYBJC=AqDXKj?3B0Kpl%iY0T7pp z{u5NMd2)3&=L}Pcp5-ijE`TrkjZrvI;6@E-V4Rh6GdUJN`}>zp|_5x?}sG`<*hU7I|5Qu^$}@lQyxp3 z^14xdJ*0|cY2zGVdiAmY5*~Z`-G#@I|BOjipEo0#T2Y>Zj;Q3Iu2ac}uKgm?bs^=o zB6-T|MwP6G7_~%k(lEVBdSiUBHBE{7Bx)35hQp@wEb8gx7%8O|I~it*=`g=qbZJRA z+}Aq^+l`}qU)fZq4?yBt8i^tSPu5aip+Vi+c|TnS$1IJU^-Qn&N8u{G2IQB_RoaHz4yo$66B6ppq!o>9R5cb7QdJS@S*yz13dtz18%yb_uHxkMXnIwhiM-Q4 zw2jzT)z71dv6`fcvzsTNQ>wh1-`Sz8^RY~N$H(ZMX>&`UG0i$ek)Rs-Q69hdQ(iY_ zotIn%&za%$S?6VBi+j>k@GnG7#z|4ZXF7A9G7n_xxkJkIKDv@BJ9*_To0{PFkfN%S zNLSvJ_X&ifylzxywJ1?4Z9(ZKyKY2;E=r@$XZxpAXS*NGg(fWh=FbI~&}hDNKtfI2 znbI`biJwS6sZ`z?yjywQDE_OZ`la|eBc8rA-33?S)9w9=_{}IBsPQXeH@nh?9>Vq= z>A(J2)(+zJTc_H_#gK%S2qNvlDz6o(Q(ikNvHQZVX z{UYF93c;ghFe0~e_NUEloGh*R62_mi#N4Plo(!0O;gDOV z=_Al%L3e?k4Ek@-DWD&NR)T&C%5;AQ%Dnu#8-oyO??!p--6#*ccY&MY3$Zism~Qv( zwSD10jR-Zg0h^P!s7Pkb&0zm^Qua)>d$+*sYsLA5vU~Rkv#<4Pw>m+jyLXk>gxD#M zyLU}oy%e^$d-ogZQ)t)rI-JT>yLYcNsl+a9*}Z#}N#!*zl|;IGS9wd2Fy*DV!4_pL z`4dwfl8OmxITS7NBco!3bp^tY7p(`tIV04@oCF>-_!#`^Q1u%lxuBh+k>||2RL}N| zT3-p2>nJ>kljZG_d^Rc-a{7{963f{6A0Fu?v8CXe{X*{ z0eLPT2n|m@6AwICVZkX}471Ax<_KUoSV@OCY3*iEJT`&o>3>8FffjVI3UtSrE=>8D zzZK`jnU7a_*$ZA^*JJg7Hy0q!a%(~W^uC(Z1jy%A@;shrCz=Bkw}P`Bzj%c5jDH*8 zwjMYwa9q<%Z0voQOpCn_lRCfPFxP?NSF#TqpTCdtQv!Zm7w%FqF5B`F z*AQnT`%Z#S93I-lI5K;4x%){XKgeJE3`CLO z>v)OsC|TvLa=beoZx_({QTqMFATvdhctB~()lIP016J~zf5->qnu(^oG|P!DZ1}wE z7SCm`!@FH?F|5Pa>hPNYG`V;?KDh6Pe`>s?7Wp=fYHpl$X-&n#WyF`d%1F){ zahok{FD#0$()w%f3)10JR61YtD=DqQ*k`R=$Bf37jq5K!iaFh5&6D25K?eOgw1YW@?T)aE9^MavqC?B%l<4y#(AXJ!NhTY-#y@21X zUA^COSDr-D@j?Ve& z-S-1!P4NDG6ukvs=fFNuxbG-GA=l28Be3@(xrqV0cinJIt^K1`nQ3^&# zZskb-#|im%6*%XF@@*-21Mw@t?};e>squ$3DOU8^8Ru?2r{xU4somogmocd~wziid zp3w3+Rdr5hMK%_orTB$6x7>j~EaUurP{#WQrcayWsx=~A+E?B>xKdt5@=ei`Jq{uK zY=GaSuL375O(uvj8-m|GsaNN_SDNN7i?*c6_=Tl;n~~=2pp5tTj5Gr$O(K=1@+eK^ zWh6~^o^|TnI$xy9-1?IQ`Mv?pt!Z-W_fyN)Yg{4fwmwh_&njl-t3!GIXf!mYGPZgC zOkue^pWGcQMcTu9YAe@QKx$gk5JjY;qdd0#%IgX}F>C1r)~yM8nvS;|7+ODI{B5oB z?bLdb8m61)^21vGJl?5O&e>LsKRZ1sle{3TcqU`^#3wccluUm~=c5#~0^-2^D)cF0nHr5O5G-OBmcizQ#wykSTED)V34W~Le z6Y0W%@>-EPvFK^@1{sWOpRe6-E z^4eLB!Oa_bTeQ7`gJX4kx*<0W>Ii)$PEabU*f17B{wqPuzXj);q0D<4ct_%QGJdaz zDxGfbGL)1w;MhTXW0c?CA}+?*+XhSV-0rc1OiTFK!9_U5hUvQulxh5mIn`z|B%`Vz z((kjB_ZnO&uS->NcS1e#6TD<$8dcoW9}d)nds6aTacb4{nnpQkNgLzpn%b%bb&cjE zM|1RC+>vyrvlDl@j26=@L}nxIp-8=on@B%9R^BG0Qh8k}ZVp-EbHZ!!lFQPF`!5)F z8IxMvXUwavsi>Mizox-_@{m&Ao~sTB{DV^0#j&%Dexb-l+_xb0DsCbbxAG`%<)yw1 zD$Q3wQ@2w@b{e5k>!FG;74-^uAOJPzW~a#M?pEq^*kh|3MJC5Ez0}E z*hYfX3cc!`RdB%}Mj@!1R5pt;W^qP!hRNa5Sj&xa4^mu}yeX+wf(YAiZAop+^4BPR zUNAE5JC=)^h~S%{Y%!s15^DAjfX~wT)&UTMwq<5s8@b5_kJYZ&F)~$sjE2V9ZNwJ2 z&N#uF8G7&LA4}NwUCT9o>KB>Q2E%-6XU0v2MR1q|H^DPo$8>TW{L19W<04;`nT-H^ zR2m z$P-J!*)f(J2>@=Iz*)GDT~EaWu1<3HkXI8pM#ILxNujZlI2bA3sIJX&1XaWLG2hDD z5IJ)@fU`*uE$ksV<5;v4%f*#oCJ0i#XHi-18@@NL(Vam|}zh%@)$875+>Wsuz!8`NW1HmqTj--418GiF6f6#fCBXuj?q2 zf!0ecItSVcH^1BW8Wfol6MklOBra;Rty(7h50@1fck z?RLCD{R!NM>+DzHiZ%Z8pr?cy)Gn>FSK%ee#@5-?NT|+c1r(~YTfrKLABLu;&SviM z>TF(0$_$;bKjCUD++5vd3pb`63NPCX9#K7H`m|9)hK(3pHGNd^;Nq&}|Ygob$w8)v%9P}8jcutMDv zIR=JbG*^O}^`Fz`vO82!rB`IJ$uky=5AROp6_VDCj>yPXgTu zdOqm8pu8{UJ(0xHa20aG!KcJ_AehPXy=x3nU zf#T@GCd^(3IiUA~_5l4UXfEjQL3aoJ5HteX8|mL0^b*kCpkD>;3(E3)Fev*S?5SzL zgD4XG3vp83#|A}$aR^U&rx=6|r{isMyo}}x+@>a8V14Nq+18jfH(~6y9g#w1pJH0! zC|FF#ST0W%*!X#39`;UP4~3w!fhq;rZs$ATd?(cHtN?Eye&^wLN2uFr<~K82z6j5d zX6DNb8c?j-*=mK3DDry|V(Be;gw7SfMRn7w>Z_*DYP?Je0H=dkX;{Owa^VAi?zHwd z^K`lIEzn`$zYWS_umcoxW6QMGfI zv8tW-S?A%a_8>S-kX1WJ-r>t^e6{~Mwc0b7Yig*;MseQ!T|0`?dF`%N-IpL0RUMHI z5tX+I5>npyrMPw>QGeJLlJ<*v^lzf9hCU(2+Q>^p*cD7dKt(`ohHfjS)pjK^Es&_ZNy+uBxHdeo-aCrg} zlCZiFo^)qA!pqBRPerjsdN6=|j`4j04G|JlsSIWzzG_H^`7$1q0DI=jE z>Krk1%oc1*kL%(saKZ;6u>7%AWcD49S{FJg*{z>uqk6R(Y`@@DmbkgJHVU2=r=%rA zrZuduyP+SZ|3{#d!97M_1(2NTi%83h@>pJ!*Y*0kGC^OzLVUtsviSOX8YS5nzwD^K zyicve9hM{q;ZoGT4xSzLIq2X6S7wOx`v~Q2MY5IG^*Z=xf)1X+o4y|EN%}e%ouZg9DIVdvESs`%0;UVJY!K;j2Fhcuz*hJwQ$ z2FHfpT;)!(vEiPdW$JGH@!TZOHyY};wsNLQ!dN0VyvuA3y)odjmQ6A>QQctgiFwZ%KR-qJoJtM!9$M+2%DjGktjNI!Wh}f^FuRyN_ZkZY*f!b3zbsypooP zmQXz3EYFzN66)Q0FP{n+$E!%;cr__P?r9vy(*Vo0#<5U5ufsD_%}CQzq47k%Y6^~8 zg=r|BH_0>RBz$^T3tXWI40u=gpw!h* z+E3`b+Jpj1Hue(tovD&qWF6@`$7ruj;@yW*zqg3ByekZgFBfrA4$EFet)NXQ5$=U{ zye$Ud{%Dkg3!-#aY7pE3{XuxFHi>Y5G|I_V;Z+)h`=fzg7T!*S@Fiw0<~W7dWKhbF zdGO(mSru;1=ql#cz*fBK9_cYvoh<%KN9}B0UW_%8w_`0SuTkD66>%!}D^|E_9>W`6 z4V^yx6)OrMnC*yze@V5y8alp36Vn;q*GFu8zZUB4^#zZgI;gP(3fin>)X;VZrpqS@Y6=o7+d$rTZfq=DL+}ski(y z-mRDbgpS=3^lrFWg=yIxl$sUSYTqR2s33kH2 z^4P^zUfbp2mvD1+8p)p7(K^`Qk=vD$Gl!>lh2&0fd6GzPNl+f=A(ZE~(v@;B&05?I zrsZo=Zk>tG)VGx8^9gOPOdR5~Ql8?`IKe*mq%9`?=>#@K3wm*`zFZp49fy$*OMWb> zW9!Fu<(lbyb%M6Iv|>XoB5@MB-+93@pkadS2N zw;QCrU*)m)tL|K}h_YDpL`Yt-kUVVGnz;q7ncsL8z)j*cw0DD3AF6tWfXDPPZZ~)J zf|Hx|jw1AAW6v+An!MBJWqLbYK{K9gxcu(k*;xEx+|MzKK<66Dr8ku^k?vJjUMpNH z&&e~N@?>fD@fX~SxnU;dbc$MIHRH&ge zb;&KVWjyxLzZ11_I9iZrLOK6*z7IcYWm6h$baMMe zO1*V5%&ax+oil7TeC)&wG)x&~QmavhwpP0zwTRYgL=m|KU3r}GQ(mV^T5h6ld9YHy zP*2=1X*ZUM=Q!}g(Q?`$^u3u=vJ2&#*fRq7EZ#$4~_!Rvk!XXHy%M6<9FrKE}%Lw zS)Ym24nNq1_Rb&GJ{kqW;hZ&$3mXo9*!CV4I~l+CK^eynKsmhN^0PJ=M0)*^^6oUY zZG9-##+QGI-x;@HIX?N5zt75}9P9BoLzzLsZE?ts_y#!-?|c`(2k;9YNXh~JvG`Tv z$1S?Xh=ixltE;POtQjLqA|)k_4OMgJ*UoF0BP)u&XsoXwu>1E)!TQS4t`Ek~ILg7Q zg{093lOriHQK=_&8D<$LMtFGNSthv4;Xma7nsMF=HTaq+K;LvY_+JENT8;pvCeCr1 zAc_P(bv#N#d7B)M9cSfvr@>wI&PuR3w#G~1W9#JwtH_3CW+op^*+i=qOA3BO3U$0f%^H)dHZpM)8;0S(o&$Lv&>YArFSrzl(#Q+0 z0(u1#5P5RF-`@oN5QB4j>zb`1$&<~W#n(dTD6bXLlc$9+jS{;vBO?j@T+3wt`RyOt)CIVeHKs2b$RPdOx^q-4Qd^fvWW$EbCcKz*T~gs!Y9 zux*Hx?=417^+gJvO#NZrMfTmF2+H)Fgj8t$CyL0mrpjAsY$L&VRMq|CdANCTL9}OM zzuu34+q|o2am1ieR~#%>3l4Qw*3rl-jic>FJIuJ=NKc+_9Sk5pT)wK#a$Sbg&9M_CapPuf8AtsSzDCq^L?St*Tp)>Cvk%A!~S5 zC(C<0`?DR7g42i}8uyb}syuzsp*5=jSOmDUq1rH)BFi)0%Ru>+)3u;yg028P2NVZM z%18LugI`kE8;rUyjw}9RP%Cut{LiBx!(>IY$@hWdUTq(~Lmo!tnJWaZ> zw@#z;6zFAn1v~bNt=J8LplLVr>eB5W1J3hkKI2su<69Ea6Zh}3ti1g~JN`7)X|!At*Nb9mzm&!8yZZ z-|z^4@mL4F`%-)ZQe)iS0%iPm7%6_uNs%amgB`J7NqDOaiUc{k=LEag;}NE(68ZmO zl<#1DtB7{vu!@lz}7oHEpGMSzoOQMBKnw+f`Vp!9GJGl26XE&O!5>4@LCxUG?FW4?nl>=6ookk2~VA zGU+(Zd&ln1ha&p8TYXSgH>j*u=fu72;e05fk9*U`s;Bdzh&~=j@^M7`6~Ug)ha&oT zSbccqoP8H-BF={*`gknLgojNbc1bU!;=0~Qo_LQF(H!VyEH3enm=|ft)zeWKhJMrDdZu=Duvwy zQ40Ag1(v#owo2XJ;)W@&;Xh;gI4LOV3I3kWrIo^62~x0mf^81_JJxizF0$cdO3^h= zFzM>9sm7(vOZ||>9O<9#E9hp}?J9l`~#g! zE6=;N{IdNvt#O$R0CZm$h9ZVBP{PQe52Il&epu7b`A|e3N2w35HI5H2kyhtJ5q%u5 zKD?eJ`^MJn?|dktkKyXW>xcO5_W{m_BKjDe_8tA54@LAbF0GFPoexFyF(JtZbE-85 zIUkDXW1{--+V26@Iq1R8ha&oztUg$u_SGCR(ep9D`A|e3=cx~`*X{R+4{<&e(MN^) z@HFW6rw(;K6wybG`tUT!xfW}_;Cv{ekJ;+OYZpda=b%yNLlJ#kqCUJ>aUQ^$!<-LA z^s!KVc+&O9G>1DMis<8V_2K2Ki|q?Q2Ra{$=%YFAW0KZ@7$G}T;Cv{ek7a3ne9`$( zL?741eV9_~=c^-}4@LBGllt(a%dxXHM>-#h=;OQUV?XQ?9ipQ%G)c}BIvz^zD;wlR+i zx*5F31g!?z43sN9;6DoLGo(k*_r11So8O2VzThMNGv-()M@2ose?nZ^md3hdJH2<5 zZ)6Yr3PAt?-AyBaxeGta_SbxXc?v%p&g0TzF?>b&4l$+5i#n8(pBv<#)T@54a__P27-wE&myFoRga(`uUr< zOxK5i12MJ_@umygN@;^g33+%h9sd6z5AQ%4H4ncnhf#vJc-p{OVLJH@4ys&z^2?-R9o_)0;vqq`UZ%yRsghactx%tridIJ^@tSMrA< z=3zz5!-}E~g>$2yhcy=Q_%P1@l{kle`FU7lOkaxVEB7eIDgF4Rx441hz#l0VIk_of zXnTswZ1Qkl7q*qs6C$M?uRXbjuQq0|d#fV8bw3G1#+H+`{;ILgL5DaWis<9uxQ_<) z@m0^qQ0GGteH-Mn@v?rbOUw1NG-j9!O%eSZDK4{-Q;`eX%IP;ECw``1 zQPt2;b(y|yDhS`uQIiw$$ecM8@759DFhMy-#aoISJrBcON)<64#S-s=$%9Av0e7|) z^oWj&-RyQP3iUaJs}&YV!Nr8oy2uH+{|`VT^QPC}J2BC5*Q6bg}cHh(0FAeGJh&UF^MMl=Gp8KF&+)qr~}8L?0Dt zeT;TK6wybG`tW9P$9S+TKAPh`8Z=f<$0HStb3PQ&$Fj7sI?4G^L?73w zkD<9Z1hrqVU%kHI6)rUybF%ZLh`w%8U&rzz7<1n)9KEK7OY@SiT!{mF8vZ9Q1VOLlJ#EB|fCCH6vwupiMk4{ne#q94(Fc zk_$}{{X8cw)8(b8@on?cHW#*)(>B!{XD{1~(Ob@!AEPoCBSnnSt69hB9T&EZ(aWki zZ}d9Eq=ICkd#fV8^`8=k%+C$c7R>i?hV!9_K0Xv572~**yJAiin?aaD{Ak-zlN0jT zAJ6~6o3#J%i6DukX=iWo+@I-UsYv2+bhzcb-1AZHd?=!i-PH$WXS8{`=i@BrLlJ%S z5+CXN!2QJy16t{YHpzvih@tfrm+5k3kqN=($b((jR{w8mj^z4{DTnmJ(BoyK!1-Ei z!XugNVx)+E4sAC^g(d_Wqa$6|Hb&beMimpQ=FhIFHmD4ko1~N3;HYf zX519*QmTk4JznDN_nQ2^!`aS*GS_LlJ${sE;;g5-)N-6w$}*v_39&J`~Z% zC24(BI3J4WV_{k!mClDE`rxK@j1St7Rh9Fhh(4Othu5z@3tVfaIUkDXV_DKW&a}=! zr#l~t=;OL1AO7k}wez8fK5kMUUXP>9dq<7)p@=@dn>HP_&W9rUxI=w-y;py}d4}_$ zh(7L4>tm+#p@=^26(8yQC=ZJpIF`NWq%^Z!Xo?ux1L87WiH*`Lj4iS2UD&q7_C3hu z5Ywt%re5U#m)%J2C*I)(WE3R0dUpZ>orCOrsm@Yk#6IvVMBA3w)g}=+poRGTM|4*V z^sykO{ojJN1AQWB7tkKZP+L9WEh4B-Q7*n|+28F>g%hb~w9m?tnkVkaujk8*xx{Hn zQBU&4r7iW=B_*C4QEfxeIwS&zmf5)?=#Ju4|P#ew{TeIeMte!oh16+^!SVQP6l5m!O*XX9qNiN`Wf`Z?3YXI3`xI3Aq!u+9m*l6DAr>)O$w(3I?TJ><;DHj?<$r-v~cr^dSkIxsGv^1GCJPyj*V;Zt4 z{VoAzST}&uy&sQE@PV=9JodPGH;9BuO2hCUQW*TrJRfS}Hv=@?`}=f4p0>s5gABFL z{W_0j<71*D@4nJJ+-lKov^+HZp!?+SzYVkMKI#_G$4m0T++g|!Y>+?2T zOKteqn(*&7;U8|oxAmYOXCHSa?KvEW^o`WpvTk>VwpT~ln(kL7t_ksJr+!Q4*TrKm z{qmttXx%O>GdnV!nkpWh$rB@b1pB|&yWKpo!szTC^Zo;k&PKGCC&uOm2cvi2&%Gg@ z-)tH!W}Lh_zfCu$r)k^695W;0>VsieQ+nEdM-i7T zUN7&iAb>#!GAS;7Ad}rE*)Lp@{W7o7T!LRX9ep_ScYo@(K|C2hgUrLppp@06=J_hn zaG1Uf`h@n!)2;C;{%l|BycFRaIEn4&qY3Tj+vrOAVc4)p!+NIfXl(D((mj+Ngeln! z`yyk%9+YW)-8@I}z;_%6%KTyT@1N-i=4DX&|Btc11dbVpZ-DaMC&AP1pp~F}UXOo_ z!%gUFvA6YO{NwXKLH7jR4gdK3$X@(H3o=Jnl+Q~*>3=mS!+!{r@!1H<_&p6u^H)&D z$JfXI3NwB0Mj1~=?g;5ua+mIK;jvFVM0(74G^o&_av=3P1*r8{hH@d$z$j5Q&@w?Y zfm$RKR#J)l`#HK_WibZDkSyy!x09|Y3brFB66m00mw$pU%rW}u%6+5&XF z#9*sK+Z@{N&`yW?qey9b2e8~?LK1s6fxal=6$0HL;bAChP_aW70;%6hpx)wlCeTpv zTL*Nb_-%BEN9il?W+3%@E71Pp_fDX};&%q#<7jR45@=1C5aIW&(X%!mD>^kwduW z%=ldkG+g|y11b@}>w&&2em6R_*`e(~`rdbd#)w}W8yk!gzq^2L6~C-574>vz7?Aoc z2AUv#OMwc-?|7i^iQh7ZrZ`j&q<$NL&Je$gfr`a%6VNL0yVRkT4y^%FziWZc*7O36 z6u+%N*9+PRbcckp*`a3~deNcR9Lh)Iq9OMKs*;cg039vi6#%se8U%Eopdz5}%R7o4 zDs?F4P`N`>9jbI_6_CF7PN2E+-Zen`%R3$fY8JE}=w3k^fu0bw8R$=fwgBBJaoOt7 zHix!5w9}zo4zXEOzjZ(wmwKRcvBNqySOhdk-mw^H;=$xCacH?itAW(-8lVeG=QFM*Q9iv|P}gK=%t;1N5Yz2Z5dy zv>xcMf;IxZDrhs%c0tboy)EcPpmzkl22?3%JJ2x_znu>4a){j=we9IpzC-;TiaJ#2 zP?1B$4wX6-bEw>*sSZ^-G}EDahZZ^1);ScwJivd(EVlsk zX0)`{9AW|J6=;#Hxz@v+p|a+2)O6PT(Bu1V{1u7cTgRYZ^W0zM;Vqt zwi4)1Vq5LdOrZaWZ5_}vVq5P}BT$~y{*>RdV!PO(CZN5W}x)bOSv0V-Hyx6XBXf4nYV*4P_U&MBuL+gQ#728&z7sPg> zLz{q(7u(H1FN*CJhn@i%EVf&L{wlUFI7!MzAU!mf!+|?m_ubibz;kL&YNO8#i6M{UlrR6fwqfn zr9;&~my7L8pvuEpqUs!~2m0M$@*07v#CDNGi-CSGwoO1w#de89OM%XoKEiUKFAZcU zD;>HK=samNZw4w8+glx41vFi3?*y7CwyPal12j);*8-g(whubA4(JN8g?i;0JW?9J zmWC&1;Mf_Te}v;E`fV#5h{Bmn!fY%2;Vu-EfzJ{9Y457{9__`yEsRRf86W%c@nz-n z+rqy4Y<1!L?F=3sWuDJN+7$H!I?A^$s-xy(zYffOMu~u|rKj?~Cmcpp{XEywsuP zKp%?jN+6vPxzVAUfj$!3TY)x3>35YwcLM!eY*zynL}|Omp|wDP)Q1lO{4`42bq=iu z>LIqRKwpf~cB4a^fc6yI%|JuNc8f#*AA9E=CqTqlz=cQDq=!KZ4h+K z1Ovt~fR2iaD2h3+IbqIO(KTYuaTRk8Yffug6Q(u$JI{IUId!Icx@L#>eck=zcRx(u zr>oBQ+;ca4>ydVg>>)NqWWhj_d8cV zit4F*e-(A2?k&kINYz19Z{0hKs1Te^<+kT37cD6veCeL9WW8M(Ez5qIiAY;A(wQqjm3aQKzcsja`ivwT158 zO4Jg%cUxCuM2*qCO`?w1z2jVs7qz4A-CNX6x_6SR14T9I-a|#rr+bfdb&RMzb?*tH zj?lfQxH?_bUb^>eQP=6-^IcsmYNGDFT-4um?-WJd>}=y`UUC|*xLG zB(RkBae@lOU=lT+Xx-NdDiCXvm?{4~yg94@$tO8M1!4md(*5>ZbwdNOpA%FdMpe~g z)j;g;1Qm$QtD@=}hy$FU0?|k!eO3+QNF3+{6^OA)6hEK3r`o{VIJ~5Ekb9$ow_Vk; z==s$8M9WQ0y=vauedCiX>|9;PnS9T40N(vKfAhQ!0fy8*=}9Ta{%-O&N$SXNp6{#b zY}vM-swtw5)E2ly)X}QCtb`{WyZV!kvZLbJx5Ly9+q;Ai4)*?_LVp~jme#U3cIU}( zOd?_HX{zKJGrh;#HMIRfQ+0L~KU;)lT=&v%UIO^zwDjJimeWJrda`kCJ{f7P1y4vt z&lRF|kWgK;8N6GXBmyy7T3$qG7Tf$^lV=jiY0@%vrT(HW)HW)MxO};8m)6rEi`q;~h4wp3Ep2R=DSB}34A$^_xGE7k zTI?>KJyWt_Dq%;-%}?1!4;5mf>gFnQRWza)MIH}gzFcFjq~ckM5rd)vbqy(;K}PaP zh^u9*r9-`Ks6gCEBFyfqnYrYLIY9;DHYJL`Mf#B1z|pmMN$GI+Mg?#8sAXH`(Z9KG z>xngO9*rm1|M9QRNLM#YMKKOfmNwT-lGD{sb!8fMXh?@OiJ> z8ObBEBfQRCvT_k)dr59#7j!YyEiH@U#VrBaqE)x zOet?jIktoNQ3)K)zo^2|T-OitgtfHgvO^O{^9t^F<;uD*e?d9uzG%*AV^|3KhztLX7mAxvF=yKzOQ4Hflm7Y)^Q}+jAIq>nlBChM_|1 zbkLU2F_U^{VXM0AJz-Hq2!aa4Y&kK2{n;p6EuH8D6^PDC6wff-)dpU6FjtbF82Q&>gfR41rFEMG`Wc7h7TDuu*pPEdg;lfYF{SI&wQ4xGR|{?3dDF4VLh;JAkKG!3dBAn&{h+8d|w%e z3!I<=abQlQIV7%9E_8wl#Nj!S=8z3T85cQ01>zVIXx+)I`5bjQa?R2#)nsv&_gUvb@xNkeg8+nY^_{Q<2UMdwzy;yz3`x<>yDabB! zf(pcyO4v8M%(%A*%;Gbe>MB5-pRSdXxF)(zmEKF4%vHq8!TxfOk_u7Y#Cp}ZmvV&@ zR3L6IB(8LV3dFrt#14 zu#CStK?ULs65*I1EL$yI>jV{u_eg|0Rq+nbbxu%$__(l)>z$wi@db$*cX)1af(pd9 zc~m1g6U7`LMqh333 zMcql>^-&vae;6+*-RkW~g?8+zmNw^O)*YHzjMzFUv6o10R(t800W=j_oT~DUL9aw3 zqu;y)@XKiF_FWEG#f#|MJYFggD-;s9J3$3v)k5M9C#XOSE+p=Bf(pdig~VM>P=VN> zkht3kDiEWphz(?`rF)#90DiEKoTDsq(q(YSAtLim}nM?kF6I3AfDI^|rf(pceg~UTnP=PqSka*Y$DiFtz z2*G#Qfx5P;oH)Nc;RF?ksU$)Rj|gQv z=>!#sJ4l41Y>q&D>I4;t!=$q5wY@;T_p(>0eGz zf%uR_xWb8L{OAM~h|j9Zh<7!9a)JuP*Ex~;<5~+z@}Hfc0`Y?q#djRqEn{oJc*yk?l}DFrBb2PS=2|Z_2X|&P=T1UkoesRDiHHj z5nISsOMf^)1!6%GVeXA*gi=qmsovjE1tKdX>YShg(Wj7T=L8jqek8&u94uQcwReIF z!~haC&N>~OpaLF5L%h}D%SKI^QjHi$Hyb!KvJRPZ)bEsI8BJ={pLQMiHo zwo&*<)qJ}L5q+K6OQk}o!_`OcQ7Z+z|Ll2cQ;CS@sm)a3Jhi<>S$v*qR2x(yo~LH< zI#Z#}Te_vS+oNo^Fk0eydsg>B1s`M8N4)AU%T`OXIY9+tR}$gKik~9P?gSNxJqw9W zPEdi^mqd;8)ErJwfjFp&h^z8BouC47L{7ADo|?-EDiFu!L^@B!GCDg!1>$59=#L3J zL)&u&va{612`Uh0&WRR2shHmhDiC*)2(xKCr+0IL3dH>+LVv__`T|Z+ zf%scav~W&e&XjX%=1R!x?vG7l?tVPsy_aVyB1$bNt}tlR#oeB zhaMg!6{7r3qpY>M$(*19@pB=us1sBm@NiV~-!YA=o1RWkftZOzn1kc$rk4{`AUYKi zy`7)}(Y26R%n2$G-AIJvF|KaywRSXtS9+p+So9xJ^^#V0%dvul+>5+je0)l^}v z(x7n{uT_S5-Qrqh32!$lwA)~}v{v|pGX~D_Eu4RsbRSgkv7Y+SV=`bD@d23lGs6gzI zN0rVg3xspZ04JzGOjM%yoN}1jh%ttXr{&xm6}%mwmPN-&Iq`O!9O=GogiJ3yr!4QK zQlZqN)yJQ4PB~FZ;t_L_s#@oi6+B8RL^)ZbtaVOV(FrOLXBQGHIY9;D!YU%3QwBOg z1>$lNHO?t3J3$5FnnGd~C#XQ&SV*ku1Qm$eNQ7f0uDJ&}K?UL-5;e{#t2sdh;-RXj z;yGn?C#XP7Q=<5s@{-z!akF#E8t#n>-kwp*qGP2VZY0^U@~Zo`W97GWPFcafMF9KJ z^4A$6rT^)DTl4ep=ItsBQO7WG=-&3p2Im|k?C&OjZ%7^aO@h}|oh{qmR5eA^$D;U6 z!Ov8+{!M}p)lSf6-y|q|e^8-6-c?I$S==S+oY_4%Y;EbA1ix$hgQn{2s_64r`pruK z|Am&`dldRAPyf@Nt8De6(Kb94YoqO3iHLLEcdF1+e`u7&tAk(F2F~K@V6eA173%z> zTUx9C!MQ&i#RK6er6KNv3O?E`tE=chl+9f7HJzXWF^dw#&veeCHgFW5=^X0bsNii* zwJd7adbp8f?K;2vwpzDa2z4lqD03=CG|VHSLPQI;IigyoIkKHb0xDiFg9i4C2g0Ji7&p7GvWa`6g11A}vS>yq!;K`H5sr1=cKprF<8R)U z|7Yn1+GuFV9r6isgPE%ED4ZN90NrfoS(kN@Kfk!(*1>%B2Vsj^`KwMTu z#5M31PEdiknnaB?@Rm+cfw-ZN*vbhi5Vw-(DZl+ZfWMhNLbh7k+6gKUcasS7W1Q`_ zae@lOgCxT781FkbIza{EvAm1{oVzZykR;#U2`UiJR}mKkVh1OvK)kAi{z~si-Wdge zJ<~HBshvc9pf(~(zu+aMG472D%v)-SqiZHJOF8x;W%|k$CANK}1lE?HsbiAC@N6jv`VqBa4U zZ^N@5N0}?hck*_ig105rvMuefyb@@Kl~h>`5#>^um5Z&`4*0y=tQPlnph7!P6}1EX z<|QEVRkZZ@x$F9})l!q!l?p_e#O(ZSept%a2tDoW1Qm$2lxW;&SGR&_kUzvdqp5Pl zq4jOl**=txbf~^^rbC;rFA;IYuz{*3**03E94~51Rg*+*r)mNH|2mrgE`BH3J3T`` zp$?mmQa>MIRH!8t+K(!8RWFKV_jfhWRpprMC3`Hf zwt2nLMq}9O6>}koTCKj3xs#l6z#|nr?xG&!w~_V<#BSbCR3OGz5vZf3-JPHUu@8xG z4Rx29OTLE_R3Hu{5mtFS#4HmwZnrs6ZS;BAg-Or@#}OpaOAH z6|r6@V=pJDK%8Dh#4`4Ff(pdBRYWXfq7zggE-obYae@lOm4(E)bFwpu#G2`Uh8RuM~^x#WjBK?UM{ z5@EDA2I4R$s6c$8MDZQ;@6-m48iKdO-5V9WeW{i>69q$+X(}#dX@^~D|I2;bjJ&qa zy!wB9jN}y%5O|-S;mm+Ju(X`55Ss8Vr6W8dDlk8LMD5Hh<(MInGJWM40z`ZDjahys zRTft=)2o67GmGRes<01s)}!mld(?RAv|X}NgP&2TFxOF`EUKb21bF)pe$VqE&bI$QKn?u`oG7E()$l7F{PdMkl; z>Z_`yK3O2MJ~>L27;B%b0U_x``9ol@$&2ypdY@3CPpD89Rb}hOvp35`>r$b1OK60Z zRO}PR2Z{<*f2E3Bc#ztNakCcwi?=WpysfB~ZE4{(lt8VAsInG9X-J5+TV^eMq$=6e zY74LDElh=J3sG-79LsdEIdnXzh{pKYg@(Z-|1@!+>?%C{rHftwUL2rJW zAsUo$wc3g(-4?1j+1rB(UN2Kiv`0snhcs)_&!rrWKwPT?+T#XQR?}prGc&Ypw{}Hs zhG#bKoUID?`fgW+dwtx7cHlM<>g5OsNq5R0qWDez+R5KisctJvj`wRxj#4(29HmZ@ z+@cum{Xm6QqC!omGFSDk`nwwFs_d$$4_Vi|)@Zw_+G3Sde8Qe>0E!CK9W7Fb#}eBM z6cwoZNQF6X12dQWG#?98ARZxsZzFD>|4*#(3g~pFs6ahI3P*JMG;C@p=L{#PKs={J z0 zFLkf$S>miEn7^?B`<$Nco zKy)i4E^vYh#3Cd*)|GgVK>k;bP{xH$P=V-8BCMk@-Yi|@1Qm!SlqkMxTv2V{CEhQ) z*u7D~TYt4|%lUp~C2%YZQf0>t#@Q?x&n!HeR+cSDXlJw9*^e$N)RwAp{PzW#68+{S zAo4Y|^v026_cANw_31BeYl}`3f+IyO)0C{hpgo33M4TnpQic5^G)l~p8>?Di&Gzy% zSXcd@wq>KH!{xR4EV-fDV&~Ut!Iw+C|ESOk>#C)-E?Q`-EcU?xL`%0yZdSW^A5ftW zs4Dv)&Rq1Hmw?hY)6(^S6;4+gW!Y-!QjeDk#MUG*|D<1YyvWQYzsw0L5Ic~lafDp% z1Qm##tB5Y4j4Pa=0cy0&xI|x#~*x{|sLY)0Cz- zK?UNlsxo9M_H?xqR3MJ7BI13tYn-40aUzK@W5v1puTD^bIE}=@`JK?EJSJKFIza{E z91^k^;C)cJw-JczoS*`6Q6X`?6I39sAQ5`d{%>3qb%PUBApS}s^hfOT8=as6aTAF! z5@TE4?Wf(pcYg;Cw<1Qm#n zN%WQf0e%3F!tFv-cR4`?;)|-N;#I=kPEdjPwlJ!DoS*{nQxy@{WcNBj1>%pYsA3P^ z=L8jqjxs&Tnyki1yx$2b5VKbiF{%fgpaRi_L>P%Nst28*0x^G88S(gd$O$SC3s;q~ zu57jRuoF}udQ}lIsz;ol0qc| zcY+GUz9ho9TGh-Yf58bV5C>I7)in?=Iza{E2om8bk4U`a1Qm#5l_>rs?F_X+(MRAV zrI+0s6}+9SmRM(-mF2b;uTL9r2M+7(v)#9?Xs7Cmw#$n7bGJa?eR_s@53B1-oO)N@ zS$f4Iq5^ZCM`RJ0wcRi2pEh7Wh|85gY*(qWxUgEDJ&Wt{%VZ1E%kpPdH~V^=3hQyI z%Jq0$H_>li0^+zvOE3Ox9VS%m0nBqP+1WCr!QU;~Uy2Dn~=nm>r&c z+nD{EM8s>uM^)j9@Oh20_!}+Hs12N5o;)IZ&3lUqb$-Gvtvzqm_KZ(Fi;1VdyALY( zcu9T4Z&HX0Pp>;c1>$ujisyolJhE}_OV)etjSAl0Rm-Awtxq1TT|af-R_i-h>!tEf zP<9BVzUie>q14aShkXA@4{Q5X(f|KHsmO2iOUv+oQo-Xc?Mr28t@f%$i~3IYHi`OH z6~^>8s#^b_RDKgX&ZcLE!|E;X9V+zBPikqsD;qT7c<++I2j=!eRf*8Kmk3P=DkaWI?wNx)-!kW_{A!zh5zs4 z9rr;6AB(CFeX=z@8>6wk&HPl8nm6mRYSEdi#8x@$9)e<5R&OKYZZ)=+ewQY(c+R>>P(LX#Q zDnztxnMx z<+FaVjL)2)0&xlnT>GUvfp1z!lK;~QDiCLqz{+O;XPk`#@wpRJAkHr&zHovH#HBfr zKF!`Sl<}n#R3N612y<<`WAl|0R3NS=5o&&ADC27M8li9lQyPe-UK?UMbC3H5JT@b;8i7R^uP zMBB0Vvir7?{yazeye)sX^LsCq3Z=fLKK_jFcD^koajo%=s#@Re{K2E7LX;n9l<`Vu z+0+)u{^bM}h))ZNADy5A@l_QO?}z^61Qm$yNz}Nf^s^IGAbu$%esO{dM4hY^<-TsX z=NdmF`qc?45Hl-L{JhxQY9q#_UGb9AZ|;o>-sVtCjLNVaQv3Fas!uuggP2bVtQ8he zWn&ZP_IWeZ1_@h-tK!PWtX|g<3_ny@eNa`d9(pAj8U5xZfbXuQ$L~X}7Kq=yu2dj; zk_c@b?~eZA1Qm#S5@GI(V+Q}lXZlT8RUnqmqZ-M1X^#+9ofA|bmamFxRd-SEsp>82V^#e`y{BqJ} zmbSgYXp5<671Wdr z!C>s&EfH}xzeg4JKc-Pm67__tF3Zb3uow8h)yc++^Wh_EgY5%DAhUVxsZjd|)Y6U# z^w+`}k0l-{c3mkS0s4{iu^%~9IC7{e$E+0SiGK4EQ2NtadgEFt2kDmsFvKFRJRY2A;GY-Rwzg+y$SWp*_)4Z>tv(r6bW9Db4OUMD%Ojm3}sP)`lCf^71?9y)6B}E0@ZOKwiUGoM=#2v z0yTT96h}HJDo|ZorFc|;q5?I)Qg|YI;<&v_m`SleCOcm3_aZQ|1uA9HsEryvV!~0d zxJHtR>Zb~2EG#c|rAeX|QN>xTzF-#XBX&3z<@ZuUA)RC>aimhA<~`NYj!Q-4B|y3f ztuZ14-AU9PsxUh}p{lzp5kA*IKP-Rn^@jW*o+FdvlO?w@KlQnQ3avoZ%~j^A-c`|f zVyt=8sOd6V(;|xX0!0OCg%&AkNKb47P*k8+RjP5Labw2rK1RnAw#GDPdUH%_5o8VW zm!<79k|kG;q9r%bNHS5wRmn?fu)J_Q4N=8wsv!l}RO>1$XlYkeG^IIxJW-*JYpJF6 ztyxy)7z;?|%&v>#_K}&5w{uisyxpk^i77k2jL8kT-~>r@SD>^(9A)`$>+O;5^B3E__CE`B!=qFOqQ1v$}ug zV_Mq7lzFMh&UZgZS^`s%Pt7vd7Xn z87x3if!e%9DxOd7bcza8V~bQQi~WqUs6dTvk&0z;On{;SwQH*s#}6nfP8kALNoIPKLWhEN7kUW^ z`KB4_hM3P&g_+`RRhTKBQq|kHVW!|V5qh*f3nA$z`9oaz_Akn7l)SylF#h~6^L6&gwGBJ z2Vx#4s6gCJ0-u|v&ooyJ#Jo;Wfq1YgD!bMOIG+<#ARbeq_z8y>)dn8M;U%T{-5V9W zJ*}2F(#*>8G&uG9eAtGO+fDvnao;v(ztJ%(Pff{lVtK;((|qJx|9w@-7R5L`xwRPo zE-`X8dtKEe+5ZoXTib1FtT$u#gi}Aig6JKFR;PY_-(g2`UgjlL*f+Y-Hw=FYE*rh|T&XV~w$*l*FTQB~`VaFIdc@q(YRdYLxL)_V|23A1A0l3@#-4Iza_u?J8mm z*=niY2`Ug9kf?D^S=hqrJSGwv1?w&WX`5Pgb90TC#XQ|Ng|vZHwaNJ;{+9meRCpx62C(r`a3}d;-D%b z)_hqfs6ZT%6BGDp|HGk-0ZveXIJSzgr<(yT=L8jqlSzcNN_=Wzc_*kqoROE2))8?I zUcm_}5a$&VD>^|1;t~?*^YoOjeM%`iODj1+1>&lzdJKVSN&}ss0&!gx5tj%nJ3$5F zW+ld&)07`0Irh$I3PV#}V2-sb0o!L+8W*QRu)Ul7-6;`q*1AholWhB&Mmb*8G*y#C zJ)>#?xx}Bpu3NKvAUDfiTvdFV;XK({)I(}3qVx)0QX1s#L4_LMrQr9!Dx zXe;{7T-Cc;ptIC`i2P>HaM_d++GKiG-6p{#dDOMP#*8+3UTYbj8ycBBB3sQ{kqX4C zN)-QM#|LTy54+(drPbXV6}-KrmKa0U_GaBai7e&V58@*w&_bW8vQ|dDI%Tmh2FMnq z?d8v`=Jz(ILYq?+U7^u$UIOCyTuU#0?&wFg5#v(qhc&z%sNn4zwJch%WN;(N)+@ib zZ>w83ty}ENqloBh*-NEDslTg_xDtrxs=-cBf#|RbT3Cs+YK~`~Ax=<%n5~LfPvhas znodxG=u9H41mdUeL!F=kF<(^~Lqi$EoS*{Hy|9e6oS*{HGcRKR&(gbwGS+s23Pe4L zaF*UA5DiXHfmm7zeVTD{txw8VQ5!h2dnC~7xHl?zTV5?OrrN_KB#a@Xfy{Jf0_j0xP~xk!}=J>CXENZL~VaP(p>z?tF^`7_Tw{dlCp z@koUzs4`bY$0*~;BSU@G)LK+hePxfO?J~p;iVD;^tx~KfC@N4Jk-{2a0{iYb*=lKB z?;k1T02G13Vt z5cgC?)in^KoS*{nkP^jrlb%rOIQN zgarPRcavU{7`Xy`S=A&7>0OPx_-@i$UblERX%lZZDzw|*-O^fNfVM(BFP7O5`nsw6 zpn{JN7!kf_G?`a2FvXtf8IB9gdS7`tPs%$>TevqWFrTU=da~9!xgp`U#`#7G98uq^ z!ZG@bDyx&_3Do)3R#4!6RO_C>LbpQaaFX9 z6I39&lfbodTC2rbve5}D5Iu8ZBwKc~R1;*|Iza`ZJ||izV>>6PKrBrn+!Ngx&Qsdn z2`UiF7ZN)-K?P!!oM_>m=olxcK$J;@GfKQCI@Sp)5NnaZ871BAi1$Qybb<=R`gv68 zo@o5e)lN=Off%Vo@jcOP)JBY(-4ktcZ&dI$S}lvlZ5eJP*|^=#ecQMl!f{*Up6JeA zDiul{qdxwOd!oBYNj$ggs;bsK(Oo=BDnz-5Mj5Y!;yuw_ouC3Sv5*+&1Qmz_s)#LQ ztEJtXpaO9ii7-pVmC^1_P=PqQkl4csDi9}DMK#1il6<@qR3J_xQDY3Ory~S2HWi3- zNZ?o*$@6KWY_+tfmq7*MA|>?dIvriG#-4n}{;S$x`(AiSX@YyB0&|607LEM=iMEk{ zz5BM2zX3;nxbwKa6)E{%UMdwzy-9u48dG~aK?UM=5~06wezi2w2`Uix783h7K?UOB zJgPKfuW1EHzONHhARbqucwPIl+Q88|cu8rJd!vH4XVtQ(FX|I*ees(6w!Roub@q(M z#eQBY6-s?WeboBJxc!}=0`VS+&=;|c1Dv1&@iB=o%H!GdKqsg`d_kgfo!{e(EA@k% zpaSu2Ra9|=9P9)Yh@Yy6xNbPa2`UhOGB)dpUk zH&>D$;A`@ zt@}?&`)`yy`fX|5zioH)Flt4G7^x5={bsJ}UA4aM&)ajDP?qQsXAvrtJW%TvujArb zQ(%P=Q#NM2+?A2~JRf7+y%6=mZsrO>?4! z_3TMbP=VNrM2+?A$xcv#*q%g<_3SB5P=RR5qe|=99ySzZ@2O5uf!Liyjg`Y>C#XQ| zt;ChW|Zs6ZT5NSxsW6^P?Wg!wO?kIr<0 z3dE^}#92;IfjEmqjq}mjPEdikpsEba43^Guf(pcCRYW`=o$CY@h^woJSo8CopaOA& z62+g*+^sf;#mG)UX9pl53OS>xhT_WQ7;ty4mWdCgPqZ{cy z<5b>11BCdeXV`<0IJ4S_X!cy>WnO10Fzwya#^eFr;YF_~TUgIr?mnpCV-EG9Yo>G^ z{U(Y|=?W*PK+H{|#(L&TC#XOyKq8E>xMsS_2`Ugh@~F}}`|1=CvMEkbfmkdj(ltqZ zBJ^q}s6Z^KMDe||mDC1h{(zU1u5oWv@V2a47LAW`qHTPv;=Zl-4rlMxSpEFfOQk}o ztErD#cMz_1f(pc%g~WAEP=Q#diimfmu6Ke8#6~1)%tALfK?P!yLgGdzs6cF4NZjNE z6^QLf)L6Srb%F}SPE}=Kj< z6((8%lHctF6^ILzSYQyoLEg1sEpfHl!P$hc#JS%+Qo-Y8Y8lr(c8;)T+Az-}VLOOx zmB7fkK^0a9x2m$^-g4QY38Z-iH&w06x-Wle5Q+1}UCpl9mrmd+Qjh4@uGxp=4oau% ze1jONP!<(pq~FX{y{p!*+4J@sA(SP0#EOLqCEuZSYi-?&Pk_K#!g)Qux9$H|c^DL0 zMC^Yn)7HIrqz&i@wAuYqL#})8Q#D1lJ)jDfPip;=*oM4>v#!rCF2AYh)0-6^4AyZT}-oti#{DR4SDEi~5i!MC3_8dD?yWggqwhC;8eFx0^7=MoubLvZCYS z>|}=Vbd3DLyQR@0Fpez!PuK0{=l?3t#Bqn!acuM#HJ7ONrLw55s!*Huy0=MGJ5`fJ z)v0RzSIau77XeC(p|MhW)O&{t?Kg{BTJM@Aj*U0{2p^YOKf&(MWOSqCaQ@Hq-hPJ) zZ_o21oC-Zd)y-Ars`6NsFg-DfJRZb6uf|+S^>Id?e990pC@N43k-`z4u2W78#ADtz zR3H{5QDYT4%?T$2|4Um8TB77sLA!*owzozx@xZD|d2iH}t(ltqOY={Iv#@2d4ROx~Vx z4MUF@n^b7ejkRudHO?i^c@I#5*n&jQ{QoQ;DqAf*?*tWyZAoDKkL20sATyWz1t+LL z>`0=<_~eTTW1cn39)~=DY_zCi&*A6I39sFD&C7C#XQ&LZZf; z_pTFEAnsD4^*QfRwL`$$hdJ*<_eceg52$5Z=Df$1zWS5jX)K?Ncs5ys8AvenXbC#XR5Ara1F!^~XrZ=9e4(N77x zIy2*eBCvNxQ<|C_$GEH9);{eWo^tF*{|%6c_$kP8s+wfm>Kf%FQG-?K|716{*8du_ zs@jNgv*&5P_1aURek-Y^jbrri`#s{Q+y_o1O_e{hy5C116-FObWb3 zEj>O#Hq`Cqw;?=UDiG_EsIhMR-U%uY!wbv!!3io5o06z8>;B6LDiB+dsIi9l(FrOL z+vjDpFzf#01Qm#;!ZLn#f(pd$B*M`XubX~xf(pdmO0+)f9;$W%lm>@2#2@aF3Lf`Y z%eKtAM<{_Y^%qq*B2G|c@) zeB4tZMk>TeznQCgSFO*wd3(lLmmYD%P@z3f*1E;d9#566o_eEhAWEu0oI#?-*sODc z3dDJN87+*>c1}=%xP(NFk=EV`DiBvG(fUZcS?vU9HqvHxk5uq@om#eKq}`?jdht$G z=*9b0*+{Tlc4(>`Y4@mgIqkKqK?FwHJw0Z0q&@8;jS4YRAx8SmT-Cd3eWc~>8AlpD zc5pvv&xf>bwa)Lecn?s4m`0+;`F&O=s6afUg#0p7e|hu&@06kuBxUmVsvu}uQ7;0N7RPW-X*Ta2D)i19YFT*eWW`FYOAHWkJ;6~;DI=Bj8#!6@>05c4M*b0rn;lrmya zRG_{jRpZ{$?A|t1Aig8fU!Jykfvd1-p*1@>K?UMx5;f-GIh>#ZQ7WTtYaM}eIza_u zCK5I3F_#lmAUcrzhMHLk6DJ3$5FqQWv3bAk%Q6@^3}C#XRD zl|+rBr>_%KAZ{X2qX+AqpaO9_iEzHTLAF|2+zBcW_mX}kI>?spnU#yJgJg>)acx##`teJJx1jO-n8D$lJv+^^w5#th`lCsp#+kpz+J}kpqTYBaTCE(NQ_LbHx-uLf<-6<{Q zrBb2PugfSk67iFQrJbMx@dF90G}5;P2g_DV%Q!&=;@5If8U3B00?|%frf(#+@Hzal zPEdiEMTrHL%|E%9jTK{Z9<{;t-SLvr0QW`(Z*!_;Tl!*t_icUgJ^LceyzyzC<-AlX zl)9k$sMQzCJ3$2^BN6&yi&QIQD>y*~q7R8M|KNU&MEqUIflg3?7)T=AOOKz|uIvOAh}H8lQdAqsR!gfmK?PzciEz$|BYjmTs6ebs zBCM(Rv;rg_=BTC@DKZ z1)_;WjZre#2`Uh~=R^ymWQY?~Aok9Q7DmaMPEdi^pG1vOGSmqw5QpYvv@lABIY9;D zFC=P=lC_+m0&xO~8lz-wC#XP7CQ)OQG&n&8;_Skx)^UOg#Dyfn>=W00>pDRN;&Kw< z`R$`*tEKgvpaOA?67s*N?b|qh?+IqvBm#S9G}TprIM3fGCGnczCRKIIHGgKjeVD`6 z_eiM_%dHw|t(kQLC#XQ&T}W)`1Qmz}Nrd)$ShiZ)$O$SCk10{vev@Pm_ReUks{qk{ zPfJN`zh_jj{pRs!?zau?H{2toLM$(6r24z&=^I}=hf+p3K?UM9B`WLIAbb9|>-M(S z?H$$)J&-=H+@UTHbEHQ}g*ZOYC}X|O%7M}-C#XPtszhbInq<%acD=sR+F)+~T2)yFt!||uHXiF#Ro1OXsN1F3Dx^v=dYyx{$yOn$8`|$yQ67J3$3veiGsQ6z}kC;RF?kg_S6N27Ph0 zLAhJwC8aIh8x_3uQp>iiTKlKcfx zouC4-0*O#YV<5J1f(pc{O4#oRG!EZuyM4yuQyk=tJMn3Exi=)1u(s47BEA>Lr4F|9 zzc9D!T?-98+0Ndi99QK?Q<%xD&hN3TDJ{hBu?$g#x(`%ByUc5YBh8%bt~7H^lKRNNOhK$Qr+ zW?daZ(&zFA=Y3NNt4nTvdg_RTe=5X8g)xsp*CyFCF#Ho0VJ;o!VLPYzuIikbew?)+F--zgVr(#57Jt8VZbX1!oI>~)o zM13`)#^Jl~F-B%6OZ6g9!i=VH;He9Y{8OcDuIVPL((f5h;BowTC}>BoDHY;4Q{%2R zXYb?$6^Qdm)VOA8a)JuPrG>=KPEdiEqD146?RMC8kBNKB22BIy74@CbRM~bo1}eAN z%)4zW1p86u^%4==_y$!?vh6O7a+0WfRdrc8|72D+YCm)K#C&(V+F<)fcu8p&uRRrN zf3sTJIO-ra2zW;FWEOF-!lXz9hr_ETP$@j_VI)$2k9 zZ;z^FTV|VQ-M7_kDIQ7x!O<`}RnbPn3lbwo!;7jg8s65p(Kqj@D*j~Z4Yh&WxA2nE zIB!8JwBW01X>EbN`ncI>*dwtwN^Vw5`)HuTXrL+@4fLCrfYLwI(&Kf}aj86HyLr4+ zAU-33)$&N*^P3Wg-JPHU@pTmuSAlytK?ULm5;*G);5@f}C}X@6R3Ls;qWBK|ENkLy zjTG+J5^`e-@rqgr<&CU~h-D0NQtQGAWCpqCTxg6`$s zsNij$HrHWc_ic4pp|B2nd#O|?HB%q8YCX{jDiD20;CgK`zlk?Zwp!Z92`Ui%l#uVh z?qycU%kp1CUCZVClCiaK?P!W5=+TiV*sB5 zi%0q)PEdi^yNZaPKpyG@6^Q+FVgk$9F+_Ek6I37$C4r+feX#>g;&{~-}^1b?KeNw!Vb zC=ug#s(4mgvEZ!srP>KlYTq8OOs9GaP@x4rQ%gHvb&xF|Han|zNb$YcEPx=N*z1kmFe`}@Q4jmh^C!dT2CZH&tUtu_6#D$ zpLB@kl4)zrrFh@NcLtKTP!`NR=?ou8WLHOXTHbIU%IQai|7l@`BYe@1WX zCn^w&k_gvgFUeL*XF5RzqOTG=`#l%hHb{mRo6&@RiwU!g-M_Z&vnNqb#>i0SQW6nI z`O>PIWZTLbNu{i^Z?rLQb6 z*e|lQnU8lWjCU%uBvt0B-WA3>_YQPbc7@*O-r=q)kA{_Gk0rJTVxvNkBGS!&;dyn%+!FIT(zK9V8+iVPjM^$+kT-N*rMmRJDF}I!^5b zDE(DNrloUwTMJO3j!kN5W42b_K`dYC0UAfvP8k%Atjks5$a+AP2p#{IK}fw^I;=&ikL)vN%?&vSwb#A!-2ZoJ$0V5q;;hrXE6B!i$?Dq8P0Bug+T^BjqY$H}>>nq=D* z8s#KWQ&biIpP!eijTo2C#Y;-(_qO(;LhUb9OBqhvIPl^V^&-F=%vEw zrK%iDy?~~)XlA8Tq4d9M>G3XIyvn-3&;x5vhn4tmTFpEz5pfJXp{hxud|9K!7WLG4iUjXL0! z>5|^olT>JdXVlV0NNYKqz36l9m<;|f=U$=;bMC#Wq@dEXszm7cy8=Selk$gB)|G<> z$IV{yg7^QD9J6nhX5ULB$L#w=dcTakLFr4$3+zRfw)62!h4D;Kj85eG$dB14RYuy%wpsnz){YtC!I5>DDjZq& zs}iB(|56A^)8r36*ODedtBjKuy#H8oIdn>$)A6&gM2SEfpHRpX}tWI)s8-TsW5t}D#ubUpefOBUII#ATT8FC znz_p3r2?@5i5jb!DNay<7)7GSh`8DbDiE8KsPX-RYn-40(Wpf6=fAtEjTq|{C32*{ zx;H9#8>^O>S=A)GV4gwB^fmtsdw2J3eYC6gQEb`x8Nsz)DiuoIQ+>q$31Ltw1=)2@ zP=VN&M2*iOu6Ke8#6g9`4Ng#jIHHia(FrOL$C3!Wx2SBjbdwWQAWkL`##F5NR41rF zoIxUd(zme{AocJ-|Z1mA)@Eo9MS9U+afxk@c6#ROQk}oZ>f*?`yuhTxYr3P z5Fe1Jaa`Qz1Qm!+Nz~};`<6oK1tbhus?$yv?DO zMRmxM2dl$;?%V2cMB#XP#7m_@sSBu&T4$KQIY9-Y2Z=D-tdQbD_NWt7AQmeu<1r_w zKrC5EOml(?#IjXUtu9+FJ?;b*h?NSl;#3l0c3acTCI7nB1>!Lh7*`YcoaRwxF8TXTP=RDNK3l0_W<=ZMa8-G@O~+F0onKhgfP zTEloMUQ+tRYfpvR|Dcw(Cg>nr{;7AyfMDx}5R#6OKeL*mD+kb2xEnxKbT@#0^AfL#KEkL_78PQo-^^9LtJa^c%G+~< zP?qSigS@3e>ujub(>qh?+3iL%m;77r0V)t%DDmGklWZ#yaVFVLRg*+HPNT$ey@#se znPg|R5#wgxQv1$pPlei#RZHtxwB;Ag`rl@fdt{GU-Q@jDg?^?gnn~z4F9D@b(9&aX zZ6#YReedy7ftaMke^YNAED^D{4pD{PI!>cR+nuPYxVMg08`SzEyrlGl*PaTsKSC|7 zAJCRxx7u4bdv8&px2TGGi+=MGQ2HradS%GQKVAoiimOw*6VE(Ds*V zlxX`aROzQ5Q@NH!8K}wh3@ahbb{DCQh|(2!N$FqS_EccbQ_I-)-!*G{TlF3wwq|vU zw>=fwo~o$r=@)HJh0>>J>9vlOA3a_w5Z4zHKRH1K;uaD$&eA_SK?UM25;e}!zc@h! z;(@%37S7VYIza{EQ4--S9j|nMbAk%QQ%bacmVQm`1ZZ}au3HRaql0Xvg2xxsvMp!n zH*ouC5oEr}ZUmpeE? z1>&c|s5&}91>%pqjFJ2NZ`&wS_8$i>a0#sfta5Jj{E^!I}e2OlxA~+3dF)nRDKdJ2cwT+quY|(_%{Y4 zvX_*^Ili~5_&-?0yWO*UlvIeaUZYf^g?e>zf(pdaN>tXXUiM(`jHZ_AwY-$Xdaa-; z)@$!j&>S8m72;S~i1wvFBg!>A%5q_pb9$6ih;pb#S?ik)b2&i;VqGQpKM`~<_}@1- zRXa4&pwP6P-6It|4p+-KbAv+a$gJ5f?||4`35>k0R8`K?n907^*%$NhRT+8$33fR5 zBRwR42n^qLLFz5J`FXgh`v!{uB7_N9!rcE6cwnkN)_K3 z+EZ=dzwRp>^Xo+xj{|1!7uN8S#Evy%SU*p2^FYJe$^|9OjnA zouC5oQcg@DAr~K>mT-a!#OpaRl0;n~mUMy&#JeOyTRk0!eojz<_^66_JP=DcK?UOT zoJgbOD%omjX(y;ad{aeiW9E`C;{+9mA9JEB`~0~O)hbRSUeD`J3$3vzAEB5k4f&i zIza`ZdrpjG8CwLR>;x5vo+NO5q;a)FAO<@@1){#HjD16Y3~_=A#L`v7yMb8K2`UiF zR}uJTl%=6gP=Qz_Cnm7w^M^8qIY9-YtVHosrR%E=%AG5CTg$ys!P{DDS+rW{4>ywF z2*gH8;Osb3m7R-lKIxFfGgeu)AdQnhv--@>SX7;5A64ZUs~%`d^qZG}I5yGJ^`1-` zGl!eG!+>_}Nh;^Ny0{Upt?*tWy{R)W*4Q&W zv-Q(iYJ=^E;3cKu?u`n}scPAlk$kQa7|9o?vN4Krwt5yv@`|zrX&3o3tM7ayQ(+`i z6^&&2%}YS!7i;P9e^ZUmsE+WuQh~Tqi7v~vE6x1^S0J*nqUENl4Yte83r{268x_1= ztCmGqX~Pq5bHJ@ipylpRWo=?P>NhyEKAfydHfh`a0wD>%P73=+C5PW{(tGUt!P}M! zZA*nRsWMkZ?LAn`ct4Q}^}SnTE}|GQYC#3+K~mvPXdIEFyj`h4Jf=kBDE^vzj~5e@1Flr_nyG>TKEetg0!ZUf25GA?htv z3yi?;%J*#cyCv^a`W?}k2Na9M1>ktWv(hmO}wruiy6ln6=Hr@W3Hr@ls%Rh zF={~t>LXIPdzyYbYJ!x@4V;4v9c8u_ReTREn_M=%9@fP7>v0& zBqH8*m{S$@FQ8FQ64hN5)_+~TvFn7&ew$Bi#JIF_2xPSP8x`u;RV}UUK_H=phGjMi zPFE$Hv^REwkhG8d!TB|KBdL?TF+ab0?@*z4s8Bzu%vEKN#bb(5tvsmf}IC|Au|YllC)9jMR_R7LGTzj+CWd=o9b%QEsg z%?q_=%NAh<5GFj@mO+$tE2U z_N4qS>HQg!!|$W%y=3y=w}M4%RA?zGlu4DjDr!AOk;em{yJ*Zs6e9*j1!}xf#ZM6& zs5S^}B~&S;t-Z~u;B6nZEE;HPHmZppE*{5`$L|MY^j#SW6g{&2|=(bMVu^|G_0y#HKs?4MnB&Lr=zmK^UzmfCs0 zQlVd|&^lC^t9n=cT@7?qcGci&xU12wwsqCyYP_q;@f25>Y-`k!Y8FxFY7Z7s>=#f} zpe}BeVjqH{0(E7p)Z-cY1QZphYg?r_Hb7BGS^Vgw>MZ-HDvyVH*<*=*^AZrpbS=I34%TmK126lTE6K-tJ5a&fztplV?NC|| zbwxY0S7kLslxt?O9qbO)7};Z1vwAyFp&h7-+JS!a5)k=JTDm?%(UmKsZDgyZ9lfqp zAUY|bBWQB1tC((T11~R`E6I0qZ&dKsRV|BJ4)ZONji7~;K+7$n%Gw0=S}lt$cbIHJ zx=#MgYIbiqDzqF`QOnV9UIHRtR7)>zho#g;jGMJXleYsEy!BPfwzNZkCD0Dbsj?a( z%0XFc?a;~FfeP(FRn!jjo0ovdSJcwGtkkZw;N93r5(0V0`0K1Dyt!)Tqld|aHDKNdRP9;YEEwl zDzpPtQ9ICYUIHTDR!fi1BfyuXUA?YUAa*Py#yLR+VjPKZ{$9ZfkbE~Ms6b3mLVG7Y zaR>l=re`)v4^|s&-!}Bl?(U5W%p|o$@5oZKS?ZYHWhu8=>o6tIJ4dRrc28zHyFsHZ zJ7yNqL8|7FZP%(2p*=PfLei%4hZ1&?KUoBqHjy{xxvTdm6?%aRQBY;BDtoz??6Jgn z^2pEvM{6xAslJ9t&e%awfjY58YKcIxo}j2eokj|uPYvK1XN^GY;r&Ae;+!gCXduQr zK?UL>B^uXk3U>Uz%EM4-w(sA0Q^}&`uaJ^>kMK%W{68NT^n2~c;F2Y!Lp@R|M0ySD z7RJ7?FgOr@ae@lOGgVQ=HTcm^P=R=^L&+a9LmCM6BB$R-N8&}r75Bjp`}S8;<;dXd2cbA&3{v#Nig3_Th*2N zBdql?E0;yISA`?uJKftP>RVN);Ww(ftkAyHwXRz!zuU-9&v>>$EBq#QY}qqIBOLEN zOojIQNiD6fWP>KmkzF%8QyivBHtGETcL+)N0yLc4|2w~RE1;%D!6619-pU_0*DS~|gdmkP}MZfQNUsP>Hhk0|LkDh@IS zlAq{4sNiE!^`TdBBRS&62I3?qs6h0sBJ6wT08e&;3dB-5F_~p792)i%C#XOyM*?T6 z^qkLTaGuhsPEdhZIVZZZWrv!%r-s`0-do$sYmq140F$Di@PARR3wadtUIRjvO8=>m_E z3Q?Y*QR-841K85>DeeoMpaL!;yHCA<(I6(#C@q-UURVCzUt5V}yJMX^TIN2oW zM)@19iZA^u-iKZPC$e&d+tR9c)>Lx;)Je$D18+->__Wnqs?L^e@2Hw0>N8R8b*21; zDy|jl3)YGstDT^wbwgNFye+BFmLI64^(qJ?^w4^ltrgEyC7ZPOWpSzLj`aT7^!~H- z-k$njP%4M|bxIK|D7lrhnvWhTj2jq(&Tlzp6T0Jp8U| zil|vPu+i5^6~8sObiuaCVAm=J7zl`nh=7U;iUndIio_C1 zxqx7IVRv_7cXxLOc6Tdw{?D0nXZEt}uJSzZ^ZP%)_w$az{m$I;J#)_V%)Psy85j8A z19+KeeT1+qvoJ~CDv*Hz%iBxITi;ZMAc?geUZ%&S_&vMq69-JfJ!m66(yMe=wB6ve*Yc!6_^|l6lpw5 zz{^FeCWNI`mPzu~gyr5$iLDs}rjBF?{@w;8aVb~P<_KY%Bcxrk77`mTq*s#z=5Eb$ z*FKs2pWYJ}g`DgmCt8ixWXQ-0&oE5IyyPM)rxl`{2%)95$x^8eLIMln@EdFGuLkY* zp=(W)LsH&Z62=R91{x!hpqrjLwXK zeg!jxWdRX3b9gA_B{&w7A=pYKh`7EeDMDCMgtW^-zC$9tSQdoPj!>36+f%8jBsNJk z1~(N4g|CE=5lIZ$e#Z<&rEo|v2q8nQ$wS(=`Eqf%9u^Ej$VeiFbyh_YBXcoN??Th1 za73^OA*(O3Wak|1xj0;p3I-u$49?(-iHvbfFbE+dnHaLOZ>S0pJXyV$YoUgHo5Vk==m=_`K)+itODNnST5PG+mS!jqw_92T9 zvQ{t_+lNZ$LXfCc!dsXOrjNj1QaCPZm=J1P$0QAvu%pE0eR(@$px3(?;w2=Bu@e3% zN;pv|FX5^ngnIb5!N5ZZQNm3{FDHa0ObGKLWT>ntPb@1!=-pmsp&=I8hb%(KI!r8C zt1k(uJa~zAN(dPz8N+a^zrtit%UZ4quFZrtLa6OLlQdK(Hj)NjC)XJR%jp(Fy6WVM zsFOIQyiN?YdW}tluuceJUW5#lF6D`(O9;KY%Pcg+BKwd<2w9IA%W$htV=^F|uGOCq zt)38Sd&wjXm9QhKfxt`nBV(Y~Ul`I=!aqa_cUQ_w*ifr)E?PYyEMY>J7a>DsMR{Ub z5kl|2GYbu|$UbBdLRJ=dKmeau$N5BhgJKe-@^Dg=A|YfL6GPTd=>OA!Jl#48wo1!;#6LmLRSQu4jcdLa5D-Nn+i|1R3OYrIc=Dhbz`i z9if|-h7T(ZeQord$dwT0>cVs|uccGl6e$at)ELWaM_DjlAu3I-u$1QA2# zd09y1;fi1oLPj_-WUFHnE)LhLfC5JJYB3|7f&@Sb20LdGIuVCm}kCj9$?K?oVk4d(GcFbE-ItwF{^ z!61Z;&BV}CgO3D*5HfZWLr)Dp77Rkj*q^~Fc?~`h3_{2_N(?(w0JmmH9 zOfU!`<03Kic>Y{42qEJdG4y!;LNEv+<4y*vBw2nHc!^kxit4pCUV-3vFgPM3!> zIZU^bwW6FtBO%l{kVzWam5xI-5Ks{^MluGjmB%o|*U6B;0`365i(P4gQobv7g?r2( z$*O#C<@{u^>mY=?4nmk0A?^JKI3xn)smUE}9nUN@#3K8UMF?3_i6xt>_}dMbnXxEE zLdcj+3_a~DmtYV=#=;DY;;38-xdnp|GL{iTw!)OZ!Iwuc2q9w)W3W#XdF%UB)ea_u z*+$|oDdZK}2%)x3Ow!OkS1GZ1OWDmBSbO^z;x&z>odbkve~hVakb)r)ez??F(H;n4 zdmyA;pYjs`(yPeuOP zA2lJBhth&U2pKjR@{rd@8Nncg3ot`&f>B-39icf8cWN6+Z+cjRGr(w)fLoD(W zS%i=kMJ(B=oxDv~5G6_o8F9pr?F-~G_FbE-Iyg^14!61Z;sTmk;xk+%XDj0;2F*^gp zO~$Au7=)0qkTHrG{HCcjOa>LrmT9vV+6bYxWlSFbE;z6ES3`5pIymgOgwoLdFkb z$VMIciFqBtAcTypuq;V`l2(pq09R+hAcTxu#L#otc1Q1rk50^SB)&_(Mz&%2S=4{fd$pLe(&2pFT zP~|P6zOa`NGF%NZ8VCjyr#BJ|Lda-K z3|a4K45>Uc77Rkj=*Sqw>|tMUp7sSOjd$KE`CJsiWH7y#Y*uJ0v=Ks1Fq4$8emNlr z(jjzaziEYtj7Y}7x{hH8*MSKP@pi$l5|OPfxmM(nZtI<)$)243ErZ|K~rr6hzL%yTeUMB~m7hQc9j9J4YB&_sp|e+S`c zCIiBX#rR7K&4l-a(EAZglGiMj<-2tC&v)W@Zo{R{iFzi4^-RdnxI=n1IbiNnSnjO0 z?5Hm_fm9xv3wsG6V-_)FGphV#tc73@LdF7vjFy5y2pK8Fz%fBO^Y||9%+Rt{f(ichCGipf>fB#22qEK*#t*5L$aer81%nVWJ{n|n z5)4Af_->F9AQ*&@k;R*>IB{N<`k;IU>?|0BkYP*=S^wxNE2}`kAcTy3#L&}gg9L*R zGRzG!f(3&RGKy=g(owo0fmb%Ao;Vxt>>|HxR-a zB~(-(r9g&y2w9=A2W{@cY}RIhb0Uz%$RdQSSYqL5F0FqD%gUy!C>uh^=uQmTPTf@G z0J{yrAcTzGnmnW#Lw@=iB^ZQ|F_0Lt86%f$MHMX=gpe^@!;pG=JDF86fRms&8$oUw2vV+k4@0GgWkbpKv*#Y ze@P)hcuxqu-@+t$pTypvRLXlYpT}b14ww2OdM+XCxrDU)n+4qAf%Ix}z}yeA-1W_4 z-G#k`ka3(Cdgif2!61Z;vy2ho+bBXE2j3^*>lFwW_5@D}cX_Y`pyZMNz*W|PS#H=q zux#W3t;evHE^H*l_K^x6(G$GO3{8WyD-5Loy3hPY&Lf6?KNH+xazJ38p~NeOBvF=x z(3%@elD7jU2EVY~V&FcZAD_j{pjKjgGKaL~43z|QkRbr9O*z38b##Fr)G-8paL#-p z#na%5_kY3cq}_U<07M{vG@fB;JY}U}h(*35 zix9G2>txA$3Y8PG2qEjkZ&_5P$RdQSZ;Ykg_5*y~RoDl3NCBYa5x9nH#VxhsGSPnp z)V03Ksbv{Ik>&4YVtYcrvie}#!ZwhFArC-C3_SsqjiJwg@&lsvl_^8?7N3KGxA^ih zIiM}~rQDi7!!LsbD? zWyl`TbA|x0zKADCXl_sV!5k;U59W9XelW*DP;fcmIvuVUKM7a7e+{lE{}8Uoe*;(e z&;C*aT-bNSa1VcoK1&GuETN(TDFwn>qPy5<31NK^auWz^j?!8R)J~wz0vYPBRF3Em zA*`K3tac2ssLYW?2w5e5%cA;079nJn)ycAeJ3LTbB8w2RD*cv4^^Pn;$f~B3B_H#s zjUbBT)z+IhfMTYyL4ioF!&{;fd?hWSCs z(6^$hSQ)uNS~x@KO?!4X98f!kk^r@3h*l?>?=XNHTKm)>rUlb0$O@sas2xIBew~;k zA7zk%0bAlVF+O%t(l|w%>w5{Ad8Vj2wB}2>;L9;_-1~ooRm`Az>6jP^nengc|D0C4@gU7=n0^n z41ESP1Q5;Z!x^G^-O|9kK9I=)RZ&tlulEz}kr38WUna@h5i&4HhKkj4R!U~=6rp@x z|0LRNHznGMtLSA6;kJL|pFM}(# zxh-%-3-O&lbQk}AJN#E%$6pYh!j*fNRrC}>*i#5$Pa&if$WkC1fgA;L6UalLmIAdC zsIx$Z`Vf^P`a{SV&`4H0hFDbQ$RdQS@xNs)Q(}oBix9G=>SW2s2C7SB5kl7N-?Gjt zd0vE&wNNKZKB7jL9{GsTtF-oi%?5|50LQ!No!xb45;0OED1u1?Dt{7gx56>Zo=ud>=F5e!1ects3c33}6;&ba^KVW?mbLdJVy;Cs4i zYLyqbI9!Jb1|ej8HE7jv!61YTMQdzBMtZCoAsB>^k%Jg|tV$LPLdeLg$-|U9m!IN} z6bwShFg2LRD8V3vjH1NQQ|F@vgAg)GGe&^7Dh?uwfYz$0Sh$A6j}m@(umpfV|EYle zRUQnT*%g(B1-xKytpFa;nO%8?ra@XohEf38GJm%MvS*0?+O|!)Rfrl?;ggm$CAJD2 z3#^$e0P*fS;xVE;2^m9LWhTkT6_mmtnJ88w*i(&^s2%g^$&fjq6%65u<2pkC*cjyx zSJV*(KUg*;A%deSy!y=I?cj>{gQbG&23Kx_sTkV`p+AJMvcJ3ihx{rLnMU3(kk_3_yYbu7 z)dQ~BM-H-9jESh{6#@u<^0r?Q(f$cxUWCv_(yJ86QlQ_z?WZYE?4LZ4Mr>t-uylGe z-;DIUkv&z^03l=yB!=uMVFR84T&D>JA!H0EhOAwdlQE_X1|ejO$&iP9g)l=f2q9w< zF|Z{|PgJ91dCU|HLdckr!Ky+s#w@`ggp7F^tZF1<%oYqn$XKGWN?PeaL5na)FbE-I zC1V)wEnArksu>{Dwm@hjgxc0K$;|YY9gKl3aW_M(B{IZ&3BO|g7|;Z62J-eXX*WRf z-~kcrEr-+fmiLl~A1ILPHG_22DStOsDS8Vb%!?4(NP3k5Sqk*~-l8c_d2b<&*jor; zc^+ZDvG0YFo~b)RDh~@q4G==cDPqXlK0mEM)*`_mgp3OY^H?kxgphHS7_!x|DJqx3 z62TyZjN6P+&^as2*QV)K7+6Pdm3(#aoXMf0FkZ!gmkN!9P~$@;scSWq6X_7b>B8z2 z8Lt=v>+UT>^7=k&9a#4!o zxgP2+C}mIvt~~DwqKy&4Hbw~TB%~C`QXm_F46P{0dW|1g3h$ZkhFIh&vIrsT>u*_9 zD##*)EQK$Ygmzx?)yqC5N+636vT_hh&pISUv;{)Q$V&_yi`BHh8v?03EE5bu$S@^_ zo?fzCFbE-|C^2NSkTcH!t}6tC5HdKC5CL(D4%iG3kD%%bYzTwQ~d^mMO42b426T0G0aM=Uo}I9>o=0gfN;9{ z-5|Utgx-fUNnUeU`f0zdUu#jngs^@I8LD5>tH}X#Phh$Ko65cySVU#tn;|UwVa!S_ z`(%a;e=cw^lL2AHdi*7YjiT%cq4)inq`d5(r7Qd95_dRUxm0yg_JpwP2^lJT(u-wJ z2y-9Ja@W_lHVJzPA!8yjWUD#(igB}G5JJXuV#s#!-5`~RErLM^8FPt&XN2B#aygER z!*#1*5JJXcgMMri3_{3QK@2@l*0&1=A!Mx6SY=06!7@jL9fCm!8C!^u4g1|ekZ zB8Hx_+9eo-kZ~YG9;Jj$uuBpQLdZBqj6z0YW$h(n>=6t?$T&j`S$)ivG4=`uA!J-) z4EWouwlcxL{gwb>{r ze@B6v#KFq}kt-q0^&`{47?Kb2PxT%Y3_{5GP7K*uM-x;og+qct2pL)6Lujz_$2I%} zI<;HD#o>BbFbE;TSi_KZx_q2O;t|0hgp7QQVfb%67H2Z3;T`^x!cn1(5Nb1Ll7{NS zO=9!9C?$0Bx@bUkq33Tr9uv6|!d#V1hx}b+dG|Ul7=(~f(IDf5U=Tt^)eHSS4noVe%6qB1~M zFtKFwwEP74tSEIt$cP|@o?dcJFbE+dh8Q?1O3yNyLMjjE1%nVW5*Q=EGcF)b6|cb7 z$XlpXEs7ixozIS#{&#x~*Uc@%`W?nB!TL>RNC{{hLymxY0Wwk~0qV_AvD&cGJFoA} ziNTBq!ip$aR+okUgwX%~Op>=denln*By$C5<7g)B21p(}Ac8G_8*8h02lZS<0HG-; zkn82=6}9O$``ui$cS4vKAuJEls}#smpx>WYXi5UDoVja z_v40O5JJWlgMQo;3_{4*l_3wgAGZX95Hb!J^y9W*5JJYW40*`?xFZ;Zka5PKA9n?V z5Hc9cRFg1%nVWz8K8oiC_>y#xIQ@(k^xqr1J1oFbE+d zJ1niGb+C@oeI^)$kdcQNvOXv;-RFWq2pI*5p{I0T2nHc!6fu~`OTi$7j8eqVv$uXF z7=(~vK@8dGBi{|Z77Rkju+sRUV>kXrFbE-|x+V`(+KtIiecuWOA!O9lmS7SX=9K11P<){I%11gIrL z1r5%>O_&S_D<0u5DWnPS38D9mm?WPcaYlNTZWhHHG3khHQ+5?Xd`- z1cMMVx)MWA@A)hkgpkoqlZP~JIEox#l z6!XEme>G^gVnZ#vrIZP8*@M6$YT1Js3Wxh+nU&biCNO09ly(%8LAB@bmlVDU?+KxQ z!+^y@Zf4 zlQD|fYTjW*Nxbt`iE|9DaF+`2r$UT}A3_@;LpCVU6nCmL0gPjWL*#G;L z9$5r~5Hb!KWMmZ#LdZBl4B75dK4xSS3_{2_m%)z|NaZ2BU=Tt^Dlued(`C6hTyqEp zA!OXtSfyjllv6MWA>%$V^wfv3U=TvaQ-glw5)4Afcx}*++=4*}86ON*4t zMqa@ngbbs0Y$YcUdd3=E6!sXomx{(x_?{MNw1pSQPe=F$xI=A!IlcL)Itd z&vFV21|ekBCx&bum#>?P2nHc!cn|~YN5{Iks9+F6Mss4wT1^*7<)N5h5JE<4V(4kh z#RY>9GW>`Ef4jX@A zLwr8PdF)%dH3&Z+=nHqa)D*D>A%trXLfUH(OSr=W>DAHddO6S@`6DK87qjP=TkQo1cMMV))7Ot>%T2> zfTu))K?oUJGz@9)J3+>%Bp8H{v5OdbdcCD!5JJWQ#t3MxN{o&PQE~N_0I;3@)u26& z8|rN>rA&}h6n>6@MKsU09|3o@LMDA7CXhS3;QUFQ!BKCqrC6=AQ$OvFQ`(*%?ZK zw44mFy{ELE*FyItZ&)KStU=Tt^K@CIt90DYWU@I7ekWqv&{u@4h zr(MptL&k8HE>PYy@{|UT=y`A{hNeM!8HTVHDl>n#0;^W?(5T( zSpGONRARCK6y;@R*opEagym_$Bzc=h1_m546iU>FdV4SgfQ?3B2q2(!=mUNVAHxH< zay`q%XhjHZB2-i$r9g&8FtS2p587&BD$yA_ZZLx0wC8ZlWQrE57gM9U$BDJCs}; zt~CXN5HbQYFid3(2f-kOj4)!z&Wb{0j9P+02pLg~0q@e_ga3c^yEM{}BK)B?1a%^% z;C*Zl@!%2lfH;PxL0SSsDS-Mjf42e}#L(~GrRl@ufS{-%Gr>`mB_S-!9!!$AerzwN zS<6K(rlKVn@ckGrwN|ukLfEzm8ETQFSCa$gK9uDSHCYoP|0`;8G&HAx7|asrd&b%f=7>bEtyPShkJtVu$KYLfJ7a=_f@ zvfTBZjynl^2_a)KWBi+*$E*O0Xz#R=p>VKr3$ro_&~}ClKabhSWI#CG^O!oqdqU{_ zS|%y4t-I-JOV{(54WhOPVQmpIR9mDMYl{%(zKi89e;(5sQh9I|_7XzI0S!aPZn~~u z5JJW=V(3{#y9fp$WSn6PZiTL^3q0^PV!Mn9#Smc$jAO_*x@&YyVzg3~6s(GkkBEs@ zL_~KFjEo3T2CBmnqTtKU6&2zX4V?U2s$;^`flLSUrQCq5x0BF5j&#O+P*eYrRY5?&l_?Msn ze?g`Pq_u%mfB0IH82A?nI#9ollxhp_%2@;7j{U9$I&2g*K_UY9!61!!s34vMI#uu! z16K8bGL8e?A>fmfB0y0OP#2KIv;dF^1TNVb39Mo^+fNy~y7X}(I$7tY{11Zne4ZZ8NZsD!;^7Lt~Y|z5n+qY%whVEt48R7}TDj)}n z%z^;NL7FW%NXE8+`?2uRSTqui#WR|6aPZbz(NN(HuC#_NxHlN#1!+DIQ$pckiZ^_g zvn7*qSCnNYIVpjvKQs|7^Sf5d3GA1}MQk+5wTdiH|wGrLIEiOL9 z&5hmr+#b7-Jn-SDs5}uc4j$RzE$Xanu`&i6%=#bkCORQX%aZibKBCY|mf*ud7%Tot z%FsaQ;33vZg_E*DxGK1-vNJS^zY|7@%mPGaTVX^tVuiAWAthwcf!(zP)kh0J)p zGLMAJ6umMZgv?C6GTGqq5Y1-u^vaYIGK=-fm4YpD^X=&M?hI!wjXF5S1`1 z1+XbG9u@=kimGfH##sy(37TmamjRJ5r3Q=H?)SP}K!XdL2V-Ckl+Tn(MF#~wnk<)Y zvc~)p6hZJC7b6kC!G%Z+q|r4LVmRAI!*s2pIk8?dr@$zumd%`EqZC1b!Cft_V5*CR zaaS1wOR=cf_#R5BdNr=3FA!XHWOO&Z%wI2}^h_#{%oOo|-a4!@UTwIX308Dv6~(b7 ztQeK78DN9JH5FD-H2lW(8dg~k!1D6L^;D=jCOZEADkn2ludC_ED<>5C0v0^JL{SbF z?L79^D(L^ZN5=8(cQv4IRLfjh(w+e~U;%8r#gPw3IA=(~eS;dtWYnmJaS*pP@==*f z1hD&oz>Ei34bvr4<2l#%KQ&DKTRoHaqRiHzzM6=Inu>rra?UWHYPX`yi~)Z?w?Faq zAKw=y#79KJ`Gq1bUL6q~_Wx_0mqgkB*Dv&v(hU>xrQW}_!{JegzK&Kdoi~|Z0@Cu% zxwVTjJ|;#P8512Q4&F4k#Lhwy92gxP6R!+Wsa2uy6CJEl!YN&Xs#*k`utmUmT~Am$ zO6@cvUZoC%jR{Pzxa^IFe=%$T#xp84{DewZJiAh{RSzzc6989ZgE$Vy5x|Uu-#sA} z*Gkl-X^2-sdioQ}QEFH}W9UiYy*;&HX8m2~Tki+s%zbV19NnD5GCM6j1R5O_n zm;y0P4ZnH*>FuVxl~6l)GKv#z46I=>M=Xg<)kj3UG9oVB?p3OVK-i5$hlslR=ZYAM z7Mm6B-t_I9@bFhtkl3(s@gB{Zr*_p)5n!?K<5wS6MAU!-prEnP@jmV%(>G>Zhv?c| z1+e2}zRtk|TdYWDsqizda!@{kZ7y)bfoq)}Y(JTPrDJ%es|*#%59Fmr9~%<~T^#_m!MnnO5yz=7UWPKs}#?(v5iK+sG}Ko_;QdJCh12juv&3cij!I~ru{cn zVF1k2no@$=GZ652_zOD}#&;!-vxDL+I^?~D#X4Z<-P;_nHHC3NJkMt|k%;c4x zsWVSn>WMiy9?tUOpvS?y#JZA7%}@8BDE_;jRN?UyK3BuxuSdEn4S=U!xKhAAi%+IB zhgY~|$C(CuX&f|#82C+doTkqsQ~SV+4`FP4qQ%KSy?PIf42w}m#D_=y*DsuLmI;HR z#tOluK>Gd{1*y?ceHkARYKCjgvp!rHX!;dCgv3YmniPCYDL+xbc`LJzDy4;BoJ!SI z$0C(hw_-_=E^lmhnn$32ZH`W_x4u2Pw2=;icTZgOo!;mx!5}CFd=Dfu-g3_GEld9Z$r<_? z<%Z16K1|Z*f$mKVX{SLw9_l*WVBKfN`~Qjj3~z?$;hT8hTOky>+25Hx4) zQPxn`X$ws`kaYqa%jv12zP+MGg1=>>>$#(@875<6#yz0+fc|%ma?%eK@}{R<8aVvw zEJB;maDs_{u2=~(ivBaHKxuE8arDP3%XotI|G&}#6pdk~jEBa7KKn5SbW3$s<+w1cn z<0E@&?wRpOpALob+*Oa+--Qem6hZ?N6%-2V{4l6dY=~ChB zN2P`{Kk180OA7&^+!u*A>sfFXS&;*S|L0{|}2aftqRmtV#qql%&~YlZqZO_|%hrC-qLnpM;7 zk=ahpnU<-%jlxDQ)B8EY*=BZcr)^MXcX+?E=D%&Xr*BrEx#-XKeU?_`J6Tt*;@Y8O zZ~tn&`c!qQTQ;|ev4Xv1s0>QLBYJ%sm4EuYjM?yCe^!QzLww6l`&6qwoV|p~wmSSY zryk5fIR9vP*iBHD9#;I%ZO3qw)V&qxbQiRIf|NgxhMG-3W$QLjbK;pkbA1nwWk!Uk{`c3mJJhAF z+Q!Y^f2_7;1ud^_cAPD`c82=aZKA&V)|_T%9GEl%iB|WOhCRK*N%|(Gz1I7)p+(1& z{68FRY2?RdAEslg_)mYfcS&_i#lP=)5XXG?Wm&78No>fn}M@Df4$}4rG zqY8Y^t{qTbUwRQe`DW2p0&&!nsz)9_jj0__UYGr-LRUJ<>rl_qe*Mzc4&V3!N&Pb> zr%QRzfq%~CF+=!bz%z!FfL=0$pVE56kRzZphS0u`47CLGg`v)XzB3dK=odq{NXx=L z@6#Vpc810QGG=HRpgatv0LsVET0jLE+6%~>p`(C`Fmwe_afa>yD#g$nKuU%_1F~Sq z7z(N)L-<#3tr$`Qs>+Zhpy~`c032i=Ght9T66R@4VoLU2r&o zZ+cJ%#)dYB7C)M*u~y!x z(b|^j?#fJH(1+c{fkR_Ix5beCnm2IB4phc-HpFYs@+%6`{yOc#*MmZ#_T$~?!>&4C z5kdns4%2rE1?W_VX30Yv;cgH^#&9z_1JjTLDkhB%glFJkPUt{DBlI932#(Wr+K+O) zkP%}wb=9ejtV9_MXssdJx(VCjb!r3Kd;=P&;{&2qi2)(1NLBow+n1ApE|dS<$}(wWeAu7^cWq23EW_B0rSK}@>-H^LvHo8k@a}Mg%7torWEI)L24@2lK zezaSUyR0r@Cmj%`j!B69W1siy)X42R#O`L^XR;lACfoni=MyYH^!YSH=rev)-H^|L zarorxj~zazQyq8sBDb!|G0u*>r}?weaG%*-d!>q-6gaC z)ZNc4KXmsSL+CDkA%Y=yp%+Jl{;|J5b!y}O8o}#j^oJ5MH)@gH=r7s*r~c+-`JunL z8A5;Y%N-2)n+a!4bgJUc7GQTXU%6y7I!i|Xsk4Pye&}p5hR|931`0#Ys#SkJIG5C^ zi+fv!-OaqWWHowAR{yED6<05%G{fJ^GLPwUf?_cu~}4 zcQaoUPOp}qd{)TxgV;g=V?n|Y7P za`c!i=lbyaTA6-(2?t*pQcw6|85h_ck7=;{F2iSY^02Q=LX=zRwt{<=K=+vXOfmc--D0`!k2td4c)auT`_X>{SAm8z=GF0u4XuMqvLEA%1K=&J(vtn}%l zWnDUDtj!5sZs~MY1znZ(>5^7Va%HHifzX9WW7luWKe(%05$Hi(jf5^l8eRCNr=>o- z*hHUR8S3&Bx)5n}VP#j)rz;{fog&oZCG;TD=rLGU(ugfrhPqk^U5GTgEa6^7eKx_! zudT;h=s~2>;|O{jK+g%$=EX^blM_FkaB>nS7TS6X3cZLj>itbWjqeew%Fs*E?}I`w zB8^_|x5i%9N5z-RY1?%OClNWD~T4lgLvzX3kEX!}A3=nDb@bk!nf3Q7o*rNxE>Dc+9Sv%K)mY5UgSKR9Ad_k0(My3D^cCb#0?umxZ0Su}o- zY&A4@rTP7?UV5H3GSJ@X%l&WX4%#=7(9Z5WKE-W)-^-i!|5(wl#EgImOUu}K&ZwC*sLo9uuV!2)ZQiY> zRy>|}bCsp5@9+7%GJfeq%loD4jZd_#Ib-7c{DG18dJP|b<^0k9UXucn_aET#6V+{B zTW+rC#N#`Mx|BLO{gRr;6H>EQZg!%LpNO{@QtM5t_EtPT<;h0diEG-o+2D9Nd2^Mz zN1FPN9%{XE%|RaD<`rrGsp!j6BHrV+b%*Rl#-Gbu+v-XWpNL`BH}2M)@Ug!~xZfy` zf&KU2pE$O9@7VJRaywqXkK9%5c)znQh zc4U8WjoaD9O6&b1+vl&ny3C<1MuRL06&qbS zdq~Nnxp%dDSnJlx$>ocGZ1^>@iLu`$Lqm=JC6DJ zr#wr?m?hhvJ@yT#RPS-~ki?;juU?pbx?GdN#aC8O9QGpX@FB4aw)T6xc6I*my&LpM z`E}}{KUH3TVGfnb$3Ry@p-!sd7hkWQtIsr z>(_iabL1V5cXvJ((4l$!Ssu?i`9{u}=d5n>_^*BW-^5&8X3gUP$;~UDy-@2AkDLF9 z?0wsFp9e4hT=i5BAJlqUlgDEZT6&jFO`E~vv+r+dQT5EQay(vezftV%GA>hghnU;@ zy>%&ld;iS)ABGm|I{5naNxKd&%wD$0H|Gk8c~2KfU28G1*0e?lskh0E)?<&%@rvB`%3}Ipr}`BNzx!rcz%|*|tMC1)$FJHr&*-pX;en3Z&Ubve zyYKjbeaSH`@AW>EV;;YMHh0Ixo}nv_?w+7D@f%h6fb#ren{Rg$J#$`max1+)q^(tv zGqdM>SZ$K*@!T}!_7RoEnd|j)*7cpSY}=@<@mB}$-S|RPtorKU#Jr!bE>IpgnTN;M zHLQ?w(9%Q6Uv*J3fDscAVr5`p66z^&tZDD_} zR;|$9ab=>;#W(Jpqjaevuk-Tpg}0m6p9*%FyI_V-9!H;ab<0lff?1`^^+>Xb+_HL{`b)mC8kN30R zuzE-r+mbv!v+@pCpO&FQzEWkgnp+cRo|u$+Yt#q7&aSbC_e~3Xed6np5u*-#-8X7P zmS2$tXZnvGeB5nr)@wT=6ONr-=YK0-@a-A*zO9{LGPo3vAG7{dylm3yx5cy0JQqG} ze&aPk%AF=|E~6Zpc5FK9+@99j<9XV^R&DxED_A)Eyu(P(NmHtp@NG4%*v+5As}3~s zS@5$(>dSdO*Uxu5v$$P~MU7r9j2CWozI9}dB5mN~eNzMWhrKNuoK~b^Ylnl!c>Ge4 zT&i1UzJ5HucYxRSM@goeV_aMUbAMTVaqPIzim6TuAFaMnaM7F^kGd6pcwqLBL0MjM zc}Kh0xIPbVG~@BY6;Bj0x;S-7mDP3?7nj(${6_f3Tv09Fp5XUyzUf-Cs4~%ZQTdHG z>&^@=++xp>x2s0wQKziPZqjsJExT^TlH=br*tCnwhn$^tuIJissXTt~LuW;gjSD-U zm{oG_@y`#Mh7L9wdezxyCXc^Jcv{Tw@l}h0Hn)$OdYl@4uuPMiqc8TqakQK3$=BN! zKdGJSdS&~7`a`?r%^Q;z89S$5a+e1kH}*Z?xgzhnNb?KDR?qJcQCL;Eai{M?JQsJJ zHU5|Vvq_I?D2>zM;snz?KY#6b+HQj zCw{;Aa%Sl0YRUO)L@u;FHF)o`I?8p`PG=1(Jj!XYO?06=v2E&YIP1{%W5|@-<4$E8 zv1|Ltc}C4+I+v)>vD(Sf{?n>9zvx&rFoerroaU0!t?$)euZ)ga>~Swut$w)K*HPb# zHs$go=U*OpzH7f%TwjQD*+)A(etqKit#gJZDo(!s>icE!kKU68bep@R^`-|-{YI|4 zTBFj6b6EzKYdn8tz77LJRP8Ktev2FPfv4Yi7?j(z&b%I-e_SXWIP%y5o~~Z?>GFuL zDX%+hFTLuBW1hV{o$J}$ZSD38AAh~#>092d>6!gvk@7+DS@x_P)My(|=X!j9Egl|r zZ<85M=lLq$7i;qNqv9@4=kjgWu351>IB)?^k8YViwD{iDK0VsTq`gluovti2|NXT} zbLQ7Np3lWo(c+w0jtL(w?|b~Slc3%6f9-q#CbfZP9r*_pM?!U`d<8ItbwR>8?lCi^EKYa5hYukpm zzMuEHlr#QBpB@ntTqiYpdE=pSn&KQ^(A|5|Z;%_ghA@Z%z5x?R1%bh4X|rIdC~BOP7#p zH6C~#_Sw^{PVBHY{qB4|JCxh!(C*maWh?W|EgtXJ z{P@YpFNccpc++$5wmdSoT+ZVkKP7dm`&E^N$LD!oJKodj!9gCc^QlCl`HVUtJgyw= zdo$bjP!k@XK4(b(dhU}O@c7C3>NDf+Zi=|``c0!lk$n$@m>Zo5y>MFC_j2J+rv*jo zx8wICdiwcW2JPL#<9W}gEJ&Jnx)ImcQ87b({d1frj~_psC9T4vxMe(E@8xx`xH4X5 zJZ@efbm*~nKYH+Zzo2tnBTl{E#n-t<@|7k=83RIUP4%4PGHQi`2A5Sa>hd!iEHRqBxAXOm z{!8W$QH^sS>t8KpSA2V)hVOsmUuv4CnvvB!z(Z+oYt$^g{8E_s^oX54CiAT*i6z zsyFsco)4|l_VA`gAIf(&dgLFI{lb;RFC~U=tZRJWd!Bv0N)_Vq+ojIuuHHGv86H3P zEboY__sjm`@$cp5{92j%a2t=moE6@8`S5`kb{4tbq~h3SRaCj!C%cZzUVg~qyPLL+ z+`Mo6aQjGA?XP~eC65&I4vYF&KU;mf)Wy*Sc|Gv-(?!)w2Ogekr=8xR$?DYU7K387 z(;HOuE_d&A^8}t=ujAAsX=RSznB!t(c4W=kZH|Km?d+!7dHCY)8U?pme=A>ivZ;;V zkbJAAy{PQ4{jtrfF84Qkz5jK|b5^0d=TBGnvFi6UxK(h-8uvOAU#qrt+n>bSb7BW` z&vKp<&+@qI+*wg6d7}#Q`1tmv4>azXzXFdZx^+2!J#@oF9^d!m>&oZdv-q3s42&L8 z+PF`0aHX!}r^f9wtupOPujsFxp5+Z$KhtAO5!ggOJvndqjQ6RZYqSf9RxZ6{a(89W zs*l{iU(G^{M{eK$q1okt>X+MHN#^UPFFlu4Tz+dwa$(zmjobSdZ=0z8((~*NvkF_v z482`pe&26AKCeTqn%@dfH*Mk2bn&3)FVg}J-WdPW`o)j2RcjYjugP1#P@jeGq7Up? zzpsDaJ$;KV^h;UN^!A-v&EHhcyRvb;8*cI1>Bm2Xv^36Nq7zRy8J#t1SdYbrVkd8p zNWQnDG*AChzPC^EgGu8*{-}C?LYkc`-;V?ty&F{ZUPpf(ce99jH?vnYD;|HG`)z#Q zk{+9Q{B)IzcRIOeTfBID)dkJ2xv%;eS-;q$qMoLE&u_$Kzi%Ri4{x{)NLl9unp^t-EpmxjeqOgu7+)UDGb}xUY+^ zt?Ts%9eDgz{;u0?b`~_^@qi&!j5^ld^Oo29htA6j*u36YhsRUY8-~1{yRiz7S9ulR z=!7!QG#-C@wu05m?6w;S(~S=HYj;KAouYOcI|qXLW$9$<)pzv^I0*}XgRQ4O> z(tbFP@43_J?Y`?*7w~v$*)~U3oUb>B$4!<*x%V^g@`lF;zJJy0?WE#)ecIf0Guqs% z#N{hhO(tZ|wKlBmg<)4}9@RnlzyChyIoNJooAlr0isJuMw9^`_^`!`Ml{4S4tc`bEtJKbDrPz z1!b~i3tE4d=QljX_xQId&9 z)vb$Zt&q@n#<@fb=_QI-%JRa$J3kUs(5e7q}xB&KS{M(xhz}xxG3+up9YWkcHy{XwS?X8Ot^nM z{c`>H)mCrKT1`9sL(8GH@6XE`tDQcla-E-f`>rj*(*rIxej7d3Z_BAkwR8X4H|-XW z=W^d<)z+!bU>>(X~pBt6{khGly7a?Z&ckv`HDJLt!2}* zP<*zxj~_f*cYj*B{kbNdzH!bochAPWJ+5dnG-_+3QDR+per&1MN9$*g=J!{1I2}{C zPtZFapOm!dLeKt{O?kZj+-+x4F`f8PF4y>f~B8wTE})b&y~ zu?{?c!MCEtHkGh{gz3^|m2RuraDJmLo92)07$MemYg_iPOF8{6hTpG!Y*a+-=EX&L zJo3xCj@cJJUC84myD#UNyQ}Is9v@`#<=3TxGhD__Q?Il2_qu$1c8@@x_Qqd%Jj!QS z#h;Zey0-C-FFv8mBO|*Xm+QI4)mhEstNWd=Tz^n z%B`OtpS4@m?xR_kD@|UE$Qm9wU_#yb#(7V^|1xOfN?+q!n;ZM*o^EzDN03$TF&?Rk z^7EZ}yzjE17A@-CTxxpw^OLxgH#sa#(_C8EwO+>KM{k$5+<9VI)03Vv{2mM#Uw3xR z$-^8rbh$rhdsOEI=lAB095j7v(%TY;4g?HqdvVa%)Mej(op7kJ{iEr{BDNh*D~&6C zTpVtB<5j<14emIZ&GgP$d)xr0=7YLj;BohDp<_&{G}^+;!}?aG$%hjr*zmZSZK;B_ zjeeT*czN}mLZ2%a4{2B+;Ly5k(Ywuu9N83TGV|>4UUpTSmW`{J|Ln!*9yS{<6s-EN zcDG)BF}%O?_3`tcr##;0eY2S)xT8=BpVT6`cP`yuKdtHATGxjs)-qjJ z-lEcA_k`*TJJ0@FHYxYlRsO;H^wfHpT)g(9F}5kit&#Yvzfq+tcK-9XRr2oDIA8aM zHUrP^t(3T|L(=R)yMopo_pV=M#`M@Ky{m0%a`|3j+k(nk_K9z+Y>L`AeEhBGJ45FT zT%3EC-Eyzd#kfBE`YoN;KgwBy>)Sigv3#X^}$5wEgW!==x#yQcX)~L;u+?Tl8->DE3#^XUd%B-$7u10Mh-!d-OBkvKe zcX_2ub5LI8q`*E0L-VLgoVK&b)qUi%YxmlCdhW0qytDJDWy@Pso7Ujq zTN=-#QpT6Mt%_i>m8k*N+ACI4@ z{=s?RAa}8Te7o{m)P$xE-}wC}Kl6U-V&UP&ocuBY&yZ?-nCoZ%27L6_)~LD!Rh6fHhj$QCvCp8qma4B4IXdxbZa~R%KOCpbm+x~ z#m}d$5bM{*e)9|5@z@>5eiX)FVeBPw1*|U+&czorsQ%%p-%OmFBPIW(j zex74}0Ke~hE_>aS8GFR~ylv5Mb=tqkRgvG%Q|H~$x=wq=`uKhm>#kM@PkrF`M`k_K zqGCdaygXjT=Suav9zo){!>WUCN;dEgo6PS&{64D12ZsUsdHncd|6K<*CYkZLzh82m z5$073^Z4XFX020Vo$v5?l6u?p>=Qj(@c32#UagmQ+9&F>+n}K3kdUo@T>w;<~ND5s_i$Vi!z|bmi<#ce|+Y< zd0kY&?^F8a%kf;{S;xB0{774?u2CzDruS^0Juvszh9;+Gp3fRvc-dW^Z=&&`ZJXVv zh;~=1ZnljnMu}>Ezq;~?>)Et$v98;HIpxvt&Dlgbd0h7O3RYD-!sR1gb($E)3|VL<>i55AjbGMWysUe(4ss(e06HWDY;YM zzi8ywzJU9eca0L31%wzkOyKuT{L;#NIA7q|C98KO*4F(L>i@Oo=#*#EQnklbet&Q| zBl9ZO7I(Gp`@5{&*C1%l&eWd1`J*pRx*6QvvvY;hg^!G`Hm%F&E^R7l%P%Wlb&_}I zDf#W{y-4cuyhq%sHd8CTO?=WIa%Nb*vQr!fH9k4@LI;mIN7sz1T{kYS@G0&4p%1H9 zJN0TqY}R4jmmYEa7U(;!?1TH=!rR!pEgkc$ZG%$%Z&bS#wm!ez>EHvZ=v@xQThz-l zc&fv@Ub~By_uXpYTBmQHk@5A{z8>^=R<65Ui`ifKRkNk}ifZPQ`8nL$ZR;*H_&l{0 zkMA@d>N>^sQEwjKdw!%MGuBhlcQf>BY*N$ViL#KwGDc{n6Mws>B$wh-Uww`}%`T0SG z$Bb)v)okNS&s&Aca^6B!odJ)VE?d@cP@N|uE(NR(_KJM}^t1n^4{h3;E<1U*q|wG% zRaJFnc0X0=%W@mvuzQ2v-#pjh&bOg!bF8zUUBM^k<(boO{<<(Ew)5FWP6La1J>~H< z5C3-~+twL>)n{t>u}g!_o_hZCYA?43t}eINF1#3>_-V$~EIVp!@^5fyYVU}Ms>klG zy;6JYf~xVa+Yf$J>eleOU2d(9s24PEd!8$WLr$3FTVL9(ZIN4D3SK+F?atlj`M~#2 znpU?fmb#_GNv~7Y&W`zzBO+U_nmbp%a$2DLaca)zoyn|B}65XSHv6b<2lqzRA%aN`zRQR;3J9@88iu@zw8O$wonoO5c83!j{JuIoKu# ze%O0}$MYyJ^zM7TW(bc*23ofHH%2?X=(C>3eQUWpjx{^!!pm)5+0q9J=XYMj<2OsYdYjH| zlJm@-ipF>DZy$c<^S0VAt3Nf*b?;!B`edsYoy+y#vnb8{B#$c>F0gCay?7Rfql0e; z_OO`O+|Fylm>CuexjyG{byu8S|8f(L&&%y#akbEii@csbR_%9kq-x}^52Lf@Tu~<6 zZ`P&v0sR9T#0}l%IAFl>^}DkL>{xgH-OLsX&fc50_NV>iV;yF{F&+Q9L9S!1RW;WS zFT3j6!r7({(FH;)Jw9Kk=9}D&yC@6PpWo{tZ#NU49uNB9f54r$n+e00J=kRtspj_& z57~9S*927%k0+0KY~ucU&q6NmdZp$0kuJgO`Ta(@EX-2BM@I4cvs)KAZQ}T@C-={7 zZL{5pCC9Jj{&gyS?R4Uy=Og+3ieroH=-=6Y8NYwv)U@?3=O6#%_g`=GDO0?SSss3W zQETf`6^2!qH}iO`acJm1=ci%oe1Ft9b)Lu9)+z6tqeXx>j~iM1Kla`-Dyy$+^rkxm zL>d(76hyjPN?#2Z zAq9&WC*uFEdwTwwa&e8<=K*=8+I4}DdBYyya!NWGeN*$_`IevU6JaRzMj*(Kv=2O( zU$UA3=c8kJrtxg2WP z8Lj&4*VSJQl2lKPPXxs^#)7b+?(pmYgH7aoAi{Po;g&$T`E^8jjA~4@eM#4foxgj) z@^zUI$0VJZbi2kl0-~CRGuH+gONzpZBx_<_!v`+xxOqN|=GIEK$o`sFfkWP-FgK&6 z#{+K&k2`mAIsB*-ey8V*Q@Uyp#l}S?TFjT|)zW)R`aJttwb4v3Dlyg~D#m#zSCIWR zN;h-v9o#j`6PyC^^?q|N(G|0i0AAXT%$Kc4Vwy#gjyU@p<|=7)#V$6|pYno7>|A)d zpFCE^6Sfl7Y#bp;(l|$FYWcA6p6C%>v8;SAi#@{^-<0w#+EwO&gQxShySov$wI4Lf zgFc>&m(Ob83JgZY-tdXBv-OH^Wi-}4HjfQ4lPhoMtBZpC3j2Myo?+UD!Ig@bqsCYHv+&K`qhArU>qL zPka_=X)4eKJW^pKhSY<<1T5(E^65vX*Db)BF=n0aMd*)HFF3_Gl88v|~JsNr=V zr(4=5+5Hep4Ab!6W*lxz^-#b}?V-99@K84Me)M7(Vt+tSzl40_&=qCp{ue#rC9!>5 zXp@3*+h&$63zO0Q&VxSlciwE=Wf}u}g(?3;u^-~VphaF(38rj1OaJ+RaK7GYIh{dNC z1yTOo!G)`y?(?0Z$!1q?iUl!5dHdXmjS$t-9WFT)2SSbL75V~PZY_@r2CUFU;;yGU zqj0^kVYs-`jcdL)hU&+X>zX^GSg*6@BNKkt5I@^Y4Gi?iy|c#WKqGTp7iM-s!Mu== zYf4(qs=S+OC(M-B?$0K& z@7W#TZdEXqe)Pf`q+S=Yq-pznNui4{TNC|ei+Xlue`z0&amI~LH$;PbuCtVT@JU{^ z3+MT1nttY6cav?Kl*)?fC&iS+1Bf3g?qPlr&)w(N+PtEJEYa^^AKAYa z_@<%;>%ni{>0%$gOyj_LT(5~4h6W~~mG&Q`63!2BoUyzv-Yp6a^n*P4(S;?mWha`N zoT4}dbum@*S?tp#bh?i?#+y@?GXYn^F*U%Le=3U*MdPN0A8 z?%^j%4`F`DrF+9K%sHe?6?c6(qd@Xj&x>4)$4?h&D(SlnWl5$iidt^gBxTX#m{2)H zcX_KkuW8AARYw`+!YyHk>%r+KYr;RJi<5L+MM{_IXR&gM))R%|syt6!_0tCBTe4;p z!-xADLKpHHd1WtawbbACN;#Vp8IfzvwS13v-B1g6zF3K@ZGT7`tdAsy=UCiv3%!Q+ z8vjurO;9oy-#d;fGn=TC$Nu4KUGtcMLdsfx3U-={)XOOGo#^^muTxMls zd&_VKGjPI6HSUgRJ?a3*7w?bQ0?J4tHpCcPWY?t7veUF%uF4+E3MM5ptul$8QhMmQ ziIOU~k?jZ5bxVJ=!VJu#oov_f2*;P{TNlsXv?4&o-D_9ws&ZFm$xLB=UrR}rI(5Ky zsFZi!G5?~tRB|~`e$1vod{=-K`hzD|GG@Mi)fmoM*gdE~{^IiEDewXT5@Y9sS1fS- zNmYlNen`2Oo!_IgOl;N7_AgZ{6plO6%j93!BUU@;R-ZqVvYnze1LouJ{v6#0y=h)4huY&TM`{L~ zDk5s)rF{J}aG?3e8=*WQp}-S43F~a-<<`Jt34K9ZWkJHgm-(de@)|WZfOSTZ)%u3h zem`%l)`zyQ`PU7QN8knV9tGah2PRx_4Ngy*YzBRQ`BFc!`qp9^c**8zgr76JJ8+0H z2f3z~-WV`f$3W^br?+be`QY8FR!?iLrbeSpws7o#{MFJoe&kQLFMv6C7XzKq?|TCi z>10%NlBg;Gi@uaFZTij;4t$GAWBmj<_8#!(Q4h_1NrR+*a#D!EqRlYOaUtjTtsLswMzq+ z5x(cixmTG=AFsUjRyV1pVe`R5f}?zX;Hs8I(&tmtk-(B))C@mVn=t_6=L?pv9VDFt zBilcB*iy=w0Oqt?VBi)`-vKT%nU%Chkq!mEapP?94zu)aV6UWWAKysT;Q*J2+qN61 zk;edkm$iS{)^>snta)u>^+xw$C z6xT;n(Ha)6^`?9)q?L|Eo&qz?U2`}i7ptv z&ptRDYvUj9mC{!9$gJQX>iP}xLC2(SCi&Tg7K2~T4h}G$@4;%8T!F)sv7g7I8n^`` zyMt#x_8!Lag51_>OT3&$J`H%&)8t#-beb6OgMI=2Rh~T*;7heP-b<(~O{6mC4+;Ks z$xKs1Gs^x%Lke<&EFrR}feG|V4x$u$vC5(Wi!WzLa%a6DUz`q|;b<)AzR8Fiu_czJ zuw6=?)?XFN33B@Y+{yCmH)gL0QgPvW%J-}k`QkmX=am~eJhZj5xz!VR={4)Fg9$TS zFVjMoll7Ch`W*SqVIW(@(-VR_rn56!_5yd$9K8u|OeI<_@n0XPJ<)D=iQ#T+`OdP}xz#Gk6MpQQ(SmL*};l@hm*RnXeVN0LdeT2M0U z?SA!bI(x1ac|f_C(3=<}a1A);*6SMy>`aukj$mK(PpRQIMyH}ljsF@P`k1)W zEA5uIUZ?8SuLWhBOh2YLIvn)%6O&5JifmsWpsgp1T-!K4S@5?UaLT*rGwpQ!Oc}Aj z$*|J;N+Atv71??va(*e-(W?}xZ6G#^Z~OC=AF2uOfGfJzURB^vsblM?1y~enCL-Gz zXg=e)wa!gsF}{Si)Ve9vR#&`oSVnUoIr!?XGjp)S<0{!M!W?`>`xSp%hS@cvFCL>x zqyxY-esP~{Mc)M{Tq*?b6PrWnbpN*_qE;RuJPcC?p$q{Pjgh1+Vy?{=T*1Qs3YH9I*)H* zp0|D-z8-odPVB_pmUjUB^hxA7aYNQ9i5#udK8b?g_c~0fKU+;a`qS(s zKO5)n2~#GAyI=P1?o-6@p)jKdd+*Fc{d1nGk|)GN^28~?;N^~24KL!~`G+>MiJ}}w z5&v$ip6*)unW!B8K1r>_8Jt&>F)CQ_*3U%C8Mx5?&Y4H+TBosn4mnqGKZ%^+#I%VNC>%9U$8L$oEUB2j{73wGZg zO63bZLCbx58hXRtIq-#UZthNjB!1Ud8uB_qmyHV7n1tD9I=$sW`Hs36X8kle4 z9#se_wuka}*I?U>EKwI|D7o|I_68IV$ZJ@r4=>S5*`BK6wFS9OCiGs}C6Wqe3Xh9> zmHyKy``haVBZ@7GO%58D)WIl_@6OyxST6jI1uX1ZLgQa5_HsdSx!lKX*ka!3oB8*n zp$y=mjhqRimFBO&v`-(RF}_NQi;M+2+j zsl)gS&XshfgF%^K9-WV;E)Zu1eN=AWUy%0fL^>uAApam^@4h8}sKL&TFiVJ@n}m$SEq-F7wPX~-Kh6%;KyIF5}HWALSRWSg^LLOzS}ag>Y>d9^)q>3j#t0w9g{9`qZ;9lreYXeo(7r(UT55T{aX84Et-X&clzvnJ_kZb5 z|3=|123)-N;G=3@-2&W?#%WA_cPJwLydkYBX#PW!Qp zs`ijuEBgeBu{$W(I_d0e$O50@TPi+qU76)ietXz4PJ{1l$) zz09{iShbWLLHW#vZwPxzl4UGTl#FAX6}!A%_d|)*?y!z8auogbaemK=pA0(!8tJ)s zlPMGR<(HrI*=0Y3xaibeM}xZ*p*wx(>3V#f5_6rAZiZj@i9B3~j29S#6@Iwd^u3IO z8U-adsMT1p(Clf&nn#h-!|P;;n$9?3<6$@$SsvAv>37-sxB@iM+-aSh;ChY56NuDHnD6c1t%uzl_W`>a*7xflYAJO9VMv+`tJAkT=i_? z4@NQu$M(QuiMO7FbH?KJS}%6voE2`056Q@1sN*3kMWL zzU@r%#3gMaps+M2FyOs|N?EeTagA&%vY~fGX+CxC<_{hsCG9)ZB`u80!T-4Z?&#lH{Gol@G<#WgJeTREJ5COccS9aZFdBaO(Bi&>);EdWc&hatzI&wiR6#~M z?4QVWNUO^GHur9#=#xR!P=jhB&DE#a;|G=>xZBsWlIfEhC)fpYSegzmTcr6NOW?lp zf0Irb7+r7mRQ-VK|{uclVFT*@Y%I7Q|LEE1;dfA3tEvUAHwG!3#= zi{);YYk1MO8T5hN9ErE}L^&n8xb+H;EeXKfrq_yqcY@4UvXj=E^Gr z_h)Dl2_;tu{EjlQQd3jSrB5?cl2Wk5sHoMYbi`TS<|6qf>)BAsptt)TBy%0rlRxLe zDZKUr&%pJ~v(@jtSVCVNDxeO=+uWj?gO-5P^*;Bl_hsqd`=Nz~U4d7h!hcPCs}DPz zc-ha(9CPb^$!7QUrSv)RON6XW1yP0fa?8kfhAgSrLPEMjlPXuxcZlOPYhEplB6tf4*n>Ik1XrnE6^6= zTeN4PTgv2khJ44ANcf!kMe(Xij<)k;%5C*g)%MDwMiTmiK0DHWimObgzAvcE20N#H z+S~H;wzUbXdp`>wzn%E;esxOqlYaMbX<}d=u-wdQVzS48DX{kbr>M}@jx6B9;riI2 zowuvNJ$;;I^+_dXz~0X5llYIm?`AA}D_%eRbg*r?k4bGo7eafHtyA!Rf@j9FR?=fY z;{`DDHVfBiluhSi#}^b6%IA-qyL6Q9*IYrX@f;RDZBfxWkJ1#^%T8G6PD~YC^S{}C zAv0ny8D#2$fA&)9t26$Ou%&{hEGIuhfR)*w2b84FddJoEKkZAJAvZ_{o%bSDKW#+=?PeFct zK!(UGYBdAc<5=dA_Kcbf@Z+wg&*dC1oq##HzSP{Mxi87$75YtNl5FR$N)MATn;1L*bG+MEX$j zR=c5{h!1|V->6nrLMwj#)b1sv;F|YYnl4S?Hq2MMDszw^d6>bM zREJqIjKbz__3{Mo=Mjbcwo2C}Cy5|~vg%+7^+&tuX~Q>i4@vhW=F@iR>qZwnoZH&f zaJqdS(_@T;Z2o+szHT|P_W7ZHpTiwGuEbqD_oE)X`z}RW2fPOV3LQ%h2{*6%Y<#+S zDZddj%20GoW~qqnuJB!j55ejF!T04K9-#JX)emTB-4HYL{(fWB`S?Vp&^PPsT1DeyoKi_u!tx!Anu<^Y=eKjyHLF` z+o${moto!kqT=+u>IL;7i;nZd^^i665piu{3iFkWUz8EQ6cZH&swP8g-AbQ@1ao{H z7EC!y)V=(*P~jT#`}-*hTh*(Tp^JkHzyr^oAVuks@B+^$`upIOrtdT0U3B5i^AS3CVE)h~XUw?R*Jf*G+##nQ2Mi)e1RrtY{BjPyImLUe zCLU9ofjhpqRWidb#e{QvcQUJUY)T53vR!dKLqojwiKBWyg>PtZ9VVMe zkbH>awR>~vGzV3zU;gLl_1B+oKK)u6HU4^iK+Eg#+4o-pA=|-0!tOHCrF}gu!7q+KdhFS2($E zOX(=dtOG|BXEW@~qyPSXYI7mSz2{;+3glj8&s7!~kbj>`_viSee&ZW#SOr%8lkvHL=FB^2bStm6{( zDMW<8SG`aLMoEu;e@8RIRe1kCE`Aco7p>28$uy^bkB57_vNYcLg)+!v-=DTUJP`c- z-OYFoGvT_b_V4p*7PQLGuK08PKJRwxl@hY@8tU)w0{AwE=)3Ga$-!F4u_E?-DS9WCzeE;xSY#*T) zSp?M?#ND1+P-ita?fdm83e^o*OpmgfQAMu)63H=Mvuej{F*8-Ud(?eHcp4r_i7JU# zQiQ&b?{Ynmf$LcX8CtW|rOAO66|Q8Z7d_X3y6)b&_EVO*a9)sW4HUKa#+Tp$uO?X> z-pJr&1|I2%k1v|-``w;w2#cXwskJc3k88}rih{%&fk#w+A{ofZWdSc$pE*j?=CcF$ z2rTboE~;1q?}tpg*V(Z>2lkIDaSOEQSp%-WDy87&9R$h|7!uF4C%G6QC%*GwuqY|aJNQohGueKREinD2wt+D3IX1F$l>zA5?jaSULo zyM>7l>}=YA3$MngM}(D)1IzMZnDZVu8UQ;RZkl%LUQqc8zj^u&Gkc^gg0FSadM7Jk zXk!_xv{XJak~r^IS3;n>d_^=lYb=Sm!zD8xnoolL`fG+ik{t)!))V{=XUF^{5}YetSh-ovqcmd;~f zRodz#pIEwZ>B)rU@lQ)jiiDA)d^-i&H_u9&?B6Q2D86MSf5oo(5I-!7rnbBKyf~Mi zH?t?Gy;v-g^Ig?ay|%r9jCQiFk}B;jT=N5>QfC(ytnY8p3V!Ky$#~2@DSEV5BgukF z5vJv+Eq(l|mC72vw}9_!U>)>GtkzaMcD}!Z~{No2lVHF|Xl%RmzN{y!@?-|{om^H8%^-igtp>iU*avE4s{Z{;Z zYWIKqc%;lPZ6sw>Z~vknOOfQhP6iX9b&{nA&n-58LNT--i^1Z3cI7u7+3)jjYGVG< z_xYgmJ?qkGwd_>qkj2VNO~NHAv6ry#gMDhj7Z%)o%viUd?3_g!-J!KEhH9Ff^X)&Y zu*ISh4n(W&%LrFkM}Bo9UwB;fCCI4}<^6yOMoAFA(8I^?#S7Cp`lEAE+lcC;AG@L^ zC)g+Zz;`e2u!VhN9!LwU#I*I;;h-ln#w~3<$*SLGP+5)oS86bJ$P?_UAF_F#FMOH~q`Vb+at3Z8)O8i&r4&lqbQ34$g zL&ZH!;evjpNVJDdL*z$q?fA;?D?i2%`=0I5{plgo*C8##v6;hm8C2`ii_0SyQe|Q_ z^Y+g7EZ)iwea6=Bzx_~WYF7&M1QCTg2im88TVH(Cgt}$=^%SMWFo;j{Nm=_x;1}q8Wiih#FoBuIOdMu% zXjg#INDXcBLs~0=-}PyI;*x)|27HgMm)_JgU*8Ju@UJwd ztm~(2cYz0wuNFRh?QnLJcuXljbL~JP{rS+XT6{D<>c{@p1f}7vAH8-{s1C3)YdO#^ z&&Kx+X5JH}*^(+5 z#J>lZ97`7n?J>aL)jAtlu6I?YPfAaO7;^8C)endjnOw4*wB~y<@5SW&#N@E7vQ$kT z2n)g_%9e9ei2}?ESCfSRbn&EdU?uaxW$2@2mog_r02~aXH#c?usu_Z?M9w;WKf4 z9;i?jT;RCgIPO#X7WMTl*TiEgsNW<+qnPMAx8zir6BDSRCp~EN)1!9^I8?r*kxJov zdCLp)o#p-p>*>E<@J8q;i$~3LU{5dK+M@3k>hk?%r2GZbi{~-1rd{}Pc-rp9PU&OT zr!|XHy6^d0A)a2_ZcNyoVWxIynf7w6jtI97NqNU*Cb{hCO{po-!y$0@68p2l#qi1H z@cg2A=TJe+`Eq8uN3=O&T($y8jacgTPtl%ARhYRUG4Bt$kx;(u&N0MD8A3MQ$}Uuk zx^hO6S}%DCg|#{^u@xtl^;2=6TX+J zD$gK8xM-iQ51AP-YK^D1}sE(U&poA)!qOmI~^42jQidM+dmQ=9PT zlIxhgYgC2H^<56HGz{AyWj@m%1h@n1Ysv;U*SpGc9wn(YnyMV=!^zH}89L0b^F+QKJ@F zg#a7O67+nYCKdsvrMJHMf@A>$c(ub!X@+V?9hfV4I86ra+6C}-_T9C>&prIW2BV{g z^EQeb!26Of-lv&T5CU6RhAj9;DoFzG;ak{M-OUUDt`+-6m&ngN06eeaqo=X`H47M% zF~8l?@tFW{(<408YL)X)U{PyXn|1HCZD1{~L5_o@A8dU`Mbpg-KGy~tZu{O94_^T` zlKIpz5Y7<|JZh*%7uM3S4=g>yRGc^TtqyoZCDapVQqUIo4r35QboVz(V6|PJkxo74 z9N@L|3Yypal9j*;t3ORlnWMyk!yAgd+kPg7!+fRnEn?$+9gqObUOz*PwET1mINc(c zyWv)a7Vs}~t0!Fj9E`xMJ}>1|8*M*FuDU15*+0fsB0-wIl`U=yOrEcY6SSLQ2poOm z!(zKC8VWGc%W$PY=xP|+_jlt0jNL!WX> zp2{#8Bh_)*Enck}PARLqoKWLe`(#n0J@)-CL;JS-?my-OZoT@6v(nCh`icWs)0p|C z5th+b$hO#O;5mcgagWH9v8as=yyqDsy@X!fq!aRlPrW*8PNtNe{n>WAM;tE5Z74V{ zsk^z}0KR(IH4>uztqnM%?M(~8`r+^PQbo-jt}b=I0y(Xew0ia9W(Qz`ySc0{``^d_ zH=R?)mYkf)0>`LErxn*c{{nn`{M2V>kDCqHqc)x~zG`#|So?4jBU7WH6&ShHa`=SR zbOP8T%KXYM8rSdfWFcRl^BlW(3UW{0Om{Xdz8i4f=D1XqD7tRh3BK>e7)vEp5>0ii z^~Qd6NoC%rGfH`UlTY^$*yxBztoEGA71%Lka;_x5Ar_dUM*XfOGsW-g1v%$`@R+_m z1$p^hQ=3?iaSdR78^zszwp452T79Wnq*T%vVCnYC#JL)$} zvBx(CJS;~rNIzLM35+s7{BDC(q!BnF)Z%o9ouTMEl0b&l>~e5g7xBKt{8`C_m?S5*nNqqI5VyrRAw9bw(wQnR1CG!ew2y6#)@gcqQt*CDYu@kSt9ubP8L$66SpDinuX$~CK2?x&b*ar|!ISU9 z!dtjeQloqY&vykj(kC-s*32)b{XAXR5X9#D`OrWWW$YKuG_Z36e+l;9X)^5BtW;vJ zO=czkX6-b#X*nz;yq5ma2YJNX_?VEUr$;{rf!Aa>KU2n!hn~1R%*A`b$l1t`DtO?X zm~i=pp$?~bU3*^MD@UW+u|}E`JuX*{)}nW{%Ood@Q>JQX@ViocF&`VIbLEkNqvdAE zWON9kKp#w&CXqG*HN4z88Q~ha@3DEmy=SEx@UH__(UsV4AfdSqtV$+UM+RTv616$A=FdSS@4Mo zF2f(y_SrAKu@5}GD^8UAFk%-5wRW^ez)cLcJjJkiA!~Wa;JWZ^LL4=_`wcBdyrSt?9pJ)xx zFZdN@XP|#vy-FFu^$`1j_;isqD?Un`Qx`9ELo6kX@7trQp$!6kYTB#=hJj+lcMapEcsHi2C9oq?<;Z#B zk}a^pRr7I7)1Mk}znpZ~^Q~<$y`Uw{D>2%ONqRxA#$9_Ve&^k54@=HIIjZtQ9`;e_ zCaB(0A_Y#|Zga39m8axHm73RL(oO%g(ey;M{ca~Pvu;tnC%M!NFh;PL&p3K+jQIxj zgo;}5n<~dQqpBqQcVY;|SqKwVzPe0lN75f@FJbp6JfNQNdw5gr8x7kX*+BOK8@3mB zFcvV@WUE(86QkjGqv7|oavt;YTY1~enfkE5K3L6e=2n#xowK~HOjlU^oEOKJ3F;nD z&wzTxs!$?wT^nVTnfkmj-YBEm4u7j9&Z))sI*ww1+D>ifI^!pW6%BOWYTM%zDE{&P%kjrpFz39U4qF<9;7mIj6z0n%Kpy$pLUmstF z<8Wd=rTbqdT{P0jBQK~>8J*#r89uFv+il%*W|gy#n8IhTb2G8!mT9|0D@B({yj+a< z))GZjf8|ti67L_p)NPD5$^LA=%8IKmz1Ng>_B~=(7MQ0? z`~m~q7iO9rnkKP?jcurylXEZM@DCCyd2XChYnyArqt~t)ry0oqeq;Kmj-eXlt%>h! z-1K9bfsf*hF4c*krN$|9knvkJ`_kD*k~jF43gTtfHGE~eAUrRe^SnK3Rsg&ngxh52 z*M9(f%%67Cw8DZL`07?){29)e6R?{18~%Y9&NSfXgI0Dtcy8IiDfaz!O@dY}z^#?9 zx)+d#M1gTRo=+ZCp7oCoJ~~r6ROxdc6B!~rKhe7m@teSn z<0C5J`wu6WC04&O^mCc3^m@f_*+*}tWfQY?4U$6LDUnyVA zMKrG)c8lq<$+V~D<}e0tX-1?2tL%mnpI?^(jC9>_>!EITQ z&%kt2!J+lBmvVrYuNZM$d@u7^um}h-C-7hj&wq62ZzB|r$-b{3YGNBb^m=@+DQ1={ zbr@rJ|0Ln6(_Kf5PpG!Uz)gpdx$O$H3PYhri5)s_n~KV_d8w#uGoZ&b0(_Y#+>Zs2 zCk{WzUcBbLJv5?6oLM;loFqGDV~DLi0gNL!6^ofdceB2*@VmB~+CoRu)Syt0tT)sp z;XNY!j`HfS6`H+rwUXOWtLU`4ISuf;n&>WEDCy6uC4dS0bGA;{dF+982>96D*1F1o zm!zLLaD>Ggm7v4UKb~GQ&G(jcA7rHPG_Zc8B1F^A7b)c$`W}h)N4tn zLJM_X_fLKx)3*SM%WvmG7{onl4WI%3A`@8j{X!aqSIRB9+Eog z(SrybB{ zegkt4-92d_KQRkwVYgy04d|6_{BUhrKM#9MqdId)k=V^yJMD|^NBu`O zqA@?k*FoO;t+g#{pJr2;$5m)BSWOz_&>lPw#;;3oRcMPUfa!r`$Tv?8#uYvl{mVni zf^l<f~=QB$zhw7CSVNs4|K>SRgX! z3;GYw)A}^z$XjKuLujF}Bv455PE1|XNbN1Rtm%Q1VvEhB1=th%1N{ev`3n7UJueG( zDZb_TNNBtj)kp<-vFh3LC_j|)=hGPqi6N=A*XfKlJFX=4eBI1H%3WXNQ1M%Fbi;0! z13v3oh?3;Z_5?qWS&SBZ*uy>v&$&#^T6^coXFqsO zv9DibkN;0MX!lRg0Y3#lM|=+G<42yqOUK}w%Vm}MfnB6mKY-t&za6C1zfy34=5Z3y zI*Qli)RtjrYO;KKs-VyFI+n0&wgUh@d_2b3}QQZ|XIi%tF3u>-lpRJ&iiV z>v2nhXzELBdEM`+Y~kJX7I+uDRdGGRlA}Hx?Z|>RE3buEFGq_g@FbsZmu_X|+y_x_ z|5Pp;+t4IiS9gkdKlBIY9oX&t#?E`^AUmA3)B8M}mmY2QhiTlZS#!8%uE;}Js*EG+ zl_zd`p%+V zGP^&b9+q*Im*bP^Wx-z7r4(pc!m$pB_6P2oOBCaJu!sfysLY?U&pYnthx`HaJK4yk zkL`KZIrIZDu0VTJk2V+Dbng{|J~Cq`--a%``XMsJ8N|5rPZ_a2@OQ|&AXlntQQF@1UUA%#d)W8OMj4 zRmYB>@#b;Zy;m`mu30CyWS4|P&XV=Wb?2hoM@&gWz>0y zr^ZjHxmYx-nc(?fqj4ROAA`Uum8$>Ml1TZ zp#2()VDTkVg>5`8PTE4OWUG1@qWq;=jv?>noVo1*lrtYXOT)h;q==xU!As zP>A1Em@lBGo#X)~>+52kqMPenMQhTih^!)NYwj)j6+=wAc0ztkycz5c`2pfV>6lW> zUb++-=nwn^^auM9Bp;=u3hFKmCLQO`X@M3v5ZCE`dBr7U)=~W}uERWr^<#x(XCHYt zassRmgszyQdo$YHMx4)oV&bMQ`wK~-92th?p`%;nG|bs?-^d~?7%(pz}9I`?HWe1PQUoBZbs&*1&JVhcrMH%9Our7&vAH~ z6>HxVtJ5O%KW7u&?n@96gt!qCpnQWXh)5FVJH*vL=?miHf0rEAcc6dBhrqC}1UrL& zP4nyqL<=8~!gYVL+u!71SBTp%pFn?L7non5Ux*i=2k3WS^3Dte-uEEbAAub72G4_a z0b>6U{REx|egxM;9{F3|(EeBHwRZGc*`MO>-{LBaU!0M7V#cQM81!H5-XAiTC4~a< z2G%9O5FbFFpg%-8`1P+gROyijEH@ZG+z)cZ_yTzb;>U|9>(Kb^Pt1RdABgt&6aUk= z0QLa?gZ{%j|KGJA*yl5*%5$YwIw8`MKJp>qg!Vt#6P^eD3k-P_`unH+1NK3*C*u4- zv?s{HUP(QugH7gaN5Aupf+$P8DQod>{;xa@`3Ba-zz_!!`9IA^;4h#L#C+7}T&0|N z>{kT-^iT5<#HIh~`~!CTpYpR*?OeY(_4}rO@~gkiV?;Y4^1o|0SSL)B8<(0<;M##* z{^>mb|Jp7vAHd)K)A(KTf!6hra%S?syY9#LSQWx(NHqVGJ)vKJiW7fZ$No(Y{`x-^ zXZ{pN{=4JG|I|A6|CE0st~VgQgMT8%YsiP|rg+Vl$+0zoO&VXyH*B89T&=%Dm=Tw( zI9GX@YVp&mSwo4%M#eq2#E7&LE|Ya$sc`m&X}0>(`-tmFU|6^RQ??bs8`uyd?1k%r z!G9@F#Hx@ui;CPk2iPbNuf{_?E;_mJ*Awg>7Fg%DBU8VSB_79vc3@u%_eGgl8SQTyYckEE{>S8Y7M>e1VrtS`n#pAn#p>0-{Y7LLALK=l z!}|eXSf9gqU_TG*XL!GdST{45pK8>OALvn4U=wS3OCMucJ4lkE{^v(>N2oc-;i1|J?VavZB+5vw6hIaqE+ChvH&|k2_pY#m- z8qh1^z6j(R`KG3)-9Bx2to$Ko_o;Lc8S0r(r_g<3u_0JcObhie#Ca)y_;_-vvVITr z0rf$R7zXk87gn0q$8~o@Eb-H5hn87rnk0BpBQGW_x#s-cOB%@?`+#FUX=y9Z% zbHb388)w)j*AZqA@q_0e+85#z$bn&h0s9lMThlMSsomOlpL^RT9?9TkWM0)(@}&O8 z74bKQ`yn47a-32UGaH(iDa z%f#Rny1R`Q(H7KS1qL8qOB5C*QRLlFh5JB1&_CGE!2XDCIpC?Ma-uF`|A1i~0(OLX z2n_Kej%#q#3{JYmfdr&U` z{!{x9ry$P2zJ}*yGV1h;+C6wa=oi`pdjS8beT6nvD;-kfUZ~Uk?Ru~;;`{=J`400F z`v0f>1gt|4>q8OT$q&ts*dHL)tM!@ioV8^AP+P@=l<&@_b!xcD9Y1y2G;L`3BsF9_PBtns-A0@jj9f)Rg^uPjF#hl70SK zLBZc;9^M0hzFS*wu!IZto_QNHXrIS*3UOL_3!A%Y!rJ-9k2C&YU znJF4Bs0=>^eL_A!WY7=1Xa8T;GynCT`A_n{?d$#~N8De){DS#|D2Mn3^;}rL{{Q>9 z|M#34!~vKWkcVJ>#I{*N;pV#Ti8%jeGrk=a65Y50{sH+D;s@e-8sZuFDa32=W2iqu zKPdY{qpI)eoPa;9v6HlZU!>PS^f!1f2kR5W`s~IM9`pR+YG_r$-0USKPB%FJ0qZ2( zfBn-+{j>K(Fb+h&hjD=%xRNV_ePmehXsS<$zAnT||5%>#rSrE>DjrUl^if23>JmvK zbBjRMEikDA` zt4LlG%09qsT)Mj4;Q{^lQ#&Ase%=n;czAFYe>i3!wPkQ+{H)va14>bYTI^Pk&}&<3 z9Dmg@TM2RrZDzO+v0Z5AKb0f42Ml$dpAIj=x=W7^8np?x&NzRSI9h#-t*6!q6mIuw z#dA%@&A$^VQLoU}X#G9qFqra7Sc35FvOx>0x6mKN{vk3v53UD>`AYLFkXEjG5f}Uu z;tI_7|E~8Hs9N8DNXFA&{ZpQVcmn$-m=Ax;5AZ$#@&oKQfFWPNKJ1^quZBAF|LygE z(38!9-g?kGqA*~1PXl&@xDD@x=^t-w_q?grg}4vvbg%=glYpT;$jk7)7+91*e?zCe zs|EZD@&>dIc0puVAGM0bO}GD;`dx>D^$@fN>%M|kzV$d#<$9w7q?CdgFFZABIY@G4%880JYWx4_kjL^p-u+#67mMfVcm}?hxQ@=!}HVCH#`fvKBVJ{ zI5~TXMR@moQptQMgSB0;-go|b@ZL|zt5_4d1yOuuk%;32hIKw7!#O@UCky%n{UYkK z(gk^?#>Kq=+5vsSco5?dj2Fi9r+p5rb0M!H?gO;DTX(foLgN1vhoF6^BfvTZ&c*zv z=ZE0E1ni68T(Rko*#u!?(;PdGKtjrzyLVx~19||vBQl~Nz`XxcyhMzLi2R?%$N%)a z4&=Z8>Gz{BA0VDUT^#%v;v3X`;oPcJc8L5g=3q18xmIWo>ifV@&jdR`9So7dZg3tG z{1v|AK=fC*ALavM9Rg7f;{iW_??mAIFIBl3Uh?c-s8f#f`5A612GQ#i6QSJ z>g#X(@A?7E7g$F?oE7tnq~vYv68hWo;Cj5zQAUQsatw&qgS`^vI7R&Jwnerx<&*M* zc&-sMJ-=n%_MEX@G_~-u72a<@LOf^N&eK_W;rR#!<~h_=!{ZW5BzLh0KPC2_kmIgK z<#w7+c=M#~fJwUY{F@W^rCFgaS61pgTqF_yzr3e_e!@Ns{1(2`LDVz&DSQ`%D2MfPL3sX; zhdR6Zt@I{56<;`mACbJw$^I3?`!_qh$(I*hCh$~6v;(5PAn!mPfII_rO~ih|`vcfF zAj-i$ke6Y8KAd}MNz!I#3G)Z`5x|hgfI$xJLH+8V>UCKpPqnFs-vzOMf6^;sMUk;k zEo$@M^!f#dV6gUGuQZ}w5ufu<`}sHf!}|Vz%KnJ{5BfoTzXbVuTU<50lk?-N{LTC~ zoMKcKkpH26g^@sFke8JByY2$(e?&j~n;-sn=?`)Kco)Y7qvMZM|IN;C)fBFn&k5Tg z+WFt@7wGf9yB~=9L$qTi&2ka;^YeQU$4=PvZ}tVBqe2`b$>jN%@_O(l#4WHBFvKxL zyG=8BE;}*lVJg%mv&3GDE<*Hs#C{>(5Azw$7b9Me*xtXZZ^Zk5>;J#Lm-s(5kN&&n z3F3Glzrpvph;l^!n|=|mNAx2^`++@d-mGS*CNuwn{Vu%ML(H%6-cT^AlGMsKuN<*n za62>^Eru<37W@wU5cW?{=R<54`VIRVU|4TM-hnzNqWrgC{8xU3?`q*aI^y#{@32ll zY!99X>p;-cjit~gN%9+G;P>$TE6D$8eGTjg~>>uQ9c>e!w z{Y4xf=o|bT)}>HyTk;4Qe1DnMqes#6i==?$Ns&G8#w}Lf>xknVem_v?NPz;*B*D=;_cYPpgT-%sReeUhf8)||UrB}5|rhj1O0a8U5BRMjkE zzvdOS13a{h%;36(iKAN8XWDj%*ZriO^Em6Nc16?!*ctZy;79OY5Y|hu&W81F!}H@Z zd9f@hL_dZ)1-!q5{Rf;M06FZ(5x?8Cm3YU!<{dBrc?9kK*MPAD`%;*{a4riN<}+fu zh|m4o{QKXPA5HwYnqo%R2lcvaf{}!_1fEdDejxe_A_s@N1l}P?HMNdsbCusKl9L}M z9N)j6um|fOA*`j6!c+7<#PLJ_Y3r2+O39|Z5bZ+j;lw@b-{b}Bs`Pk9VmEWGJJ9Y| zElD~Ont|W%_du`US5TjY^?Q5$5~0t*HBDf!C-@80xggF$TtloQAdVmW>rZtD#Oo0m z_MeZXQv3*ouo*Pw^Ly@!H20>o$dP6_HvFm7PTPycD%3BGsuKUH^vd=BS9Ku?Hy^iPa< zKll^07jj-J=)lr{N|d2(?O$x1g_8M|Za}Uf2<$20qO9bdcyJeSe$2$xHVs*gDo>(s zo1;a<6;ac57>os3-1yV^>A;8dr{vlD%82d2dL8Tp>lxU8f*%N=t+-?6bUfv#iU{`m zf0#Q9uqwK)VIMqpccP+V7bT&n*sUnoh24scja{hN@fg@XCN?%IDmHd2c6Tf4zxJB5 zeAbzTFyHgO-+z5`T^`TO+~?kF$Lzf)&LMG@!xV4k{Lil4$lA`yrP9c`iOahG=vvON zQG({fhEY0yx-LQc_4mp3>(qYradb!=kRu=(wTt>%jMe!WYe{T!-!_(Rm=%-_ebg2RBSy){)|% z{OH>ewTnNU$5a04cLk^(LbhcXT{vgrsevmRxBFgWdPAy*(=H3X?><~s?R{$A$lHPH;gQGffswh(r7;?ZKCb_3^`M_`Q2+j? z=i{lKX`V^-Ovk@|e|+ndemnQsCqKV)&7k+``&qqD&y$bt1L@m0wSSuD>-{uN)AvgB z<204epU!vm@liZR^G7^=51Phjx{s_MpDF+P@tm&D>EqYOr(dV?qWkjt{rYv{>3L@T ze*N`=_;`9gqr&+LVT<=#{`2we*Uz{0pQrgE-3O!c zr~7`y|78xpwPMcKG}OP)_4N4C|F?enT_d_*Pv=Q=9!2vzYF~8xQoOXTk5B*ke7;|X z`J`#~n&zqW{RbK!JnowlwQk_Jh5AS8XZ7>udV3;=7Msu|4Snw7-<7M(=uvcx{&V{I zEzQe}URS63{BK`J)t}Gk^JnzDfIM_Q_HR8@FUP%J-1VMUX=1xxy&oiNlOaEq@AL%~ z9{>1ML7YG6)7P*6+w!LK)&JJ@Hhnv#c^$QDeLt?}sU1N&Sc^UGXF(I`D}Hs3wxJ~E9w{ip4eFPfhfx9d9Nd*^+2^+vaQ z85othT)Xx$?+;|2y@<}g%cZQgtnkIC-TLE()@i;$$Ezvz^Tn4RkEyx1Y}1nkcMi); z?PGVa`9R^fkCxKsX#AWrsNwy_n?q_RoqFMWy5{rh(eFUe=TdvMTyV5dpG)*PI^L;# z>HLe%8|ZloD&HUHnl3+CqVWbgFR#4L@qX&Qn>$dydVKGyhJC;J4yJOUa?V>}R@>AA zH|BM2^RCjcb-C{A?;BHkbRIzasUMhFvuA#H$6A?c=lZ(xZllz%==a%NGo`LrC1&kR z`krFWJ^@p6W$O}2pZ7cS_l8>!j!mHT;@P{GHJ|KWh2r(UQgUUnRJU%^I$gh_{D!x5 z_e&PpyAypch<=xi)@j~FpDz;Aa=g>>TsP=<+{WiTHNSq{GdXCT=Fb!lU4Nwb>3Kie zA94JaW0u)d-qHGnJLg`u{*vQ3t!F-(`J(d;T5s?o!7uwBhpJP%q4Q7LufN`9 zbe+n9&i8x?wR1Rsg+jgJaZs*1$tB=<_mG9l# zLj}_Bzh9xjGKz1B-}g=DSLLcqpVP-j9_lAE9!pugt!<%jpXFII*i5RnoXSC8FC~V) zT>WIi$4=xW&%ga#`}9ve8u#wAkG|Lbet4Zii@xtmPxZI&X1fwO?H6^|r>9@1@z(C% z=C@}{ZF8y)yXt+^r$^t*^Y62Dd+m%q zZu-ydUOqET7ys~u`p;2+sekT|)~WvJ{OI}7+e0t-jW1e!`H_{ME8Tz7FJeK#VQU6V zpyz~7R-KS&-TWC1DINXsOY;KSPv1+Y{*n4|TBqkq0!Oy%d-`YRxpym!tl)nxckt6* zGgi$Wcl|NNN7rX)o#Lf_g6>=C*D3#W{zB*XMz0G~d!=~_op1l?Ipceo-!3r^Z|3oz ze!p;j-7C)Lw~l-Gr{~~kT%hN0=sc3XUr6h8J)52w6Xy z5B&}ko!9?g|K0_)FPi65d!%xsb!z8yf193X(BI!KTJ=cbU^nN>biB~gg%vN>p9$`+Gh?9`e#WfBl7Q^_zw7wS9Bf zZq&0pugv>UQ`=e`EiPq<#(`66)TH&3cZIv!%MzqqSj->@oclI!zL<3C*&pzF1C zeCn@<>f@k(mF}NXTr}>{aZBefG~Up41!^~Rp719hT@Ti`tN7MwT%dOOZ?6~9^+<}3 zt{>{t*I!T6@7J&Yr}6x^eRP~tdFlQ7`q%G|Z=J47P-X#ZR3DVSeqH~0{eFEs|I_vTqt}MdtNZjAJ%6}%$=t4<8`4*${;cEM zVn53jTzr9!V;aZw>r{{N-DmQ-bE^E1RJ-2LaYFN_{cno?JmcULMDsfRIGr^x-Gsjm zYzd}xsUM>J(zrr#(Det}PxEcM-r$$u_S}tU=KcPAA#^>1%A5Y41I^3m{tbPeet(L1 zdcKF!r}>9|Kh3jpJEcqYGOS%eYM=D`Hgx}l{+9c4jDo|y3+SC_4TxDR+?e6ijIHvto`B~?Pq%( z%K0IstH*|};nZGQ7G2P(R_CeW{(`>Vs2`?u=(wQzr+%ESmr=g-_p9l5Z-|d?o#u1I z(|w|zCBBUc`drPMepgRF4$*UzG>+)^(|jh!)ys=+eb_gX+6|3Ee~Mo}kJabzPy4A| z(|jksae(>_$}h!Z^uAbp=~4aBartlO2l{mM>(m~p9{;%C^4utmpLD&xQnGHzN)-*g zd!hg69*weHaw_jzu&!&@jh*YBrwN{^n$B>rx2 z^9LRQ%R;H$A0M@E!-O+WI?#HkUAK1+^B+4w@$1_)9Tyb;pVp~-sQxIP3JLa)i*m^R z`+M(yDlfgiNNJ}W*;`F*NY@4Fc&B;m>D`XUqvzO$==-bxG#~R)Obrc5^PtPg(zz29 z@3>(>t7QYbcvP#jhWgEzSxMflXb=^qPnXtd+@*FG>^G&UQ{>|0bllPWfy#^eO)9TH zJ?H$Ve9?UwDnD8$Kh+2Ar~3Q1&nNvU4)U(q?c&;DZ128Qezwr9-@a{ZF6Q_jCGnsu%iR7tJeZUQocst4GV>iJa*BCja(( zbNgy{wjUGr*`9tc=4gUNqekUf^N7l4O`41&1{Ui1`#FI><%jaG->)wZ{koo~bviES z{+Ygf==Z#6-c@JZi>6ak^k_}jRn6U8`@|e6Hs?=qQ987r;`%)vS;iYW9%-IS>-0Oc zbYFDbr*RwmEEv|9?gPD@>|TH4qt)jBDIauqW~c9V73b6OsrTvQ>zT2A+X4gaPrNJt zc+cblF~=K!nDl(IO!+-zYhCbi=bt(saxlq4A^A}McmcKJc=Y2G; z(0T8FYn=X{&U>gIqPXa|qIoLiBklAZ>%97W{75|AC!_KX%X-Ff>(7LZC?8Lbmdcs3 zu#0DW^NrQ5mgbtXY^9fez7bz}>i1JSqH&?+lc>@^zU4Akows}C%8}zHyw9HhSNoz4 z5mfJ8?Cw-bv0_02sz-f2$G1-HKp#hZ^HM55I&Y-%N}9^G!g{BH2jeTRRY61VyiV5M zPG4UCc0NY+OY>@KKU9wY)=QtG=RAx)m!*$~>XqW7_D0_`qU$BU|2~}M@2e889~bC6 zjIM{p=coO4Rg%JALVnw#;>ys?1x}SIKFZ0sJ~P+)uwB^(-k{@g_TkdEql0~4&^UA;w4IM_g8aXKC(!6|N9}<6Eq%Jw zztZm#)cMP)$luEk92;hDQ{Ab?y^`*oqVnyHTK(!z=RvMJ%0${+{*;4`GkOk&jt{CI zDz87CSJHlp^Z)nfsT^pWq4q)d)Ai*>*K7XtylZ^@8yydH9sNH|Pk;PUdD8KtKc4CM zq4QRXhx&(q`#d9g=zC52a-({sev`_b?&s+9LFGd81r#2pyqKOJr|$#m zpV!vsgW{&+=1=?Sd`Q1vzfQ*~l>_+GLgT8l3`>B7W>z;J|(0#1y!eMzv-%2pF$F!0qM%30n@3CU~^tCRtMiiy_5S~~hcpPNeKqxuar^0d zNa-pAI@wmwaEtOu^E~~1JiS-HPWSofJVk%p>GKt}>i*-S9lzG0_B85Q`9qz*CGDX< z9_Vnuhh3geLXG;o_co2mPWU8b^mLF@6zh8`WBhJY*~TUM@p71 z|5wA0cgEZ(H*x%{jYrbH@8^`Dc-rpndrbFcuR=C;W?EFMFcOrkRdw6EE z^M;@|JvQup5mqHjpnIV&rg?53S~Q#-ME)<6j@4c1U9n2OeaFYAIgxzNrylE4uIxHB z&8=Y-iVjV=c4MU+m0u;QdAE_tve4&f-RS?B2Q1DPkY&V**%ya6lrj6a8&LiE$cU#u zKVKX|=n)sp`D+9lUzY#@^eS9UYS-zkAHS;g^%N zO;YXFxT&?$4hiU6an!a>gF=3MYd6NRVb)&{wvQYB+V95Cx9h^Zc9tsMY-PhiS9)&j zQ6q7Q^Ldhf{BqfTNld1hr>3W@^Wjj6ANg00>e+tar;LU3cUfUKd{v3FA6EVxHS$8T z%IUgHpPHa+C3LxXZ>j+p@hOR6eC|ea~on<#@!gRjkteo z!O)cBKi|*)lG;O1!^mBo&bHk{eB(94eG{(qcH48x-nMwj>A8b_PIVbof5z3A?6+6@ z+|6P4`F-p1vm-}-owaF6P_7ubdfzq~F5INr(cH+`l} z4fm1NuE6&SaE&+1}=ZsDHD1%^}g#v-N*aX9Q4BT=F$msR@h{}_N?y9 zdi`qETs-34!l;z`c6Ve+*RPo~XRyEUYC^u7&)=3iJt3QCAKQL^dpZ?3bNyzbo$jv| znVyWVbZbHTy-9Z-?3bzRm!u_E?O0#!X_^Nyr*cMD7~QVGqeuBO6f6_+#yv;qjHbJ< z22IO!;8ul84ntB-Js8#2XU48xrE>KNT)ofce!!r!8QUk!>9wR**OV7-W?on1WB#Wf zqu-sFwdC93kPa2jnm4+nNOSwq+=SECKUsTmT$gs4n{F$x&o|}j+cPsKe|XN-;bqx$ zohD73?>sKk%TWiDy-a?uT;s3p%+Xzvw=a}!^Qgw3bLSYaHsufBodZkUs*-$9tHF04 zRGS3mxcFVS6@P-GaoYMDAovVSfW4?s% zt_4nRG{3w3&ce?=WXRE=X^(N$IzB5hZL`;lNiA1r-u?AbsmHEs3um~}JBL%}%*C^H zdt5X))A#J{rW{Bx^?nEM0c~IVopGGrJ4wUzC$oPpd#P-dG1vQ!OBI&7{qy7Lb_Hfm zUb*m5n+*3)Z}3VGek=E$1b@wF6LfU`%R$Kp#EdL6HE3k|4qc`cx2tff=K-JEo~s+L zY*=&Sw)@Si)G7LL@!%$v9e!@Sy?H>3D_4qrDqP+pO_`g;avWS-q*20^G5$l}J_yfN zwaMjmdo~TM?)BI;yhz$2i9&-H%`W#U*P((-XIyDk)6pl5XYb}+dfwa9DdJqdA~#<6 zFL_d@NXZ#aEzf`Uai5(id)w{(2LV#`TkU=+X;exU2<>Dx@|z&4nx{ZOM5Zt*X`-{rfZR)fYZXfFG}AT zU*Z0?OfQDK*`CB{Te*X0E0qdOn4R|LZ`SOZ{h75FZ&y3MWq8;HQ{GmmUvF)bI`Z6{ zM@t?hTxa)a;B8m?vr-jl;mxs zd&P{y^!w@a6i2Q{=jKKX&r~KpE^~B+!7~TlJA83R+U=fu7nSI-qxGdF7aDyEte9-X zjGc+fkgxBsmzlP{>{&2AU-hkXmd~|M>@aeIDzT!(^vT6{^C+&@0f zzjAZ$ZB_in#K+YdJZWm^$rWkh;|_Ma-R07xNc6>j3K3ja;qRLG(xLi8A=uh0HhW;Oyj!ZH5Pyc^!vfFR< zrMEZAIn1rta+K@9Cr|3n&YW<|!`WMJ4KM4I{B7=oxBs4fuGje@t37)SJDqLVh!SUx z+ulrF>f)LX9qLcZmS)3I?;pNfogDjIEHl1rcDqm4pA5;+hngO@LGy6EJy@ywi;sjsv-P^n&n;j>S!7@BbR+!Wp$@3rnRW0y_0T3*G9 zT)TM7-0>ETYhLYo_3$szrM*p$L^i*EnM`JrSH})*`jv2S2(~c=YFkRQ@6(}OzX2W8 zXKdh~+2#{{{P+JQ+IMK%zmq+Vn+cF{@Ut>R!nEu5@^Nrfi3DI|9omFY)EUhWgKjAu-Xy~TSBe2EPyTH zR$ErUmT0Rj8)1td6dP>BeTO6#mG=VMNR$JP_mME(&-C;|#)s_LU#gvSj17S;`)s{)HCD>}qEZ7oi zwPi7EaY)WRYhX(OkZUz)?^DgAl!u3_*KfwM#m!H@#XVZT#p8|D7FP!chqNiU8MZhE zTW@i6cMj2SaS7LNDdm;Y%H!zn>aE}6=C9x4{)TUH^YHL+Go@l4wZ+{}zr`b(Z*hlA zI2PpPqqaD^>lybq`Yj$N=sbRxDtyY(!A`%$>6Fgw=(-T>-rD2p z;-}wIDq6S2-Ni10^{3oRdF!{hM(MY>ebH}m_sXdAcofoY@o)>*Z*dRIWc?`*k0;iQ zhoeIwYsSOT(UjThQyz{^f%+{TO?01fatPKjPL64_SbLnDvg)@ud+E2hgzL6AJ6_dq zaY_q=Gdp%XoShTux3~oBx0DLkZ*ld?X6%{gs$Ymb|Yw|+~h zK>Ze1Qx5A-xw~Z5ZzQ- zVASk`JV}KIhVOViFf;=*lzEa14-C8UdSJK&rVt#i6i-UwfgvMa4-5yus5votQVS1s z{_%RCV+ZC5^Q09X=*HvqKo<=RoWuN%C%y1MXB)2vI#OW#pkYwHG71lLt?_!GlLRK3 zc`^$Rbb#@CpmPHzA@gJv9_Y&A^*|Q{OlMX;*@Xu>9AK)!D`2K%sd5~a#|3mI!0crn zTj7DOBVLa>EX_6n%#%xa>XEXS!D{meF=P+w}aQ;RF}Xk(>2 zY&F}cmJceE&x2~IIHQfZ9>}N`tCnotF7=aTSQ_@2ZFt^2SX!E=3^H-Y?1@Zu7IPWq z(PA!(43C*JT3Y3hiMzhaBh!zSb2*ll=J7)2EWE1OK+g=lU=UVEKA$I4Kqf0xmKw#? z;>A2#%oSnlKjnNs^|3yZsf3I=>Q!C9FT327Ol2!3=i$k{IHSc}1(|vl&u)(mUuDcy zkqKdWufk&1JZcm$+cbh#mE+}`)UmD4dv#>^*i=n;R4-??i94Q}$nd#V4dJO}z*8F; zKbEgr!czyCUht}puRESwN6CEEMW!-L_vjd`BRncc@%0Jb$fRZQ)Dxci20RUr$;v$S zg~!K$#}}D|%;O_G4Uwq^jG6_`Ih5q6EFaY>%rA|LU>vk@U%uI%KT3o zYb88>$n=G@)J*zWl6}w(>5suS$OJ&oq|Qdv;>SE%U9^R*|MWjYla)&@nRdufeFZxE zoa2mEKJAf-yPP{9;{svQvD2Q#qj@?S@N_~(T}dTRN8#y=Ox*o^7i8R-r?c>MHQ?!n zOcUnmDm>i{czPgX$2{GIr>6mr>cOn%Ej@+D-+-q#GQ3al7oI)_JbjUQ0IyVEeS`<5 z4iK~I$szluoR3^9$oAYHnK$rCo_@kJ0GYTw1BGXR@Tj9BzIX-+Pk`_YHsBc|JcEU2 zr~%I~;TbAC!;!%r7~b8#u_cWx=Ml(!fmbT$;ldM$j2aD9eR)k7cSL$dBBMNs;h$Op zg$IUMC};9i-7;XI^o&M^&ml(%&lqIXTq~=3muh;b^o-RQ7`xSsMJ;2PN7cB=G!Fi0 za}w2?I@ydbAer&V{P2^E5OE!u}W$#|w9vjP}3zN;mOd9?DG3R}%K>I_2V{q<~H2gyvcV&?RM zhj@f17#VeTpggV~7kWr$x)n3+PTP!95ACgbR?=}^YfIy zkl6-IT6m|H1tRZoSh9Mrmb5}f$t<#BPVO37Q8J6In8vH#`$}dBGBn@Fm8zc`XS95U zAhXVruaf82?34LgicBQSSBS{hGGwSuRlX#%+=@~8lFSM#M&(N~E0N*(;*6HBRmfz3 zn6tyX1V3)YGOt^WOej<%&FfZ)e62x-@>TFv*I|$J&nY}EYwIZJNR%wNF{=Ql=8?2aXGr}rzMvG@7GUeb^^&5K!l!k*_-<~%ia}!?S zaK>dLi%0Xo@Br;OZqH_9Ucf7PLWO6G0nb)s>>*(CY!RMq20Yu5;pf8JglC5V&rW0> zz$?YGLwLdrcy=KJ4dS;aOn7!96Zbf{2N^zp-Yq=&MJ z1D=D(__2Bq7oJ1N;LHu)t#S{9K}O%64cgx0bj9nQvCKDM ziUv$p@KC=IAv{Ns$pK62_QEorW5}rUFY+7}o=9Zg!z*-PrfY|550{?f$P|Kr zDPNJobHd6~ux(}-JoV*s5}5$zIUzi!kWtr!Rlc^DYSch_P9rl9`nu%sPA#W|=L~E$ z+fcr?zWoA+kv^WY$Yf>loDrTVWa5tJ95M@8JW;}P9vM}VDqrJ=T#TihFCb&f;yEuo z7m?`-uc}YDH{d=rD1E*zA=3{wD@H9Bh37JCHQT5sv*5(SRB=-(=sxwHE66Ma3Dx^$ z=F#SvSCPpFub?trnYVQ(XS6>28Zs((in(6Lp@>ZDIx_s8%Qcpk=DA_Oqec_6%>+n@ z@_s{jZW-|07M@$ea|f9ukd``j*7!XhCG!=H%t98=9pSl)Oe%O)%cnGt;o#QS#XZ<# zwh4z<%GX`txsObKNJ||TtIZ}C>3M)mch*+#GmloM50RldRreGm^9Y#&@CwP9)ZC9V zT75l6rm!WRPUp5kG3oQAMkTXNb;uMQ%a27oPm$sANah(bJRZ(y@jOQ+?($Ky2)GB$ z%ICR==cR~8GOt8DoYCTWjZED2{stM1pv?OCJS|P9Jj$ zWcb*WTzFC%@T5Y9x3QGMlNy;$@T$i5Vr#y^;Hi%%4Kib(8dCzJmekCnm7(fY%r?}o z27E{xDVcOujJi)G8TI7&KOS|TNHQ6ap??0s^h)MS$Nbe-E0GsRE*+&^v_b#lMNZwQ;{dD z@MK4Z+VaLC<6z>c&zG9*n{CtxMV{=!V{5>ZQ+RBJCzkFJnHQJpL@Qsm$RB7m~B+cCy%}G zsBbyM=P8H`ulEANqjGJwp?qbx*%3>j zMuyjylkm78)6~)q2cPJYQ|7A_GODMdcwB_X)quwh88xFIkE`&wTX{+~91K;buP+Z| z)JR7jci~ar$T8bczUEKs9n1M(8DvxsL!Q#YMZp>j@pXFp82^yO0n85KFj zQ(bs!T6yx8nbB5yY9XU)ggiBcr?!fQO#GM;+K_%Tmi z;Zdb$woz9e)Lit;inMK{r#>>Zq1Y&2-on!W8Fj@{&6=}L^n@vuzMOrK849oDX&^l6 zs4?4+=i&LW_R`Z3nJ>)aD?E*?JTZ31+euGjWF|0ABjIUc<%vCCO_AxxJWYhB88Qbg z<+C@Bx*Mb~pXSKiWS(Zi(*hYPpV;%&5}A3dzFG)RD=Saz<=h&X5AaI$)k=6&>-wj@ zVvnZ{GJ(wFCp_w#j%J%a5VN{ou&R+=Ec4ZN$gD{E&pA!Kqvr=T&@oTGzCOPzgKr^Oj9twIxWORJ|@CvjE7IbOmXbpZzvty%-XB0A>!K21OwTu*=(a7}BcAH+T`5Scb0jp;i#vsGb8Al7xSY(#KC)KAf zL>7n8^qz6Z@Hx_0;TexiZA&~?H~oNhy+@61@QgjYQu&M*o{7k)xiP#kwG1A&T6!iS zla_fV3eRK%o*-nhGS6h;nS#s;hy|LxY2Bt7*JM0Xk$J;BQ-o(4GHt=3+F|`;$zh1l zmrpP(Mai;Cp>e7XFf75Eb)|1o3@JdED)ag!tO(QGv3K~t|Ai+`>Ecq2+uWS?0`|rj^Y&#OV4#= zc)ec}o*T%xg9F}}8V{QmDm^!m@r754=Z5gyLZ-dNQ+mdd1=4dH8GfAJ5}rHAB!Yyp zfXnettpU;#jZAkqXDkMcTJA89c1`9kGWB4enynOhy6dfE?je&8_QM-fs&d=RoYBq) z?<3R5!fZ(P!CA)h02w~7yU*g$JP!?c9tqDw;dzWqWq4KjI`8edQpWQH8P$q@KmQ{< zPm%crl5F64*?M0r^WJC3ya0wgPnkz6=jX^!8LDU1B=f?GQQx!Uj8;A`kr@ZEsPm@A zXOeG}`Fe#+F?gl(<(DiT&GQ-=8Y}O|6o3bvR7vq?{@)<85MC)?uZ8C=GR5JeaOuzV zB_`sF^t?mH&%yv^dMiBdk!h=T!s3u)89Z2|kLLq2{QUjB@O(t3jixb8_6RvGJ)e-_ z_v}6j&u3)z!SR(BT#0r+fa#Jxo-fF#Yq?a;pM~cuGIaj#7}cVk^n63cA6}{7_$oZ# zk!fYg*Tx-Tb)+W-nXAB%=ezKz>kwue^0aw3c&POJ6rLZ#^9z}ZkQTf#rTno6NbgPbNGm40uu^!^#8k8D2iAgeMI$*}MJcW;joqRl}32dA#)BGbv>%q zvkzUQCp|LV;Z^lfYDvdDTK}8@8S0JY{S#aBGSqx(&CJkR(1nvsEdq{-qB0dV|gaW2^lY7s69I}kJkSK5oxJAP5(R(`FBJ6mXdL^ViHX&c}Ftt$WYAc zc;}23vj;NwAYK)7(3CsZWqU4-j5=DWd^|+VWssq?)bp8~(bDonW+0T0njI|b>I2gX z*kpAKmPKYLyi%Xw$mqNtEPdpY9Z5^rBzd;Ra>OR87-|k z$f&!PstlhMISNM_Y_e)&b&*-f(yAlUswdLojFy%+GBigjbSx#Drt8zHj|`u)d9$=M zPXlD!Axa3_6#MTC_#opA0L`@;2#>D;PeWvCGmo$EG&106jLcPtm*Qz8JWULEnj({x z#nVK1njzEEQa-j(5k+J4Xfw=Gjqr)Ds2q z<*N%ay!~_*o~{Nw-H=gN2&sI!3XeKNi7%cW$k;Pacj4)YOx$y%UdZq{QcvOWH{j`w z%r$Eq-Q2F z{2J^G;hBZZE%2zhUyUonUQ5qxWTN0zF>0B`JOQ|64l;Buqt2T+qs`goBC`N^HC}vc zn}4-TYaTKySl;Kdv^39rWYja{DxNg=)O`rpWHn!1fDFGbF`s#~nEyhC$IKZmt%b-? zIR`C>%q7!WgiL!D^Fo%E=2?tP-1WXhcoqv!h*dnX*ZWf82@#%U$i!WS%aLgUX9HC4 z%a}(iLv?m$eSM5GTHaS86L%S|LZ&+_!<8&8&9fSrEl|_yoO+%|{lT&>)*zD*UMc3) z%%jEpH!@W3>b@0cw6xY5NNXK3DOp-;MOy1cTAb0++JMX?$dfuQ?te^lMdoWGGWIicDu#&YOg1Gcr#g7I@^?l&{jO4li(c&)UuPM zrFnK4@a#s0_r1G>XAd%z_bG=Co|o~ct1)I9)eBMH_b`uE&ijzz<;)o^=KWS_HQn+R zl7&rHedYmV)O9vWYrjZK)wuQX&KWJOgH~z%)onH$`uemEArlR+l-5C!)?s9LzBr?$ z6@d&LJ1Nq2jOE$FBgnL1bsE9a(mY3zSqUYg`j+Dx-#N*ck0Ij;uN3o9=F#dR5*dnF z^(~yy(mHM+trN&(WN952X`K{laYjq)l!3HPBU6l}bxNdlMx@0VEv>T#(o(YsvrTQ5 z)>)C(Igu7;w6xA6vj*x))y0}K8De=h;{q~oEDZc-I?vM5JQodkE+O-Uc`gdiWdoio z$f$do)P61t&s77SYsjeUB;>g&Jl73)ZXol4P^8{v6p!1Ep%7go;igy(|+&qrkVb-xe7^T~kc zGcu7ZU!R2MiviD9WZ(wU?{@e_c)l6%d`BjldACwfOoU8)SHUHkskZiPf_`2@H7D9a#8#Ni3cO!jsT|ClNBdKTIe*i4Ay?Afv`X z>VFaoPf`P(WXSOAnMs8wIWqYmEww~ce-O)khZM-D@s#38E<7m>cv2z5uaBh^p47;| z2?M5e;ITRjh2~;44yHkd_p7OeC#?ZbI%EP^zS0U$dIKKyYr1BeDCS8oJQ)pmG9kmu zC!_FWM#dA;QuoA144vRB%O?vm>!H|^0;879%%jbpvm%oZ_JIoj{*Gj_AydG@oL%p= zj5FH2E;}-6zM*Pqd5X1pWIQ>LQS&G@=T}R17LVppPso^U;`Zc3M%6ocY=tM60Z(pZ z)O>?HxrE0KnZ^*S%2(ov->S)c)g6$3o{P(}Y;ASP z)Ujfkl-*TEGIgz(i3_J}luSKj@;j$#`2a>iZy)sc)55y8*TAB-6l(Dcs$? z3um;k+Xoq2D7Nen&t>O|`(+vWBJ+fmp^qrThE{2rlGl4EnMPJjz1c11NT#tBbH85W zjFM4zTmHGes;(bOrl}R9%1|=RtkP0tD4FI~Op^WSpKwMi!xqTUa~H9H2cac0{JfwA zD?`oG%7CXeGOB;3`Ftzk@k6GRrHvJ>vaYkN(>BONGmoF}v^C&qhm7jyDW0~%)82rm z12U@LAWwVY>4;3+<=hDwJ`e9GJe>{1(*>D87Efp4>1x2!4ViG}=_)+k4S0GWcbY%RPCs=r9Ak!Y&54*F51_ zV8HViGGACc3xsE(0nZ|2c>l9dcorM*EI~$HkD_+CSa?DVc$SKILWF0T0nc(|_x7;{w$fltr#_b=8QI9U5m^x@Te>IPyFw~;h}HO>yS|aQ+=&v`O-Y=4R|&n zlazVZ3(rPmLLnA4?l@s*Yu~Y-Ap-oI{bx2m4extG~M~nax(rQipvd zIiuxk3o;bXTel zJ6JrLC(M9n7cwrazQTlOw*k){WcWO4xA5#W;Ms>v1k@+B!@a_@-+PQQ?U+;5m*AudhhqIbpza z5}9yT?b z&mClVd%i6^(FQzsk%?sSL<`S71D^ZHY-65#!t=m@=b?z_f$%&s;CYM;Z$FQO=ZOK& zQ)GC3JrSN~20YJ^;q#wo!t=s_=Or?{J--m1R|Y(Ta@N_gHF@VphCH^TGIfaksN zyc3=e20R~;;p4>z;rV31^BEc5KYtRQF9tkck*Una_b=}C)>3WhvsgeRRb2Y7=^HsQ%(z+;OHALDWePfi1# zT*&abXinkDZNOuP3?Jii3r`*cp1jCJu=2?xJoyZG?2++;_6%=u$tOJd4R{J56UpMq zFFXYecnTpC%{&E#r?3G}5oA6vPhsIHYQR$r8Gh}(sPGgw;3G zCM|2vZo=bXz*8C-e(lslc*-C{-(6ZfK1&tZKYJq6oyAi|c*-JE7#KCCq}{*1r1X?S z#vW!kH13pT9&M~Fj|^Rd4SiH`lw`cDm^Rf0WZ{f94pu-025cPP-44`>%LjUH6krWh>^?{r&wpqs3FjKs;5EQQuaec&dnas#&F_;*pH{%gg^f zzoFvcj22G~WcoqA)U5DO&0e2mebq$9pVfN}7LVqsWx!J#8GepmOL*!aqkiXB#dEDr zK%|VPE;61ho;t!)&pNAhlo_&y^ z_M`3vNXFNSQTGBkqm^?*1MxIM<`j#kp@^rkRaz<@$uzNIR6Lx~;%SPE%6ksT_t40I zU$T6fA!7>_nifmPWNIqnX^spX@2S(Bnk$(WR!oJdcOFQlB{IC6CDY1^QTgJGmao>x z^nx}96L3?rHuXBleEA`x?kQxo|r0pBbkoK@OU_*#nTCyVwej2Zgay>FBwl~ zWYj4ayuqati%0WxL8b}pRq=GLzVeFnbVVi%_JazSF2d6dnbNRVd8V$8g2ylw&7b}5 zj?4_w+<&8xZgYmmb2?3z;Gwi68JrgSbyWUFEUC3Z*b|u($YNr40!q@!~5`l z!ZW~tXQ1#55S{>J7C^M{#`M5xL`7K_gOCY;e9`%Pfba}P#?Qh`+};ju>Feus2r?7k zm7Y%+%sg6M3`K^Hi_BGa9hA&4WYjZ4s=h9Mxtd8b!;yi9r;!Oeb+Z&_w7M99Ob9S4 z(%$zzRFyFYBIC~LbOei8^Nd8MJ2;?QFttDLH(h#0A=8AF;YjAu@;(|Fo_Ee@X^lZf z{lbqL2S0r&{#~Xu7MVg24As{dk=8h5s0??<+&aY>Ev@m$)Pr9KhgUcM@nTJeU*sDCZeXl~3RqyziG9MXr?2u<3^JvG;0%Z8H!x^n@{Dn+qOIqzx z*{+ajEkp)(U=;A5=`WU+=2?WyRM@AEuUkX%jgy|m$aups2ybv%Bs@!y@rAuA$G?0x z!jxQ}_Yh<}nP-XcEJdb=#q++-=48^d3>hBJQsG&SOdas3whc@60`xwi!g%QZ` z`emy1~u;DEn~ib%taRSdFIh#zK9IP-1^5` zC(dYTT|y@AIpk$z)U(#=$WzNDmX_wZf=t|VzpKdbFr*RgL2&m9BtL?ff_Ur;&U5uUpS;<<+m?>FuW&wXU#?l&GFqdH!S z=f3bfL?-Uz{Sh)=;DI-|JQSYC$iyAb6J&V#JQkj($iyAbGh}%G^Hg}A8;IuxGV0kv zDxc@V^U^>(uaK$E%IBrXffAx;mQsw6kZ;*Kb`{4~PuZ8EW0na<(c`H2c z4R}5v!>{eU7oLv>JfD!UXXW!zcs?8Od_l&Ac|HrzR|B4J$na-MzY5QH1D+UU{8>ET zh3AI>&rf7RndgV_{4(HC!BNBu!CvrXLXQ2nrw+2#Xlhc=1Sh*+Xuhk$`vohm}tX;Ynq{lNuS`Z=@2QGzL6rk>SUC8sSN2z>^*s{v1d;;mKgYlMxwy zzLPMkaujb0*=*V!)FX88wfBgAtc3!jsK_Cp$8GS^LQ*JUI+_)EzYV4JGEu zAv`$^cyb}bkFT7uk4zKDluAo2_ROQj zTmYE@uusKYGp*-($rMC}^5yfOS}M+H@f1Sl88}kFzoVBnKv-(#!RG*lMLdN>JViu2 zk|`?U;fxkfF=Qq|1ggHOk00Dz##0;_2UgC-SUj4i1Tx*hq1r})y(OPYPf28g!IK;q zwUl5Ut(+Z@v4?%CoP%m77|aQV-A>5x@yn5=rFonUcwCU-{f4vf zlrrFPMTYmQrG&=~nJSPg)gmT0dp1~>p*u3Fkg5N16CMv_)Ook6i)`ypOe@kB;FmqPKB5uUQhK*K`M#}B&)$#}{k!^^p>@RUaeZknR!W$1`* z(&L59EMQa_s-?W}R6xcP_NjbDl&KZV@2*rthWD!#gr^cR(D*Q|yn8ala^1KxGQ1sD z5}qo^^aYP9!-$bh{batXBGV57rgE+#Jk^j%2aM`lt{(V#MtZ6vlMo7r`sZrQqaA}a zkm3CpXS8FdCNk=HSMjud|92;uRxM=SSQz-vRFkEpd1@mw2VzbI`-4B)u92QP$f$3! zP`^=|d9;}8B118&=OrXl4;kvi)o;#lMvKQAnYi;+9~pHHOLgJR;?X<}kZA{bQtdE9 zqJ&3fzI>4JW}XJZ<7*(EhRFCakFW4FLWat@@JsidGM>iBs1b_Fxe@bd<=g}rUe1zf ziVQDj&S>S+44Jsgxj8a{EMLu7JesG40Z&V03NcR$;b~>S(;AsC%+pGE{0w;7Aj5yp z!B2SF8t}A3W+98Gt?;x*rkAB1b{SL#Zh@*6$>$p#kcnWP_QKNppmpzJ7L{e@>BGBBuP3mq{u4V1XPtp*?y3FSj|F_3w* zwlN49Y8&eOf-_nf4o0SdC9U@})xCCoT0@ZO%+eYx(i$q#;*6HoFl6q72b#2LOqma{ zjFrQYdBf5gCej)q(vnOdGDRRAP?`ESe^rGuT0A2S#4}37Gg8DeTErunF(Mw$Xz`3i zrZdE=%ExnL`7E+7#vyZ)mCsla&v+4!WG0AsIHScg5t-)@i|Xs{&f0QO#xn^Sn5;?Og`AB>QuF7$xKD2poQ@s zQ*4uDrdct&ir%OvnP4j>&(>9|Br_cuYGVc7eZL@?8CJ}z=)dQ4Mk}A0$Si}HRXKkM zs+Uog&n#quVZS;$)iRTnkLH<;%x>7H=8zF5hYysVImqxiz--}}i%f2n2rRKbGdT~L zNZ3#P*j(Y6kBloYs=jvZY7N7fzHeE8jA}pRnJ+wlAyWky_35f7uCJ4xg~)_6&tJl` z2$_n&sCX_Mf16Hv79+#sStLA5kWqc6@=RShqP_HlAfx69R9{PkXDKp17LU`@dOM_N z88ZCbVX5#eN2Z*`)2Hfnd+Aw$Oc*d!&dY^oB{Hh*s3rE_W?6;IDcDb*mBO5U*ITwBbCY?t3eR?Anpr&4y54Fl?>Dv!&rW0-gGU`-h3ciL zEInb!M8ke6=bgf{%POAPGb(SEp54gs_Pk4Y_8`*<(o*GoYlwPQRlVcq4ttULz~b2> zJo}JQ`BIRKQ8tO&jDm=T0ChE-}xxx2}g#v=L5oX5SgwP&-|>fHb~DQ zWO(@;6rRJ#Y_)h6^gmx%dLocJg1RS&$p=Zd0oE+bk+LuIfG0%?5BL47M`=nbO%O#x>>To!_pIl zj4EgHoE4sP$k4Oj2Y2U*C7$!h@bT-M@LWKq5~KyiXnNkDMjIK=MPyd6crFOfC1mI~ zhi?|i4B69{&t+uRGtVXAxq?gz2u97vh8;;aLVB(ulM(dkfl3N8Z>cc6X2g36RnPz1*M1#gjwVflI^Jnsy6-Xo*> zC@P+mpb6$BYcWZk#}P5*qL%LWZB4ClsE<20TfSsm=10Sa^~m69lDPyv<5uskm1KyTH#4=z>`75lU{f-8t`O7#-7!CM&Ze9z>@`; zAm+&|JXsBRvLU19#?*eY3Qu+eo*c-WVxH{6V{5>Z6B$3|u@#>@m_$f#>Xs!urDA^L=@cemg1P`}|SJnqQ+4US~+ z@A~S6@Snc@cp$_3d3WI{jZ7VIsPh7!iz!2;rwlR=V83dsYAG!|p2);~yq85L0>Y$v z_Y|IT$i#i#R2~`Cuac*n@OT-Brvfs3KJO(w6_Ke9d4}Xn+fJscCCjH0GSRS~>Z_vg zR7R#YFe>I_nXY7(o+`-rv;MiV@KiP6sfG-{)>Kt^svGdsK!%TB)rF@fGP5C1>U?mY zxp{t>uUg3P=VWRMPi+I9I>@ADKgFWLxz8Mpsw(E8}QUeCXmJBEj$ejczlov zVV(xU<7>dv5Si-C<10Lk40swNlNA~&wdY2{)5L(MDKhhzr-|@1GvH~C%wCqSX2R3L zfTtxgcFfa4cv>0ov__^f^RyBkKV;(W58EIU4aW_Yv!C#^MW!M!s^6$;_Zd=E@A&nW zcF3%-Fz}zLt?;x*MqPVX{d~#W8L~)E2jOWiJROl)1P*n)FL?Ftv-EUAW)|#Mk*cMm z@N`B-J#(VsS>LJpJL&0y%uU!&<F4v8;GYjGJO2<7oI-I(71i~v%R}4=f23CV)675o_@%507hLQ*z$2_ zcIoM_r3EdN((5NY1CXJsbc460pDsNEkqKw<3=p0GWN6-EQ|-uP=^2Df1oH$4&tPQY zK2C=qGXXr*eg+HAP-Nhs!g)eWn;3f;&oE@dSUf|8XSjiQMj#W!;u$VHfd)Jyk>S@N z1BGXl0nca=&nV#;W56>O8D7p~gl8NwQy}lE-*A3k8mdm;AC5<+7_>upgUdMKnSe~( z^*#|9-fv70o=M24`xh#T-d7iGm+?$SCJOc^#Ar;WNx~CkAf746@bU=~o~g*Ju*5UF z?(|r$8&5+TYNEIc!iscea-o6o>l?j_AcW-lwB8NxFQ8Ti5g zF23Cc6_VvV8<}Vzl4_V~mhj9$ChmHli_B1P(D6P;c;+GF3yf-qnSL#d<#(UvBcrZw zz#ClV3C{v#=pI^!V!e;beEo$?1Q-%pJPU+pAu>&1KUC`PpW#Wcc;EwZgL=8K@+TxpVRx(3Dj4e4e=hnJ<>K;6KxP;n|3cnkT4F z_xV`NMS3T~VO?Y+~@a#m! zi^a1;c)|>Lb|EvAdBTKeH!^LZu2er3(tYu8SzmjQ;omvhEj)V-#Ip|>)ge%O-YY!& zk?CcLr}w0XvBYygc=iiVI5KO&18+>DN-SM2^K}rJCJ+yegWcukeJ%S9sP7)zJN0Aw5@pMg4=bDV?nD87Go=9ZW zyhX+1c<9;=={b%Jzy2I4JSPlzP72Qn;W>p23^rI771HF40JWrAN1O*6_Ym-alHMnh}&(||#t^z~pJr$nk$dmwws*Bj4 zrFnsj>cc5t&xPkDGTlIu0l06|_d*lV$MXsq)hDC`MlCOe=QT3)j9Kj8Uw(s(3Yg+~ zEj(`xc-|qy=WK6<=e+^X2NBPE;rVF5^GU?>QFuNhqpt0!`WkWcc`VQNd_jh{=g-3P z6&W}IMvs?w*b7----PF@@O(!`&9UK)sc+rkv0ST+K_&_UR*YJ{Gmq9M{6L2K1ogZ6 zoY9WupU5nL&nr)4FOOKpuV2WVVrl&pX{pPz|NMOil@@2Tv}}-xJFNuBM6NIHRSN&_G&=kh#dxN+{AwEYjkPmR1sE)U`OZB+67LmVPWLGFM?g9bZXU zTAC-B0Z($_NhUlgkbw)7*bd8d>kOyY`hFuNGQ2&f5S~=X(44K<(#{p7Cp9vB&X!7e z(pY(7pZld1o;1Rf4w=J{FEjirw(Y97j3+%Z{2U~m@MJ({ti{uOm`_IO$%u>>v<<4S z48oHMnOxveOQ+`vV;OfcBg5-Glkj9gW)3)1zM?z#gsw*KLShUY7X@Z>~hE;v-aZam$6OnP!5!}FC> zcyc2%7#u1J&qwz*Nsk>eF|eQNE4T3EL8cxsY6;EzHAH&yBJ&0IlP8bxk(DIh%gg{L4gtyQLAS#qTX6obCL3L&GeIjDYKEd_YrQ9*s@c49FXDdxuozoA`=5en;p_y zIBm>n>2X5F6BxS2>L@(U$i#h((FGaauR04)DP)>JEKsecFKzq9a!uG3nXK%1FC{!~ z20ZS_*fWot@OW5xl9inOT9!{~WNewoLwL#{6LJU&`!uqgDY6?#c;i-j8K}bt2Us@-&mGRUTo?60F z$I5dv)0P0~sVh8ngr^=d^&uA3EAOwr$wPX)k(p;<;6GD6;i+%ssdi%2DCuc{Oc?Xj z7akugPutx8kFm3WlH%&tXb*$CySrO(3o^L7yK4v#+=IJ?V8Mb*a0~A4?w;UoLEo)& zPJP^-Gw)y3YyB_0J-hb3b*s9%x@QIkjnthQ}0o!Wk# zt;_%TqC0iSIcCkLw(8U+$GQJ;?l)fd&Dv3S>XEa;eBC_{>#9zDzxkXWGisskG$6-$ z|Lz=9=TTpE8v1ow-(MHPeO)7R%o{~?8mdlXzfQ>O+=QIx6v%v?0fSezjJewjMg| zRHv=#wD;?Te7riSPJ7kq=+_B(zdDg)KTkWV&QBgXomJ;2)%n>&r;FSe;%ioX#L} z(n;q~^eEzv#{oa;_OC zyc02xUsY!)Io-|IBANfyC|God?hGU6l=-^*erKra3@69=JR!3AUxsEuA>5CRAg6)3 zk8sG?=35KFkHuJW>R59gV|94W(g49Ov9{*JqM77I&tQV}5vu?j;WO z`dnXkej{g}wLVj<4zJHta-4J3XukSmY8AE}9_x2<+|TEq%=@-Xk2Q^)d)AzPx5nbm zbaKua$2nKu59?)?Dfls+K~9jFjJxmCRc9tT&L^*5lVmWrUBNrE$oXvT`%J6D`~C+x z?!I?Ew{E@d@SJD+jkUhQ!X|pGIpjD~aGyJ~)mU@=#%h#pWF_0-vF4Fe!|ao@H{aq7 z8KuXXPmcY5d7d>Ecm5>DJvXu+NikM;7LYU7TAx3y4zJHba@_Sf9Z>lv+u^Ymk<-P@ z*ExUg-+v#%XBUgfajq@yFaqSJ$DZ>_Yb@@pA}6hx zkMlj&ox4+I(Vf-gOfzpB-0ROOtHX0%LryBwaE`^u;zhS;XDvCI#3?kOe|y{E`K%+y zIe(n zS3g$M&Ne@%ZMk+Ew6opM85ONdkal+XIdwLr`%^nR{hZdNKlIhkEiGXSbhI z>+cQiY=_ry4>`Tex;XD)$F~2yl3v5T8Sqt*EGz{kuQ3s z)f05*1Uc!=;yACl&f~b%;pf*$a@^~N^LMn`4zJ-Uaw?eZoomaGqjSIMu}+iI%?R#T zr>wEKbA}vqAgL4b&mNp5=a_NaV|qq)&XLp8oP^G2-D#SC?5yW=o*d`*E8Y2=Q=JRs zIQPcRSbv=lDyuse$+3^c1=YDkj=4dnb0hHB!VvDUFO%~^9P=OFCDpk?P9gI(XPxJl zU0@Dx@N@nuIre9;S5)U3IT_5R&b9ZyLOmwy&UJE{n1S4NzNR`i$Z2F6&SOQ@CLeU? zCOPH{=-g19TjUHjjvNZ!7X~}e z3+Hji>hL*#j~w@$cYYo~JNL;+Z?<=iMaQ(g650-*&;O9)-fM+?AO0^n_I>z2YCaGA z#&Yh%ZHLEtNRE3wJQMIJgwM4ekz=pnLu)MVJSOLp*(c|DvHNlJ$9fH)kaNncp?f`i zY;|}IpOWLQ&z0)^-e~8UpOdE1wz;;$^Lb9rFXp)%%USEy!x!lJydcN<`?Z|o?mV8W z`Me}2hxwXwyoRM%I>>f-tXJfi7cF}I`jG3yYdzL$a_sLZyt2mP&KnP%x8yjJai3pr zROg+C&U(4vY`QV}RA2~Iw`Fv2Fj~+Uo$g!_KA63V>g9;4z-|PH^9Q%81pH=58 zIm^xQa-QXfZ_L=GkJmSH7MT5Vuk&A3$2n~R1C~ms+Wn(VbSHouyWfv*Fz^BIc==@#8sX69y$rgnPqk2t4=}> zokZk}u{sG=C$Wc45;dR1s*}`1CmA`Nt@$KXo#Y-mDag5Gb&{)2N)Me>-iKTr-7M|`@X5D)!}>o z;^d?^4U_UYpNrZK-y4@8XR-OZ^ZeTMXN&53tRQkyTXQa9jm4dkQNas%M#?5u70y!V7PI=X-NKP&3tlQYf3~6@K@AI)rN=|@roV(`37mLi%ooeJ%u;x=$b*htd*f`E-7nyeL58X4J%EWdl)YpYIO za?;6sVy+wcN_Xm!<2(o5PF>Zh?>C=Id)J!NI{0yKK+Y{|zv`<_Lvn)5+BjSHX;y86 z?ldANwAE>-I*rNMYZ}gVqgcZ-A$+#egq-ZAWBx#o#;ViQud`&wUh^??@cn8=PI{}; zRCSt@o^SYe`Nj(=aLeoi*FxYg8+8rWhfraT+8! znNyF|nw&D$SgowFxYLH5VW#2Cr|ia){dA`-Irej>jq0=`$81dJ&$<1&(~+ERR;PpNbn?*oiJa9|r<3Y*_R#s6oLp9?v+8sqr=D3Kqxo*%?GwUl zL057jTb(Yd(~X<~#&JI9&)+g{S-sA`kki*V?q_J-RHr*R&ihkmK7n`dn2+UxpYuJ) zd1Aiq9^OUnZ=e29EeZ2as&Oi^HLF5#*j{88>8SJ6+D>?RgI9PRtc<2lzC&-%5 z5Y-vxp);Hu`)3A*sm=%wosr}?=d*kMj8L6X9y+7R$!v8-sm>S=ow4L>vpQo`XPk%5 zcyg*(opGu&!9!;vIreMi1l5`3p);AB*w%a|sm>H~W|-%o^T^d>-(ULq{u?>YI-5Vx zV~XlbB`2P7oY(Fm84rf=J@Mbkao(T0ovErbjU00$OYbk5FL~cW&u2P0sjdB*raCjo zaXyQ4?%C#)*b`TGW|EWK>da7`S>zN6A|n7e~?quVE25Ur8=|8G2djO zty`QNVZKEXyfcTK2G)FLtIk}E<-8WeX#FUQ?#v^{`Q04%o@B1-%qM5MX*iE$yLN~0 zvxR?>Q^T6ieAQV%P8rVlHv0aYujjLn9OqukU7rQ2vxuB>X3o(~E8X+*{dH$CIU~%m zaNk!hvO0XPwS=5hreTKjHF>(Ju6CA^lUAIy7YA&x9lnoRMvn9PZie$!`j{t#_nyni zv7cYdtod+f1vzI;B(~{n7}n#B-mjJ9R56R=zP_)pI=o+hk>l>yy@@66YG)NW?tU$A zk)WOJ@O)O2^V-bES?6~L(>2!fSwqet?H zeASuHlmDunwH==Gc5(`e6L_O_2*-2>IWLUk?)!FYEbiv%(>Q$^i6eVA34d*;<)>@ zS9SK2<9v-YQgvG068CIEb|}Ve$_chP8;(zXY1WZW>3#*t^CC5yH9{--mWpcsy>liuCJ*4|wKB_v$$#Fi@avrtc zbv8fN7QAzU9Q(O*Ty;*8<6Kvq$Jp#?#^}x|avqqkyT|LK>YOIW`OL<7g#7PCo*~CR zpHHjKSr46as&iI#&U@%wASbbP9-dd7iyk_c$Z?+R?)qF*oy#6NS5)V+>Rk2ExkgSM zb2_;5xvDzXJ#=oU&UMwf>7jFr9Q)dPQ*~~8=-g4A+p2TdL+76A+*O_X9yOVxSpq4S2E3f6pHtIk^wop-A9R(0Nc=zJijkTsw8s`HkeO&i{V>3Z*&$5rY4WP@soSXmUna$16~E z!g%O}Rh=-Z6V5{?JURKS`GixQ2p&2SRVRY#MDoyyOwJ)|K9N)>iib{A)rq1y(L8jb zlViWfkES{?Jal5JP7KwF<)IUsoXFPt#8RC&9y)PVCywgG^U#S;j{W?Kr#cBdbP}pg z0@X=Gj`<*l9<}dm&8_cO6O&`!wB!CKk?JHN$9;bh^1n%%lsncsCsCbb9y-ZYCzMJap2lPCC`eK#n=s&TY0Y z>f~3Qf*v}B$gw|TET}q#J#>nwPGQyg(L<*wIrjUnA62KAhfZ)l{dd>Qwj8sX@*Z>vg%h>eTemsiitKRj0OxP91XW&sS@!PF)Y3 zda6@bb?STQG$6NHiI=HzTN=Z5)% z@A1RTA$*SAf}CCEw#a;gksi&hPER5&$w_Vg?A&i$==3m~c3P2>SDYh>|DK?o*5u?9 z=c;d1BirH6@Y|5%-us38_hz&uXP@b~pXs%+=FFXTS>xS8|;9!tQ79T~w!=hxz|&ooS!3lxN7)WJ)a)rv@lL&<2aA* zs?(F4%I0g%oqnT29n80tg5UG^BFDal_f(zU1=)Zk18p3rw=*yy-jb`=}XQ~ z*{{cCy64fIe&h_X_N%Yz^e4ypJu;*D`gN%?Mt25~bIW|)Jzo7)XCOI!q_bvAjqbWL zh@5N2anHknsxz3JJ!Ue_=R|RD{oX)#ekCWm`DUE^{qDh5hp#O|$Vn^nsr*}msoELp z=bT(obiQ_mk&{X~&flwVJA6$TPEJMRIFB=>nwlSH2!3viAjf|F8g9**J0r9Yb!vqx+8INRyI+e|<=>&5v3{M*59?Id z&N#o$Nb`4MXlJ}%Cvl;&AJECMot#fFezV&1AC|H&UA8Co3Fd`nWj23$T8o@q|VU0soLt!OmdDH$9=xf zP@P%i1R2M9eE7BbOx^i|oO|Z$?tEsc&TMi9IuY~8-18F#bm&N9_msyfTbDa_OHl`ECzcimY*&J*Lf=f-l?SxL?z^Ta7`ya6whnvW!d zUswMkr-Atnh2uDnl~#w3=_+#EG9%~Ibb*%GnwKW!Z z){^7A4m!s)!_e@@b!QzpJ+01K)mcwYW|`0DX0?{<&IUD~^{TUx9QPcnU#Y?Z-PuG= zc56NxRcA9f&M`Hb@9DQ^6Ln_`IreAfn^os;a-7$8=MnPHFl;5qyolo5_*-?hkyGC| z&KVIm(xu6IKHJH$@5i>O&JGWqovO1#b#{^CK6i$FN^nlkXE!CN!>>+2c*{4AB zznxdAyw;t)*kg70oZm-Idh=E1cs;B)cCPL4xw@a65$5a88g2{Rkz9{; zfE*{{K2P^sV{zvoIqrLh+!Oy8qdSMl`C!IzI|o(gFgb~g<2+LLIyyjij*#QLHo2X{ zs&kZ_n#OVVeb=Q$NpK3JWbs&m^z=MFg|to^#JI(I#E?vdmCZo9iacU9-U zht5Cb9JBW8zUutTV;RSJ%}v*5MJxUMdO(iz^mXU+uj)J`$GwgX-I?N+?mQyLzK%Uq zoyX)j$JDv!uaYEd2>0qw$gzKy{ITjhCFis}Ph;N5YHmx-4)|Svo{=-cTnyd&zo%A* zUkjd-Q&KwjD-JGWJA4g)LC#TeUbkA2O^@}GoX}yvkM%;0^-7IpJ3Q8F4`aO{XP0>q zbocAE8tbhZ%XWCIcjP$l&CTKPWqYu#wBE1xE z?9cr^sLn@nQgX(3wPxM;y7P%U#&KWcKB~@V51lXM*!N?fRp+aR&Np)G`>3y~<2O}U?i9(M3GaivuCn}F6=ktqu<16U%IT|_kJzG@O ziB67t&-UBpgmZK!208XRM^~MgGo;tvdB#9|?N?gW zNl(sF(=eK^%k99pdOjJ*X<>EJt4>C8+~>ua>veAFP9}1mm~q_w%BVV-$>}TenRqtx zW!=d_j`O*wv+vF$v+86er@i@_vtPX$Gzj7SayD}8_j*}XCp$T>Ov9OTfi+t~xc|vP zj{Uh!cGbyA&O7N8uh!q(G6X+=eo&p9s*}q@CpS4GtmBnSb@GtoUZb)+`#GJSPhN6X zTb(?rlh1EH^QMM1w`IZiD?d5AtWG}FDd3?~ken%2r-14dBFEjY3=w*S@Of`xa-8>i z?s-^9b&B}SXY8wf=39Kh_v=S;oZlODJ4IBds9&d3o-k!}rx-cMtoamGo#K9-kmpl^ zoPk!Sxav6noK%94}Znok+kDMya;`=>_py}FgMh3=FmC%n}ur#cnL86)p627jHH zN_Q%flh`=P%~;N(g6dQvr?1(mXy)t1_va1a`%RTGmh*R*IFCwJrzeprO2r;h5>^U$eJPLS29r#cNh zbQ+Rlzn(TwokryR?{#iWPHJmDjZ~+JhfY&+?EBs(s?*Fvr#U;;e443F3lE)^U8$d`I#L1{-?9*bn(#XN{(~??7p6MQJrocI=`s-bW@$~9y&e9sbI~gyXy4x z(CI~v{e17KI=ww~`jGR+non=l>Fc4>kDMV^r?2Yt_s|(YPCl#CUv&nO(@I`bIF|Z?saU6>P+>}`JJ3u)_kU_&NL65>Ezh27t>T{hKJ5fa&B4s zHA8h~dFcG1I!CA`9DAMTs?K~5oj=L3uRrru zXMu;#LUQbNUZ6UQJaiVT&LY)WLQYO|OwDQL`?M{V`M<%}c_}&OgDRZQOH^l>hxsg5 zon@-C!b4{zIritzD^%w%aw3>rNnqxkZAXIwdcRhYv%>7S`?=>|s)tytJI%`#DJvo((V?Jo{wLji1neJ>L$GOjpY#isYUUfE-v(bFb zd=tkvaPg!&y0eKK=kq%E^URH^v)OMxZ&yd`sykcMd^W4j-yS+!Rp)Qj*+xzev+w2) zzA2q&t<>|`PR>2!xSvaGQ=J{;m=DG1D24oQlI|qO{kaRH`gW+!E^@Lojt0v&qHUw>g-dU10FgD$+7qAfa)Cb&^b&_Xmh;W z^*N+EM?7?nlJmh@pChVs%tPlmIrisB$5iKpht5fI?DOY@>YVb>IZaMcYkf|s&KVD# zv*f(6*5{1sob%8*PtHJVKIc^Df``sUa-8d!d)zOm&Lt0>%j6ug_Un@BT=CGkN{)TM zaYc2mdFWgxXO}gfYpQd@L+2(r`>f6l)wxBEd;PxsK6O5Q{kcuf3afKVb?%Vk{(NSp zRnAX|1;38nRr9%{I`_yaC|j4@-f@cV+$ZOraop?kJ=OWgL+4-B`A2mgc<4MN$9Wxe z=kq{y9(m|ICdc_4!0kLzohKeTPswqvKW^uV>OAw%c}|XV9s`Ji6=RG;;t@U}QIv+fA{v*d;=MSp$(L?7G zIc2Q*d{mv!9y(vhiEed1tIk&sop0nku-5sj>Nr2@78vlqpYH+WIIlbI@$yAdKmS8c z9pjj9yZ9;;zG%L!68!oTNKR_AU+(KgDAfr~j`MS0PAA=^5ylSQ2}6!^yxdM`)d@?E z^Lr)EOw;GP{*&&6Bgg)GWy7jYc)w1~txZenP6X8nuR0OQ2{LmrQ}P{n-s^_$L?Xw2 z-xN`GB9oKYG@Qqb^3LBY9ejPFkmFpR-SvsAI#J2_-|HNW9DALks!nur&X}>Bb#64N zZx%hD800uV+w7h{(N!lVIqgitS)aG@HvXwQvBcsWy4DGVW{Mugdb&f|)8#7_I6IXTO`*jKy{usi15|HD3KhEvMSDl39^f3G6 ztaH7?2{Y^YBqArW>A1%|q3R^|&`F{?iB%^lInm8roJYvNmz|89edg=#e3Gh8au1yp zsyUq6)1*GlhKCUWfegBevPGdabi^V{-BAzW9pkYle;X4T0` zPLSz1j~}y@HfL?{=T|mz?DsoaRVTZLP7ZSH^C!FNBqW)qL`(PCgHv{N&izjeM$8 zfE;&yA`j0O!q0&eB&VCTUj5l95bA6@z2vz==qc+ z=bY6EQk_!dxIe#IEn34tx>K4Q`}tK$b;^)4(v0Pt#e>5%?w~tm$@y%pPZ`xIM^16m zaP}+mm#rq}6z$*1D$gB5-SsJ_Iu$&0Dw1Qba|P9@L{2d?mNScxuVaIQ^P~2rs~vCom%8L>*MTKxwzRM z=>4iq&KM)O^Qomeb^JQdn#3xqJ9WuPZguLYPCatm^EuMpB*S&5J~{UBs;4>)$O)4D z`X|>ob4mt34;zwWb{PBBKy?~<=rktBeqC;)I!(y=-|O6z9OpjMUFRmM)68!^RWc?s z9|Z;9ujb^~*ZF3u)532)_p?7YKe89R(~=zf^|XcRwDRkOeB4{B`Lt4U8#-&#svn{?_yPnH>9lQ)kub;$c2r$+4ebT~w!=ht4nL*vG4z>U1Y(t$7YQ zp95se+Q+-Bc5u2O zlXa&LId6<(K6s%=Z>!UjNMCYNnLnFp`$n3d7u8Nba?*;EG)lL;+Uf7-IDf~B?eNcV z4j{+5XLH61pYmKjJ?DYs*vE8$HD~S&BBz#VIFE<_HVonKg&3?lgH-2N51k?8bheJ^ zuc|ZDLuVK{K~`s|>I^66f3MF7a_rac;i@x|oPlO-ocHEgb1&Yh*Lf5<_O*AU>Wn7m zfB)>t7;<)*aopE}(W*1nLuVX0_BCp(>Wuf$nLy4yYd+&uXCgW7d+N^Ndxh{EoJ5X& z9!^x9$sRgW$oXu|XR_-2=Ako{9Q(EVH`V!_oVI2x=Nc8%xUl(HF8DQS8aej)^SkOy zC&&3dzwa_oDXnX2;#Ia%de z_i)suj=D3OoLpwdBlB>+KdcU4>*kQ-UdR49k~gb%=K48HYo=~!JAD0_N6rwl#Fm2i)m+( zpX2;JUD{dfH$&?&p-Jt21T}4g@v&fF) zJpNLh)#OCyFaJNEL#`pmzV@zGowelTFdgTZhWvM)uOr94k6Nob>&cm88qU7={`{!C z-meYhB)9f!z3OZv$Gl+EeEJ2Xd8s>_$a!Hp?mBN&oz3Jpe?OA5U;P_5Y^^(6$g!_c zn^os;a@?Oo8=m=52%rCK<@uO#-1+>iI@`!`-p4uD%wFjWmeTXtPL6%8+on1@$Z@ZA zKQuouNq2UVbIqF14%OL3j=8y{$LVDsKj_YGa#mQKU8=LkuTyo+N%LcE!O!QtLR0!AAv*g(GIiot~Jao>JW8d4HQ=JQb zou|t-nU4U2@7G0g?9Z_;sLmz7&V?q0&0z`NxlE3|K9^MIieG18%_b{#=PEg6taZMk zI@kO<9T(RO;a>eZInMXr-Q#slb#C}|LY~h}a_oDp8>(~5L+3U*FRbU+E!DY0&UE9L zTOePI5Bo#7{@f)em$hGaROcQ!=9m3w-*5C=R7|h)eRAy2pYN&8KOQ>&l4HN_{G&P# zJaitCV_$zBsLmq~oyX+ZzvuEub)Iyyuex80KC$+UcUscC>`xY4B-fu+BF`<%bwj*^Zk4%a@_lkfU1e}=}sUy_WedE)d@{baoMkszfTl~9CM?F z>vL$;2}{m!v+vG(hesV&nZpwNbtfD-LE;$A7uM?Zbbv2BIeE>WoORB=CT4ou;eC%l zP83HskC6Xv%!uUJ`yRm>i#w6XxosNG>c)FN=2t!E$mFCqyW-xnMpB(9Q;VwGVo~ zQj=r97Nk<0H00bd5$8GoEX~po?jh5X^TasrXBTNyCmlJBO~W~+)AklWsOOWOoHEvV zm`-&vc<5v#$Nmf?gX&}=r=OXNvp#9JRSn^1doq(##hOnh)yYE6|GtK2RrATBI@!oE zzmP-MpAo-ZKcv?uJ2}~{`D9a_93DD3$+7QAa;VM^9y+EJ@=gUh@D)T3^`#$IID%Vava@@~gm$yjJPCNPioStu@ zAJR?%KPObdE@!k;(9aoAwBml-;n%oAr-+BnkL1|L zw20~y_0TCsPG9RBE2=uhJ#b*iaO4ZrzpFVJ?1?$jh_wbiMiI<@>d!=r6^ zuRFELDQb0UsZJfgPRR4AOOAaHP)Bv@kz-C8dTd%IZpnk6KMlz-HwSoLG*F#JD?4&mztMX*gGst= zWOp?NinA+{Oa2tH2jqa;!B!82?1K|oPS#LxatJv9r?x{Wr$33m{5rcWO#tcgd=@-uJv=rhq^JyC}QJt%1ojbJb#2v@sb7P3L z6_X{398=_;B7yFO4CRzUCI`49OoxgoJS$d(D@9-c}xxMu8(tP<~+7xeZ~vf z0dhjfERcjzc&qZ^-A-d6*D#-HLMpw;t2NXQ#FzX?eVa!*KRkj(O} z*YqGgg`@;IEMz10B42dgi@z}Xcp+=yJQb1_`_)QruUcWhjtI$zPE2|0)&|ZfA*|=1~mi^DrSLK`sd?0g^5@Zxss1eUOl_AXkKh2FVeJw+at3Tu5|~TSB6O zJ zl_?=_RSBe*kiS6=3Mqq5tVF!k9XQQ}WP-C!$N)I*4^i#LQLZUJR<##ov5=S`p_1@e z(Lovt*$J{tNEw`UpM;bGsb+rn%6aSnnI$ASNMJH{GU0q~E+h-cULmJ3`j5$ZtFs_m zh1>)wl!BexAlrr9!ZR*qN_J}FT>VMNaX2G{Ou$i|C*&xc-9q}Hb5jVv=6+JIxz4y> zEGLw&am8j`y8YCnInT&BdmC3bH$Xpi=-^L!w(8RHJ8}M$DHZ?!&i@TXf2^cPM@8l+ za#E2Gilj=d#!{q@BJ+jZ4RD{8r-j@H37sZ*Ig27S73r?XOhtAGIUB|u{k)JVIHpg8 zgvGO|cv_xM7o3Mb3Hg4HG)<8sLSACO=!YFmYBTOza-`$(Um(qdIGm5*Fhy1>azl~i z>ABoIw7aJ*g?ulMP-M9xClz_CNP!GI*7x#IAqyk8qc2p>Lq)1(4BpwP$Y(_gW(vMl zKSjcG702{kO^2H=ezvQBRxnHArV1l2>FOJ z^OBGvaFXQbPH~J?O~@sX5khW&Y!`ALN6=S*JM}@z326v2MMwb7v13AF!KqS^J8?kH z32BVIh**f7Na*}2qzTq}Z((*GVa~UTFsTJ+bx|foag@n zAx#2oGRzR?h2pz&z!2y2xbNhP(+Ojf0&UH|XBXZkzZ=pyf=yzz^ZANKwaF+$UPQA= zllJEC;*4RF`G!>SBexC79@BQ>cQEsbWs~ZLREcAgafW1%Ym>8vOze)jw9HahS3v_WHKLQzmTDrPw`Rg)Iw*6kPmQ*jAo}O$POV_ zFvCV;*!c^NZ!D9zAoGMYz z#Lfp?pPk<^aUO->beqhiD8_mr3weeaUJ`N&&d)P=s~YIs5K;w4u>4GRo?xq8LUMuR zo+YDWtg}M8fK2&=onat(XEPa$bv`L1AxPyp?BoP_CL|9!jpwp+1mv`k%UH2a^VsG4!}D~EkSHLBg`~z<#TIjCBFH8oQ!v91LS}>HUBX)p!dC5tRKQrX zh5Q5OypXIQk(Y8OHb^lcO)yq}Ass;O2pI^Hei?WAhIg;(&4t7USt!H@a$U%qaPC$K zmUAaFoccm?VytmO_JQmXayEk73AKVdKY)}Kk{e`#ke8v|tquzL7o(S1$(@HFhlMo7 zoZky^K5J?lkSI~`?=L%rG=FiY3XV<>A*XQuTry;}-#tm_Rp$Q3kCZTkAMTu6D{@T8 zWSpxngtWp~u~&0tG@KuWj0EW*WDNFniICwS_l4|1x#k)!|BlW|Aw$gigrYA-Udzr< zbbb`_D@c1Gzo9c*$S641g|xxw5!P{eFvcn;q#MX2Ap=2<3+WCLXFYd%f;1G;7i6)J zNrCQuh26kgIcEazX?#VpD3Vu^5{fhyQWoc7Umx1b|PTks|sm{`E(RA6I)Fe(gDsEA!h^JRZaIdm(PPt z6Vd=(j)FC;3Sai@el!4Z5Vq$S2mu#3m~5l#Ui zMR82)3z>njx(JyDGEzu+tj|Uv6+!L_`4eM(60!*-_ii6O`eO7dLfWI#SqPsAeL_4F zCWtcytFcYUL5y`#$QX?EN=Pq^6>|^IhsPQe;#fJw*^2UDAp=pKFXShb5Bimdg;;(f z&N`IS@8$XQM7gAp)+o0Y!gC%SVtJ%ETTosiq(90Bgmgstp!pc!nELPA{Z4 z$|Z!fMY*{Up7U=ZmVXszXBhYSHAl!0l(!1$it;rfT%HkP`HMKa!?@*i`*|;hp!sR(3mivmc9pxE92BW-L$j>NW^(!w3vHVq>y(s56z;hmfa(N*=P;MuL=e#t; z@Cbp^~>!a(@Kz_V z7e$5Cz%d;pq!Y+}A%j6Oo#ak`>}e|@aY2>{2?cUX$h&avY9v0zovd&g3CV@ACJH$K zvR}w~9QQD%xsw;9f{^?mlZCv-Id(+IV~k$@40oP_924>j&XzAidVrKX%Ug8?=_jNK z*7+|XT~Lm8j%@;gYI^W2$>Jxy_eNp74Q^@Y>}nIPmVI){Y} z2l*!C24>j#BA4gENpp$GV2plG$ViZ8m)ZFjWWJC}IHs3{>;j2;g|~`m2nSJEO2Z8HG$h`41rv;k*~}9;DWN?(75EAmk88?0?v4 zj2ZS6vL35(OUR2b?)4|{zr58r%;z^DV?f>t$%t~12fWoE=+qO^3G?YLWIV2QH-t=X3LUR4V&jb{9j6 zrnX6f7p9!XCUp!M=tsJ}0dMXh<#7-hRGE;mEJOGf=-2Z zOzPlxm3z-57OpniJ}`NKl|S(xlTvUlePmJwV_o^gWGd!UDse#UcZ%p2y zbIcb&s0hfJ04A-_DILh9H^{BfOvZuK56ff>&Zwi|n4|`|7M@7~km?bc6hWtEBqrxT z>Nvl$Y#z6IHQ3dr5qOq$_%#g4;dka-RU z(mdJ=Nrz|U2_YqM+{?%1t%A_mDP%3yxobRj{)H3X`K4j=SPf^6kh^eVCtxQDj_E2P z=dr4t60*|}GyGRbHmt^#MC|nUxzEa>&aWq$M-J@8Dj`WRpQ}PfgM>-KTa7|zkdS6@ zJ_>n)W7;_>Z*>AryktybV80Fsd5WV`GdVly;9L^&2%Y*V*vScULr61>J~1Ubok7~9 zVlo6Id1@vDv8u;~#0ROLhMnvn(b6(GgwA*&7qJ(`(y>zz4tKI zEWDKuB)5=TAd`grjLuCVjc|rX&&r+8*s83MYj6e%X@qq?AY>BOCv-OML>qfBnOT~`kd_ifX-nd z$*~$8eqd)TNR(Vmdi&fXSXaovK$on_&CWiM@_CqS1UVw4N`Sjno_y@|4CRt(LNa2j zY6aM7hOI6aWU|QTZk4$ZlNVUk0YW;%IWA-t${7puR`F3@Dp)ez^etKp zD9mtE72fIzNcyTw>R~Yt)vy{&!o%4vWH3mmn(Q0^NiC!r zIs=4s!RT{@B*az`YjLL~wrVIOr_VitONFEbX;7QD>WTGvCFBm)uv8s(;$igFLc*hy zzb-qKLG}uX3Nor5JL53tCiR(w!sy3^G{RnNX~51fjGm?;lj7)PY{aAowu;@D$q+b? zg?XvU-soV?AMbnv;WdQwP6kc2JS`4{A>koX|0Td{KrVLW$63K@s1)(IgO;l%F2TTO#g zUC4cq$wGQ#FK!B{gV)M|J-PD^&PgFzv0vMIv6C4qRH9V2@R6JFFO~p8Y_hS zg==rje(dDN9mvl@Hp96rBqR1Kdw<^QJj&yQM8IBD9KcRY%%|@_CU@ZMAH?J{NW@>6 zr1ZJZ)3rmH+{RexhA~--8IBW@AA9jk$lq{k59h72VlP$+xruVr5$r_5d}<1bjlGy5 z+X5|RR)s-t+Tk03{cqyu>=BnCRUNAp(6;DjE-BmtZt zAxYqb8Ou%*IHiT8ffI2YJMrLD5RwW`obl`gg47d|9IJ6!NEA5HC-7GLeC|=MB_uXh zY@m?oAd7_L1oH$&VR!na!OJxE>x7 z@&V7>M041=1ZTdGA28>Dx$L}w(^Ni)@2N|1d*@_`gzz|I+T<_Nio_g{$?vQrsko{*{_=@zjQ4&;%L2p}sLvlA0z1ukLo z5Kem`@!^~mau80TrM%S@oIeYM6vOM_ejzzr*Mu7`4MwY_ZK^%K?Vw0fqlOzB-i(IV-;`p80AqyVt_0X zG6wSrSj}5Sfs;hY3^*Hw+=r8D4R2KtGwdtmE9P@f$TG}1$6DShJDkBn?xK7}NGn{8 zC#>VG;^OEeUeDwboK`}@qP#-LKXBr1;H_4nQ%J}uI75W=23aKJGtQq!LfYW`$+3~k z=djg&A)zpzYMa>U3+J(r{Mh$lo7sts8Rp-@q#efU_BWFOa5isaG8Uxc4ki~c)+QnS zL9Pl3jTxrc$y;^6Se=Bl#thf*V&@&6aZh(MIfXM}#U3VCuwu>kGI@j1mkGHC5^5hi z?La~wU~&v(n~+x^Ne;5J-se6~4++_i)o61_I&d}|X0j3Fp^)R)D&`S(PQdv^$PtV_ zSI7Z4Z-umgbLJ>_I)EHH#$+JYx!G|hZQ!gw!Q>U3b0?Xkgj3)Qlf#&E&a+I`;dt#m z$0Q++a>w&b!sA&v`~s5-=)}Fmq#4GFcA3crI75Xj##mLZuoD$yZ4&YsXG^84>=Z&L z{xv3FeC`n}CuAB%|M@yQjX-waWby{j1`bJ0-Y*pAsaxFhT+aSkTybAfvgs? z2;{wxhaly`a_4WX;VdC{;Cv9W8BW!3ywyK&RtlK{@?OYekV@fY&gje$vIWi^A-k~h z$s_PqOF^0m*^bTzA+zB`iO5?G2WcW?56DiJVD!L9ywwemnnGrS%oQ>dsy@!1&xk~{&EAsBswki;Ol60#E-WT}u`ASDyAlMm$$LXLr?P0Y?!oMXF$lmKaw zgq@Ng;gd3Xk29gMkWU!BXfk%bfTT#yWG>dHk&v0_3>NYZ$8?d9X>d*pnT<}U6kJ|} zv8oGM0kTxcYLIV2W`Wd9$(@zh(-lIV z{RfgM4U@kE-MgKsLgJXw1DzK{-)SLhjl<+@THdN8)~9DWCW)}sS|NX7tF`IbDTb|T zW?(WGcWA4HL^fOT*D7Y@|IUXqD-)9$aQ0?qG9LTYBP)}I*y@syOCVjcvC|EmNZFa> z#S9k-iHLIb9PBhhXGBgWS3p(@>5lSgAz9#j60#Xi;#}O>12RrXT9E0v+1Z2{z7>)b zXJ+0!>_o;hZitW|?8QwXr9hVC<*n9$oDlNX=N^mCLN>u^k&m}ZhWQ*6vJ|9Wes-c` zhS!CB#o61c06S$+PFRr1QIIi0HlSRi5Ic!c-YO&__Pugpb}FG0rwEe*AmfC54s`eQ zqL5iQUip6HtscR7F60GBrK0S702y73Nh7Rb>>wt&u^0J-RE4uoNOh20C3&l_n9oWf zp)gkZQtU*>RxgDV#a2B_vlA0enlemsf&45aHP$D2S$5KbED#bATV*N7PEt61ge1bA z<}A-nJdkP?m~0DlSALF=6CnQzDU7WqSLCfe;97UfCD_yYmDq^}GEm40ln)9Sgz{S< z9YLa2=FSa_l}<=PoMS;kE}5$z+f9Tdg)>0NK%Db)g!IH~!B!y$L9Pm^jPid%9$-H4 zs_>ZA;S>K6J{oZIpac<%WUK26^`<}BZm;b?7ZG~jUer*;~6{Eiq!lTa% zarErfxI7ADRTlCLV|5f#6Xgj){>3?VT*y<9&q96$Nm`x9S{CRYol-&`!dW6@FXj`y z25)r~qc;~)4*PyXNJ?CP(%0mzcB9iv$WD-BLKa}FRJCL*I4gxLffKqmJIg?73Aqh2 zPe^y1V{e2k2Ps~MJ87}i7$LiGCKRvB&R(p~2O&G)tfm(g>1))6>rVX zbFA3!LSBPB5t0MvbBQ**)qiki2sr@qQpgdIGHrRQNa)NF5(VU)kZ2$k+woRSab;U7 zWFwAgg!b%ogHvBfU!1)wg(Sy(J`353)u`5iJ6k}O37L<3BQnYUVmt-1(lg6H6kF65#>)2>k{5e%T}Wn(p6eIh>MA;ugj@!BCFCJU^-S zgPoihtErHG(b*zoL7@B0tZkaJP}d_PJ({ybjQB86p{uj_J@$`m|@cXyj2%$ z)j>!yY_&+pWo(sc0B@B7P7@(l;an9m5_66;khiLfvBD2xG6Gu-5^^QbJzhx$vy%s8 zz^_b-pgejAlhRm?{6m?n#8~@<#KzeYe;7NVa6S(ak_Y97Lgt}UeI#%70oRuKqnJcQ z`O#=5FR@>v#xbdg8Kxf3WE-4ALUv;GP7~O<3KDH1lhYtug+v8uGKrmP7%S{#Chsv; zE+J zgp>VGcEVs)t1V)(9Pu@CR^dO74iwr4k7OX z-IWjX7jHEQE8j%OYHT%8$U2la2{{BO?ket#L8q9I7I3<*X2*xscq60> zbCkEbj4SpnA+Ir3z%h2ZVXVqRQemtSLZ$?|XK$$EywwD(MnfUH;FLVU&IRo0fm2N8 z!%20TNdk=CQAlWzHA2dxQ~3;U6@bzA3z>>?k+bZ)##SAKq=qx~JUcZpR`d%@s)CFX zk{q2MFS2tPYuHi9NsxI$u7eyCQV^ZQm$;J$q=S$hf$lnQ6%reJn&vWZ)e5A8kl7#y zg?vN#gAnJFH{L$;75?vcQdvkiGv`2`^B8oUofaVRZ!&2O(nm-;knXqG=?HRDNN12@ zx7q0mQsNGi?jU9FG3f#Gxq0p8 z&R;@aft-5C&RdW)kC+TItIAtV5po+djPsbCiRRhF&R8M&u+QZf{i6(H+`tOMB|$j(NP z<)N8u2k97w$u5vS;h5|N=@*{KA&^QDm>dOpBjg0gqKNFA1{o2FN&GFQ7KO=2kAzeQ=^Bfj z+902W)CUP4hn=P%O@y=rSuf;gko<9ZtG*!5g!~GUDIPn+K-LQx336Y^43K2;d8?Bk zErpx|*(D@}xszc#Yy$poT96h(GJ@O z3+V-tFL9vnav1ZkUgDb2%@F6&7tVSi13S*jSwHM>h+Vc8wj#TNLY}J$pd{K!`l0G%aBxNzrOEjsuY2~_MvRD)DY+9 z;kz>~WuR|jfK5IcQZ$@R%A^YPO$cohUurW$zpW}5;`}SN-^+g((%i3eC{3Vmjo+Lf zrR6;xiT%oxF3@+*&lzfn^B4!`lp!+>{61E~^nt$oex!*Z{rpyAks;yzoHvH-@!N|5 z8F;Mk<*SB#@!Kj*#z5aazt!k$$T~l=(U8V|Bp_3uFRLFZXNdEdiv9Xi$R8k|h0F!1 zm6^9%2(n1X3Xn8e*jWS8SI8!i6GFCvB+trQ?E~p5YdbAcur(1Idt!w`z&IukJ#I zfCS}cXEexZA@f0|=V50R$TuPTKsx4Sr;7PRi2t-sNMG}L9g~dt_`h>NJ`4F1WS4V# zn@4!_j*S15rU3spFGwdLO+c0iS&B}_g1pr-ker2>EC+dS$cymy^D9*mc1qwX`awt? zkSjm3(;TE`aVFzIb_$salBEPYe}J49@+ZjPAa<65+!L}Aq+CgM{sCDgB(MyVyrEp@wvdXrml#!+omwD;$}w3Ca!1G-keB7z*#Hu%B9o$c z&D|~}2;`?q?34jXRhdZ*kQGAefaI>iP6Lo)RhcvcnJ%Oi$WtNxK;~EDtj#8-9m8&!g(%a2uR+V+!+DVL&!LgHHIYddnIaJ zE6`WZJe$5>=a(6hH^3(E4CxWZCZ%f!`bPS7y3`5u9WxX7-q~hIJ3kVtZlG_I-&kb~ zael$!`&MTSiQ_j`(t5mKo4;Q(g=_=aBji3vmioNaGmyzbmg4I7TF5GpIt_TMR=8>{ z6fy=RXG3=W1o03C%)!fIR;G99F3U*4(;_Vk&Mx*&7=1^R~g?fW%DoX14$d))qk zzR2P2bFA0^c6MSarmV{G8BZ*{OyZt~BI`pL1y(JKsOKeXPhgMWT!k zzEvVcvMTbUBGvs!>I#*9pwr3xpIZ@qzOX)<+)-qPIT!t%wvmIAU6F#5J&O3$R{N9_ zN;wByCyzVlqh@9O=X2Uzk^RX@MJBm>k=yOGcE`%)l78lD;@_DZ5S*NGot!yjvx6?d zsy;Vg@$W2G^I7_TY@G-E&sE#Ue=;&kLROSSSy|c1D5RlONHqRMB}tN7lB6O;rS`X^qBFKs#;%#ZQqjyx8HKufiM_UzzL1KxQ`q(A64_pwS>P&{xk?_{ z7D^R#nG>WU-N{Unic%9?C9lkeW;(mfcWx9bT&9WiP*=;iJZbA_WwFeUR+dOb`}~|# zG;^t2&s$x8+PciEZd`q2o9amSNk;7zrJ|YYQqfFhsc5ExtIT(!nBnZRC8I5$CF9bu z-|EKI(6!TDGD^*Inc1$=Le{g6qLr&$=qks_c2`$Esc1WSq@tPpu2MuQN)?t$Z8>gK zk`<+yGhL;OP?{<0DkEK`wNz@?Nr#fpWPY^Ig`BIpQ0lteRTjER8`sXalF{v6O)^?} zP%`TJK(?}0mPrxbI!%OKC^X7h}X#TV(lUE7z`-R$U*N zA6^Dh&%&B{QAQzM&h(a1XypaTD0PdQ zvC@)Js*hXG|G4$D&1G83jA=V}Ny}>QDHWah?ov^zvU4qv+0e|bj=Ii`{Z!YV(yr25 z)~fb!v9!b2Ez`rS|0VW@;eTXSX@&mR9pPHESorVwj(oWC)YYPtZow|%(n=NApUQ4l z$GXZyH$Tt0$}6t&nyYkj_QTF~fmC#Uib_TIf>Kh^t<%G~2D!@9t}@!qPi3iS%LS#P z{W&b_Su0Il<^t#X+Eunmr4emcdVMe3UF}_5<$71iC-e>Qpr`$c9n9ja=NR$ zEThotma{9dKSi@LTv=Kys}iYGvMRjYYnAwKWps9h?Ypxp z+)j~_SyZf)%BsXZm;P_1d3J@j*Wm05x05N8Me!(hWLNl3d~n&U47k#1hu+y0 z&a62jE5lf)nXrK}#oYSoA^Wms4!9%02A8?PwbN17p|;aY_6uFT3tVQQRCGVR zRw%7J;_O$sBimk=X)F~zTWt`R_HcxAm6wWU@<~NU(ZtQq8dtg09b4ME%8{_E;M0}d zE|b?)O1hcvEhE)FA9elN>M}RGcDlJrXE$Rd-OQijD&w8~C8_8(9qRhi(Y15XWtvMx zx9Mi-p;l(NObMyz{9Gsf(Moq$8R#mbUF8W`8#=DDq@pe7mx`{RgK~Vni`cRdhNj5TwW7Ot}2ZHvFfuCsB-RgQOa zc%7S{AEbxc&ZjPOiL|35y+|rbUFNpVNp3$q(N!us*Hf-C#`SQrRCMb+>j#&q zAr(C)6qkyQD@R;f>FFwiU1gwb3+-WXsc1VHspzckbNhRBm#O1iA4)~n*q3hooa-v} zTxE}2V?T;r`~0(1w9hw5pEc7?W?pA?4Xlk>?s{W~tI$#F8Mnr6m3H(F`Z1RoDHWah zQPM-L43~)hvD#RsASaD&1D{vj8YFsMO&uNp4x1bKQrt4 zSu+!aQda>t(jH=0YLcURN=BAg=1X~^sFkl=Huw{i!eYReAxyqlk^T&2CMoaHLdxXR^X*HQfBGPR_l*L9z} zQM7m4w3n+q>?-sLB;E^j>?Ne4{W(r5x|I*eI@C%Hm#OPqA4^4#y1dab39Ti=gNDmTG2lLC>dUv1CPsO zE|;yWS36n}d1k3(v~seW`R>v~&Fpj3dY8G*wbNe5PFElFsx5PiG?a?&aqC?> zom_wVxyqxiGECNwZm-j%qT95-t2B1)d@dE;7T?IW&~aVlDi^!TA-6aED|T%smr&a0 zkK8;zD)XbGpl_GO>oHkBKTAei{#z>A@`tXnLMpl~Zj>JC=i=tdY-r27T@Rno{={{V z$&8YUwo_GF)=@m~+UX_z;hBFSH1;GP52@8NN5^-ZKW~H z=bA1q?av0GbfonqqjR`KRQlHk(;OvU_d4QX-Q(UE&8~b7DvyODL%jCFrI>|gMRZNZ~ ze3>vk^m4b%7{8aaN-N@7f_SEsch`-M_EhpnY$b+vIl9Op(c#Z}t7b`H39 zn!3uZuAKp{@`S65lJ%oor=nDJwKR5>rmmg!Qqd#ZPMKAmjjLUygR2~qRi{)TmpRc@ zZkDaAqd42`ajj%+=(t)6rLNg-R)2JvS&~uLE|)3iw%}K84zG7Ttm(!+D6Bx-D{IRr zw9ltWf3)(Lt32x3x!GlYlP#$2eC{$Q%eZ*onH^gFUA6`9J8QKP{*Zb5sd!wCzrT^a z?!(%N3cP;m$WiMJsc4^1b*{dy<&3NBaFx4VJ2$xf;;2x1 zRj}1%ZjgD_9zN~nhrZdu- zWj1uAk4r^IF+jGLR_F^kcue@vRpz@&J9(z3uKwY=AKR%a6rbaogulO8D83@>M=Ldi(zEcdQqdV3<=UYS z(_nwDb1e^X^V3Ay;rYoO{=TnJJU{id61tGt@=Tnce!2cTKT7E+dPtwOQo>c1xynz{ zAEhpGnX}zUH%gy%e#W@WuWqk=-EFVEZaqIO?P$x7x*q=KDxIZ2I*NX7<|_-uGhZeA z{oO+G%-^h)Faen@W8=)v>+iB`D^y6jRvd$`f@e*CzT&1IHd4#m1u9iaSo^pp!x~IfS=v1cMggDQ4 z=KAk;S4vy%pg)>X`IUUA;9NW>#O4+-$@`N12wa*(}X1rw7{=KUVaHHrXS1C%-55VELYRI^BtyXt4 zHd!*-P9CY~C^pJ$oGYOj?o3oquKo0h&;pmK>c;hzwj3stUj^JKib{V(o}nK!#F5eu z$zi2JXpJj6ik<3`hGx4SHgcm_=rT3jD7I_MX%HDYZeo9myHU^&2x8_s$>?gKe?Sy7 z#iWP2P0w)c(2wyUb+)UV?AoE!Zi_47ZcAp>>ZKsY@H1n)f_~>_6_+RvURoovw`q6gPic-%Dr7f40iq1v_ zSE=DDm8GKXtdntRrIyR|lG)G<{TL|sS>AlhERl-#r@XYInK6>lc0QDf-XX4&iq3o$ z*`_)ht=)ccx_h3mQSKSlb+H@iDKhh#Iaey$=Rai>YHuVxRH~;tLLPMc^4BhNuIuwY zmuVsuou9AW*gHE{e^(jhDv!$i=sZ`DijK6QRCJ{4q#b=KvfbSaU*RfOy2|mcQovP; zic9T3yG$vU`NU;5%lgrFTF9AE-+iks+mt`gMrW$+yxnPU9GtE|cIHY~Ao_W>mq=(w)e_VgwaDA@jGP_*Mx4L6^3E6Yi z{v*TbIT(jML>J=Dqpw^y!_m7p`W+0EEKv1>cuxk~s+ zrr1NxeC8^9U1hGURi!?X+0a@2%w^`g%4(r>6ra1yr()NA=VO=YCK>Hd_=%|hjBBu) z=k6}E*JUcW%u4CAy687F@rtO7+sgUfUU`{o=Vs@c=Q2~BtFUt&b*rU`Yv-7o!*E0X zpHbZ4D*N30F5LN+&n2vXareWBSE0yFR3+ zj+{Pl^MPcP`a&w&@(V&~;`j>*RAQ zfxc0R>#(&@IvWEdqt6Org=XWLiSb!M{B3!92TG=1DJf(sIs2`l1+;gQkt$V9C_S!r zc9}CJqf}dIS?A|P8HHv#xpvyRcG|nl#V&J&tAu}|GmcBQUkC&oL;9ncU*wu!?E_>zYo@qctJh1*^(aJlv}HpkeqM_P zwk`ZWRpP!()3FOGw87|oNX_s*I2Xo z>e7tSZ}uovmyT?ALWS&Gph6@41}d}^e#)-Ylf|Je>m1T&g?To#vNe!g5h!!J%RJ|< z%uf*cI{7Dsc3)lNJYn0*Hs$2mOqn<9+9@VJ?=tRY2_+^ zyOnT6?ApU)t}?~V&m`B*0okTH_VF$=S=!NWcDyDo{&keF>@(A~BFCRuT9GsUb5dzY z(?OqddMk`H9wlgxs~`4vs>GuNQRhL07UBV@P&=c;F+nLlZqPeIR-p|>KYwi%I!as^ zMrjo~O1uIUYI$0Ah0hl=ph8nmpSsd^&L!8wP@!qPGR&W4$VKnuXr(TVls*S)6>4V* zRHz;Ly*FtU`U>oL#9$+k&14Yo-xZWafFE8_~?uOEY?9^{1XwjV(8j9_lf(plg{vD}ya>mWsCA&$WDx%Per2Wv+6TtGpvU zRM%;;cWdPYIcjO8r5iu4^Yf0&obLKVdmU0mTo3TT|* zqLR_ILB}d=xuTn&vs@)i^M9z*T;^0a(vq&S*p1?Ispt{le4(hT{5mMdC>_N?H`0?_ zWxBMi$Eb&-Wo_q9SJ~!VWn_)nu|)hk4x0U*Ot#%T;o_Ni!u1rdEB?-Fs*C0pixtrskEcxS}7G>WAC|n{?pC#Us{o-YrDPRkYsdae(WlrN=2H<6q0t7I?+{5l8PP= zZ<6DfR_4n};LiilZ1k0kRtCB?Utap7TX2z^jdxw;C82ZoSi?MyYl#(@(~(+r5&^nB0D4zL6ek zJAE8=x}!D;r7fS~GFv30EsvBw>pOkdic2#i9JN_yOf&UerKz;6N70L9HuNYOE1~&J zhe`3B$BU2q?@?4Kb-m?!Slq3#>F9M=_YTuSM<7E8-odEfPUi>s`aif+NeQqgvv!y*85o6(f<78Dph3^N_{37txT1QwnP6MIBwh@=URNpXT>Yh@qoC*J?9yY)P^oASFOhYqm3H!cRV$as zb6Tx@=Q0E2EUcM-%%(ZS7pU7165 z4RSMIM>4!t+lCpj+d2=sOhcFH>oO}`<}|73eZdAt^^uH@{g4}b zHKDYf^-@u)w`-@0%N%x@XIm0RS`lFeDq#dm^b`|P8u9p2WQoTAY==xmEoiEzBJ?;#5ZrUWrdF{_% z;?hcA=Q`85#<)??J4`r=rIOJ(+~7v~l4R6gTI^cM<0_ZBc5;bbj~nA$%YQklqGWXa zbP$(Tu9S-Qr@U)tlbgdYq@ru=8>#4QoG0yQg-*UWhfAb~+D>s9srKhqSDEZ8|8mPU z`ggmj?@i&4;dMt?8@Y3Z<-o7U*DgL~N5Qbf`Bi&L(1sUhGBtV|)sw04A9Q1wnRn{< zUmDdVQJl$SyY2+n=0DS0OuH7ik^0oPs5H8G!zYfGXy1FqiS z>R5krQ=<+fiZkH48(j5Tc75UY6U0^I#W;tY0aqVzb=uVbuuybop23!Nd zRj25qrx-OWQJewS1J3oaj%#b8I0LRh&Sg}Am*X6A23!w<>#O5xOkI^<)?vLwaRyw2 z!8K~mt9Kf8Yoa&9?gRAC74YlhL~#aOkAkby zU!x`%^?RZ?1FpxwMdz<)a*3ay9)ZGrzu06lb_n`1RZw`m};oT7^nGtz=)JP2`p-9WEU+Cv7cK>DhWSrIB`5sJ+o!nMuy%^R8SR{bb@-xE)I6=jnYs?IPZVdM&o4or*M|Me zs9}lX47gqf7o98LQrC<`aRywkfUCvfi=Q!STcS7vTlrO{WX&JGyvwai^;~%(eb^+t zIKzKx6)LoqtuiQ7Xe-A`_Evt4Tc$Lv`2#g4t+JNiO)YZ25Zxow2DM&cJNE#ng(> zVz^1qd{XqGo-6fSxinFn34a@&4b99=|2$8|D(ymr=Eo`%LS?j8vgc<8%+Ijgb$XcV zyFk&4GcZ3hVSe&ftF_9gsE@M#TjtD3og3OT%fLR62%#CEd&=`XBt&vP8=6!z_kcmG_K3kb$OyV1Fps3qH!7Z zc%nE1uJ@cPkKTif)%X#%$qSX92F3x~!1-R%Q#Hgl; z;taS}f{WICXB}79L~#aOpMq<8>lLRNH9k?C0oN*U(KXU{dW`xkQJewSXW*)K#ni8j z`X^DG0oQ79(HySOan*b$&LL;O^*Okv7cIZZsHYRf8E}08E?VitA<23%h`*AjK*T^M`F8E|cIE~73>6lcJ-5nOZ)@SM7yP84Ur z^)QkP84UrwGCW!zhl(YL~#aO+rdTq z@~e70Je(-bfNKZ1=y+&Uv-je-I0LSo&eccnCLT!?XTbF>xad6~qgEt}GvL|9|gyx4FWLGvN9TT&1r+XSGq6CW#m#7g#+`48-(y9m0AEd0k8`^>c`Q1s#qjO#}j*VW}_>^G{-(nxWJ z`N^R&CH%?Te**g(b6Xa(cK%N7a0a%;&rDSgEz90yryYz&?s8g0j7iYlrn^N92AW@tF*Y8SEyYp^2bg#K~B#JZO`hzLi zf^_FwT~|x1<*|pH0oR}4DmvlFGNZ;OiZie>cQZvZPfxn)9r?4FQQswsGtk35Owk&Z z=VM0I|1kEDGvM0G)QUjSRzCTbj>jtNxJD$3GvRN;x6ea`3|6W8QQQlx@>rh)dNh?wxIdheN)AyMxFmjv~vcizqQW+;=RDAXA;F380kT!s9o9%j5?4g&VcKX zQr^{RMeHGGz;#$DO3+?lu0@IB47iRkC0mf5hE>qjQf_5*aRyvR!Nt!!mFkx$&cMn% z#uUxG>;>lfJW-s19{$4=tx?$vjH>c!>>+1>`d2BMLppcQ*Xy4liQ){5D{~@!IwGLF zGMA6~=UStVB#JZO%Ec7*kY2woeg4P{J)hpaD)x{w;5rUm^bF0YHHqR3xN?K5(6BYj zXY06Xd=_1t0aqSyef)UiJw}a56lcJdmnm5rPY#-S%~^V_btqAs0are7-8HxBE~5sl zjy>cItc~ND%3d2r9ZnQypojUH%3d2rJ@9#SaRyukn92#;iq74~de_c>t6tY-zK9fO z!rzA9FAEi#1FL)!D($qAeLO6v{ULIA+aD@g%a^Z-EprBDtPoSO>fV3*y%UXEm?+M` zC{AE%MDS3%ZRWjRxS_7PN^7HwGt`yLy`e&*u*#>QLZgV4>`|P^EmNB2=j&@HZL*e6 zUl&{E42+^MjAH81>|50#wo-`;)_x0Ah1t(_uYMmuLqoU8Yt*-i;taTof{XU|SvvDKt&ctA47iGci}rV;mL!TZ;3^I- zy0@CGt}I#HYfS4rnGs_KT=L(YJ!lykLG z*RVu!23)0`%cvcR;taUTfQvq#aG|;yZHztS47g4OSDn^3uQO_NqBsMtvf!e%ahyJr z`5{r90arP2-SgA(VMew2I`)t=;5rRl9ZH|tI-k0xC5kiPIvrf4&V9M8Q3W?e7iYj# z9$d5z^QfywqBsMtGr&d9A&pv@D9(VZ0=Q^g`PFsy=Ga5dfa^?f(YTBnnkdeIt0K7e zuRQc;5p{i=D9(VZ61Z-cCQJewS+2Eo%H0rpm(Zv~X zRaT0QhieDq|FM!jugggkXTViODQfqjhUIn}^--cY1FottuBxM+DtM;4s(cfB$Qf`| z16QZ1-EJ^yRH8TouIfz5x#^54$G0t`bNEN1I0LS8z%_FG*w>62zAg5UGjN8j!BqA& ziBYF-j}&L1hc%hXK7SdtFj1TVs+Jp9Ssho09nr-Z7*}mKE~EA(iZd{-I&NG>J-su! zI0HRA*Nw}lbH9xgXMn2f#x+vMwLVdtfpOJ?acv%Y-ql9ku`9Yb1LLai#${Bl?;^z+ z=wSmlE~6$UiZehpREqX5+Lv4FxX%4Px;O*lY6Rn=_Y{o!GEtlXS7UI|HUDRN4bbO@ z=;92x&I4E84%P26>XSrq23$?RHEB!c!$P_*pZa5TaRyxHgX`Z)1FkTtZ=yH@uBJ@M zzWm_f8UIw*Is7b9oB>xeaNV=4!S_a;`BUs6XJBnKXG-?vRgdp#WYm3$;tce#1ykAk zvQg_2#TlS3aO1jM$5rj;*h9|1xGr?#GU}m3aR$cK(v8cg4T<6m^stp1mr*r-i9O^D zP_31sHBZlS7wWi%C5kgJu8Uw?nf5<@V${||aRyv%oU4tl!`i>b9&!d;7dw|xLlear zn8Qn$$_Znl`<-XXzcS}r9oN^1;!OD4Os39n@lMJrkB17~NySR`oz$f;iq|?XDs3(Q z5-56c21aoijAHZ5FKQWe!S9jc49r+taM2x5HJz~uiQ){nE(ceOAsreRwI@-W0oN7a zqIb<6)ER5@N9-YIz|{_1m9|~Kz^LaF#Tjs2$&?%==n2&adS|yMQJewSRp8n)cW_Ok zF8?$3kTb9nu4YP(5)E>W)HCXhL~#as*q*8Eql8ffc1IUyfa>7JwOq&5JyD#2adm`o zZ6EUQ5u=tRiZd{-YhYaT{Mo2e_rxA@271`ZjmxNe6U7;DUCUHXSlP5UU2#M6-;3(F zzDyKn!rx{x4fn>q$tsgWh4!Xc$=;hfYk!EOYjtZm-(PVQoPinZ!jwE+>9_o^wnp8a zD9*sxuLBp|#}(00tV$GTz;!*i=swP<8v9}oIRma6oa=pcjZPG2z;z?IUYb^8vr*qC ziZkHK0T=DLZSs|Nb!Q=|ph`TsJc%doF#txV5@|Nfc+m)fHUy z9+^=WABa8V46M3tOv#?ReCOLI8#OgioPi$R!c_L2YgGQfql+^@-KrF=LwXN-iH_^` zL~#bjbsLQ9itrw^QHv7A8E|z67p=qc>N??I>>+2sbvw8g?aN)#sQVMe8F2Lg7oFd$ z>9ggZ6U7;D-2tv$SKoHAQCA*{J>(3ydOFuR>RON}&VcJq=Q67N;ppNFxO#z$-dkU* z``7S9aRyv>fs5W-H>%K)=;92xdOO#b>UttkoB`L}&Sg~5qtV3~aP@Jn?dlqvD9(WE z9_KRZv}4i58F2M=uAS<7Em52S*Z-W$sG9#o7iYlL4_vekcj&uI?<9&d;JO!Fv<{7` z_-}M^23-BYMb8GW(Px9B6U7;D-3KoE?vhd8CyF!R8UQXD*J>SCBmOLNCc_zU-4Cu7 zYu?*!ROdu-23!N3YqZ`o4oDPd!1VyQ=rg58O-dAJz%>Y5bT7P0$F(R?oB`K^;G)kP z8?`G@oB`KhaMAXbu3Yw0oO35v&cJzj1XFTeru%NA`X-7q(8G~TWuKRg8k;E20QIO+Gy=M|8KY}{exf)7 z<9ZCnwdm2)=NR=>qBsMtQB0Kz9=ghXVcqnL^Xc8zUy0%jxE=@By~9WTYt)swx?)~_>r=RnbmGceL;m7-alaqDmUjT)aQ&cLjWXNpz} zz33RefIlBY|LdznaRyuyz(t?oG^#NDC`)*823!-JYlga7CyF!Rn&ezYJ(wuYz!rRt zsZ!yiBjIOKG81np|V3O*<0{= zwige7M|{F5$%)80lmfX~l_W7c}abL~(}s?V&;|H1;st{sOln$9ejE zl(kc%P_%Ofw$2o$=x9SnfZRj(S2OC7L~#bF7q!pSDLMiewJuSdfswwX6s^_iJ)1mW zRE-m24><#_mzDCak%{6AxL#3;T=e-UbA6vE&VcJxrewdM?>D`wN1Ns+#vXD8T(5zP zK1XC!_e61q1`v+IVGEXzpW~pug-?!B=8Wu0)53W&&9#!fm8Y_+W%%u~9|Kuw;ZgcY zu=E-qD0*=QdiXk1i^G0F|NhliTdLIJApghjiQ)`bTAY+8(@yPF8XqdOvSQ0r*&ix& zKD5eZMe<~*S#O`lcKUU!7sB6vc7E^s!hfaLtU%F=Gq5e*U`nNV1^L~#aOZ-J}QzG+*Gs#rAkkTc+#0WP{P z=&jc+A0&!1;F<|8y5BMCuS9VMT(iJM$N3j@Tovh`{|ztBfa`5=(enhOauUTEaLoo6 zU8~=s+iOyyI0LRZ;G%1Fqt+#gGvJyFF1p7rt>emHJdTSq;F-Bs!#veLU?fot~Zu4MQ6`&Xys3O8`UdOoPi#Gz!V+X zh@xLYFlt(&I0LR_Osxn6ovHs?Ke=U39oKh>;!OD4@XNWS;3XM10!7pBV9Is{1rwOJ1tV2Vg9O6p}oP|KZ|1z ze@EBGbaiU&j7jZq2DZ*>rl>_)^YwanFKpD-L~#bF&$Z71;%#cwY4p$RgcoOEq+ci{ z+tjE#6U7;Dtx<|vrS)UfqC{~9Tx*pg7hRQA!op~jwxCb^rCkMD(l&yQ=&Kn zt}nqwpVT$#)kJXyTfg! zj}yfiaBT$F^1a_4Gb(?D=;93QgI_a6D@u;oMqQjJ&Oi@0F-0>kM{J`WPZVdswVA0A zfugOvpxlui*Xfns+C*_C{B8Jb^qFz*wo02&p}jj+viIdJ+_KCVeP-KQ9u_EiaRz2= zD^qfO9=kB-HlyB86la+KJ5+MQpS=AWHyhSYor=-U8JNRuN>TH4ZF8z#1KgP?&Oo2H zL!arh%|^{h6lcJ-!?{YU>tLcd1FoIm`hD5+Rg7w0DUORX;QAI^^hu1~`d-QKL~#aO zyTC=C#4u`iqBsMt@4!VzfW^9^I-M1J$Qf{b4=(yFx>1u8#Tjt@z?7^p`hBFo^a!vk zQJewSkKnqg%V%dBRqO27L(agS@)J|ESJIyHNlop1rMF^i!JI})u^S3 z;tWu~tBcN+ZI-S)YSc+pVh=e3GyexuvUiXC?17t%>X|6cfa_1D=*UJd`X#z9x_Vb6 ziZkHa4X(>;u54k{X;otnIRmae;G!cy72PZENfc+mwHI7HcIF#p)Z9dI23&tJC99Xt zDV6o^W?!N>1Fn7GqE9Isb#JveF3!N}-Om)QUOA^2btqAsfgT=Uie_HUDMk&d9$lOP z>Tfr$u{y5Y=R}G#Fs_4cTt*E^6lY*uhupY~%2Ok{I0HRA?8ar(@I-M2s3S_zI;6YN ziF$2Qux4~|2F7(1#x<|@$+L{=m?+MG>zH#rr>++h#Tjt@<6K7lo+!?M>tE-3MO_VR z#c^>4T$#e*NT}aTq;VPbaH2Q^u3SvXzD#rYnz~jciZkFk&bf>_rFQHgXTX&kT=a_* zopfKmAyJ$GR~~TDQxT&kC5kiP$_p-fr|+XJlp23)1VMb{gL^@;RjiQ){n%7BZ071^k@iQ){n zP6bzwGEFBn)p3<*7{|pKaFqquEvNN4->9yM;taUTF(ubF^hwJLbREu26lcJ78n{-M z%hSlH-x9?cxCS_#DY>?xPg)vPxltS!XP}4WnaaMlG3vHNaR#U}l%i_@ddKH$9oK7# z;tY(d0*s43X=&7ViQ){n&UCJA>N=xw92aN6RnfVOx*<`VfjO+iR8ANZUC;ly`>fZ$ z*E^|+iQ-K7+wi_#sL-~xO1<;qbAVXMehzRJjDo&9X)O;86umeDqc|Hz(ZBz(%Z*x- zD9*r)RR$NmZ`DOdQKm_BaRyvfz(wy{8PzjUoB>x==ek~9?>+2s zRo%IA>C>m2L~#aO=YXs5pFezP)RaVV23$43MOSFWbX?mL#Tjtb1Q)$;Wz-!_p8qJBX?|C76Iq&NevX5gYLPopMW z9x2X%t2wyns_A)k)o2$f&VZ{0xPE%}?bb#;bY-MC1Fj34tD>%rFRzLeXTWtKxLU5g zuai;L+eeBsaJFj6R8BZ^(AnzPiMhJu*Jq4FIz);y;cvt5Id+U^E31_26wg+%l6|&n z1*2$P_P`m|a?fjH%bbBxw1!cP9X%$GQS&=TiZd`{7lDiRrun+U|Lqbf&VZ{8xaeuK zQ4_C^6lY+@E@o;)m<@WDYQ)S>d#=`_U)>uc#TlBg%=n!6zMfT%-W2E1DmQhF@65(Z z_8eZqF1hyGdFeHGnQKM2=;92F>rxok`sP*k8CCVxNO6XH_}Fdnomp?cjN6gxI(lc; z+WE74Y=<+jE!r|A@63MnWbW^by0%B8I0Mw>+Gpw%y|ZT2dv`>NGceLCl%gle^tmsi zYTOwq&VZ|(j*DD$ZPP=~m6Ll#iZkH45?pj`V^rhbk>U)vu5zxP>iX*LNO1;SS38$c zci$5!&VZ}Eb5&B;3IB@}XTa6Lxs3X`U!*t#u8z)iwz@v*A1Tg&>l)`W>ZJjZ;taSt zIafJ#4H_6J&VcJ$=Q676ph$5BT%Dckbah=cI8vMeR~P3ps`|r`;taU1bFP>5oKj>+ zq&Nev>%m388DiADL~#aOH-L+-qh{&2t{oa(oB`L3;G*x081>MwNO1;SInFg#U9S(1 z6lcJ76S(N#YB6ffh)8h;j>b1Ll@s=3x!YQ+uD?e{iZisUXDU7xkG)p8YE(Rb#Y*a8at#Tl5fTfjwI=TCi}u<^-AaRywsf{U(l zjavLvq&Nev+nj5Ux~4o6Db9eayK@;ebZn$J1FqYhYm2&We>PH_0ap*_GV1OLk>U)v z?r^Se)YX4dq&Nevp3Y^|;O8U78F1YRF1iCcfv*N=jSYVxQk(%-FL2RwW1|jDi4^V``*01FpW{qW3+Gy5;pqaRyxf0~ej~o9I>Uq-l}j47mD%i;jLq zt$ZU=oB`LpO3`ZASf}a1^L1PY-i#Dyz|~(Vx{{$^9XINp>5<|LxbAb~YO3S$&o=;91bR_2RPX%hZ>D!q@! zmCVfeEt}W1QY%ziLZ)Y^(DkNeriM!YGh!RDo$o`X6HrxV<;ir1%59-C8Y;6xh2CSI zruL(u@*HF?dOO-J^Hiw34w+4%QZZDlhvjF7t8VDwO`);|DldmhkqX(P_%T#wLCa^& ziJ!x_mb-<@>(I`tq4FV6zlF+HsGKu5Po{XT?3uqmRH)B3t`(tD9x^57MZ0CXhDvqF zyd5gEO)c|JsL;Q@Zd>`n`7vXo7#=F+VeFrW%4I;E`c9rqH>lhkD$hY>eyFqodw~UE zejsywsI-U7tWcQ?nLO{t&qvuPt_hW;kXalm|Z@-h=L-QSP%W8?ZY zRK^2!_tLOdkIUYs$3mqRR37;t?3GX{u`EUxrE%$h^HOt_17h6Q6~ap@+RzhkXaA_MeAO>O!UN z7vVccP&s2w7#G-2TpRW{$XpXDw7tweB~;o&=EqQ>?PZyB)`j^wGkXsEg-SP|J_?nd zP$~RnXa_3YLgh2);k%(S8Zrl|0`~gr!?rjx+kS7TOaW?1sLX=Ozo9}uvuRtW?N^}! z_KBhL9b|r@3S{bS2>UW*`iBagL2P~&hD!Nxs0}gx|4ioJP|1YwPS4?BlSn~K>zd?8eFfchm=xf#f97A`P4@GOsMRD%*Igp4(w&N zhvRC+Y;`Ijs2qgK-cTtL9!A<~X%$3trZ)Stp;8tyJ41z5i;cbN&Tz(u%srt( ztHm;lLZv!ndVU+Xsb$LU3R?$8@kOXK0cyl|VP!()yzld5u7k>vP@!uH8^yvO!Wx6j zp-`dg7PB|_F;C_vu=fv@{y@DSDubbt`6SUGTTFi=Gp8Oeh%BB zQuY??9x8Kznj0z~LgjF%{05b_zl8Y#`wO9R5Hfp1r5$8i{u+*%6|(K4LnWtDcIBH; znF5vSzlAeV_{gfQpMIf2GjHR1KU5k5Rp|F{-3!$9p;8Mf(?X>?RF3;2Y-Q+k=TPYj znK_}-9WsUf4BHDb-9n`=WEO|YD9HR9DzpV{6fMH8GzK#LLWSnpGH-;+EEws|P3W z&|k9^xa9LW+aL;@SJuyQFhEha;HE zpD6n7q)~;AMv61w8p+g%K+zS|j~^GD-BF*4EJ_q-!rx{xcN_~x?C{@KDf>@+CLAl- zEBsMzS!RsBiDNB)5h!|b24?Irrsz2W^@qNRW7GrxMv60pXR3xLi83tN=fNMOs=yRt=-J6b#oB`JaaM5$@y*e)WE(B-5H4$9&Y}qLJE;?txH3?iahmFlJX(cS4OikSNZ8>s6-Y7*3z3ZK7xM>BXaqGvIm+TyqQE`)w*l#Tgja z8!#^VJgrexOGSz^;Cd5W^nS{v`mXENL~#aO)4@gWI~cXSbaZhBTyHs7TXpR$6DiJs zYld?f_1&qF;taTEI@ghOCJDdWL$}Z2#TjtT0vCNc)To=wMT#@vdK+AHrI%aB^-ZEU z1FqTNqN`=2%AFovoB`Jy=gO&i!pGvJ!*Tt+>2Mx;0cu6fQ?Qm-nvREQL3z%}2w zj5_(OrO1yA#D3aJ>sIx(hg}``4WnV-Gn4u7%*D zy8xqpN)%_nwFq3aHn!@xZmtwvoB`KjaM4|WQ74}jDb9fFJ*MP%NOu7@>-Ks-QJewS z5^&L7fKkoPjxNr?@$h}7Kind|Rby zwY>b@|5(Ysl4KpaIFFt?Um#82r#5pba4h;pMi_M-Dy;#+L7W6xK=yYOX~VPQJewS z=gwu+lseJH8E}08F1lJCsz;lv&W#jjz_kWkbjM-T#zb)jTx*@Hqi(M*b)$%m2L97g?;D9(WED{#>qHdoi(^`nb3;MxE# z8kbRr62%#CZ3GuxnQzvk&EN*n#TjsY4Xy@vURBzt$_*pM8E|a^7k!g-hK}otL~#aO zo56KS^G6yQbzh_C;taU9I9CaERcIV3&VXwxxaeD}My*N|XTbFhxaeD}*XjOs&w0_s z8E|a_7yVwhQH|*hj_~3PxVAf2cXegXj}&LXwF6xAJq4rYCWxV>f23$XZi|%}ly6?j1;taTc1{dA==2ustmXYEN zxPAc_-T4|dCQ+OL*RSBB^YTIc1XtNs(Zv~X{RS@jhOAN362%#C{SGerhHMiZSH0HJ z#Tjt@0j`1PU)bKLUlYX{aQ(@YTqDsPeRExhQ!a`w&VXw-xab?QMpbMRDbB!^-X5mp z3YPBZjhdP$&Oi_MGL?NDWz;zrM;B*+`b#M~uFxI*1|8R&L~#bjwGYNccl1Uzyd=6f z1LNAyR8H{Fdja&V)m?grxHwUq34fc(^tm)%!CIxtW$_9&RU)v4uOlFOBi+h6_Mf$xDGqlwd(pX zQJewS5$7`M;dar*8E_qSu7C5yY$ns}%J?VFfa@5z=(&VZuOx~y;Q9w#bd`IOjw}CF z(Zv~X{R=L7E@4#et0To3aAi&kcTBlxzn~YnPFB~kL~#aOxtNmoQ^;l1!S>O`8E_rv zTqo-N;NA|A;taTQJC{)nI!1~!;K~CoI$L$qE1CNf#Tjtr1s6S+FzSy)aRyxZz(q&( zKlCV(b4~0aXTWtlxahfrQEL*#8F1wX7j3UKI<97&qKh-&DgZ8eE@9M;L~#aO1(}kg zIz5+YuiIWgpdz+L0*E zfU7W5Bf@&8X9eHg_{yMmdi8!ym+0aQ?Gl;KLxtwRDy_qZWZG#Z`$&5dw=6S8&kC&N zrS#F7@Zt>2SP`aVZ=z=fM%BAMQk-FaTBziNKgIrJ+fR10VeOQ^A-2OAn8Tt2;taTogNyFb>Z)sWqBsMtQ@};nkVc)D6J4AER|#;@ z{Y5w3D@P`ZGvF!-F1qG7s^(46#Tjswa;`q=TAwJ+fUC4~8TI_l(Zv~Xl>rxB^AA(k zEnOqU8E~D7u5it7RFQ6x;taUTf{Tu#59>AL!bEWfT;;$;+smlVw?r3bz;zn9=$gNb zx(+3ZGvGQMTy)KE)I+yM7iYj#9$a*7Tt{8`Z;KRXz;y<==AQA$M@G#|6lcIyfhjpA z(6w=W-CiBKM;B+nbtbyPyIn?oo+!@1k*y+AaulU&W20K%9$lP)9#`zUJE2Z`bg zP-iJc#|^qR{#3`+q(^jd2F7(ZjEk;~jhde*&cL`TGnErOa&5dxuTpB>5nY_2u4FcZ z3eC4w2K9_b>{!V@W>$ew(6zC(T=~w}GG|~ERbdo#ZEV!)L~#aYtQxrJ+PImH;_hD2 z#Tjr_2Nzu%8&&SENO1;S=Qvjjb*)GgXTVj%xs2-DJGwXnuA0uZU$2c%zdKT#0aq<> z(Y3Kr4WBTR|9a-QT;kS3ol9(XTa4ET=b;WsNIR; z47eJBi>{4-(4$1fesNr!0as&i(Y3Kr9TUYFaGeJ(S{tA0xP~W+GvI0hF1j{0>X$@u z23+SeB}a9-Hoio+*Jby{ad8G*O~FOi#zsAoD9*squNhNvRHtiWquxyvXP}48naVz@ z8?`r4oB>x0rdEWbCyn9hc~!Suq~ogAKaPtt;cvsYBtwNhJ!h5up+d7_l`i+?Vi^CLoKO8Aqvw}knj-`22p zeoyUi24=MtQ>8+Sbnig_>VZ+6?vHlP0M%Oi93cK}4Wr&m6lY+h7b!(9`fUxPY7UGp z&cGII!_Y9@%&VcI*aM3%VMjcEPXTa5tDcKhEd&?E|Sl8si zI4;hB>q>CZ?=2g(I8mH|6?GL;mBakWCx?wXZ*X*R26}ikQ`y_gsP_`Z8KBy`aXqEu zYW7fcaR$cK!HvtP_Y%b!7*|I(E~6Sh99^7&9$w?dWz@n%aR#VPO3^x`bJG|-4>o=z zx;O*lx)#Po?_3-8NTN6cuFlRiSzW6V#TjsQaW12Z4v9VF47jcX7v0f6q}!`gqBsMt z>%m3uTpKkeQJewS4bF9$?q6RdiZkH45nOcLVpPGQaa^1MR}Q%7smKpHu9k`747hFr z7d;g*>XAfo23$9Ti{`L~x;{u0XTa4JTr@7DGQ;AyI0LS3;G%bvi>s??qBsMtTfjx{ z@EUc0qBsMtTfs$7U~+UFzLO}jwXsT;Og#NJ=N8Gc$^K+fa`YWGHQCF zI0LR8;G!omgVj}XM09ZmTz8-=Jb^LlmPBy|Ts^@>*XjfH9%Oc+I0LRb!9`DCjM|?l z&VZ{IxabK?adkBq8OOyLaNPwidIDqALy6)HxO#(&-gV8W>(fMW23&W8i+-2bsDh8i z9&!d;eZWQ60Q-)Q*>Js*D9(WE9&pjSu0}ncD9(VZFSzK*Qgt2InnZC1T>k?X{VuUl zWgd%tWM^g2F5jzshr@ECre-I zbCQ*b;tX{qQ|$40wQQ9eLZw~!n^?)dT7CdVK~I*f6u8oP}47eV4E~CzRGWL)&;CjTl z_T-7#Or~$5I0LRB;G!o>M$JhSXTUWSTy%x@qwcwT62%#C4FeZFSu$$C=-5}zfNQvO z{j9Fzo{AJ_z%|0TjCw3loB`KJaM7;@-K0mqVoygGXTbF+xae1djJh~coB`Kk;G!#; zb|=X88k8u`fNK=E=t{<@uM@=?a6Jw#I$N#DC$8Gh#6NKcTu*?DK7(h}#6)q1_s`?T zn>yjGB=s&cJL;P)eTm7_~c5oB`KFrM#>5 zvvD>!1FlI*k&Dii=DH_QoB`K!N_p4ZL~#aO&nx9!2NJ~@a7|XqyBds-8B&VcJhrN}jT(ERQ;hes2|8F0O%ly{v!A&!eP;Cfjp?|Lv%oB`J> zOwr1v7hU&`)V*?PqBsMtSHabw(ZX#;?N1bE!1Wqaas>Ea(~;+m(z8sJiE&(<0oPP; zZ612w)kfW!D9*qU;B}_t2rzU(v!9Kcl_<_Y52rCjvq4X>=y|VE2NJ~@px$6gp7)ko zxc>^HE|?U@#TlU9)N#?w({CvoH6l@*f!Ua@6m4btS4xfAk|@rA>n*0TXMVWO{5j9X z9&!d;Gr+avu`Q<>)hAJ$ftjDlRQAjpH9t|Dfga9cDtqRQI+iHT0QELgGV_OG+7->)>P_RG=58K9Oh)jW7;Z#kva=ieDMIZ>Pe>V2l@9Wi>*(Z;CbUx_Zxz^pD+ ziq<^6yJXY@iQ){nKG1Q|)ffF+nMUnR6lcJ-3|#cB4Wn*=#ZIlxdo zvTaWkXTbF#xJr(1*2AbWuSFMU!1a-HJ)*AmiQ){nJ_gsW`<|(4)QCiJ23((ji=K;) z)qQzUqBsMt72vw-)A|<~bs$lk0oO`!(OvDMI<8t%<7{vST%UrgTJ1#xjk-5coB`J= zaM9gO_k7Wi$-I{+&VcJPaM8bEZPcDbaRywg!9~a3hxHg$@%3os47ffA7d_K6>dr)Q z23%h_S6_9_OB83owFX>^w*B4LsJzo+4><#_waztIUF{Ra8E~xw7mdrPXA{L4aDC}q z{nWK7QJewSdT`OWjH>cR92aN6^_6q=S6BZ;aRyu)oXe;ciQ){nHagcpb(MTG_K-8+ z`r5gSx;;^x0oNvQ(VBlccQj-&3lqf|aBT)xiy1GrH|mV(k>?D!wt%a`^pPDe)~80p z6U7;DZ3Wli&M#eP)bvDg23+5O>;C849(`MnQEL*#8E|a_*T;XI)xoI!iQ){nwu6i2 zu%8|`O1~9ngEQdT0WKPsQRgR$GvM0kT#F0I_R2{VXTbF>xab&V)bK=c23)(GtLq8k zdMid5aRyx9gNu&y3k!(rpG0v6Tt9$|o?aT&Y)0fc1Fj#zMceBuT^kQ3 ziZkH)30$SGKWDX3&nJpA;QHCQ#_8Hvm?+MG>lbj*@5USTb)q-}u3y1L=adU|T>BHn z8F2juF8cSfjjB5{&LL;O^*d8?*G8WoyFka)CsCXM*B{{Ow5k7Lqh3uEXW)ANPo^q| zYbd&cUG?~`Mn-K+6lb7^yP2Y^FQVv|-;6q8RvZ^+fZ7A&s&&hIj}O&3Y>_C=z_|9p zxC$>SoZF}YiQ){5>n|M_U5oy7%cP!0%}x|&pojaQhi}YnSkiQJewSA*IMg zPqEC^e0CfcXTWusDY-JIBS1G@y~7j58E_o|7kxUysHKVG47iRmC3^}zTYgAa)WJk? z23*I$RliE*H;rmECyt9Vu%iB9iuM#)QAXXDD9%6+|AijXiZW_(qBsK-ee5oGuJXY} zE9#Z0xds`PcW&$6XMifeRQWJ2*~&&uN)%^+DyZWMAkVx}I}*hin2kb8$yPS1&O32j zoB`JfN_p2KiQ){nPE<;^vbnxW6lcIym?=4K(0h?xk54N-bJl|RC(eNDByiDtkw$e( z6lZ7vnHNK)8@wO4_}#qxJHYmy-G+sEGhbJVpOB^gXEJ{+3h&tgRpPz8nSoF_cS+vN z7^qzTe%{RDaC(ftP@Vmxs|bvgj*t^mr zGgl{yGvF!)F1q$Js?Z0qhnxXdad6SNdgzhAO`#<2X zhfgMoGvF!-F8cS0j9Q*3&VZ{FxM*BGbzBD$#Tjsw1{aOXsMD6kIphqu$}mMwLFvk> z-^@w#zswc0nM|uhaRywcg6r{-%kMX8QKC2luCmVcmAYyzk5Y8;s1NDD{;`M`HA8TP}Ox@0pgiA>Yqe$24>?NrDW!fx_U(%7iYj#Ln-f? znkdeItEN)q>ee~`ljb^_D9(VZmQvo;Ze{EtXTVikDRR;GCd~C}qBsMtI!w`?LN7Y@ zHqI9fnarU?aRyxHf{XqYPNT|w8hOrutFBVyy0p+E4F>7zZJsF3fUBNTG%k9+YSg`n z;taUz!?@^k!u|AF(_4w+47eJAYxCMK#~8IUQJjH2r6E%zLhtB0^QuXo<_u6*@l|m) zI1~OhlNlB&0mxY8P^h%iO7@jZBW{_FNVLD7HsYLR)^e}UV#}O?Q8Z>szNOXl<@S?} z+LkEJgf=sowyWcNcCkO%_Vd(EGvA`#n9pUASD!ES&Ru6Qde@ z9x2WMb-wnQTBY~VjGC4x&cH~UDn&h{_tA{1{6%ze23*aQ@~+ns#TjrlSBhNp2?29e zS`%HI0apv9yzAveaRyu$DCJ!h)bfCOoB`Km&Slh#iQ){n z+JcL=*G1~ul_<`D>vC|>r$ddZwLXrEGvK|2@rmLLxY~n@-p@7a!$ffgTpgGS z|G`IodX_spPaIA7eX>Mx23#G%Mep?+ReD3@IRodfYnZB>Ty%|X)CGy+4D_%QQ*^YE zYiy%>C5kgZUCWeQV=r1>X{J$A62%#yI_tRPC~DMaiQ){*Mi-^%C`zBSG%D}LI2)XS z*|?4=Ih(KA)uPW0dM9;$qBuic$@B@80A#H4dZ@J1O7{8mdTv?H=J!4Q!W-7|j?^+| zU=%knC1>+Xir?|CQN_NFqu>m6C(|laa>9Sd{$$&4wZj>h`5f&t&EbJO zjq4dTFHxKU>L%@TfcR`~)GvwR42<+x4aM3qpjViDuj*Bzkx&vHv$5B|{NxwKz zoB>x)aMAl0Mm?A)&VcJq=lU&g>{li;H&L7cS1)kUyQM~LOB83obr-nSZ>fIl7F|)t zZ;e*YfU7sSM*Z0K4WsHOiZkH48(cJp&2(Jd62%#C^#Rx9_7@Z~>hVNz23+?zS985X zoR=uhfU7UK=v`o=wk3));QAl9=xjbw*I~YI;v8}YT>ZdBS9(TON)%_nbuYNaP5o#0 zcy(QvD9(VZKe&e9d(X{A-JB@Sfa^YRwaD}7_)GOFWpJW61Fiw!qVtzg^Ag1waNX}* zZPoR2qBsMtfzD;rY1`t=a|T=wfQ#1Q%eoG)N)%_nH3(fTE*foApG0v6Tn~ba_OEx; z^;Dub1Fpf~qT_~9UnYt(;CcvLbnG3dYrgpQI2)V+*TdkVb!b$BL~#aOkARELUw7#C zx;9aq0oM?4(fcw+J(MWUfNLnY=zCjZ^w|4)qBsMtVc=@?dh;blZA}zsz%?9Pv^GA` z?RC zb2v!naAu-71Fq-5MeES0uM))>a6Jz$n!`JF4i6`aGvJyGE}BE5Dt#Aco-^Qj!MWz? z9A1$q&VXwQxM&WIx+hVb0oRM*qB$I(b2u(hoB`KM;G#J+>fJdD`b7?-E>9F^z%|vmhUgsLohZ(L z>veF^92zw?QJewSG;q-z-lKE4AW@tF*BjuXIW%f#qBsMtH^D{k?0=9~j)w()h=1Y? zxTb^a|JXVcaGk35jlYJDDMKhj2t@~l3?UL3Qk1zQ<&eykkff4QB0^M#GNegTsAw=G zA&Lk^@-=Bd37IqW-_QN5{XFk|?f<#1ug|s5{oB9wtat6T*WT}b-y`o7J5@hW$dK!8 za>+OOjIuuLA1GwV^$xl6O>DT%sb>O(47nDNOZxDB>%+GLg$%hCl1uu~sjY!RhFput zCF5|p_2G#?Aw#Zr$t7!1r^@`HJ&z2z-b=V1&xl{ICV@hRT#9Z6Pw`T9u^~U$0Mn@u{Cal;oGtiHjylD*5yp;8`gX)5(wppc<9|3qz;cMzPaeOP&9$n`V193blvjT+-QGXaEua`Ur+s^9R5h!G+u02$jd^fLCm5yp%$WUE- zK^2OMlJ7Ojb>#X^t<3dcppcQKq&|waNHxCYWV9vPMcS5n$Mo3o%&=&S%oe&OeLU}j zJ^nt2V$)jnbo=s%k{@KK(m$!vRZFI}cIs51kO5!!_&F(g-IDgdwD#zCaxBXyGJHQn zBT9adp;u==DA}VVY7gjLz^N61LWZcntZ6i{$JaZ zZa<3s$XJ)-U1nO}&y!(4$WYH8Gb)1c7pwc`R%a@;B2dUsn~zhQ8$Z#pj#Cv*DUS@f zPLS)*l`~GgZ#_RYP{@$$B)NWkC*M@3HU$b9a{Ws#xt6*7+_Pto!T2HWXN?ERP-N=v4+p>TR+3DWg48( zx{x8)f8@Hc+noD*Q7c$hsyr9x&8>hMi3K^pECF<&6b-frUWT>ul z6LmSYBT&dtUHKDrIaM@6>q3TFSRhfCQ|$wV3{eHCF8SL86|JsGfkKArDnxb3`p2ol zxwM7IP+jLyU2-Mv)U$y?hFVxSQI}Iia;pm&qKYKynrwAFA1Gv~uA+&$oGOw>UC2;f z=O^lNYGR;}p%z|{sLQEBdDVpsQN@gsV_Ckn^(H$zObiqhCYLeSwLxV?9$78RUo-#4?jubM6f)6oQ>mTN7U^%_QlUr&t}As*`jy?4RE2!6zVCTp zM9B{_R7D-CLcUkusgDDN4E0!Da><>yI#xxtqUu71T=mE$p9*)XO`wn=*HsBuJ#)hFsT@OUB0icIRzpppYR~6LQJ( z&rTI7t}bNA)f7}bBgv=TA23(TKp{h}X5`wx?6GH@dNEMQ(2?65l*~wSC|(9LWZd8tu8s%<=WG!-vfmV^~McG z$+f54i*u@3No^rA_`i*W$Uz6N{J;(2Z6v}%v zx9@rE#kyx?sK>g3itlw7ulY(Tr&?X26f$VfxfL>SuRCea!hYgeR6Zl```Hvx@`DWZ zVK-29quS0vU z^>3h%A=h0-#q+$ozNn-wWXRRisHAIJWu=fIS1+TIu0B$TBeO>=5kppc<4-xrk38*(;3=czR}IJGoT$WROWfr`gQ`%iAk?bLsP zLWZdRpgKjKe9`|(RJg6bQ`cXvbst3Uh zuBuhFg~*U=fKl=2b=RYTLWW%T8I^Qx3KTNr8fa9~RkoV85E*g}GAijB5GZ8GHQ1=6 z>(f9XL$3RcO1jRgt}R4{TtkdXy1EAn8FD=UO3q*MBi9a{?MQhyP{@#LD7oY_p-vqL z6f)#`kX&+S@~oZps$8LUAw#ZVxZGCrU`JP{j zDEUE#s(6&Dc(_T|gHD}aODSZ)KND@qivE?fkHCIpY{)w`a>e2M$z5CbgADcjW1!-5 zWtG?R{_fP6Kp{iaaKfkK8}uO~poPjrmDuWz@P zZEO^&qb_8mDXA^d7U=`u@@!pw1$|4Kdio0bmO@u$;E4|1lKz@L3445Q`hI!KS#IAF zQSyTfRXU0)t+}A##ZFDAuM{%iTQ-HP)!4t3o5C zkRjJNqmr&efkK8{&lr_-Eo-bUWXLt%sCcY;U8Ap63K?=uFe>S4-$W^7$TiWZr0b%l zN+Cn8XN^j__5}(Va!oQS*@sJ-sS6o$O*Sg&daSup$dKzfqfl4t{6)PFZ@f+^WXScr zQAtcTZIL-#+mmjeiT#v~ekXN( zR)0nd-_O*xx*uey=VyVE3MH}op5aZL>eWsuWQdw=ZH^$!hfY;*uM{#=>B~mNua{F9 z9h5?bTyu;{y1ow-GUR&2sHAIAM|B}Xu2+ppx<=is6f)#`%_wonx!ddNa*I;P&^UY@ z)QE_X*K7VCy(W#Zad<^1rI3k!8$FE~ZIM^Ww_JOxjzis&J`&!*p5t*?|LF$Xea{;s zN`8=`D&|rZXQzJkpi}KTD}@aB9nlsUhe`XJ*iWPAck=sPo0tFK`^maZ_k#@e{5(){ zTos7^cQSXA2~PbTC}fCw%i0`47>7;`>7p)VsM7gH#bd*%e77rw47uJmD(RXPC}ha> zj#2U0a96E6)P)SW78sRutqT+~$dK!Oqmp$k2oy5pT5MF()ug++kRjI+qmr&2fkK8{9~hN%^}kbH$dKzp zqmr&{J(NO*=8ca)WksU+-O@j7-grJx$VgLCKSo;$MgQ+xD&M6meBF{hZ+whB%TX&o zi@V-D-1q!IM9B{_RK-%NqH?)Pd7SzrP{>e^Edv$LQ5TQSmT{B4znsxiUC5AYIk}EK zpVi-~W`RP6dTa%#%&7I!W2Aw#b9pyDG% z-Z@%nqxZu=Aw#Y&$n{A3jZZptG*HNp>q~OUeXaBCUBxTKJkjdZ{6HZ?E&LXgj9#JSoj#{B?ok&qNgIR$>Ci-o3o`|+cANZE@@742;Zb?7y?7*Jm9+S`6`JM+xl>8t=J@y@__#H9% z^oLVl1PU4OqBnd$4@H#xAVYoly;1Ued7t_UyW9Ltppc<9@1i!#^K4Gl zx=&rmkn4ZslDo|ZZS+nG6f)%cfnCvauulCGC}ha>Be~=`*t+IwJ5XDQ47q+HmpljS z)S^HkL$066CC@r;vk_Hjkh+i|*DvI%b9cKEPCXnbWXQFfT=E=jC!1~l2oy5p`juSr z{j^RE9IP!whFrfTTtm!tI#9@v>vwX=Gq+Any+XpPQ4r`WXSa=xnyjVF;|hH>OzKGf00X` zgLP_nppYTgesan4qF0)0PoR(?*WcuN`06Gdoa+9dwh$R|9RL;2b@IIERrY#)A1GwV zb&y>0yr@%khN%k~nz0Xoiq8)6yo6Je0)-5<@E=g=X9uSa1_~LX4jU!&p*%18mDP3A zL)t=QsIDVampm`()LVfE1+Bts|y)vO6sv_i}bf|IUQ|jV_VYC zM8~KKd0y1_{NN+HXJn{~<5Yz_FY45xKp{gtc7j~8hP=+I=sjFr$dKzKx#W3Kr}hO3 z8FKxba9wY%evhgP8FHOUxSZM_C}hZWI^jBL&x_tOLS4v^>kPT%X)&ih2^2EqI!i8D z*ZpTlZo$XYg$%j=BbTg=o%$+J$dF6kFv^iljtlt_S2pXzagVDD8FFO<6|Yjn>|ms_>KA8_19=H@TXZI#zD4)io|q$dD@!xgNY= z&@89^4iqxv%1bV}mN{;&)}yqA$dD@^x#W8komvtoWXN?cxn$+J+FYfcQWrAh%1G|5E*h6BA1-;yV|k5Bv8nZ>pXI8YgFlo zQ{~5~3mI}1PPpE;v(+gGgg_xfuHp&TICC8d6f)#0k#ITHWt_GU z8FG~*mwb0X4vc1BT&eYt2DXf^Y2cL z4iqxvDwA;CW5?H9fkK8{7m-W8t;MNLfkK8>O=UsJ^}BqM{KHN|E}dYX!1^ap$jIp} z)nmM_ntaRlXp5|xbW8fGsT}q!&&kMo?0na^{1V>dy=*g8S2$cQ1Ng$%hWlWXab9L1daHc-frs|qN2y`&H2FU4GB z$JaH_sS6o$T}H0Hi~nxv)bKzdLu3AOP?^Cce<{YPWr0G5T38j7^hW%&m{Vs0g$z;E zK*djsZ6Eo^7fv;OUh6`JsOnZ%q{E$mr=AQHGSnMa7!}`*cWP^(kRewMP;t-8XAtJw zY*Y3HZ6Pw`s!1*xQBK_xC}gPTYk`uUmp+uwAUL%&P{>dVYlDh=UhYgfm2Zl+5E-Jb zG)nqVM(?*adT$F9GE`R`s%ypA?=N&}exQ&cS6y<++2Km-!_$F6hFtZ?B`a8`>QB|W zkRjJqBA-F8WAXD$kmu!azE3lHGx8g zT-TCI>blsj5c9mKEkuS~O~@s6In_H*$dIckxnvwxwH55zKp{h}X5^Aj`8k#6C2b)x z>02R+s3pbwsWFxFsQVJQOTA52$U!6Xi z+SjStvz0=Is2f4a*<60)6Esep^RiONP;cC1RD5=D>X$$vL$20FC0#4#s0$f#wJ}Ou zatF^{FTSD_GURG&RMPdpt4bk5u69NxT^(Li3K?>>2PNke`8m4&F$0`fKmEL|ev1r#}BX@-w3?sfzmUnY2HZ+7oSANL1Z7 zGg2SYmdB$ln`z5;(Ux`5p7rm@%YLfOi=L6DJ^vJKsZLuay%jwzMq8TC&q(c}Js*v> zOrW0RK5insnfJ&S+wPnsKejLuhphf!xmd8H2t;c6>Vun)RJgR z2io#qw5307>9{!R4QlheXiFyTdGnHtR4v+a?1PL{UD{IWql{Ej+H&p38L1YurT5Z| zR43Xpep&RI(w4=`qu$6&uj_{u8L6Sv=Ikq@KBV5L@M+W=mC~t}t1?m(iF)9(jMN_5 zGGlc{YGw40i@(a7*JPwlP;X@aJR`M%GPT!bq;f_Je;>WQ)@P)4P-glU(X}UKHhh_p z`js;OZOBNKqRbUvMYU6=$EN7Dpv()Kqp?bv^&_)n(J<+xlXR*oT~PtQpnKR^A=FiV8eBsTw6KSD^SSL zY}^S{G?47t%BeYlLWZbYLB;3XiN!{ba%y*=kRhtG)g^Vy+0&^qKWSaaP;cC3RDAYy zs%M~(Ay*fxOI)({JKuW#?LZ+zuG`5a?+!TC;Ad?iGUU30Tyhuv9$Tw_5h!HH)s|Iz&*Lw(raDA~P?-Xivt&NGLVLWbIWH?>**)~Zvvjw*!=x$XfK_m6xN!a=+G z8*xl2WXN?dxw_r9;ZmojA6E()dX)!&k`X1Z@`NKR#yIuf38j#s7T#wql-`g#rA}=+ zsT49q4Fr{br_`xK|0;zHQG&_~L4E6jFQ1Qqdv*D3$PTlvPQpk|&0Z?*O%Fpi`ijHn>BWgOn9U+xM zhFn9*CExS!)ckC@urFlD^&qHtM9saw#?TfvA1=?X6f)!*My^9M2e)$S^BhVcLnG=T zP%@%qj#_`g@tRI;&Z!hK)WU~BNpA=xbCgrN&QS^(q8>3Sf^e>U!OkgrGL%Aw>KaaU z$$b*1dgfLN8FD?EaLqQ??mS8%L#`1Cms4HyDTNHV9wV3BYwBQQW9PX_Aw#am$tCAy zr+&?^6f)!*NiKOp;Fyh#{RNalhFnjOOTHV^sZ#}&LWW#Vl1u7pXs+DnDTNHVMv+VE za_WM@N+Cn8r^qGG>GibN>*69xAw#awwihXd47nzfOP#GE~jz8Oq=#$DyArt*JTB}}`3(x8KmKB%h!aL5oC4DVAovM)M^nA~as_CAQp(un%7ne8FI}^ zxSZN}rBcX{Yj(nQ#_o%@ud5U?^E_uf6Qgi(fC}ha>7P#x-oB15kEpyHYKShW|wY-U&D?*$4Oa=lHiK`;DR-l@7x)P)SqNbi7(XWBYhr)oR3 zEKtZ$3m1S&pJ|OzKG?zDGUjD$d}AxLD{oW^8LI0Os!Qg1r_KZl8FH;8m;Bw*+ii~e>?U;~L#|KBC4aZn zsiv)!LWW$c$R%}EvvcL@Kp{h}&&VZpIrT{!bs3B-gqY znKwJNDNx9e>nn1}m0fqMt6fKJAu{CJL@v1!cWP^(kRjJ*a!Fl(*_A^3o7II3xxOZs z-1&Fv>p&qxt}Wz}vGJAFb<-{CLWW#h$t8FGojMaJWXQFRTvFG0Hut{ONnOa0>l<>( zJz=N1->MWc{PSc z)P)SS@H=av%-C{I*r^`^g$z+UL8adlcIuHX>OzL7?}?Io!cG;vT`6RU+6Ah5)H=B* zdw;8^{%~qhppYTzf98ts2|IPe9qK}cdj1Dc>Gy=4Ius~m$n_&AIakV$jHpX(L`~_c zE@a5{6S=TjHmZDo0Q2>*Z8~-bx`uuKnba`+mjEbuduKkn3-9$$dYkM)gq_GUPfyF1hbl-CP&;RSFq$ z9VA!H%)fFtwLMVCkn0e+s%SMpDP+iXoLqA4=~VvvltPAFClao!&9yO5$dKz~!sXQXf$BnrT>p|w z)+C2*)ZH{lDP+iXid?ehck24VN+Cn8(+Ss6b2YhNDP+iXCgF0b;Si;eA=g=Q$(p~m zt@-OdpcFFX`j1?)=69-pppYR~sz|gNq0h{gw=>ABKp{h}Y@p(^u&nu=`X*4wkSlw_ zHNjkYhiYBOkShndWXl|{)*l=oJppYR~2B>%qDWBSC zX4e#Ay+PP$!GeUYB)?OWN1dp4J!R!fm0;q8F8Eam_rd>zjwwg^WyAsVg7R+0VC3iMEuDe&btCMq6gvmh|~BA6&9tm6`UX zY}G5e>-OR5LWcVATu|{ioYCXR^G+=b6f)61Q>l`V=1MJ${$JaZZqJYX#IK;Nv3)-e zMU?y?L%mu6l)M(wKQGnV^RQFD1PU3V3R;_Guky^BQ%y#w3mK}kkWq5&(4%wi2~I5v z6f)#G�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 z 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

JA4uKklsH)kfk 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 YOlnVJUHa`sd@NHR{l+Ag72Ev(0aL-9m;e9( literal 0 HcmV?d00001 diff --git a/winx64/lib/google/log/glog.dll b/winx64/lib/google/log/glog.dll index a71706b63db0dd959a1e3b87222769a529b46373..64e6575e9a0ae9a477f4ed3ceb40eb2e4f58492e 100644 GIT binary patch delta 32 lcmZqZ;b`dL*dV~j9K{vdEX=rFn2~WI7l^ZcJ2#`}F94G82`vBs delta 32 lcmZqZ;b`dL*dV~j{Hiv%S(tIVFeBqaE)Zw?c5X(`UjVT&3oifw diff --git a/winx64/lib/google/log/glogd.dll b/winx64/lib/google/log/glogd.dll new file mode 100644 index 0000000000000000000000000000000000000000..f246073b353937151b35e1f81ddb6c2729de635d GIT binary patch literal 339968 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∨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 literal 0 HcmV?d00001 diff --git a/winx64/lib/google/log/glogd.lib b/winx64/lib/google/log/glogd.lib new file mode 100644 index 0000000000000000000000000000000000000000..ad511adf182b29b668b32b65256c204e55b618c1 GIT binary patch literal 55222 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 W!`n0?E)vk%_ze+S{pHdEhW`N>#oUzu literal 0 HcmV?d00001

B^iOwHG+ zsDerqg~a7)rjFLBqG(N7ch-@z(%dAwn1~%?qOsUm7m^ijM(<*x@z$M<9jha&8tULn zwmDv)qwRGls#X#yG(-%?^@FBJ<8->NIyW#)IaZoC+Jd+I$7AElEI!~Q~> z<|v&A*-`7jG9K}<{8Wlwdk$k(*xaO6iHR7ULa1jkq+tV3VLT^uQxaf!S$eyo#N4W@GqO-rj~$|XoIGl4z2*uX1d zbvxSIvTE^`NOV;{UK&~3Wi3MyISzRmgxji9#3rOT{2k@Ctm-f}GBiP6l&h7D;0mn) zaSf3aceZghMH*1X9urX{Zj6n?UJ>|h9bBRfMaV8T#8f|3zaunetc|H@ z#+FfIhsBJsML&%=;SJFO`vLJq&?0Sa(Do>|3^3zD8`Dx>8HlpgB}g0bfT&Q^R8JACXxA5xdz4S&kDQJ>$pQ z@kS&x>$wz)Ej`$pAzm9|chA5^!V5xJxu&BBO+wd`-KcxmVC9BKQ(%Sx8(r-i5=}#* z6Kou|dXmw$0PSg~n4&d@BU}hEO=eeaFB@46M^8%L_qO9@=@DBv8e8OXtV~Bm4PGn` zgU0T)@m{`EUDviQv8I2GxVD_{m_+ebgS@AZdcy%8ZQ1!8V;Y>s+(_cE?93iQPFyF*O zTrL`-UY*@tE7K}Aedvm%p0R5-W9XdhcSNus+;DN$(3zz@X6MHNb&`xDy3+6|+U5iI z!7B8LAU|dgGE>hDSME>eS4Q_Zgd%Q=9fV&aF;m+l%*{I%3K0wQao}v6JJy z-6Es}XyOJC>x#D_d$kneD0i&Be~k!!S=lPQudhlfo!TjRUZ7ZKH;#Vc?iYU~-ZM>L z0c}9^j6dwe{zN<(t8c3pMdy#>>q>Yxq-&*MsieKJiN4r!G6o%;2EH#SzOD_+R2&d| zA&GeVj2UxeeZe2YH>>alL{>s;x;y$iyR&1|>sWYqUde|R^NdL@h1z@aDdO&S%%+R5 z?U|)>#N}u6P$Hndlnm!n-oD<#D`w85bG%LE@dX zKCz%2ox~yIsyp;02k?$FyAn4jn+21Ukar|j;-y5KO`r;-yVCZp_*OarwyDh>vvR#X zo!uf^-LZLsJ=+_y1~2I;76CStJ7IejT-*uS%M@SNgZH4Iekt1iMK`eQbxd@{3@{r# z2MqK$iSW+2x2+?wP6$zOwM2`+@qt@;9$>N0)U7bas1R1>$kWzE>x;i<=1 z3$y0Nj*%**stGr)IYv0CiL6>@4kliCyP@_#!Tn?Ig1W(};exwehC-(g8Z39VCmd~H z^pTUf&Y}RSM~47Nt=hSfc!=zsEx~=3j=?;G%T9I1397r*oW)h`Mv6q~N_DAM8FALm z8oq|j%@DBfwEi1%TE8uQTc-6ccDPEzfeWPppIzM38rv7H$66W)=ZZbf$(`CPP4`d~ zre-5NjhL4$6^nxm(e7_=nwlXLP6vy#VWA9Mrnn2Os#KIwN3PTRmnZ!xT`W#!{EOxF z2ufFuhxXy*|hSe?&Z)pc@Fvpac7NW`cr4 zmRP68Zp3`;Y48^~W?#$Ffs3p1SUq%*9RzyU|bn&=@m^taaCa&T+ z9?>PE4kBJ#YeV4!6-w+luR>|3y+_41YQl**vvnnds(mJrczb8$>! zVf3q&K4f&s4Gp}qB{b?9s#>s{lk-%P#`{_lEw7wZX+qNlS%S z$L#Fp6q*n$)}%r3dYRhz!$d6Dq$M_m7uBL{Ty$YF7H-m#LA;?__N@DNd)P8*GD4ex z&9$FrXHjS^3Px_c`;`-lb}e+DeS#N5%|RyOG{~4yc+cuQ7e{#_h!EM)r<-hJA?4r_ zxQx`XCD{jjdZyA^##k%fEu-POY0Tj4-85;~A=RDsTBVi6s5^Z|gG*(kp3ucH>TaB; zP`TkKk;|FpqHm9IMteZT=>dy&2F2HVz{+?~mye^jzmD>G3dJ<8LT>}oe$MV=x{&l` zGCS`9%=MTqqN$j7i+Vo8UWc4Mf@Z)jOuUSXcj+RsY{e*SzQlX+*eV~w(r!dv^R=UO z9Cbb8unCi|&>JYnB1U85CDs9&t9T-XsAooEOJ!xOy0IF|mlAKl*f$CAQsxyA?MyH> zK!R}N;`EYXUa|;U0r9ehwk&DrdSO+sn9E_NRe*-#3d62j_Z;NG489XQpOm>SG`7yhsOy~qfI-_#ySzoz&`$GwnMVe* z=DBg2Ym)PnIUwBXYp`8B+fQT zao9|hylrR~+EI_f?9|hEY}Z}AVdAQ~oktpz&9E_Dy`vH28I;aEl`}Z}V=tDa@^bRo zbb_40$3G4H6mpxNu9sqsNjV1%XC?7y<+)lPO-kvdSW_IwKn=irOq>MAyex$|6k7lS z&FV?eXz%VB;4w9}(0jKx)p3zsZQZSm1ba8S*CVJcO&dz1cgv?gl-B&_LCdrGGas}& z8udPN^p*kt2T@q_sGlIX9(GE@kvdmDY4Cp(`5uImA_r%2%;zP-)C2!wd~KpHuFmZ1 z?Z;}>?#SZ>85FCq2}`Dh80^EcZHMtWmL1RWogFz{?>er+J)mArYLhQGw3)fZPZFe%A$uM7KC!F#KU>{R6b`A-GQ(q!r z&8861a5J~4tKAe#g#nwEYIZ`Z-B6r*69s!Vg~En%ywwwtRSYJ=u1zKCL({k&&J+>$ zZ7N*_`H28*YT(e|Y^iD-?M@-a`AgVIh8A^cGk42o;60SrLTgN6nK}N|f~H*46Pw@O z*}bwHeW$#9+M@ZzYU-*_P%N)%nP1FC*HiHFDg`VrEf2|xA@zm*9?=?T+ZYbekGCgd z7(rq^$=*JU5j#7Mbac2)DfoP0vaGBxDW^4Z)jQS(Uut(RUSZw2@MIBNic7$!ib+AO z!1fl)Qf1i$*W;_}aY}7p9LITfNRtqd;{tyF>lSZV_jmHk+2SywiZ4aq379CZ}bqlJRV>~dPph9Q#Nrz6r{$K7e()x(8mU$fHDSXS zzL}uB=Ao4xybx&C;n>CHnAM;(#Y% zuKvlkOZ@_EMPg-4A5BXyJr5g&w*arB8lWkG3uqs=DPA>FJVF;0jUVgBPAhew9eXuX zM-6_cFBzp`E^^%ClIV(eifEKzBM%f6wzHbI9qU3z^Vd|X);+=c?|HzT_`CxS*)@j& znnBQ^GxWj6^#1YWLhV)?YvsutpCdj84EVM4#9u+z17^aDB!c6-F%Bf+0B95*!6JL6 zcflhZy)aJMBu&Hdm3-1Fbn=vqY@&S4Shd zAGj9y$01;Oa$sl7>r_wJHhG2IUYu-OY4#Qi2^Q@{kZ9o6%TN;r)x5%YikK76PCN;3 zqK`uiy(@Uqt}^3T0mRvLASHZ9z(OaRIX%YX^z#ZYV5M=IXaowYvKgCA^9uPIZ7+8m z0K&}pyNWM)#c+raX0Cbo!UxW_R%gt`@S+oJE#K}m;wD1cwG3(TJMeX zwqvYoRlKjgH_-zjfX66LHrK~cfyQVHPojiBpKNChaK6Fc9NP> zx7avVl^YF#)0^&~_VVOK<``a`!-raGd7gP~7Y>KU*jG|gQi?sid4)W2zERlDoOlw8 zofD6g6V`LP9(TTSQzUllNt^GFLdtt_6Y!YGMPJM%8Z6}DP$-c`=vr>0mfDfo{icBq z0fgs2IM|wT`hy%}@dW_6KU8-9s=dp6V}v_hvCbQos*Gb*$Pj5{R_vrUEPZ2F9EG$9 z`Bp52vZtW4SdEp7S*8~J{BVJ>3ajEP+HeB5QM5R}+IfVzR=?=N&OY1NQi~5Rl$BMs zwXXt$S9GKM;&|@7!bi56Ecn8Q7vkYO$c$3Ji(sXoAU-FH4q1}LAog&TA@(0sFg0XF zlXy{}FPUiXV=2D|!nt-S`CTE5NPY2+Sn9;|pbS%M9kFezDQtKvf--$<*ly?kpElxD zQ2SN2W*ylu^a<;*BJ&FWkx_yn1O_`O^9tX?S6Ebwr=~HsqYb&Ues==*lA#_Og6BdE z`jcah@i|DG%@`An<}?dVLo~ux(ganMn%#VwU22coaq3Lq3IP9Y7#<5Mt6N$kGha1`bhKAJ(sN3>Bg zcF}q~^9$4W?W}#CacB}&OwD-GyZj{3JHYU5D6f?8>I|t^)U(A5PLp!d^=5W2BC~Z`Zkw0uAt1|;{oSUE=;6W9_bW5(8TXd+tYC`Z zZOCDU$zdq9qvW(1>u<3xSg7js^ppv)tu>bKp?H3DWztFAiH@SfP+$~!PZYT))qIXU zvGBb@<)cSQLDg~aM&V$?e_r9A@F62r3C}UZ+6`T6$zBG-is}>MoBtnPXteeLSKit4 zzg&UKQY6rP0H`V6vAh#ru{_y;Epnyy`Rdn<)Y}a+z`dG1H20val|*f0U-9@d(dV-X z>GSCA(#!V;Te%7&Z1q@w!T2~6kdmOf%jf|pklpayTc(%eOf|T|G4rH;xYVc>@3l%9 zu=n5F^aLouu2^p}nb7`eaXln$tD^#^{&P6*!UtFJnI)X@-@R^t{_9enXqs0z-nPzC zW;RD5TGzBizG@2N+HH<)ig|^ReRV0|XEz^k5)Z)Y{q2PIHY_a`0lYpv4&JJ29I%#* zt?b9!YNAh1aU)g`AjSB$JBj8LeEi}hn&eJQ&;_1X*c;NNa4}N$wc{nOyuwcmBDT0P zwH6>luj~ZIzQw%4rV_*J#@_CpHo9_C^Zh=2FCnjR-fkL_)}wT5t3Kfz+Km{v2TBtU z@%RR)o`z4ZsexjMiJN19^|ZuQK10mZh9aV-W{06%=NYcK_-ao+)vh$Lf4L?jbnDQ${TLEoCUfwd!+OBC-dV-W(GPqJ0&< zp^U{=OjC|9%x>s{qmLglJE^TVffse~#bbQ67hRn)HNkXsul9rsKd-PIA1rj%80UrB zGYVzYNviXChG|rMg2(?o)s$n1Mpu&IvV+p(k7P52Pcm~$o-RSk#L*%nqyg8*`8>yWdPMt5;w4$JYGn0DT zUfnKZDx`p(YJT2UGRF!c-f*>Q5qGVv4zl~b?yuVVY4gS3OiF}=#QRBS6*Qcl971ZNpU?i_IJt4!uU)ue5$6i51~4xj&^O(UfHVR z)AhvO*bSMUZ!@hKpX0%N%c?`{Spge=Xf2M7b9sd`?fD6&Q0*rr=bEufbcUnR?*aJB z#&Fa+lV6NXsWjEV!4$>k(W%Ku^dhb;9bvby>pP9s@kss1j6!w~_HlGc4TJkdk@iD zmOJz!NJqRgo>bpHVk6)g!t*?pCeYM|(5iiqfND@@HG` zWPfn$wc6#NzByoL{yfx}qsMdAoa^9HDYffLjtJoF{3>Ho2KeTpyf+D%ry+lWZHaHy z$ujG3zzJQZRra)T2t(dskOwHCww0$Nhj9~hg@cYw7T0#ic3rYz#i)02v z+qUwOc`>@cuj4>C*Ldf2aU>H@JJe0dA1PAJnfjM}EI)0xsPXeG}jzlk3MzNC$-^@;1Afj3P_GF#0dx%SwLmV$hS;qif zWzaC9V_0xGM3m#zRoa~ zj;i>&_IQsR07w?)8if!$76%S_Pn@}i^mik6{nMuENe!)wyG^?Wwvti`PpbE}DH_~K zs~wIRF#rdQCm_*KeB5t(}AR?adXZ^hG+Ql`pV=g?K`0(?CYkjT$4Zb&WSY= zcEauUGS&aPixr|}XPa)Z9bd>5c|Y3r{5Hi`sC8O7WJMg&KQ}7Q)2>2JJalFtbAkBQu}IbfAEyG|69{QHO|CblRvfO{n{kmcOc9?sFghh zKFT@|)vmFP2C35j&PtuuFlV@eGvqe$ywMW=T+s$xU3kQP77)rP4B8c%aeK_9v4p zI+OW<7GL)ISn>6uJKLr=U5Z{VtR6@Kd{69R&C+X)eVRwxruy(YP$ zvu$OcEQB2C390H|vt}R`M-LIz^NDG>^d41${qWd1nsO<6?U7-5~zz5w(j!LXi`B>Yg3wm!D7vMEG@gESK)^>7(AZ z0oguvfk!%;TLI{8o|y@##g-=F=AoHs{03D&&h?`+x;`@*E>YNT+&;6;M-SOcNo>TU zMCsTrVSFG8t2^}Zvjd*xLxKAXj}i~r;YJ`FZ{Wx#VKLf|5*aPAHFQcM9P6ygs_cC3fs~c}@VCgD}(`m6A*%ZSjVck~rWBl3{ zv+NcBs2X3O|N^4n4erehg-NlCflM(Q|H2=Daau=cm<(=Wf~#lM^k?x^FBu z;}2({QX0__e>D>pp7H8j@2x^9t}xzf@6FGCuIow6x#%#q?rrEMq3qpcJKFeK$p70L zrL(6*&PamHIy|@M>E6gD<23fWMk=tWH`cu(*4x&#lHc3J?pq(VXdDaT8z>B_a8q`N zgfgsG)u1fC(b!TIw_zEqezJw(8hhLB-C_?g>90fM8+q66S`_898EC2xy-YWm1fl5E(oTRCW3QT@=eyvcZuaYVHo$DZah zrcd=pMnU0|rAe&x>nif$wP^z#4Q(9QzBZ;Da@H4t_)X9bNoRJTDk!fvi@y@|r`Q9Y zuDIx3+wrY!*z8Qnrh8<{L8ttcMyxX((6$X^R2Ry20Umk4)ZJD)MzczecC5EIcRTe6 zsQ~vtK51{)SlZUxrDp})d@$N$o+z^d*`v1Du?C>rPfCw-4q&g)^q0ky z1r9$?!U1Rd>Tse;o*aJQP>EWZJC+tm-!RJb2zubJFp{b`6X-#lY=B7^K7Px0l`i~` z2*Axj3Tm3k*JZzK`nAiuY>NRU6sO_i_0dDMwmV6^t2V@*7xz#*1e`N5?u>okXo{3T z8J!?op~l<8u--yLri!nMfk}=%G<-eN-q5v;@+Xr-*GeZ&ahJuMZ<&sfF;_LCki1!U znGd6#=h29v@u{t$Xgg{BM1R&OxZm&T6BZg(loAG~Ul4f0t!rlLWv~c#Y zw;u|5yD<(@LPu$mX_?q-mzepC-^@iek)CQcmg9{Pr3SZA>{K7x?(>{fEgh;$sl05O z%iW{3Iuo5tTWQ|@#vH2b#epptI@Q)B=_N}mO=9|vcXPY~Mj6sL)GXhp$|%`L-#^*( zG_8T4n%relOi)nA?S1r;E1)4&$oV{&r zylu6t&CmgMflp7iRi^S|(FgaJ^kK?Y2)iQ9-o3t7k2d=v^82>67e28cYu+{+`b3GG zaJZKVN%v<2ISU@2?eMyTfGS*e32a zr^z%O=*Nr*46*w<Fxo!tds zqm>VUbH5i1BaoBqzvk)9ajP6j2XA$MbkN7yx|n(z4%l7Cu)#GyN->U)ZMJKly*j23 zz)a?J{8U?u2Yt*qmpOYHu!kk}G8iO1F6%D8GMy{^%`B6-_`BNe?xn@a9{0p+o*`6p z{{6zVf6V)>eHpOrS0FGR;@t$i2O$dK2WG%dbY&b9z%1WxxnrHhhCS!W78l(cL&3+;!y;)4MPf_C};Y`yvTr*{v zAb$mbt86{*X<6CDaSW-($6}_q&{e{}A#|@`JeSk84I&+NoUx^Y?QfO0gl28sGe)WK zv?j>9wHC~Pojn>q;fIm)vERBt_QxyslPlN!Pk<76ndo<#dpkO>L<&9gFCPxQp$i9v*c^n)ImH2 z4@dZQ;_cSH%I@Bpj^29p;U%;-UefK8fI}j`Oxa zkS8$4@I}Dta1%baTHPSWhTR4p*uD&z8Qr-^i1K8$iclp#LW~a;<8&>7PbQr27Ch55Y}sv;hKi8aGDi7viKy9#rkPJEJ#$PbF}Y~@KwbTO&Sk*G9IZbt>} z){$e^&^ny9kj41GMeDZ!JrUpmbJ?9DPQqB5Na+IOvWgXA;kS3*+=i9%Dua4JLXW2@x&E44^KMp5~=d z9H%R_WAR&5Q<2_u^!Zq0U6r&O4}=5SoC!w)KgE<@tVnzuty{`7oNc|RK^K9Qf=we5 zw=?i3;`d@HEiF-g<(twgpIC2bw9k&CG(;Npacdlq*OTY^0JxUk1P^|jDsLq6T)dd; zU_5pooER8wi8PC3Jc}~MV$ccV6oUA#=#F)?CELV(nTrZKTyN^^3m$(a-HV44I8ymR zUwyb?pG9Mv-OG`#w)9~)wt!?00a5) z9V2|V@U#g&pbGP?EO`O{m|`DTC3jEOXrbo<+@XHRa92k}vZb4xr;U1+&73X@R;W`! z>u5+$Cdc;ld8C@V9f41kn7)J@bX@Nomg6f*y2Q<*j853y2bwzkN!Y&EP$iIdTaZpo zx4P^sn&+8RR)#mU7m8FI=>w>ijcpt&zX6eSR14p}#ICctwyrjQqLt^2tC-&;y&ZMQC; zO&1v)%i6$}7oH!Po_Td*U6MPl*wGfJvozJD@-SK2o&K<0jQX}UamkrS4?D`q*H~M) z-;0WfM+!UASSopj=j}S;(d8<;J8|qKb<#I7ixd|@JUpEk%Nj2$lbhM|D_x;vXk1y@ zBA&G+d(vJ@uV7_#k=@2z7&c;x0~U|M#L&7Me!jIt#-GZD+WOk&icnMyfE@C~Jd!bw)x-cLr^Rvr z;{YUQpK^kGI zX5Cm{cwVj?@XGmt7%lGeQ%_X`?`$21^S~8EDLd59(ubjZDeH zb~5dlTA?Z)b{K-nTCi6#m9@Z!`#}p{`;)*i*7)D5N+?oAC<6N>7Osg&iKC*=XjArg z;d>8Q5X8!;F)GPxq*%(zqG0Vxn@I~gQ)$6OD;ug*&EL_@9f?*pFA*VUQyb1xeZ8&_ zOX?y#e?KO|&*D-BVu^0NwGQy{mp2`UrGGJ`lD|6@)N&$@q6Dp{i%OF z|D%sAYX%4v?*P59c)&4W*kdh8#VEe$7~Nq3dR-adGsef)`SU1RQe3(F!`Nc_IH-1YRP zW$`JS3ol!``JB73;E3-7h8dnEqRzR3^%a^|kD%-rYnb!QxO#$3zFA3-`#hDKd;%+0UVo;PdJ>4%Tl z{IF%6DDfXmZMZ%3$=l_*`$nF5YVn``U|G*e{Fk4)Wv8c~fBNe0jDMhVxB0D~Sk`>B zK|#*p#c$kq)`1s(=iOJkesV`uZLejWC-G+_52<|o`N@Yo5x)5^r~LcRS6bHl692Pt z;a|;b+OqqK^|wxZv*v_vquoc6PU4%>-~8vdf4OSd%Da~yS(+SeS&vBk8^?e1qcOSV zKl#_{j}D*rk6ABTR%ssbIfuW!VBT*m(N;XNBK* z>42PR!;iPD-A4)j;6=^f`^uJz>x+(ku|V?yDNU_Ul~}&N}C%hj*Ka zqkR7+@y{H&DW{>k^SP@ZzwL|@yIb1PUiqZ+$>=YAf7an^ihg^Zbz||r-hw>bC-ILo zxBO-2X=fesYJ1Nud$d;VY*`1P4h1=HeY>{)irC%@-ko^Db)~yp_NZlDDDl%@@Azx} znbR6>eXxJG=YD%jn`M0{@h^|5JvrHTX@_-2|J@^su6`VH1zH6;yNusdx%2(IKYQ`p zueA+7@-@(TR^o@9d%=E}7d-p)H}<^dH!B-=x!JPjjUm4Eq1W5z|Ga1N5B}V^_@Gs9 zJ&$}P{(>j$^~8h!Wc65m$T`R-HyOx*C~z-t%$v9<&K=#LV=bk&FL`+e)& zC#zn_`SrJtc;aUmsm7Ad!okvyuH7ekaMvNP>=HdF{8P)iQR2)0apv(q?7Zj0{r_>? z9Xr3;^DI6h09{a!lRv)7dimu~Cja|)zkF^&>`KVhxe|ZtYvaR%Km7BGc_07ezE#Jc zbGc>xQ{tB$SaNs&_0OET-vcww2%nkwI;Qi`k_9>YFJDxD+_l%-`sELi48@^KZ%LV7&`K`MTKf2YjPM7%V`u4qES@Q0rQ9b)?K7GaqsMli>Kk&$?@0`;5 z!oN=bMq=&{+WviwW$gvMTaa_yhoAg*&r!wGo+~=<%*5O?e|M%PGcl_hA@Bgdy>JO&wHRbU+mi3v$&w1c)mDl~|<2&YToV4rA zD_(~EQL`KApMS{<4}59z?f-gg@}leJ{bUK0;S~~p)80?qw@cHO>fS@@{Gi>?y{f#?8LoVp1kISyEh+t+)T@wIi7Sb{$S(Aj_Q40E_?IX`^WBaLBg`WBJmF% z)brY;!M;b|yYG_A>NbA+4a@pe;(v3>(~o}k-bL>YY}jv)J1#g5eLaFY6y(IddGtNc z-_)}3sRQF*zV(zFe_&a(d<$~^dHLr%T(SDGjyv98a{eK^ef2o#&qh2`kn{VW9kkP&kJb;H`?sARz2m;w z&sf%V62ETDdDqOj=v%Muv|q)$*F3S|9LstKprllvO*tN@;sfcXYK*YPUCnniuT-tGF0*xbC%mMGF(jzSh!`)>_>^N=v4c zOevi`ZRXS|C9VByTKVdDqNCHF(01#Y>-v+4PITfO-Y7%l6O=P+#1quklkn$FP*Pwr zckb{DJ8d0(SxIg;cB^Hm9nS1^SODGex)9%p;5w^cZGyG~JSA=T2$gD3dXW2Cm-ntr z^tM)Yx67#yeXU&nY{gj~eeFCOa-g-nr)P3!?RFuAX{y>(@G_sY(AtL?#Q zUEYr~B2&L7mrj|1&PAxa3hysJ+pV$JDPi^F&vwg4@BQ83`Cx@WP5GJAj&3MpIyf5C zxavQLro*7P!`W%OPj+}tZJl^&JCR)F+f}!lD6WHZgYTX1=uvl_I%9Z8XOraqFZF4l z9bYAMFYFH9@%gl4BSEaYt3CcXYFsV~^x&0<icvkw3Rz;taEs>heQ1@{wz~{ij&cqr_h;}#&IXKBSj2+!pczwgKGQoS6 zoG9SW{NRLS^X2v+WE9m}Y{W`rk&9qOlTL~O!BwD~jk~jWQ37#IDyqh>Z7q{DBiX;LgwnW$nI)WG+k+%(xt&{byHgZ`JeX}o zB1@IG+lZA?@p#2*8(FNoADT-(ueXiV)WDtSZclzLt}i8Iewuo_@f&l=6>B^EvI*W_ zZS}i-z@~saLx?bWw z)}ef>2W!|jNL*5f@~yujv{>Ta(4l-Qi8X2!w@!!htyd9RBDlZmP`>p9)}>V3(>j!I zy=2F|V#mE{$Gv06eP+iE$I3LRS*>>DqJFdo#i`a3??6?j) z?p}m?C65PmDBs!#>)#eyY_wIRL;2Pr2<;?shwD(jH4C8;5_hBytr3uw_ZnRq{RJQhw`ocmRZ(xi91k-@||1bsyYyI5x)*<3q zj0QQ@c?dltp$`!Ht%UMWy_XOgZcRXFvxI68`kSOulfN#ZO$cp~&|eXHQ$iEbtpAkI zY=qvG&^mcW$iNa6$1u z8U4sv#gv9mKl|*nnhh9~5H;=Ln)A;p{vBeGcs*_syWy;23q_~_`I4GPs)}b*dLkPl z#U&9Wv1T{h%J%(rQC0S%Dcl_Rn-}uR*uHTe{2!>cgCb%;*z|A>lZ%mF~ zf1Q9oP0PcSw7vuD?U$FuFaUrfY?ON!+V#;n3`NxYa-UX7NYNmvNnHk{bTu1wS#LA`e zaMrYD!;?dBI32B;tY*UpH5(qQQ39rm@CfPrj%AV$rF(nn9tQdDkC%amrogM2u#GqrHg&VJ$3(*64M_W&fY`{Nk-s>eLQe2}7g8ng4 zft!nKSj?;OOOn7YQc`lyP|bz*Q%EDux31?gF;!RAAib`vvs6&3>d-0c-{@go_rVj6 zx(gF-q?H4+TgeWUQ+x`$@GF^mR^8fgvQ>}T-==YpsVd8#mj6?tbe%2!G`pz>*ikn zMmg(WfIRK`L+{mGSXI1AH)KS$<}xV7CCphVMQX!|cnW+~-VZ*(Aan1TS zN|+lqq?z2j>S&mTZj(=aN`7w1V+a9j?A_%4`iD#0xu`*6{Tl_$A{R(qA#xegSag1F z@rK;u&o<${es1xIwV|5!+~OLgr#GB+25Hv}fAF)-_wv~-2i*&$V{Q4uy|8YrEqhQy zTU!e5rTlLhbuaCaEyJd5L^%p#53OL6d0z7nTLNPx*E$=a0+7tLu0!Z}32j6u4}ZDV zBls6aKSIC8zc8;6!nRVYLvV%2JT9U62(6INB7{mL^gjrdO6WO+KEYqE^)CKBN#cg# z-=u{0!@sHoRS2mPEJFxeWAVgFgxD^*Ru@84j=9z;2&od>hL9@3O9-hFyn&FS{4qkR z1bcxoefX7Y9f8nu;AE~f9ibmc+yaDdmC!d3Qha$5Ajg1B8I zl!w+;PZT1gp4cBDg*zOfw}8#HN)S?InTL=n%l{xmYbV#b8KHj(?sgmZ211JRdkBqI z`66_pgjPYuIE&4-x+!ho!*J^+gg65mZrzFy=V!yMI}zgSZMa3Lmd^B#a7sL{df5Trox4TxQniVAWw`P|B%O%K&=`Y zW$5Rk(`xz{>Ml%;bc#NXjL_24f{>Dwi|n}bQnuduH;UMe**hG13EBf@nkq25G=3^O zphkYIf4C_2&_q0OuyAz-LWfBRjUir_gHVs>tOeMMoVuzIJOF=q$-p{>J5tpJ&nVsy zAL4CzzJ_mJdsmZEd;+#py(AxtI=^}a^1jaYO$?z9L+l!nS48~QO6*Q@4Fgx0Z@nF zFND9l55zy}%F?J<`)$LEoBG_Zxoj`_B;h0p@my!Wh8y}xMeVSngM&8GW!Q0^y^(fD z+m)kI&+bp;+!)?PoEpQomwXzJ{P1hMuiK5sP`*_ReyX^MI+PEElIof0Y8diNmwFJC z`&`_|9(@^93UIG?bt%_T66j&(yIXS9CAd5kLb$0o3HlyaQTbOz+?oCBkQWChS(tC3 zcteXj>)__tvBQmYzLrUh|`ii``9-|@HWb3P|N2&&-Wu){K zL-|$_Kq`*Huj2j#edRqMQDc2Wnyw6?^Z}_J*}dUvL^d9ES0(=VT7|x{=&n?c`9Cxu zNqJo*!`VXr@hHX5tvkByIIRF{AU%kN{wwtn1oG3}ldsSN7Z+EQATX3~b)Y>|98De- z=hS_^RtcMa{cI~aPPvYhZIb6ORKzx!i=woND41T1SFEfCmjEn896N6qe{bP^8+|$4 z-Kmo%x_jcic)Ou@?p!@&O+7vvk1bdN1>hXJ+%J(wLk>1$;l)v92(%Y71{MrnYj+GJ z<)#FCUOTrr!WeCt-Eskl3J z$gMVgOu!w*?02@7+0(Xx*ZmZcds4y zfF1WAv_(y-G2BBa+ai4ky$UhWEN$`6;B6suJ?w_+OBUg?s{W=*c3m?MoHLE$GmLIa zJJ3<5hEay{ElRzLBllIDljmo=@g(BuOqq_m?M%6#cr&BnzaPY%(-7lerB|M8SFEQq zpGzQ{5yRPddwDJa@^kp6nhg(Px}tl`*&DyKJRlUSN)x{{BOv&276FSb=b;E&c4mG&o?f(mQ!X9&ub&6@1uFsaz8Hj&8E*$| zgl)L~gYvOwJ%L|a#wfk<*(Ozp^`~NyaO_vuD#3`KcUJKwfx%?MH-R2|_a*u%tR~^N zY5^o(jUOl{Z>VI4v>^hkxLnaecC3;pVMlU|gB@E&ygm&=fZ`Wf{i}l&ou#=RIoXRn zq)q8yq!tQ5Xy}ni6Km$EAIZ^pY)kx?{JM^d>;sNwmO6o2MeM>?M5n3Q2I*%J9^ejU45_$)rqa~D& ze-Dz-zWBFTLhblh;m$#5p~St5e-)Mehnv*-2q`Ly5K>eU2q`K*K&V!p{R2V~3B85T zRT3JWYgtE*VBPW%`hmnDAdcVPvz)FmVgeHBA|8wTo2fBE=BPmT_;25f>9FBL^-MS;X&5{u)i3JZ%6mBb%l zax|IXN)Um=DHz$<)*-lwsVH@-A*XgVh~yVqn8#}DzM50mjTl~S2XZ&ooI+aWyv*-M z)KB|&EttjYSdIUl{=G&2ep>&2P5*vN|GupvAr{$<;4La}h-kM*jKzh{^=$oBpb?zEGzVREnm_aEc_ z9_~NEJrB=p#C=cPAH<#Rpr7G>DDDsAz8d$R<9-hAzrcMWs`3c#({SH}I~T2fiF+CD zkK=v~?!U(UCfuLG9c8e7gFF7Lr*TiBD$n44I_}Tneg^K(;eHP8f582Rxc}qLPX}+q z{YCtK5qB)W4StCGX58OGxzE7g@m95wHvCd{C}avIOxm?9sBq)Bxn-sJrvt793}>{2 zC~O|rnd3|wuq>y7FJE+(g*;|i=!14#TU{2M3fI1>xHL;)3Q(BdRKLTSSMtdG`Ni{R zw#+YfbmH==aZN=6bgqH%`aBxW9xUC%d31IDJdtqw4}T-Tv1hiEZ9T;$!1iI zUAx|+Ya`CxwGoxswGrv=+K9^R+KAL$`(Vvb(-pj&pzH_u-*$pN54oX}nB7#_kqlwW zG2-5mxHEMq-x`4j6>gLc$l?u?6|Y-xby9}OYOMJ?YQsSaW~j;ciD0G*>OL&;~ur+p0(qCZ^!-9j^jeR zsz)CBemsgaZK1;+#sG`1x*E!GdTjhXNQbW@i_6s&*aJXas*u60gp-;iS)U^5<#4L6V(^S<5;%^rI zu4h19qRIT07s|@a06y_h@rzEv(ioK(2hq&SEEts|>D!Arbjtdu?^1)TjXFuOj2xx# zKhCjL*T*|4ujr?^v+UU6F5PaeG(DeYDBq&xsp2?gR&fE?dOsM4hBeb0G_m5WVl>x{ z5SqwECCuK$cuYZ=%C@LEKaVz}Gz{>0s#)m5T_>UdE5hR7oog*c=v)a=o~Y?x#b2+h zsZK*2TWBr*c+#rAq^TSWeSBrBbSjopLwuhsChLA`%{;YS;C@Ce4r;5*$$FCs>{?h| zY_f7h@t8*4ipD1Tm#hRLPn-~|Osvl^WWq|S$Jd^OJdC3+7IL+Q?(I*JXgnx1sm#SX zay0?VPxzXJx^Bx=O?^A=^iSM@`|-HniTeq---SDQayRbOyxdl!G%rKw{dOF=s^UJd z<36_I^fp+(MTj#v^DIEK?9A3xyCk;kULzCIq%%(KTY_Wj2#~&9nza(4326;{8)BBY z8u%E*!P_sZ02|y5EUk(2bmx}N)L#Oq(rfCvSK~Sw4K@<@Djk1=Weu_(H{pIL?lBqha8Y>LqoI2#mwL14 zeW-(;?5_VHr+@fk*v@8rK%x5xbnjjsgE;-fG`dqRm4DA>VUa%yyMFU#7N-2(JOFD} zZJ1m`Mc$q=ucVp@|ycU)ECo8gp1vcv4?0WDq&M6`7-8&6t2*ZL6x!vtrv7iYDrUBbOL;wTj3aX$-|oW7JM zGQy3c61s34UFSedou`DaoXPjg^qwCdiC2SZkP*eyg5C+p$N- z@_ZM)F;r=e}%W*FN zP0$-8pX0cb4waDVSPbP`AKG!B>QKJL4G#*()>Amn&s5w*J5F~jh?8TR${8TzcGy#z zAv03J2Qgsi%N}}g-cwQ-KG*(Ckonk&7!&4!^t&-8z<$%7k$9KpafaoiqU33d146F9Ns;@6V zdBrjbh5M*#!L8EJ-&1-gwUIb){kDh1JC%NopJHc{?9wWWOs#gtajV-;1+{9z+H9;do4(`E{FkGi}nX5VIWZ_3wL8deJtaaNizW z6Wl%x{XK1a^qi+%v;LPNy)d;#!Sn)ly%ErK&cQuJ2O%Yat5ETZ2Y{ehAV74N+hPXtfxS+K=ilm{bE6 zNJH8yDJKD6Fc_OU9B&*lPBxANIxwF!G>pCMIJ+|R%e9}mp+ajH zily=Yue7_pA~GaFYZu=G{y(DK3R=6!qS7u5LD}wPt6f5(UBOYif>Y04b)D^cymiKD zO#A-Wj>h7g3T9Hpa-)$mz?|_#PEaEbEKC?xpiVK$piwLRc_+~Ffg&pSC!Sm*4i9GX zp~JvqnOv)5mFhHf`^kx&6I(?m!A<#dVv(R(PvQfbvymg-1V*9?YY6;1VT_BNVEwwp1IICcRYR=;1W>g6cbzSYhjH2ibhOqg}hSq%p&jlM-6A7}>n#$kx|38yVdy zxkb~cX02Pbh#uLZS@OtM&7((-jOrjyJp}E9Ni1Ca|l}yX!?aKAw;RlsLAbu3_Ld4G@UW9lz;>C!+MZ5&@8N^EwM_HUiA9o&79ylorZ}>8(OhLJ^yuu5O5o>*^t9KCl>|3eTo1g(np5n~7_J zqsa*_&w}28%LOeL^vkcHQf&7_Erl$3Db;`+&op@EQh%rLT)CIR6O!cu!L3B;1ea&w zAI9a;1=R9tSK*VAle6$P^Nf+^!8i4KmPI-NTrOyOlbf$%=#kBqLI}wtIG2s&p)PgL_+J;6 z{gYS$p>Q7!UvTp@WT!UhQ5|y;I;WlmSV8}M3+rwJa=)jrHCS+Jo-2tV(c)7#x>!iusxUBC8ZavVU4| z&qAu;)Wc7OxC^P)SJXqgCs+o~rqswVPJVJE$s5yiLNF+cl0jK05)D&}SIZP+21h@G ze~L@xT!@Rr!8zg_m&y}dYwa0!gO;+tJVryx<7AB+k*&HTe|`OEr}jkp;Y_Dik*W?H z=5PoRgWr0rU>=t>3t@@P)X0JhVI0%Mf%5vALAB-ODU3u zWdid~MM5)N8ByUP+7rw2mu^>ctO5yz`wrlm;NI6z&gzm$G2hU&$Pj750vsJBPMCm=}=yxng)){p1Ha1n-kSi=!rm_brQKLlT_B*W|mVE~`QqK5%7L zk1Qg&*vNfL?v>hI5IxjYaa{0$`qZP;kuE=lZ=m3-ucK1*q$S|`Ri}Z`fvVp0acOCp zxWBHS(PCTi2D1p_$EEX))G&Z!H8w7Ko(qEFQp9+TrVKsX6#T<+|$8YXO3G-kLQwyUseSW);Q%Ycw;T+SxT)^Eb!DKy8= z(nJY``xZio;FfAApBkQl%LPsCCg)RVcNY^pNHRqTj-54rcT3eaZ1Mk1jdN@%g(oCa zJHc^kC%8OoJQtU5D4@n~FR1XISw(^U>mqfRoIb;>FY1c_HwEXbB&6Vku*DeS1-DE? z`PBMUTz22ea+-P{mxCOG51zTV56GBJPn94qkKn9uSFydL+PuuYu5RP?bQ_Pf za6(dW!Li_iEBwSp?}1e}9P-;si(y0z=dOtLgqHJL-iyGjRtdlaNX4?)uAM0Zr`Gt}QGf>CyzpE=_R3!)CadJYL<2{e6-0 zTB)A32c2Nb3(b900PtnF39DW-Wv&_bhO4-H+q3r7`hvM_EY45yM#auO7!U?eSQGbP zuidqs<@x!su6#EqFhMU01s}cQ489gL8e|<&xG-N^K=j#RcrH`kv?EU$$kkE6<*KU_ z0CiH(Y(U%_ALiQ(sF{Mo0R4pHcN~wqs(UAJY}MOwta5qFe|=~5UkXs>6oZU;gW2pD zhf9t-s@(d-7QLpN8bbwkf+$be${~m4W_zM;Sbhe4f*_X@#_ovcBkqCtS;Y7tfik^l zXj42Np>Q9U3I!LTp`Zm1yd*dm+_XMFV!Lr&-d)R0^Bn?I0~HhI<4VzE z3TJHiYG~SR!@Tp$HuE`-HUAfFI2Rf7hA6CSa9y0$?66^?SW&4F%7(dAZp=DLjSLdv zvNCce+MD(EksUQ6aZZ`oI8309Xz!OJ?y8Yz(0{}N{snOw;$IQZL;M@!<%oYr%qIoT zBBp;hhnRlkQyee2o?opC95T#JYR(|ful`Fv(5B756z~ro)XlG)oYu3P)t#lpf~p!b z{>yCscgtDOGr+#-=7D7TzNTnl;@1e_^DJm%g5xVn1;_4qjiP&2L+E<(`%#5ksUbb7 zQvI)esc!7t`3sSXIIkJ%nM!QB^IZp?{2rtf2Zr8|Z`-W`VsQ+12zjY49bKvWC6WKQ z`?m8MXBXWZc@pOr14x`7yJ&HKbc5pjG5|?;JPD9EKjX@d1LJmOcLP@s$4ngS{x7<+ z7-Y;F^68EP%i*mYJS?NT>)i#{(gyff5oaUbjd&X3J&0+dQOeAsG=wiTS==8M7kG1h z@c7Tq9=I6DY!4imYH*nxb5}gr0h3be=X#E+KSg047zII`>6`U~VS%6ODG>c+sh1C% z2=l%s^BgX^H%8`emgWFxl!E#IstIo$#>a=$8vw(6$$(PT)ms7a8&F|*t*pGL4!hC; z3GXaG{03B*Zvh~_SuIRGk|9^u0#{vKeH>7lx@v6l2rvU&L&O(=YlMScbzB9UB;@&~ z#V(^$M%)^kgysH}tTt_&zX~}G>Rj7SgSh5TyOB+A>Z9+1BI&G05^3%>3uJp+!HFRalCjE#v178y{X_BEaahHVT zR*m3((N}|qfvD#Q&M5Ge7OcnzZ68?*2KNMvJt$Xgu@Tu9dkJ;-%ox=lpMh=DMgs*- zz+|++&TBV%F~@_yRe-v?Dp48Z0vo6Oz?#53@r`KEl%0KoOQ|E#s)LYh;0WJw2Ektx)48`JX6IoT6+R7iz1g=cY0zVn`ux~JbmwQu5LgV+P1 za6T`q79jAYIt>M_HOB5$g>qTKT|l~Damw;@rKU2DJ($tx;9j1>s6(C<58Ry*R3QuR zcnmz?u>B@A#LS0#I=(?a1;aHLDLf&0@=I{5z$G}RJN7h&*u63I&6p+ywTuUVa^GQO z<73OHk7IZK`cUIw)PF!7GBPgssTsNvwhg(PYhV4&whv!a)?w|@O{>lYo5zSWD* z4Rof04F~QIa;JHKBht+ws~Y-_GSZCti(Ap{62)L-yf+FH=9_CF(}#QqjQgbr^q(9$ zZ^ZE@bt=IzYSu55Dflii*W6Olv$G~9(87a%DQk~0l7nKi&K3vk46JeLrp^v#5K!)$ z%It6%%&VE^$WQxwwf=oq)1aHmtu&eu%gdX}&VHpU947n>-&mYG9C0_q>ky;!QjT_3C~E z5LF-Ru$Neuy_DgL1GC4`LJA^_1rcoU5=40IVQls_mn5^+eJOb`-EJM1FW?q^lz<0UUio5ya2`8-pLK z?7dAJiItJlh`hlpC&b{=^k5_B@W^fC1GR*HXqMbbF-8CWQvY7#`b}$OFxTIepK50X z`RNcDC{MZ(&)o;=gpGoInz{Rcwx*09?J$=(I2JY78iM#k{2qpw!wyWT)Y`*x;KsSu z9_U!;x(k?-7t*@~EBhZT8>l*82`iF5kx)3FnpW=#EWzid6%_7clNP#z7RM$nxX&$) zO z`GjYl(<(Mvcose3nZe0TJxFPySWSCjUO#ZP7r0V&Kc)fV)2@jxdh#)u+&rI>oRFE6 zn&rMQIOJwnIkKC4ncZz1qu zaNf>T)j~UO98@h&12f50EnH?|_L|`M&0Q^pGW9lXrv4XhQ!Y|dYFe)AHYG4r6Wh0_ ziIBr`6FJIY_vaX8Wb)QWoVoXwsocy$j%zKb?yt$+j)k#-+Z|x*3Q;~MEf!|F8h-;J z2YAhIM5>1$#TVgP&}~{c?Nl|;Qe+(u<1)RDmkdbO@v;C-Qgpe1q&?jO zNER{KDGi2Mh4~%=6nw+tJTOnVs&yl9bc<_oJnX90f4zo0^Lu&Pte-m8V$C=N6>>Gij8WCVCDQ~2T?=T0f=t!S z2WFtFYT5(GtaIew*RHA+E5st^)PJ{%nNMfL{J0k$>%#9ak7x?28AKvxexYim-jOJ! zsFx5vHIHk8+n^z%-oRe_`*FqnW|m^W71hVkN&qDMlSQ_vYOzh3oDmZon^6zP=k8TD zx(2_4ocVGuvJKOVZ0swg?1W^IO>j?vOK`R$j$yCE6dk=zoO)}U^g4fIA!H$^tmt6^ zEN~NgSwy|$pMFDaw707*3%MqPReyC-omH#9;v(4L#3byFL#}$G1Yy1z7BY7G5istr z#IcU)8Xv-OksYaof4gvkK|x?0MO9yn5gim8kI!s7R!%tK^3J0KL!mk#;__kxDPeXm>GevA9S z;;3ce{n6q$rx%>HAyjh#>mw(?fTz&a=Mu`Ws$p`)WU&n+4c8mNB0*bL)p-X%H!A1` zKuj?(EPoQ1Q7*65A2@1*y59P4YTrz3rxs!vK?Zv@*&P7NkZAg=1=BaMXz4_E_9Li*qh#p#rJ|d>&VFqFtIS z2V4mp^a@w;hXnHmTz`7XgiClat`?HJ77n}|p3 z^vzL;+eDd1HeRQRj)#(%?+J*R_Z+RXhpf^F$@`fF_Y$ZCm*4&PJUuJlixX$}M8+!r z`g+&ee)ON}0^fQg-7IE&e#bB!tGTq_tC5W`zCqJhOF?0PI7~l?!~MV$JdwJgJp%D! znuvr#zxT!Y;%udQXG1sAFtmvg)yDwUXpmJsXG^g_-G(L)KVsg!!aZJbK;=nbJjpU~?8I`@su@B{$c^kU#GUZF2x6AGC}Ps^O+8}ygu>Mh9l@Q}SHpek zbM(-6&<+Y!J9ChlS|7x?yb_?HO7C2Qz5H^gFX3oB)wN=aHi`XfGWz>~u2Djsz9cbu zVtUe;)DiyF^wjKByh(OaN|ql_82Rgs&CW_m8k0bL0$!jpIwPxIy#oA=5B1^Dp5LU3 znE5#i)5pKPzg=Iy2qWHViI9xC1qc7_6I}jU`YS@;f>WNBdK#|u#Bu)R3Nn_u02udP zfJoq|r2E{o&}eu zp10w$Z|<(Sr5LBg&aF@fjSYUIx~#ab&Xo!TUJzPfyZG&AThe1DCr7CTpLSevqg z#JmyO*4im}!4hf)*;H9KM>16vL}3DTrc{^^7RfcPh_5dosb}2T@KsVAiTY|7-|XuP zfmXus@VL2Z>|rJ_?zii}9V>gtMBLljgD=l^gSSTh4RfgAD_NFiAOX*OatDtx0=Eq? z4{jTPy(k-ifLwYaH0fOCu{>gW8rrSO-)$ zDGO8a&GV{w_%m88Uhy3;3M@1Regvu?-OE*=lGXcVACs3D9)U@avZkQl=4mdd^lBepYs5d{ z_Z>LgpW&hNg#mfC4(Dgp?!x@j+jKXh4#X%4g)38J4VCcS#T)?=qZB$CrO=%Pv|jQ4 zp&`BOqQ>NbZLdyylDlYdk-EOG00gD_?EN&1aw2elJur%79^4y(sHLJfO5?ck61DDJ zwQAD_&H&Y~svW#}1T$D+5{^B1(qGaA_#I3nq6@&k?JjGhhG_*UR;z?$Ly+KB>8t;Z zW*y~ht;U~Ufv?3ml>YZybSc$7yCI(f1-EG8iokkNDn&OOkhEh=X*CC1w6tToNue|C zcm^=;Els(=vAs;f(en~DiaP9#2krlDGxj_R!#ud#aZ}VL^A(MlJ4~_2n#(*kL(F!Z ziz7adLEYbJ$F9Qs?Pg4C8)mJIP`L6h)OraYy%Qm6!$QY4EOczck0@TYVM2eW4U2U+ z+i-uhUVe3mH^woI$@^0kqq%{GAArCD(P;I^Y*&86Lha#-GGBd=FIM2q4Iye7(V*4G zAfg-}gJ@kLWZb1bV{seGR;bTdkg!mnu_$xrt$Zmndf*sVH792%0p3u`Vl;S#S&rp5 zHew^P!d2X4!lg3F4zEy|Bw-;lIZ?kkTIWrDv?nfM_f$xb4`tj9NIsPDFd+F*29{y; zhcfm7k`HCP1Lz`LZWuN!AgFf#F@VcpF=4)1aDXDO2_TWz6_Cj511L<en`r0{(pWzstinlZKl}=H(@}U)&yxt3{U@+IG>EFC=r!Opq3DhBX0E7b(uaUT} zmWklQ)yN7tKb-B+=?CnRGJ!L0(d;DQ%UJ#!1_DuxQv zyPsrtt^J7${+|4pa~w2nUhNF6VwQkqMPDnV8m1=9ofXs@xYi0XE&FX?-0$xj1RPs- zUmPc@;3UCuiw6rGcpkl=t+BHE$@P3TUwoC&B`IyhxHQyA!lZVQ& z=EsD))*iGSDfwc5|A{r27~5bUzs?Q1L58kr9(05B;-k8=hZV?He9Sgd8WnoJeBQ8) z`+W}}t-F;8V0GU&4R#Qw9t(I(;fz`QhHGxK*Z~|H-}5+XRK-cc|I#dCOd>%s&4M-% z2du{i%nGHxfcG>h6G{xw;$8okBm}*Sx>wTJTdn<^0Vz$!1eTlTQw(uWjl2!!LS1Ab zZh?3#;?9V(5#NA#0%ACDUk+k8Y~SsO*C3vZm`<6EP|S>wJh?46ZXpqzV?94G3wr|0 z<6LX`TqfWwtOSllm2i^qU#b{>>?1iTJ4v-uBRe=Y?KA>t$2J@@M|U=E=GEO6G1*pY z`dH=5Wf?9*OeJ-)N+Kj5G!fh$ebsC)U^9v+ypk6F|5lR2nH5$^VOmK=w33QyCDE~q zB@q%O364qE*z7{u(ET@AUmuw7yRFFG2S11%l57PJA*K~QtanUuzmzD5kbIRyaJxVyxI7i~ zDlX40KtY|bu&hG?3UYOUe|uN(-&USyD=+=oKUH2At2{#Cz7HWwaGZ1q?jI>H=KrSh z+CfpC=k6}0yw%$B)@aLHt1YjqRURQxp5UlF!D;0cc*oqcd!2d@43;-SnEUZ23_#Uj zxdGxO{|j%2S0D26H9zEggXs^bI9GoFjN2ZWS9h0i7X2g#)aMYh4Ci&f+0m+$ka#=6 z(c1~`AE}hJQFxUu{{N~{SMPy>7e=LjXq8^nD*aQdG{&lwkf>B}RH@*sO0guI$5*t_ z`}$*Nl^Ox6m$iS)!hNdFqdu%w_6+&i=IhY zqf!!NYLbwWJ}PMxhIBO22uSq?v(n(lrJ}B8@75>t=Qhz!*a*lxcSg*7chMUI8(Mu5 zlJ67~h z=LKrNAE$*J709%Z!>KS|3~-AS)DO^N1##3`PC;RSe!{^oi%xd+hg<^VIAI))(Jq(% zFSmW8Mth}<8Ig%^wkD+|jLgayqbf57DS3nOIB~e-@Hpl@HCxK5l_YunQdK?nf1|lV z>W|7Kj7ebvvI=k%CWEaIie3$V)m1Jj`H_JBszuruqfh&Leag?J<4M8uCHrY@gA%pvf#r~w(g5DNE2p$-Jc_t*)}HqLz34!9SPk9!z1 zl9hxq>H$e?#8O)Y%@aC8qnb0<5ST?;tbAf|T97$#{5aTU4nu)sn;3v2;h(nSUK8;W zL{-;lm3aiyaAR=I@$?6$bbg@phiLTo@B-sUXVoyD?y6~`+jEp|$4wEp2VFGcIK<5n zvs^9o^#-f|+yq+II7%UX#~V*y>aT z)|p!0#(Dwb7*wtL4l_RH3=w!_KwsVqQE#|@+k~OjlMuyZ0Ux*xym@h7)Hi0?yO3-KDnbr91{)Ibf1n;;~2m;|>{Uk&%| zwsf=$p*v-9KUmxai({<{9iL_qc~vwNH1pPPkO)k`XM^)bmv7+BM7l!g%l99iB#1q9 zP8yp!BJerv1oeUhd9DxrKwnHQVJ6Ba7{1`x`2Pr?Qz6_jhCc&Tl!Kc2aL*kFK#$DZ zK*Y@2OS2 zjCv55J6$^N3tTN6J#i%d*Sq6>6OuA@&0srDLTYwOR#J9G*4RS&YFEF^61}dfO8Qx8 zMc%P2%j6z={erP8%lRu}mi0G1mhE8ci;!#}6x?Z02`;$43U(kaV}b;PGfSpSPliTcuL<*U^tbr)7i0oNs6GfhHV^EyD{nl}S_Ae6@OETG_( zTsHBWTxPNpIJ%APINqkcOUTzX7g+IehCL|G$5GSGjs~HAS+ESq=%!gL{c8RGDPuD8 zblr5jEp#fz4X@F^gWNDvFo9)db9dfi<2$NZ{%a7ki*JayJK{!&hahf@cogC^@& zBA$-88RGefnRzYF7%BjQeINXmCF9NP9j=4Cty2gtCe(KOa>DCn0 zpWvyYf*h2w(-`F9QVxn6rD^Sb(Vbv8VZItf$-Xoe*zD%&FM(h({pahByWBcEp*8cOcG1{4!$dZzp0JB44j7;{ZZ(TS0IUFfhRt zdQ1vumA6?rtVb+t7(E>NF^)vlovt8On6H{pU<#sFvKH#+qU9zqehIhVd}+2nUj=0D z5$ns2*KPYTkoA{Aaj_r2m2VqL=8L^`mrrF2PiKd~i>jwf_UY`;*n=T$BT$JMv&D`2C77A6q&<9~7oupjA&nr-7@bAY@aTgc(m)Qs?L$|FyvetCqK3dgSQ_;NK^OIB7xBl3~+yjjFkJ7 zmF_zS7fqlpXznEur)lI7bl23+M~LZOjw0@i_+!LO^%KOy5r2x9{`VN-#fU#c{50Y( z5WkH0OT=#?{su91eF8C?K|9otGy_86zT+16wT8lde$<=LaluOHY}0_r=JBkZ^`P3% z(rWWD%gFr95{4~iDMP*5$d6bhEil-!_5d^9)pJuDoM2Ov_x^7zi%%~UIHC*OlfSf0 zab|P|d1Xs8fn}gYaKLS5RR>UWEZ0HAY^m=eZiDze#O!uHK+G~9M$8&!_aZe+NS4+G z_p!dJH+8}*1wAR^+>a@{PpW{S&gE?8H2_tDxWE|uUSMu>RRImRB95zZd_!gximAcV zzwfsOrKO}R?fbRh;D~DR$qIoK0@;Fvf!QqmEfc? z1m<+(aiy(G7sY^MHS+kd0!|VV5-^0zo|rHyEn_&=?&RK}DwUxKj#(-?r3j$)lZ&Qv z4Xoez9Xw3;0CJ9&Yxn!^@QG=h2U1LfP&hv9hT8`Uw@^czyW0JcfdbOsy9-zfxDxs} z@;@mc%S|idbjC5La8$A%S4?1j@+FTnLw!pDa&2hZ%a#gOIqV~HDm)fPp%^mEE{5a_;zFD}@`#t0_ zHGZ;_ble}EiL-G-f>RgNrwrWd07;=TuN;n;`5u9o?j{nY6`LX?>i~jVrLW35zu>l6 z+`m-!!hF=tKG6MAT&KEE=c{h_6i=|;GBBO_inV?Gw5$TU?s$i z)}>FSuka(OFg3%grl2mswNQ}p8ZQCkzH!})8N$I%|52A2|Lfk>Q89kV_Xcxofr@qv zZs>Me0p)t?l>-}Rl`!w_DhbDKNal#NaFFFCKYF|GFplY_ImZD;-@G)nsVd+o5L@F{&tD-QQQWvnPFz}c& zhQ+!^z{R*z4fraorp_?eb z4#!I_8%-#<8yS(2IkCX0z#_Gcl^#e}NH^}WYpSr!oi;&*jaHpY46s2~s5%$co70am z&u%}~9bE~_(GxMtf=3bMqSf~#XaFx_0$ z(H=Nf2P^N8%kn+rf7f!BA3WY*JT8^%m;spH*|8jzzhb@jmzYntYU45PXWnl{%={osy#oG{)d;Wsk1uDVC+_Vi3d;JxdSKfw8?#C>-_zMYq-paSlrJPH+g_Mku1x}?G zso4(Xx|=oAbT{keXvWOP3dGFI1G-t)u>~b0U*;9uJWvTPc*KZyo8Qhbm`~)~;;oB~ zE5z=wH4yKf+BnCAFZ@kq-G;YuWG7_fn-ofE5fJYUW<2i4rGXe&bFY9IkJAh^&N&`; zD>tvP-$E#pW530S*~cx>%B^jcOGw^TBRGzT1*exH(fdHLj;FBM7mjeXG!}|0Fr{%! zVS*BrEBgoUYi!eIR7zoYYTtU3oe0W2#jO|Sjc;wlzpu8=*pGNSBlG(cV&?gbep_R< z)e9l{EP>#j1(o3J5^bKnH9eL4$+8NN73etTK$3f^$5AO4A6eBq{+@kdwQiJtgvk$X zZ=h+>8_{Pu`{Vo?Df8lPq|ISB%-?m0naAt39r>-k2!;Dr;hNyqX-F-CDt82rG%etg zZlx5L6|p8DMlIAYC&QA})#ePTieVw5243VIZyvZl;FpUX;DNf<5ml5Tv+@$@@k$zEU`PR>nz! z^!u*I2s7;LUR`$eS{xLh{0U?E;4Napo|+XgDZ*#?tH2VDht$2%x9*=Z-Gj1c#+h6)+4%lM&F~k z2Rbb}y3Q`+<~kpwsci)9thQy5w zuWVZsx|N!PMu;tPc}!QL^14N<-H!Sq5!v9~@Y!U(0z&37=2eqwV+*@lrWS?)0lGZ} z88dwun5Hg`b0MS=j{Z3MS&jP=#*fr$mW`{lHE*DTX^Ano)G9*t0(f0M-WI2@vA~+q zK}Ob?q-=#{wxWaIP^{VG+$n2R&s02B$Bj|Ffo2#DhP;Pj%zvb-wx*+# zWtrIdvRv$ZSzD!SZ4nB`*HsOUni1Ul7WbjW1rpM?B9b&YmpCn)-yBWj`nWo;);0JBQ z1eS}{&a$%|G4MfDmUR_krnU|-%e`Lj9*nTnPbl2?9NQpqsx3%`&Lvu^id`}XE_8SM{nW4U4k;vQW7>a6Si6ofymK6kVclI z!8$VGdCMUXIfi)3QQD9r-ex%jB1fWdIO@Zx-R+h`AaaZp4s8AmkCr-Y>`3DU%OMas z(u9L0Uo0i(%VSJ<(Q*hxj;sQ6^^)Zfh#Wb>;jj{8!%Sy~p2eV43AGWi&HU5gP=yjvv&a%>MikD_#OOrOO!-bw-`&Vjh>wnAu7Yv^-KTO{ z6)Sq-i%lDoR<=o%sU&EYC>j91Z9M6))0SBvmU)4tr2iyg4Mp{TNejzW*{OvU3ZfR) zt9)0*7D;1s%sWdI(83y9ww=7F!!D}@fyncar8HWA`O_;o+D!!`0P!nUhCq}dOGzR5 zw3}Bghd|_bQl%Oad6}<5bcFITogHcHwj2VHT zgf}dQK;)1`oDh~n`(xgTFk!#t5QrR~dUC}T4-?+B90HN!OW|kezM>*l>YRD1)$8rcnj^8}xaBBA*%OMas{_t=RYr+A`ArP-! z2A2rCa+I7?dJ_&>4uQx~OmQf`m6f00s-S2ng#%3!-nG&MqO{VAvLIg?so9M$t!!nR zHXfzq*6!EzT9PKjWo6_{l=tgIXkJFma2WsWK>yD`WGX1IjBXsu#6VBT!2DIgaRtg4 zq85v*DQFpR)fKb>P(7uAZGh@4sBH9QzH(>GsLSm=YbzQM`@ZE#hxcq<2*kSZD@vnP zLkXmBjiP3c^r(V(jdZaD5a!`v-na7y!X6w(PE*A}`2w*{1Y$`A@>?h*BGebrxnyRE zIG_;fN~F$`i$H!TvysZPo2!QM z>G8MA(BH~7WoV}4q8&ChDKY-H?atk13(~VT8ns+W>$(YflyTP}1?2!YLgiceuV?b} zUx~JC8(9P$4qLqmM7_mZN~4A5ib{sgGC=fyj}j zION5HYVlU35Q#Id{?p*rG&PuolthDL6{LC!t+(Zlgg&yl6o~nlAi30UJ~PDsi(F2z zxtuDwQZk%+>g(Y6%yI}sjz@&UF}83zhR-dBK;(F$K#t>DxaxJGzUm?6e6j|Db^`vY z9WL`#dAC9)Kwlz`5X|(dWL3yime=>P%#iAr`HGh-lF6~fW>rd#4?b08;|yn=!qo<} zK|u`xZB$Scpn(c%WuX`g#af7cg3z&D3zTS~Wq_VkQZ`r!fLhaG%H@thtX==~!Yc*P_>Fi3Q@^^gDI63Lq@v;wrTukRQ+)b+tAiEbZcI zq=l%N-_=!W=Cr!XzE>dX=$yLR4p5f58e^fZfY!oUpt2F#sI#1$<1Z&(>IDLI4Y6FG zEBP#!)D_Dm5X<$Iy2^4%{jppE`2l^St~&jZGv#=dU#2DyQ@f}*%A&;-g&hH*0>>vUN zqi`6iVTyus1fs44a<(oYgGRt2H;@AP%c;~0)&pMpq3iZeiqzqIs|SH7t%{=jJ9@ZU zaZnGn6=X`tT&~Yk4{SGv>Sn74fv5+83etnf4Wz)F4q9eWv)vLqLRu=*>HysqE zsYgR;VluB*Tr2?({7^9>rL7){KZZXYfx4szS*3V+fhiQzYPbe5!OdDdrw}`HP#)Kq zP7Dqcl9VLoSRj^CAnH#bzl9b6Rq+jCpCj z4=?H<`JhCBC=suXq0KtRZM@5E!Y?)t0+C~whl6D_;aAHc5IIH&Mc_hwD_ z&2k7tj#S}rjKZj86MnZG0+Ay_IN-g_-3jM9;91Kd5IM#PhhrVEw@Co;Im;msIq*Sy zmq+N~;5ctN1R}>B9u8+37c7TBJHQ_JIArLum2a&mQa5%l^ArLt>c{rTwnZ+%K zK;+n>IMh0go|^&bTI1NMXoz>Vop38nAWGY=C<~f5MN$j`2-P~=t5&x0GUJu*oU>VWkIF(gNgx!s?;A@ z*{0MJ1Enq}b7bc|(b6_mftcziN`_NUQ<#JfWh{q4aQM}OgPw8zrB zhH|nZ81G26woO$arkbW?Dkz=OfD7Y>bDjFso%aab*SZM-L+TDus@6^Q-E8En?y;2wXc+>heRe_l5eM&}t zbotC zj&|7`IS3U8h*j|GnAgeihT@=4drLtkUz}5|Re1xTW{_MJQvs}oYNeu}9Dz8e5vZVf zpvVoRK>l}B>Z)e+9RsGtD>4V^^t)#3; z5^=OmRUoGNxss7zE4kKk2tez8fY5soMv(({WDFiP%bplN zuuFV@d;xxJe6M~0n>K449o;y(W$UQs@u}$}(#9pH#OL5m+ZkCCeO<7Y8IQf!S@;ae zD4dhiS0V?jR>4}1811A!ZhcaJB5!|&?{ z+&Et{a2cSF_C;X_cWXdh@OupY#`)55E!#H{xPidNqb@V>mj)S>-%n$k;;v|8@JFk2 zOUQ`AOKjr7n~of$sWejXI|njTaAY7?*wO$g*+{(&{t|qh0Nnyg;u1iU1YXH!8fX)+ z`#lA+vK4QF%6}?!kPd7zB-K=Djo0{Olr0HqjDiHFm=3<0plajy)$@-`LKP)9_T!iO zz^XqH>B~Ft{n;5A{cb~6f z#kc!reD~_S`+GciSx8FQ>7QREH!N-dzQ8v&et6cX)U5cf86%W2j*TCY0eeYJP8~Y} z&v|4`j31Gi*$AHi%Sz5n%F3SDXl&Mq_)!@dqta61?YDX3hmT85OO9{axOwBKcoNtv zjgu)mW%#&J4qRsPaNkc?H2C`Q=s&tN>GR1;?XUj+@ml@5J~()l-&eKl@6}q&9ohb? zn;XB``ryOU2mCxYsaczIUtIX2dQ{eTZSH>Z@o87ANLc*nRox?7%ovyQ*xW6xKDc{p zgZ6uG`t4MmVlVzSuvn+L3lrWg9u-;P!^TgxeCX+`^M*58K557q&vohuW%4ZL6Y4=6X zhiA1qx^jKQrVHJlsQXUr8@Jpv?C>MULT>rx$uc{CY3{%Ha&m=cLw@RTW%)Y~p8TWj zx#=^H9$mWQ^|eL9KYz3Rl&)d@D<6KU){>UX*6o>p{KE6??wY$P;=ucdE=H~CHt+Ik z@3pV+^5}P4%)MdheGT8e>xWN!#w1Q|I6b7_nm_v-e&NXc_Y$vqxyqmowXVIrPqDQ- zPd0h+%3dM&8vbGnyS>_K#v50C`p3IH4_%)9=8`HS9{;`R@qx2{eR{~8YR8Xz8wr6DxhXrN)P4-}`XFxhrNr+kVXp z2WNhD+lRf(?~Y&pXK2kYYObtM;n(h;U$uSL!MEF9Q!DrFw!PmeUFng-_3!$jdXaWH z_iQ|7()*>tklV*Te!bOCYLzMX>^*mMs=5C5wyswXUSFq``5iap;eK0JKmLySeduh} zhn`z?>s?QF@33=VD^?#kxp(i{ zZPOl)@4V@TGh5cZ)S`FHv8i`0__b*Lwin--_3pbh*ZR8DyKmU}Rvm6Ulv_M@^pJV6 z({o>)-)sKdw5Rrcy|T*(ah*o&-0@I}N4k7+{@AY%RxV%r?5r`*bU$@h+nZj0uG=-+ zr*Ep+r_oy`z3*S|)x2q|u8mIanJ_nZM3Fw@kNirJYBZi#5|*NTwl%@$O=>GcOcd9p-g?q$#YF=s%Zb~{4f zY4}mj^Tk{C@U=}XSMFTP7^b zeX?xY_kSd9SQY>1FV%Vs@0<41v=+C%Q@>W_U6m$=r1$x2OVgOXJ*S_puz%Iro30%D z{Dwo9N00kY<4=q2&-tW%iET@-ty5ywckS0*zv<%2u2)Wo&Ak}1`nPHIpS@>6*)`XG zUaC{`mi_)n&nXjibn%?$Hf225{o((VtJv|=w%^xUaAeM`lJCz5Yx2Ul#&h?6^YX8U z?tS#-Gre}St$cd*m+gim9UtGP^_=H37e4%b%~db%D_5dclh*q>zuRuv`dQT$q&7QP z{GM-9_s^_!)t85_DZXXLP0u~m@rKn;OfJ{<<64JXjDPlQ?H^BEc;&(q$F420V@rj3 zZ{NCpQnv?-zIfxA<6pPDJ9^#~BfhBh@o(d^&ef`R`LZ($AAF+Jo7)XtnV7FjPyT&v zvA2u-+W!9EKR))^4?lK$Ep6)VapPvstDZcr{?KWo?n!Ug@yLvt1NSFqmo3sQ=jtBs zjVo6nqUIH~8%?a9YwER(ztz^pqvuXHzgu2tUVGmIxtq-I6SdAhd2DOzO!Ir_@B5oH zTjD!neoxu={Qjn;b4!}~JU;c=oW;*9=wyDEd+pbEH#I4}I=1}Cfvf748U0Gf7AuZD zKeKwBMPGh5Z{3dXhdn(q=dI&A!+TGt*Wkjc8k2ihdUL=#Ej}%?@6NL6J3c@E^uh8! z&dE5|dG(5YOP-2*Ir;J(r2Dn zlyYd*obwecgg@1K=8rqaws`%a=Zg(Fv3)`H%Aa-oy67+8j(Op($Sx=E$#{A5(3exT z4y>MdZRuhICcm53?USM(mpW5-?lZgE`PbF2zqIJ5huY0A(;>3VeLcUZ)BHl{_sj1) zRDA#SqpE*6dD7%-Mq(NyUO(56#3JTj)#j3J$K;p_wO4p{fQzsPyMLHkfWJHPfl)_K5NqP>zBP# zXYc9-qjEbB>NjN5feG(l`}Fe3vmflRe}7u9)?c+tI5;OV>zgUxUfI1-y9aOG`^;rw zWoGs|_};F@UCr;Ak*Te7-UzK$est}(vYU)q;j203KXdk!`fkJY@1Cu-bVS2)yY{91 z71MhEu~FS34h-y=$jQ z-=w!=+?oB$2Mk&MaCpP3rk%N^%D7Kotl9jI_0?ahe6mvf`>)n<)0_NF{(kkME8p1v zkhy+7amK3+k{did^{vi3pS$|w!5fPox^es3gR$ktW)67hqnn-|d`D`#`DZ(PYp(A; zv3t+DpKF}%(KM^|f$6J3i`zZpH^2Sz8HGwB(97{5>1K$nqKbPky;+Pwgu6C!74eQ8sta&=%1HA3IfhX~M4P&0}_z?^UP6 znBh;XtZ=+Tg~22L^G0mMzVUB8VE9dX=C`p2BQNXXGt+O|+U-(q$6P<6Sf5&ZA4hL$kQ4sh zYx6IEto&1rD@|DQ;eia3?_IY)cy;*NP0hBC{_NsygKm7u=-Jd$=8ACxuHDpj=#X8V z>)pO-Qq?QM!d|^M?#=M8!oT`z$%>j?4gct;tA?#>vvABaTOXUYucH6CSKqj2cDwDj zoj3Kc^|51V8_)fxg|WxQAFsOpz8Md`xFY_xx9cxnchTgh%<${KY`LlYhW2rN<9n}Z z($&a2ddKO{_uQ1S+0@J0g-6!R{3^@VyZLSE(Os{F{q2_jaF2|i&epo7$MubJ);{&| z=lwel-PrxzhuUYGe42X9-uq7dYQOoHbY1xJuC6b=bYbp_O@GcSzCSW+-TCHSzicz( zwUFxfb}e_fq^WN=-<+G1vRjsaA-K1}k`-&}_^I)|VCB8k< zWx$oIZanwtsVQTspTE6mdW1>G*khM|cRsTwrO)i{+jd8HXu4#wDR*dg@tGaAZ*FXU z-;vsU$B2X}&3;_*PTkS9+K<2O!aHmFeSXtoQy&CAo{F)K_YU+{U z+aA8_{PxlHVoiCjTtB#I>E!7(-1#?lVfr!m^;*+cOz2)u=~2nkI}EYe5POB_2;0YKfSo&gK3ZE`nPnC zZ+151rYNSUf1Yh%7Ku5i*M`niqZSai_bmNt^K-A zZoQlS;ADgHyMH)d^G0_*-M@{VCLOzHMEO0pj&PU5q_^wfrT1z}$Jl{rAt6#y?amr}DIQ_r8C7RNK(Z5#wV|-LdE7pT95c z_g3ok8y9~#WpC(rOQttkym>(8udDAUG07b_tbgSFPeMn2Vp5J7kufH-acXkNm?9zE z2N>#$8JUul-8d?Wujmp?Y6z<&Qc%CRzI=q3YuI*Ttl9>_`!5T6?ocJ(I|9joTG3AFkBno5QM3TU&IDz8sgWk zAWRGVYK0;MXkvg_Z)qB5duK`icaIOIS8rLmpa(Mqa zG$h86pOPLqtlQ8K?gOA!-p-xrsaMKjYOr?f{7?{b8Oa8DBRQ{(FvoxE~*uOKw! zN1RQ$B0O@anM=vxe!XBhV`sJ0Q(8_@mXKDz}~+D4LIPHhQk_kwc3J4T;4W+4c<@-#yzar;(y@+F?VF zoW_cVyV017FFyMd4-&ic(?rp*U6}kd_Q;7+GzIIYsiJwwAt%ZsCtA_OCB|bUO6p2 za$0!gv{E!9kY{@Q?z2*`IoGY{)`}(vXwxoQdE~TFGzIIKI~7Aip2gXetBprayF$pJ zHwd=pb{;t$3L%Fhh|rKPaW?ts;E@wk2sxb;%{GUe7>}IJg^<%l(Ky>_XOEn&g^&Z& zM7ci0*_5lRM@~0I!`)P@?V@weV+iA}caCa8LpU-s_1?`Rhb=ucWH8S-avR_#v_}p{ z5uqW;4mq(NIo%bFv7ZK;58<~vKO9A11dFpNS9gz`o`sNuCI>n6&qhv9j~w>M$TQD4 zUKslFH{SeklqKz*qc?`$9y#b9Ktl~Ml<4<8oQ=C&>`g*LDmd~J=aEBC7#d>qleeGe zFh4ZJX@`A1a{3oS&HzQT3umLB{vJ643n7Qr72Hk-dgKf$gdAmEA$uJ88RU^Oq!4n3 zDjKJpAs#vO@G^H`*}sgQ*4bNM>?K1(avb&??~y~#EdH6bJ?!q>U0yi}isnn4nHIy% z9yy7?UaH=c6pgdq6FqW+M1iYC$_=N6BgG)2RaEyL0~ zPtNqp8G|dq?IO)1CtcAL+}<-3&09Dd`$_l6$y79)K`^|2{d0Nv`P*@=?&R3Y+H0ST1@#4z3=N9>U2z#OE~b=zNY(ui$LR5TnVB01l;Pi+0n zo7N;nQyl~>7sEtHS|aCmU_(RLJ5$c_3s0e-Zd=7L4m3_%z1<@RLvzqH*K!&yo0LbL zPE|C!a5njw;*kTDLC!{;i{tp{(UpkY`N>r@amcW#(`g<#cPN^kIFoyC#lx5!yX8z* zG|oQv4v(A}ibjp@06j4(_Ka7~OhxlC&L%%IJaX<-G{*OQ{yV<8>dDVtipJS??)1o+ zrD)dS%+lQ3d(kMboY{(oKEc@PERUQyibnOkfGYmA@(QmUda%%tKX9fWW0>QSGZ)y< z5M#?J4R3qhD`%df*@Lsu&s>k3`HF`1MLP^%&@0O;=N?7#BhDs2^F4AFD4Mc3Gd%m$ z%6PAwg}4$Lasp?Qp9LN{ixf>N&eZeZ14p2ExBV@z|Xx|mh!(FEjE1E%$JU`@+BY9q>XqR;_Z1TwADB@CM{@9@aksc0(T%<$uv3wnCpD{;&D zP|?s~8vPvh$T^~Dr~&$)n-@=RCPZUijE$92h@-bdHpDG%sJ%8enb4<~+*K$gHQDc@@&S#3|G|omp$2@XAS2V?O zW_UMy*%w|p$8jZiZSZrC9I%0g^~DhW%NiJhTR*hG;PLzy9ywnrng|L($a@U=HLe7& zQGex;^Npe@cszDO(Xf>n{e0t*b5hZi#+l*$W&LmQmg`$w2@QD)XCvpNN6sllgTc27 z^M1Hum{$&KD!5&o^2qs4(Qs6MIgYYtU#ses^Sz>J=4cn+dF1?{XgcGZzdiq`XxQFO zxqk4-`AN}moK87^#7>6^xa<9lqM^4p?dvCxoSzlV5S+=~a8<$-ubf{L4f}T^=VyX&wCm}WL(Ry}86)R+B?oBr#TUjt zpI@afUw`25w=L#T{#3!xaMZ={j-{dBkziUwrSYKm)R+7yZP)P8r z!VqfV;p(q3zgwD{Ee&&shc-vxd$c-ejQaeNpoqb9hxj0#lZNnAE$5__%%^ZAn6kgB zF;SL=Z(n3sYcYJ!1jA~J>8ml37L%iFGV~$u%7mTGD4qMC$jrq=EzSWpVE#^8pX@vC_vr1#$u$Z4T zX0OG>mK3fxEoQOCykaruG-iv%;KOVxJZCZ6HD;s5G}oQ#;}-L@#%#8jXx(8xZ82Lk zW}?MZF@pu9D9xy?2XnIrGu?yP;K6+7!L%wX<>Fb=n(V=R<-znV=jL*Ja#G9rkB26r zyqjy32lIpn^Roxjwt~nBvl?3sOd`BM025jfJ3G;y1DH|7pw$I1dx1F+g!vX23C6Qk zt|Y&gAT4n-H)za5HuXC-X1T?@sxk8|Cc3i7;gjy7=esqgy2YH-nENfJdKKZi*J5Hd z<`#>&U1L^S%nKSb!(zVHm}(YN52GxG2#d+km?{?Yn8uW|m@^tv!D8A}6FHSEW~RpU zwwNz8hLlqF-#nPgSBRVdO>+;X3oudecdS9Fik3V6i@8T*>RZefTFgR?8DuesHD;j2G^sCK{VisQ#?-Z#%^H(!F&8vu zmc_(05IN&5<}QtyV==F3%mRxk(oneiT1=G2TnUV{org8%DvK%ANVrB?%xI0tv6vki zQ^aDT8w=M17Bf|2R$0s&8Z*jbYB#~YK`;j7EC(hr2va&rB>TW6exs%b6Xn5l@L+EA zV1|1z%%2g6xpFxSr>%&!L19DoYH;~dO&(t}|}gK5?p zOmtH~46AVj)6lGgFkEUi zX?^a&BziDhM+z?KK@aAX!88M)!p%4K9?TmCW7FDeFqZ3059SpQ zW{U^&oCmYfgL&M8+3dkQ?ZHemm}t}7!wjYc06m6u)|ZSSgD^!n0?`X-!L8t459SsR zW~B!+!(gmr4&8!VN`wc);bt%mCj-Hl3LXpx&B1x@Z7@xv0X+dVQ1hYm#wtI23twWrirWpwS{-}h;IzU$m>~vZ<&^edpfs19b{@!&2BRziKh)P=gK4@M8Y`!^!Pt^=Sf;ovhV~dNr>h6k!GkI0!SwWC zI4ld6JjjC?=)v?i82L~ee$_P?o9Ao~W|qO&vX3_y%QeSfthFrgVEQUdsouiguAU9ATw@BjTZDXoAx6g*eMKu=*{-0$dj~m!b(u zD@1Xba@C*r|HwNJ_$aFFk1vE!6+u)$MNxu+C?s?Q&4z^Ddl6kivV=$)NoXRXC;}o6 z5m6Bp8)Bh86)*)6ZfoCRxh)aU^HK~G+&f2c?UcBD$gUmU^HK6XublM97$ z0+G+ipDC_5IV7)iJgb422U&!CZJG{x9nNT%i+L8cJuLm_g$>g&3_J*0Zfh zo!X(iTa5nth^+*p#eAL?^E-(Lk0`6N#M~T5Kt+6=ulb@eO5XWEzWTA1U^HL#HD5GF zDXZJqN-$c!F3^0nN=aKH?}{N`FSC_kG+!5LzV6tzVXU$$M-y-)!Dzl36!9hRSRgu) ztpua_iYwwvS>3=^g3)|6)O^txCGTP)U(d6ZU^HJBX};3q&S;{nj%@^&L<=sByV>Md|M)P%v=Bvp$ zea=@_U$B*6G+#|LU)1L1(`V$XCLIhR2}bjEspgCJDaxu1TM0(R)W!dwa|RgxFMf9Bp*Mqm0&bqEj3?< zzE~bqR+rLYACh1+U#&D>6>l51THeh|^tEgy7|mB}&DS0KdsbFfYuHLKny)sRuU9H< z*}UHFUx(RBFq*Hnny=bBK3JiwdL&Yu)^F29?wi_azNo(BlXpZv$X0^Ud|j^jqBgIr z_OX>`xVl-bt&DZIRj=rp{rm~e_ zv{_1$uxbQFdc0CBbNA*hyGf zbEGHR)i_;Q)u)p>NP-dH3b5uOe3S7+dhe`xf9jc(T1w|N))9nYQoQ|4oXrn!;9s(Q?|&wu*t(J7eo6DyvV~N-&zQ?zUA?UqL!~ zh9nrxR}b5Ye60)rK2iC4l&u7#`RXaGtQ!2S+2S|kGuPxJwhMg*0)o+e_0oLNELT}w z!&ZXPT4rxyMJ10fq8BKuf3cNdvn{Mb47@95{#?9uqj9$1AW81d~6tf4YcYxZGHUwcht&mAI^trGii*y24(xouA&7Z8kA zVnc${S{V+vt%&&bwcq#4JN)Ud zDQqPeE#|AVm{Z5KO;J{#u$5pmUn4YMH23?!F8L00i3Uk9ny;%hUo=-&R*Tt6Fj_5N zBdkV3k&gNo)PHQPywe+h1b$~L!O)7pfIhO8)tZ%9L$xf|MAmXh%f;ivH`Z0k)yM=% zFj_7~YPtAm)!XsPDvhlKqvax1%SE4SfD}Pm1GucWoT1&WASXm?FmM_-SR90WJm0+|8#|o>+F+o{% z9wZ|ajAoT(TM;obx5ayJ*!fzt(R}4;zGxo4*7kMr5a~-Wny+!1uYChDx+$x9Y$X`YSAG#+ z>ug`Yv6WynUj;>cDXVLS$_NFc`6|?W(Q(t0wy$k$B^b@uc+D3bHz})b!=x|4Xuc*C z@%6OrYX@5iM)NhXh%aT;cewN=7|qwDBEDAHzTRak!DzlF7xAU6MqDL*2}bjET@hbv zY+qlom0&bqQ;PUfR@oz@FTrTOuGf4~JDhC$`jxE&qxqVu`J#5HtVUfeeF;W zSp&^;@GkIc@QXpDf$wt7O01FX-CA>g2*(aK6S=>*L3rN|+v-?`WKO;r|8cq#R+I#z z#XL<|b;Y*RvD{mCE!}`)rIGTBV8qvKT7#ifMYtDh>R_c*#+Sf=RQc<;YRwj`8Dle% zSAlO7-s7;X3YMCczng&nI0Z+^FM<(YpU0X)d{fHp(&Tf_idly>H)>4tbQz&yR$>ia ztr?Mvv%`p4TXQSc1hqB4V9jQ2&8X4%tzga94y>VhqAIag8MyOYvw9S3KG)Wqj>4&r zB2}e&GuAw$DeuP`DrcoUJQHW0G@Y$jBj599wU%brqWx&f_hZd!O}WBY`kl^5<*`_^ zL1XU5ns}RuY;`w@8mx?MlxR=1!0suVVMR$WTC1Bbtf-_Y&vbmMto~pt!DzkmW?^OR z&BtFkyS@BP4D!(;i#`JZ!Dzm2(R_V0qx}G7HIc0ZqwURS2&+a=L=gvOY)JfGSv|*A zg3%(pRajAJ;7j1{`g`wFR(K_xNP^LqgcX$`B|0;p ztnOqh!Dyv1+qSYwURiz3R)W!d-6pIeOMa1E%WZOG1cK3g&Cz_lIOpSYl-2cYB^a&b zZx>dPC9kYDvz1`92NT%Y zR(G?NV1)fKtQm=KMZMoEbf`t)OW?CsSB_9RVcK~i2}UdVMRv?&^?u6-e^6HMv6Wyn ztNS#otviQ~RaWiC3s(WbXjY4bRS=u0x18DOt*?~T6Ko|I&FX$(6*<}{tD3ym7K~P^ z57<`J=IPv^vYN?Og3)|EXy=P+u(Dro=TM0(<^{D1+-{b|C zD62c!N-&zQ$24D6yL9d-f3uNd+s0Oc(R?k{eC590x{I>H5BrHE7|qw?nlC!Kx!=y$ zfU^HJ(Yra0)S-XR>n#fjy(R?j0;;V+8uT5+v7|quT&DX|H4;Lz{ z)27G>1*7>|S;Uw8U47!OVJpFCzE)|zC|}CzVYU*C=4*8kU#Hvo+Q(Lc(R{7Zd{MrX zRg3Foz67KB`ezYe^8E$GPiHH^Xuj4K@ujSGv6WynU(Xcrb(Wp43#Q5l1*7>|SHzdH zDqt(YXukfX`Jy&2e{Y$*Y-KCKXuj5KzLHixJWyFRxj{xK81Z#J)@;T%b!_z!)^xxc zdBhR9huu&lo}28vUpP(31q7qT^Q;yR%}JD19$N`U%lmVhFB)6Ewtc<8R)W!dZPa|x z*rKdz+$bXyjOOe4BEDAGzDBW?U^HJZXujwyjk4OyR)W!dy(p}#8TADZRqAz$?Q6(Q zGD5*|D69U{r7yu~5xyj>XwOJibnQl2?P4pz zXjU)VR-{X33+vnY>VGq>!<|#aX!+VAtY~&Y^8^~7mDL?=B^b@uR?QcU&+pp4-efDm zXuh^-zUWRBW!2~wiVu588DYd-?ym@|$ogt(`8Pbdq%#u zi}+(~B^b@uUdtn2RmQ&=1D8TXudwvd{G%Ht8r{47|qw` znlHNhaj)%bD_aRh^Yw-1tKj7}Un{HZJ7k1{(R_WW`J#Mvw0)g9Us?%9^R-X&Mfp-z zS!^X3&DU3&FB&(x+P+?9E5T^KzSeyG^j&6mWwriJ8KGb_U*BlHC|^O_*V7B6m0&bq z-)g=nU&?APTM0(<^_}L6`f_*MSM|H3FTrTOzAxfSSxsdt!Dznzt@)yHzNPK!2euN7 z=IaN|7mf4Es_sG=pG*riyxQQI-;y%7D+3?XeD+~^F=LOzDbApH`q!rny>$8zCQb7Ur1SXzfbxSjOObX z%@^$%zt!4gKZzMat@|#nP8xG+)08tH{~lCAKg6wP8wv(R}@;`KtX* zgSV8`Lbei&))Ed2t42`7mjKNMmDMY3B^WKjBf_dOThZ)YS^dFQg3+vgx2<3ppnHj% z+xcpGKdr;PImBrB`a@V*v-jEG%r392MzED&G+#$GUo;}6*uG}7m0&bq$24CwA}On? z56B1wqxm{s#MhO!uiMy4Fq*GFi}+Gjr#&cr2}bkvm*$K1_?2y63)o69nlI|+>KWBT zZwzgqtj=5_eF;YMRZdt@EmNYAwx{juZnhGP=BvEsi^@=04SYyQ1q7q{iV;?kZT?c* zSIvi|m0&bq6*ON%_e}ajSuJHN!DwwhR#-*0d1cl15$Q`XT7(saRb-o2R&TMDU^J^r zwiW48I~;1~EB#UFOE6l#Dhn&C%~KgFtF>$;7|mCeBEAOOzREo&eF;YMRkesOWtGZS zg3)|cE8=UQ?Q1hz2}bipzf!5%A>~V1{lZp)(R`h%`RaV`Zx>u-`)asU=1VY|uj-nw z*DiW|rm~vOR)W!dou>JsJ8TPWU!Ss-U^HJfG+*_9%`Q+@%^#N$3P$r)Q&?GTp6=D3 zY5SVNR)W!dov!(s@O`DG%4!!|2}W!4wS-kr^M)q$TFEYq)s* zFj{GxV_T6gy0)dPo?&Eo#~yEB~Brmwd&iq%Xl}zUpbdIvme>M_Kh^ zE5T?bf1a>v1W{@mG;>f^3)o69T7>5dE34#b=Af)TVJpFCR`qQw$^(s}^Xz;ze45q; z0)o-j^4dR?)iSmsMz?ArtgO=bDrM61%BtE*>5CZr zL%NXH(0AxW)ZnE;rvhy#l2X}9Fq+k6!ixHZO41YBJ6jQ>`)cao%d*bI5&4iV+ zuLi56e`0hiaR*yDJztiuJhmc6w@NVh+Q?SK=vK{zm9wu3t7U}5z$&5_v=CO+xB#Es zdCmbMWa`9L#OPMyF1K=3ncKf;$Zlno!B)iRR;`3DOMUXEPc~Fmv)PIm-Kw>)s=>Y< z3f+%$;FiXNY(C5DK^7S>;WEF_Z{8l-ti3=OtKAQ|eG zlUW!l9FreTO%IL1M>tK#nlM_*2JCO4EElqX$q5BH{4Eh4Q^#kFDGY@trG-UYvT+Pc3iU=_60=h$1ry_P z#%G7~Gt)v@nc10z1;J2v2@OaJbtfn^6yaqQjtPbH^K`B0!fA!M`7q4P$O)%gE`}y`5=Qusn_XNeIX7oQ7^O}z1+i9WBhMTSDjq~( zYGzJ2AGMY{X|g0l3qZRW6tQ_!YC$-mIeLxAYNR1=5!%91lvSVnyfLXcl)GS26`LI@ z*Z~t$^Q8Y!YEF766HPc3IYbSp@S?p?b_XFK3MbSb9To8fLmg8KP=6Q!A~O}rE6fL} zJC#+5N)Po;MRiULrHx6=x9T9JtE5r$J^FF=rsd{M_QX+WDJTOh9aCg2&>I+vVU}7@ zfZFvmq*6#p;t0dzFce@YnVjeCG1MDYUE`_r!nvb8{dA>zN{mm89hgBZLt& zIEenlh?*4^WmsTkF)E{>UX#(FsK`#pma-&Td(YJTj4%c_;THo+Y6d#-iK%tuVGA9& z0E!?4W!U{qCzy%*N` z)VGfutZ~k*VnbygfK@b+Q#x7tiP#~OWyY!b@-b*eZf<%oGq)gwAtG$e$9NXR$mp!p zi~mWmicSa@&hk!U7w5fu;@r7xT4L+QjJ!<@Dx9N-(aZ*xOI#gs= zB%%#fenmpv>6lZCCtQdfHV!MTVFa1<4rXZAP;V7ZVde>$cci0DG-)|#=VCsG@Lhe1 z7Q^|@Pp6`?EPX_(yON$vr5))E=M>c7>dP0+(p6)K*qQjVj;P>JpMueo?2LL9kv+qu zy$=VF*xD*4-`2Drz(llfYcWB>H(n7OuBy8DvJvNn(0WfiZ@lA+C?s(PsMta%s>IH@ z`Pr$3@&G6}Dx8xxCOb8MES*h1|8-5 z?rEYK4QbgkH$&**j7?-N%F+krp<99QFfg2-otcAahgKc(TpOM5%*4s7>%yoqj2RfT zaomw#gqG(VLZMEw!;85m&JU%H!N~__3o&iObfowAtSscen>dI`3%k%%sGtVY=@J}A zP)mYsCpx!REaSx1&QV4B;qKU6b4_6|PF+DZSgW&W z<%%-t8H`X0qfNTbVZ_K<%+`-~CU@y*Yy%3@W%E?4aGtv$H!D0KEk7L2={SD$=x~0w zoYB^$kOARB1_p*F6($wp)ZwV{g<&=iWfr6s7ETuJxGzpCjK=Oz48qB|>6pk^FsDu{!Xxt@YC!x;pjL*p&H$F_K%uz0AXGx+s()nTqUlFsm$N@pkZbci<2-Ccv z1Uh26C(o6lwA>GIFi08WqCI!?k(9xP4{G8PZg zATyanSKauUm#=7LPE8l2RLaiLzBxUiX;H9qp<90vPP5Ah*R>4}RJ==}~C zv`!#y5xv;&`K=vs+z?r$bmWa`62~qN{Yxz>+RLNq4aymf3EpJu!i%U@djgI=5}$(p zp-x0ZhUeJSG53f*X=RnYxGoo67<^63YE(sQG$m-yXJkW4jMr*`1>)icBhWHEH!>*H zCkNN5#)PQ_k^ANXOi#B1X|7*=0mDI~vDi*@+7@;vSbs zxrjaxHE6O5cJpF@*X}%Uxs2)}968vZKmjE<7f^y6mz|@vTC6HNaNNU0Inkf!!eXr$ zK+?lFR?MADy9^pBd^QEG*E{4X1%n={SGfuG!X+WEal3zqESwWePYtzhJ-St!(d}Ba z9NoNadh3MvmhIZMZa%to%kTn9~IZpMan^ z#;^|2igoG(1)Ck{Wr}51d+i5c^J>IMs-;!|-((AbM2r zYZtYLQjY03$FE3~bKiF49G9xCaVjz1>YvDT^feN%DK@nlZT^nBH0@R_SK3hEHjIfH z{x2E_d7qe~`uyKL0mqm#F*QG3KLpUm%3(=P6OE|$XUU*8BkRIx*C*7RIU!1$?51Vu zT794UF#l<-6>Y&D5nS(~^B5$o?u-De0U|y$0QXQW0g6LR0bNha#I9021e{0vO_%ou1<0i_qF>wh&93SDxp$yMh z23vMb!W0wtBgV!59o|ae?j$*aMwHgeSR}Tbx{{q5cDtL*lIZfWp+Yv4d0daT__UqiaVUaUw$gHDJv6!t~sUIXDrT zJZVyAy8E5a`?tWVE(7=vAyi~Vs8d(0D+s5J&(Fjy|7mp905`tnj?JVKt8#cL+mR(M zK7iAt6Ekzt2bQg^fa{=L6W>%veI! zV*t4M-?EEb#n=SC@1GI-PiwRNV1Nav6^!_LB7m*^v6e6@P3ez(VmLqS_mW+J1A>xb*4qn9tRfkEeI8kAHDz3d_ z0Fl#V5do%Ij-H&r#E|c&FyiohT5pV>7?V!W3WIY>xFGFB&BSP(f*~zp4D=nXT?GC! z7>G;D%M(BBhcWa79A)M;7k5^jkX2%+WRJ9HwNY{@RYfJ&a;mqIsjA8>sZK-PmkH|{PLCqx&W#!`SJOuqPs#9WJzh)i5xZ6BWhN> zCuCzevd5%E+?^a*a43p(1VJ9@H_&eZAwit|xcOl9c7%7nPM zjk^F(>F^1Em|R!+}BRIk1lrN>j3Qn<-zoj}u3WgT!gQUa5I;rP$B{ zai!Z0tcb1AB=QK8=F#i68yZ!!C7oH5-sWr&Q_=BB!GCdrhV8z%KsM`k5uW#7j-k4$<|(ZHeZ}qN(r{ zCt`Nse#O63z1f+=Jwzq{RVVp~NAxwIh%>@;t5R9IDc$V2{#23O$Vw$U?rtKpQ!2kp zWmS-`YXsr}=E$u6T_KcuF<2%3Hx@%NLePq#?0=}sYAcZ!wu?52zcY@LTp(7J{oMuP z9*0#RC*zmYtbyTV_$uQcOQPE+g4)@tlW{w|eK>|Iawp55ePnjB96B7NoebCZ@!H98 zrsm-%$6xd{!IR@v9Soctf7WOgah306ICi_jc=CK}89&L-=UBtKDD;!k z_(}F%#^e9+lelk-@KxsfHRQlfFO0k04qtvup>TlkqQ;K0EI8MZqimg?ltw|rleO3O{;gJPB=bR9 zqIi<^#D1{V@^RvZmP?$}E9Mj1c9EAvLLE$$L?!wVp(I*r;$IRKt9T=(^Tn5Qo1~Xi z(Fzhe#r*|<$VO0n4XqUvU&f&s6kkkh2gR4M%2;m*#nm&kgpx^GVV>mQVYbJwll$|} z_9$LPKLc%N>wocArXy#qW%}bVtg+LST6-hNa~c#ZrRT7+3+6P{j%+ z(f>;kEYBxmV!Od$SCaQB*uG1u6B$q`yq_U5uF{Z;46k^veTa;xmMf?gXT_Vwb z4%v@qE7O?8p8VIESe5wqIMXnF~+^#&D{$I_Fu z!qlER_4(_R#{9@*1BX|0xmlUt$7bdIzdlZ@K(X^K#rMZq*)L^P6|8#kmrMObwN5;^ zO|O>xAACEVD$4&yc~%vzS|w_fe_z(&&3vkq{2C}1C*zfVD!!BAO=Zr3X7Pv@vs&8f>6^sA$GghBdaX{e-$QDT!=>?3)5wzzDfVk7O)oc% zaPQL~>Ljs!mR^*A^BYtnf7F)Fy!*0=C}mt%^?3VgL^gcDN?J`;iuu-5I_u`^Co3Xf znW>`voBTT!z{!4ftWzPJ^cYk@{7tX1Ri*HE1)z$+ni;zs(fNPdwwr)F1uZ^L;6UH? zz2Xr+&6F7TzZkqK`iMa>^tZkgShdIho{(JjIDd0NMO~V-_Gy1}RH{jhE`@hHtJY8| zYDI%{K1&oaPVoDuow=wtMi-6N*{rzoMZ>qIq(X6668~wfjhv`ji$?RZO3(hf7Bp4QD};S#W-e}5%FHPo9m=!k|SpPwA1|qg%J$DLA%C z?p$E6@6s*Uy-UZW9-VszlM`DcHt(CCn}Ju4C${RGnH4TbYz4a8q_(Z`U-!i3y)x7C za|`g!Lsm`bofPcZE2(ey-kp=6o0ODHACRHX=JeT@KJw`!mp(G=KU3*jHhqwfq@>RD zkx3s}^bxjQbm|f8-K}#<_s%I@go^^&Tu2}3^uf-A%Mh(dvNv5z-^SC2vJr@In`(PV z?h@?YyJzQ)y}R@l9*|d&4-ric*-xMk5wQqPY>?hX>|%?^q{yFeDSX(uh;QDrSFbKz zl9Rdz5pb&@-pQVsofk?>%gW7=mxEj2?27!!=Ulv8ES#DhOc{ieeq&PeLxuUNnS}*G z>--_^YYHSvCX|Uc$cIvM(#GWGqwWjC`8oJ~+fiYx$WF~48w|GS3YL6Oqr&N;6aQt2 z<}HFlhX-2@Ziz3@iW@j!KzxbSqM|Cslk%ppiZ4fT@$;uv9#8D4zFC- zibQtrp204ix}4`0=5i!xOSNG)Pq&{8HKhU<4$Ar_yQlILQ zWD^P9dv@!alG2r0pS`kUQm}jH-rf52OzMFqNN=r7Y*m<>o7gHVHz&iQ5<2w>cIn(Z zxmQY0*~3*=GIT%DOT>rh^=WqZ5&bqye}>Qp`VUMN17b&9F>i`z&*QrF8ZOrk7&E>w zJ$GV`SUZr`hPq{Aa3m7n3&LsR^D_%4hthI$$7W(pVO9b9LV9?TQ_qN_UXqD%@w#w+ zoO3s^YprUtmaSUXk4OovTDNN3s%7i=gou^+nh+n~x;4mz_}1|)o0G}Ns_C~@tU9~e zpsRQHsT?@({D4SJ)APe=g%iT^uR!28e5o+Mob{*tziN#@)AaDD@fmRgtPM9-FBkX& z+;tC?7pt1$GZ?7Rv1xufy=L4_!I(gx^CRU0w=R`jb;0!wHXT(^U_{l-9W zbJN1`q{6uD9BXs?N`b)XkCzYhS|Rl=#fJKUz9S_!$-)9V@GW*#`M^6^D8*t?oYJd@ z^)ag@LmZ|0HJ}%j-@8yG^}#)}MzR&a1#2L`QSqf<{U>1R|5I}G>7+LTdM&}+vDRB} z1DIpXx#=}RIoEime4y=mZ@rOV9%If;Zztm00A|*+X1y-R-)b<2nS+^Qes`h*$~}kr z*ksmAhW+ngI&7Aln_d7LI)mx_l38yk^m4$w!W@dpF}{aTpi zJJs)U#8>6j@_}{R&3dQ9elIilDw31l5p3BH?%UVQdP(3;d%b+1FBVE}<@X`B4F}Ww z4YMBA$8azYFz2S%7Bb7geDUzBuU}gI?n9@`3hyBv%!j>c48-Xn^%gz`V?yo!_W_PUW%#%xND!;zm*Tf{bAP2 zgndsi>zG4#cGSy5eD8uuK4#Wi2m7&L>K~V!+cBiJ|(+|0UWy&m9Jf%$_uyZoZ|9|yoy zI6EeA2n!{*_Ck8+o)Z(uz(UESHx5kdx!!uS!Mw+uN$*oIZ`JeG`wdLedEW8$0Mq__ zZ@n}yE15IJw*kx(^}Y3Wf;r~`@Aw*mIrBnqy(_@XV$KxbonWRn@YZ_@%&*Lu^!@^~ zKh9gPcEgy!C@fy>B@4`mi@f!20rNIXd(64TM|z)vdH)irNBade{;Bb*FV>&l1m%Z?lA9ilFIiy5Tx!;%_#OlE zALiWj4uLxc=D=m<{MNxhQKxB4AilZe>cGya{OVxhP`^b?plw^p(ebp(?mdEQjeithV=$AL zv;9WtRmO(tU~aoY>bcc#Tj;$4=1=C_^ys`mF6vgGvrxoXenfO`VWmK4cVafy%eTdz}0U`=PU z-l?!J*F`e;Dw0!vzr&X5;C^G)t$s=GysqAQG=FXau2MJ2y6L?Jt{Ipk%(>I@Py<7{ur@)-iOZj!mZz1$LfLYx~ajL(m`iMt4e+Z^>Kgpd2eJ8#9k--PS zTt3(-KGlC4zP7X-#aRC+m@9`!J-6eE3dlzun8IOBepNmi!_jImdxlGn zj=P=maXmI)aaBy<*=rQ1%0{EvpbkPM^42@?dm#aNRN_JeA}^p zCb&K$rC+ypRRaM{1T!;La&G1K6*fN$=7F$TFB^K>z%kPo&)Bh0?E<* z*QxxvV*N*8E-X}jgH<;lQm7eme%K2*OO$YNCb1-wv z2ld}yz`Q-ltVj7c3?^~1klprW<7Im@f`v82AC~V%zAm?egJb7 zHEbj|z4{0|7tFk=X1yF}tOwKZ2D9EN&}#>#(=@XlwU2COC_YL~?TU^+rh&`7(X2NN z+&y3pFz1$ED!&Rh#RQIFq2$(&CSqIM^q9b6ER^WeDZZ}A@3Uaa-Qum+7|cV=ne<)+ zQ}I@_-b;w5DVY7tx%Kn+5Z?teF>jw`)*FQat2a9)Fl~62!?ro@4n&K$yUEI*oO-wx)nr_6dcgWCb7&vMDR&Fi*<`x?xOm6EFtzfSFs^xCb8 z2|T~rthWue+{%w?u)(jGM_{33*KbsN>51}N z1?K2)X1(i3?=bR##iSR6-Wo6mkC^pnysG=VWP~6-oXYP#tiK4{AI!Stm-H_D!&|Q} z;%f$O+EH_SEugmy%ty?@%rQQiw|@m@^D%F|@4%dMTyk!Dbe*#yn5lny>n#QIA#-ke zM-bnaU_ScGtd|CX@@P%ra#X@NH-W{eJ|>|d9R!nEL2_>Mjkd5~3T7{JZt+q3`xZ=# zic-(5eo5~tFbkM-)1&>-17OxwGV2Y5-d->Xl_lraKeC|L3Cx-*W<6?udzisjk(|o! z8Ep9m+-g?`aG3n8KZ8y02r<(Ql zf_oOs-PI-MHa>4gMSTP2@tTTL<0*}LGBv<|zk#WHy5#Kk6189b4qO8;)oMx3?R*&B zDisEE=2_l;!(e7H=jL}Q{N4$sO>L>?c7B7-Hx+=HSl8R{t6=`koSR>2r-zuqSCO3B z=~viN?(7PIudz^~PgTxpze;+io+BCJC^_lT4(M!fXV>%A>&T2$bJnAAqYt>n=XvXG zVaB9)3>$ZX+i||P-XUg8dK<8@T>T1xXR%PCPq*^>f*Aqg!>RmQBELU_yYND9z3$AI z^v;Fe5O4(zy!93{W74B>;|Xwiao&3OGGo&F92=K{o6*o)Zv`_Zy(7r)bKw4YvA5nw z%$W4({L8oCnl<*;8^Vl9kJ?{4xRIB5>&;@uq;~`x7lNDH#9MD2GbX(=kl&ZVy??2< z-k;2v^k~0O?Xn7iSFuo{PpAGt*F*P%>D*Lu7)BiXM_a@<9L$}~BkXv zEr+9aV7_i{)}!-(7qqAlxDE>?nq@ilUz#`F3#LYEZ@r#imNMt2NB7fg0n??ex8BWQ zK4H#H?{?_@0p`}rz4cxOb5476eks0oU|#6pt@k^a{#Tgw(xI0J=DjP;dURiIjl>Fp zAy_E6wHF%y#)6p{H0#m+Z3{C(5FbwUOZ{ypxa~<&k3OB+GwB^*246*T(mRCsj)Oax zY}RW9g}Nyf0==x~4nkU2L!>TgTHe9*~(3`;wzKY}&-;L0F z3taF1=J-f&0y8Ywx%v26xF-X1!Y>(jUx+%(;zMbpOVWU=EEi>rsC@_iD+Q;-mRwV{lhryh4i*Dzz!6XP?unW^4-tC%tA(Q)$g;O-dZt+#<0lipTr+y-uTnz!B> zW=wjUvGGN4H>7*(J3xWe2f%F~?X7o!8IvB>$8m7)WO(cS z&WuTq&Z|@$Qz7si7E1K#G@erb_>vjoC^?OPjZl93!PUOjTQ89rsphOl$45QEoiWy1 zuLCnCJu1I$;Ob?0>vdwrr1v>C_6OHI+gooqGbX(N$}a<4Mvk}MJZ4OKJF)S8a9O$D zdUrA7rS~wnae3Z)iv1%cuH1NUy~fO#^fqH-YjD4L=+Skh^Co!5_Ym^i4BXoj&GC`mVP^1EB&YF! z^eRuP5O`v;x86=>y!5^RcheNJ9*tK|GUKK9FK~mWn)N8ZH!$O+HxFF1X=c4Hn6L~1 z^WaUAs|8V~@;e0wK38&X=dcMa8J24Mipg1?ZTftm&m*Sl2EdafhU{)?voRc2ykNyO+>u$w4 z>Cth@h4)klG`&}GPI}btZ(xSOkCcUlLxB%RcN4)i>F=NsTqWo?L zx8qT7y+h2H^ghSNa*tIAe1U}$eY*9JDoZ6JKzum$k53TaS>XQjxVPTf%e?hA!_URw zzGc=ezCv)PJy9WWGZsp2_Z{XTzI9+4K4p$?Ff@9Bd6YRfJvxrx4W{ODvmV9Q4$KPX z-1O)?|7T!6USZbj3od45g}?wTl-$k>#38;6FmqO!_2_3W)-odm@!?dz6yGjzZ>=`# z(S1d~F=NuBz%N{b>sD*cdhH?79n1{okS)jf9>V&0V46Ln%EhTYlU_2I8<=y`dji}n zF!Afmdgp>mVFq7Caw@;Cuw^8;lz*A?dmp$gFcsG;&Pi_)0&fcD@ePurd5Keg>3*ay z!33X`oLhVO3fw?2ZJ$$qo%H?zZX}qWnRA;D^~L<x=y zbra@SFPrtUp_c>ZW9HoSD8Bt*5??Xv^@3gom}i)CYcF)(_C+ugwwv{W(0h;>d=<&5 zen&v>Q*f8R?yWb98IxW-^d14X>kYFWJva6Tm~J~H=a%2D*f0Rh;x{EnReq~Npzqsez2VSH2lHYC=Tv_8!qF};*S=%UFI^Y96U-jw+~T_)8}@+-y=&H^ z_-2Cnf;l%mnos@!rq*t6z4l-hGUuj8Nk?3 zPZgii>xA`7!Tg&!xAC5ir~d@==l5nkx)0!@f5R^pN-%S5&$MANn8iPt_1eOI3z(zK z+2t2?zwM6*JoaZ?*F9j?y9#=B4^{{iVxi=wNArUl!2I?fvmQOaaNaM-FBVE}<#!0% z=7X7W$gH;<+zK$mewCct^CYtn-x4qvA2#b{L9Y*(jS-yFcr^xk`@r=0-K>`jy#g>_ zGUt}xw$S?xOw*%gz3I>!4CX`T-1KOF{v(*K$EBV=UsL^!`q3?5mN5r2+5V#LPy7Mv z*MPbIPpRit&NPqx63lIXNsi)k>PJVh{y{K{#1WMHb3pXi!e?OCSD+&qc|Wky)ANxW z8ygsng_52R#nE;4JTUk8;2s9E-3PY|%8I^+C<^Fqi|UNWHqSb87cT!2SEw*ua;kORfeur~0@E>!;U> z4LpH`k}1Fc1oMdpNA2_*FjdYl>yh7DVA?rys{Eb(P978<>~QlN^R6$M`-(L3{>geSOKfjk`1s{Q~Cf z3nXWkU(`H@xHvF9968ng)`A-Zrt*d6__o5)MPUBjz&pN+;$j26uuw9^Hw4TLj+}~b z9x8MenA#UhJ^FO24|<-x8<gp zF9R{vU`7Op52yUn{(K_1B}r1xZGTSlfmfL^>FvPA_rN{W(X2=FsqM^|^u+!M+ylvG zy-OjojTw{PPHa2~?xhs79$km{9!z2<$=UTAHQ)FgTsJU{JDc@r|J#old=<&5J~m*> zL~zZznDzRC8vhFuLg4`b8hvq9Nhh2y7n^bRf9ktm?^y_=XSh6zwh`G znB9FP=l1&+G(OMn7aLfPg_0d#)Nx~dZ2K28#8Gl;2b7QZ!AQVhVjpLoL{$ViRFz2R6=bH|IsXx>l zAGL$7V5TzXrnec~OfX%Bnd9pK?kX_%Fz2R6=OZ2lvuC(DzT2T!?kbcE7D|<|IMpxh z_xFP76*B8}hW&Uj8<}&9FCKc^!2CMOtd|VEdTFtNkyt3X>CySlYr(8c_ttwKOx>_q zuMYGYfN4M4tk)DVrGc5xoLhW!|Hfi4Z)Zq7xAsSR`@qy3V~&sZgXe%r&NS;i3B4i2 zTq`-Z=TiGZZ#bBz#!Aj@ze@4#A|^|6ZuzC-fU02L%8{H~eyRU{38q%AS&zo?dSHg- znf1CtFB{A{=G@}@9NZ=_OU6k(xBT`5_bQlL`O2?T|Demm7lZkDg127G#MnR|ER?8R zob+x);Avp?O)~2(gnhNiv4MxMP;%QZ%!1xGU~;B->)j2e$@OME8vn+Dd3dU~-fLj4 zxxuVgA9|00**eXv*AaRA5lqt?CFfRtv%qx(^Lhm5G~Pb|?o%*RZZgM5^Y)j(44SU| zI_Xh-nP8rd;GF80=1rTxOuX5wcLlgPV74=dVbig_e1i4gfO+{Aspr<7slWXj%sDe8 zhhlfs+ky2B!5n0c%GoKuq!)W@Y@jt3N^W|$U|SH(R_084AA+ee)2#Ol^lE{5l{vTk z(s9{-FkNR!J-70^AKYj#L6 z-X<_Z=9u+p|2r1Unh4HGkLqI^m~OY5^(enrgZYR#xBOE1oiZ2ai?L90D?gfFJkN{( z@!=F7wZE<4?)Zn)bF1GlxD8@*?7OV z-aas0ACR0$Zv>daCEj}XgDLlrhaM{aOfZ){?5#Hl%yZ1S#s|H(z_XrInI%E58rH)dcfB zb5w6m@g2bW<6wSTCH36K1KOWgTaEMRSSXqF-UYK|jkn$xU>5$d6hXDhn)0=qF`gz#|Ez2AobkF`_-`D1Sa=c$+?wZ1?bHM zGygfsx$WQRc;*W*mu-}sTm4eKwE=VS^OAELPxpXJ1JmIJ<<}{{bbNk0n4K>w&Z)i7 z{;2+@*g$VAl-%OmjBP`~)Y&XKxAD0qxF9q5Dw0!t-(gEXaP3|)>(v04%8XQVu3vG! z3EbS5z4g{HW72yD?Q|Qs$=l3&w7+~9%qPsbl^@Noz5(;kSIl~u;64JA{Ho-rUpkdv zeK;BdX5x0U-XPd70dt5sxA?Y$`xDG7ubK5ag8Lav{Ogi))1&LAmxKB94YMBIk9pCK z*uafgD7on!!M5ALOn=j?*ALuNV2(29R({mqPJ1gh@D~e8j0nz2kH)`6U^>0ytv3wJQxTk#9vx4=2&VroC%trPb|PJb&(UCR zkKmm2XukFknDlq0p4)iP2;A*po?*_dK0X1r9n53zNxjPW+o}BM{O%zzjdx4Vt-a9k zehV-^Fy|H@>D784^FJ(<-1I2F{lT2|fjPftV&J|K%z(X;ON5zQs6>g_0d#)O`=ceFWyX2iF8#rSD<`&9P8&)1!9K0n8{LTo#x+ zeQ@`KdD)Ru*M+uXhr0vJ9Y4zW;t+>Z`O$E3Ctn% zqnW{1k(~5C#Fok6`W=yaZvA5habW&r?iBp(q&ETuJK=X+pZ-JY>HSx=XDXKqkD|X} zp=6H-QP;s}zdwQ*0pi2S@AFun1+LLCb3SN4-51Op=G^9WpM!f6%bVkyTEL(D7pI3cdEB1pjWwa#lY$+l5=Z+Ps9F0 zFgI6~oLheB`Q*7^7F9Fr-3Pswz+6QSwj;UamyTB-2D7NT7d(Dc0s{s}<6xe=P;&P87Zsm)9tX_0ILXncDrc47p;*5HOl(8Rxy5$|;%fk=%|()P z%kK-&3xPTJVzXX4^ezYUU?a2M<*P&wI)GNI8T7j9yoSR++=q&(q&y{99y3cJB zGx#c!Q~A;Hc%dL#;jQ-+GhTY@ z!ENg4t@kZ6CcOiQ?-01JdVA}g(nm60dUe57>F2GNz>G;Ri1@AqcSC<~y~mmH(pwAe zmjT{-=M41DFYPZIf$K2HTQ8j%Q+%X14&02v-g+yTG3n9x_Z+xahM4u}eu1CCoIg}@ zFmoJV4q-!MF!hFe>vaM%fjN`jjbI8#cI9uI_LaSe2uTGh~F_Z>(OCA2);9c!ODw>SG_6Yo|%h ztv=!r-~C{A+-TOzgWe%9={K46dP47RFkenL>(TuTRd22s=z@h3%pBWG5F7e|nSYB} zkB%3fWrp-9IklI~SpN#RTW5Idtz?F@C^_lTdC`sFCf;h+y9(SAFn=)T*5By(sQS!` zfzxMs>s=0JA#*0ZC&8?kZPwd>_;!Ptdz<2%@_P&7TL-4y?UFkMc239BwBK3-=7qVE zb31QF?d8;eR16H8CpowAfUaA;0A|r0=J@FSp)Y~id#71%H}sMgR1BPTmsu|Wy(__7 zdAC`w7xW$hv!6L+%dx%C`TO6&47ykObt=CzVLz1_d=<&5K4^b*C%EbNne{G&!c)w! zoMU`+ytM<|dyBpGjxl4>qvPrG?yrd7V>IiX0j@POCcPcl*d5$i51RG*gS!&U9n86% zud9Rnt_1VS60;utKF!ZyRy?FQr}`KJz1?80ctmpgbqIAnk)Dg53nuue;+*tGqW#?g z=DalR7^CHi#I%R+o#gX#B#S&yEtm<;B^CnX0nN4j%l;7VF&jB#stW=zn-Yn=n0^nX!uFmo)wf!Htt%<4^My_&H9kQsax$*H}3hb`ZOduOw^-tWw? zoMU{XSM{Zef&XBkuy*~FY%d`A%byI|hf<*irg-HL&ZSWNl-5gP{+_nukrTyQrqBLwl`)Ly7Q?gMwj zZmH)s9_#}5IG9QAOU~_hkmk=%fqCUab9`ygE5D~=AdH2QTlqCYeM|=P@JHtO==#=c z%m_hzIOX?J=+*kTVj%Gov)*dhXMm}_S8+~yeGzyfn0cQm&Z#}mhTeKG!Otbj&n-uO;VpK7!`EW5DeEMsoD2%5M_>k|_cIo$@W_#aJlW@kQOgk%Vnsz|3OKt(>VJ z-A~+iQqQeiNN+WmgUs1}qwWK^9UG2AxwT)oTJ0v-`_DADdb1=hyHS1M@ z-gIX0RV255J_lU#Z)QC@&oGu5mUHaqG*8?B?xDkGy&B-QGh@=D_kDf{?v_8i^_DYZ z(xZ9e^Wb(KHS5v1aRf}`W0G^LUz#Vj0CU=LvmV`t(uNsRd^E4i26x4uX1x{Q!eCDS zOLFw-RKH(geQz+$#hq~O<9IT-;mqKxNKSgRUw8oApmH=ayX&>Zwy9v&G3Qo(bRKCF zm{l=mJvuM{0hrhdl5^9e@;eR8XUw^c&ooc06k93K5ep?ZJu1JRVB#y9C(D42!J zxt;f+@>>gLY$dZE?FSctNv|w9`gE#~JOus}n6s-&j@p6SesD0DnatVwjoJ^={Y>+j z!B>%-{I159CE)s0Gw0(pa1)u4YR>tfa=sPZwWpZ%==kqWW=wiCAAbzo6Q_FX?PSKJ zN8|XH;NGfk)>{PbH!$-~lN^0Im0wH5w;N2Anr1!vJ>vm!Vry;GpK8qD*jd+U7# zrhP5NIq7{4ziD8S&rqCdSL%Es&Hu)NS;3s$uA=5SN5HKIv+7K<9_<%CU9fpwbiDd5Gg8gDKBzr^4(^WH-g+CDG3h;njoZLYu4C5g2JT@n|7Ol@+@Snc zu3IUv0}G`JSe)vE#@$0;EVci+SO{z58ehd?E-T?ZiU`5Fqd5@Ik)3b8izt)k{g)y za=?uRvxhmidh3Y{9tM-#(5y$}+E`}rRV1f!rt?Ts!A-u%Tkm0JSkAHDu19=p!8L1S z)@u%tAz)@RXV+U)eb6|$0L-+;X1x?}%a}36NBR8$+_#sQ^=SWlT9ZnFo>(Zk)yMPL zb}g8TE;Z|=g6j=t6?1Ow_hKapL#EW zd((&B4?gvN0r!^=y?XKf>Z2jJ1ZGY3(Z{FW5O8Te^ltL0HyhkSA9`zj>TLw~st>)d zed_%L?sp%0wG;f+$NAuzFl*OGzTS^!q2F`^^Nz;#4K|JHM>K!g59TlC=s4c3U)E|~ zDR4d(O19r9J?iIIfa$~>jT^xl!C+H|`1*kPK+|)M?^iIfEu>#le09MzWX=>{GMFCB z+3`8#V-PcxUrKJ}ay7V2W=(!)`qY~TZgI4pL-{=mCaGm)eK?n22uv<>rt-TP%sfpG zbZD8iMmhs8` zmUH>71G9}eQ+#{Ce9fGx9mKS$6sU%Uk{zEzIiJal0P*40{_25i%&f_87oU24z+L4- zZ?aFlo50QWq4%^;y|v&r`Ow?zQ}1hV2Yu+B)>hV;SAEn5*MM15eI)tR>jrL+54{4P zdQ-s7^r5%Zr``&1&-&2&z^C44;C}F-SEZf5`lt!69LU}(eCAB`u^7yw(Oi_?NW`=P%&Ec1_==7j zRL&PLgRdgF^~=WKS~2UEk6BO{0On(jE9#fZ?{_d&k|N`acRVju4@_g`Y`+fer3;uo z%$dq>7&9`r?(_RpaM{e7{Lb;Iw*cG{A9^qN)Y}H`9S=P!=lx**V$Re~YjwnV1}v29 z{6@7a8rQA>6K2j-&beSF`rvM2MmWZYTlO)YJdB{{NRK8l^L)69tT&YlXv-D%#4>_GjQ#F z=neC!mkKW1hu$2YdJDiU@uByEPrYs6-tnQg->2STa50^|>*E4uyy~MdxK=*&2Kdyw z3S5Q{y%|3B=7L+~LvOuLy-ncW@S*p;PrZZSj{DF%r;DsJuli^Jt{JnY@v4_ky+Pno zqxGW37n;9J15>GMWVc_bs?zeCXBe?ytYq1=o;SQ~4$P)awCmh!4H- zKJ})8o9#nynNPh{;5Pcu+v8L33vfSq=uv;G)}vD394wSf{jC|8_RQJ!;n3fPfw_q} zQ-7NSW`Pgx0cJ#i_;BlQOTn#S){f6%TzlK6-Us0JMe9Z7cO>E|*AwG77D}@GijL3J z&&M+(Kzz96V=B1W%$oAC%%|Qea2tK-?eVGi1-PGl=vC|Gub)dSSZPS6y2ZK!M4U=l9-cv&gVr#%m_hzxV6)<;3jH%Mg3BI3w`Q60Paa2 zdawG_dmG%xKJVYo zq4$zcz1P6)_M!KSPrakyD)sZOkA}>6)yHMv+C}R{_4APs83JZKbEfhB4Q9Ojz6sxLod~*UM9HlKJ*s&)LRU0nGd~fKK0%Nx5tOx zVV`<`fvYyayFMB-<5eFC;I8nYca=}QG;p~-^yd21TL|u9A9|a7>b(l?T_1V}ed_%V zE_R@IeKcUkt3H~5YvZ9u*Bb}<)Jp}I?V(5e)j2-(7JysgL+=HjdfULg<3n%1Prbw7 zVg`BF#|6xI)kkA+tvvK-J~;qP8gr(3*hDZlN9#rH7aBqDVKA?0dPV0~@!lerbHUm>I9~YX+{p54~YN^-{rQ`_P-?Q*QydB|h|C@Ts>A+&ez>_WRU33@&D* zcYR#Ij8}a$2G`1m-T;jFuYozpoT*%n zf{7XBU4ExB<5hlVg1dlOQ~4$O)awFnK(t;|erF-5abSMexV}ZM+fzB$PQ!5-7D}da zZV#plbEbTR!DKUMD(8vJ2*>zvYk$+g&0*HfFXiJ&FwZh)%Ey~v_C)JNm0u(19R_oL zx_3Kh3?{*Yqxjl`>A{>Sz7UwP%-Q*Mh;KHSHO!gHc_WxD9vsE@CYZg&O7hCb3J_pCYk&O120hlwZc|Lf4?d=Eiiv=cGyn}%oEwDzs4)t=jBA*YqIt9MvihL`9yC(@B z>A|zWydrR3daxImkF0zSdeAZ0P8*63U0!-H7MOemT#3LiLi};lgIU1&1=g!P7Ax{C z18$W9-v&j#r-9p|!1ul)-$%fGsleCmN?sPp}+J(L4N8@^Z1ST0@7I0&e@KL)kN0HADT-eHIk>3^ITLH{R z0>{h4-X2jtQtEkL@snL{de8~D?gHzjS0feq#sfD+fiI}YHy^l#3Ve4f@~s2z5e2?i z6!~@nw^xDhs3Kpx`S3UJq06g0vIK?!@yD%vM*)|wz~@)ws{yW2fp3)}-x}Z^RN&j9 z$oCp>yOZ#d|MDd;?IT>yUUuz#VEPN3Q683hN&V!>z=Q?P%dRy8vseMQTws!w?@HkA z5m+OA4(-;nihM5t_l5%BCyIQBfNK-=)@Le@Uch7toL70|19PdB&!IfRz}zKpUgfbC zmhb|*t2R#@n zFv<8v12;JdAC+4Gm3o!-p;|7ds!dmm>v+0rAJpp5_8qlE7z=m*i3h%tC?llFMzttg-Sr$mMBZ-b>)K z=Y!;O2$-V+=Ovf+jTn!`hb}LA@c0_6w|AekmXAufn-P_|WAgzbs(J z3Y;4srF)LRFhcxsOP?ROumax-MZQ(QtySQAPLXd5a61(E4k+?{30&K&&Gp>5UiKE4 zWbzvT+(-q!8H#-KfD0<{-Jr;K3vhQU@NH7$dmgw~6!`Wl@*M>3r~=>l*YGk+RvvwT z%Mw_x`cb0DHw!qw0^edqzGc9zQsCR5$oDjGTNL=-SLFK$xGxp>x-C>IkDkB{5LmDB zC{*OT6u5Z`d{-;-EdlNp1-|u)d`|%PyaL}IMZSH&9aP{;`<_~PbO)}Fz`B(O`D?kr zlnR_zdsGEX)XHb^Bl>~wHefa-@HzWyuK=@C;N04C@(=a^b4cKLKJ0wt$97$$CYN5o z4HQ^IE|z>;0lq1~JS1>jF4Js&HnqRc2@HO+%dP$00^AOPHR84S?ZkILk?%|3+P3gK zyYZ2~(HoeN0%yqCVI5-*FvSXdHNY%V;9CaFsw8}*e;a^#LEyafZx=A{S@|sGM*5es z7~>ZB(8c-e`jU=&V}Y3`a9-={mICvHz2qI!VPqbB zLxCHwz&B5kF9=+N0^dqSzI%XsCR#=P!lb#fL7h{N?~tEO17CEpn!M zUIWa^1U`E{DBcHv*_eQ{r!O72?ZE68I9_gcK9b9s*YiB!C%fF_(i6A=0&C>MQXa%t zsK_@1IA0Pzsz-|y`ECGiWfDG;-($c$FK}MvwiB4WRz8PvI|@wS8_arOmovpX8ki{w zIOlTHfmtMQUgh?Hz<`=vZsoQCxaS1ctK8mEe7hC--UIFv1-?$p)XJkPaJ>Z9t31Xl@=XS= zRDo~4B40CbOBMLmDe^r8+(reyor-+#0QZ3cU%Q*s%A+%IJp|UPJVq(<1vpa#$-fofI{REgp0_Ww2rQD498GPvCaj4w!`k=OvfhfLUYZbCAo^z`U2hXU_-8vy{75SC|cbfv=BZ_<*fqTKqXOZ&{kiNaZG~dGI=hok%agepZ zJRxvi<+}}-odV}(uhPMH5STM>HOFh0-vr=B19P>&kv!eznYIfIAnbC}=Uu?PC$Mhm zBfF7u8&8{{bFCkpfa@->UVI}J`Er3PQQ)gnpDfghk)Ctz_(M8?;YSi zP~dBKyIOg42Cj#|x|Ijzca$Pu4sgW^d^L)EQQ#IS@U2ngyAQa>tbCSwek1bx8Zfg~ zav5^DOtX#0Qv22b%u<2#s^_bLxi5jwUVll>F95S$;JAHuw&Obm29L1It^U3P+y?^d zRle=+P}CRTdI+o+-zY`C9N>x-_-YjSqQEUu;9H}}cOP(%De%3f$hQl)_Z0Y2R;iUo zd*HeXtXFvqRpc8D+++p5fFfTVaLq~hs2<$~%mV`FRgazqW{Z{2Qh)n_?|oo8-N|L> zRgby>(^CQ0UtoA`bNBzUfEz2YUga@Ik3 zsFlxB-%?S*&i?`Ce^>Kz-Yo4~r22jzFTBHvix3KjUO6#2ryU9G^kT9I!paO)NLwkz`O0B(;0-w{Q= zw(D?CFFtg6mB(O#VL<$Gs~;nQ%T2;Z<7Pf!8U)VEUM&M=m6gw8C;NeK12DT2`0V{@ zvXh?x)9$C<`6a$Sz!VFd*ZUh62@D=#mz!Lc19z9ey2+XB+7pU=&ja_00^fc`zC*yZ zxzAfJR4;o849~5*9`pxpxB_3PBHtX~sucK^D)OxWZnXm6Mn%5ofZMLX_kkkc0pN}( z@b$P~&F=OFZm__*=^vGEu_E6L;Cu>vixl~80B)rM-(!k=n}B;sf$u#fUQpoM ztH}2OaGxvio%xVjdGr9TufTehN4_FoF>tdL_!<@Y76G?B2_MzB2Z7lna9;K86=2@B z@>%M6Kkyv_rsprX4880|e_*l{aH9o=RW|%_t8cl$l?bd+9+vcVL4xXlS-763&utuz z{OnD@ydrR3a@h;aM*?TWYq3Kl=Z+7yY{&v-x1*2Kf>kWmOkR^D=_%UF1P#+25z(h-)u!bA8>UF ze9IO2RswgA0^hTWd@lj_h63LwihPHFYx8LG^5`Wn$;zWYaKjb&N)`F$09U2Jw^WgD z1#qjA@R2>(2+VeYGwQFyxc44l_FMTZc8KbE`^RAa@S%(Az1`m+yHO%A42VBW?=5zN z(x(F#6<9Yvhj0slxh)AU6S%v9*)DKy`)r7>-Q%!p_|WAgm%+e{7C5hZK3iZIA^y14 zb02VZ3Vh2I`BnmVj{@JbihM5t_l5%BCyIQBfNQhCtS`>~WG{h9Ccpl`4OieRRpgrk zT$KXfQboQMz^zu`+o;I*9B|te_&!kNI{@4f1->4?z|B$MYgXi2 z4BQF@zK0a~HURgW0^d7|eD4EyK!LCGlWOJB4Y=L{>s1~(ihPB@%~0TrD)L9hDv)US9&k#8q(dlmSOD)O~^3hR~eq01|MSpvg=_~Vw} zQNZOZ@c9+_YJh80;9I50w+6Te75KI&^1TM!ZUw$C75P#&VLco^ba|D>0D)mZ{BbLf zp}>t-;G3t&7XWU)0^co)e0Kr2PJ!=vMZRso?Ns19sK|F1xOTs?l!wK>Tmkv_0cNSd zaeFn*who!<`D%f|PjsB6=-&w#^37l7cuLkA@E1yGt?*rx)f%D4mE@1XpaTdNSkiHLqDSVd8 z&#NBI6PRRj2>>@=VBO?G_3{=)zPo^1r@;5TBHuRPb}H~4ROCAhT)SUe>ZOC6`v9|4 z;JoC#T40jNc`b131=dT>+ZFkC0Jq1==a7#hz|4CtxxUO7m}L2A25zaq8u@UDcO5Wo zHYbm_o4_QCwAgrVG-kxTl>}w+){xx(&tdV>lFDO z0&b%M-%drocYymqfv??fxQvtKw=-}(1lBFTG;TWzm|}tRDqkNkbyhxy@?8$hh6J2_ zJo_@l`vx%mU*LJ+dSD;NtN?B(Fn0+Yp9iz!C?DH^c_#@U;r0P@SOM4eMf891q023O z#Mc{`kqWpRU}hx2JqkV@n9eWpc+bZFoz^SUJl%eQ!B2L%>HQ(#+WeODdFeqfV1^5v zmmU-XGedzd3d{`(e0Kx$fCAr3z`U)%_Yp8(D)4pN0(*}SU0(Se56l#S^O9c>n1u>_ zw*j*z2_N}GPYVo7ApW?O?+d`aroi`+BH!o0rEK-q7fN4Gfk~FWzQ7Gt;JZ|jZ#HlN z1->PUe9M8mOM&kRMZRZ&+or&`Pm%8v;0`PBb>GIzELnN<0&bwdy6H2O?-WJ8Qs8t2 zzJ-c>OM$yhf$tGTzKy`Wpuo3Rk?#ZGK2O3&e$$!1!#FiQba~mAk-+2%oKYSQ?Wzx$ zWdi5rH?0KbZUx+Z0>cuBKW_GAJ#d=@)-8Q4czzc!v$mVn9;LwORz8RFSP0C00_Rm8j{vh#0r$MXu#Di3TX}2)Zl}O{<@X>k zZC*{Tf8BuTEpP^(Lw<9B2@0H7extx#t$BrxL@aD@WH2=T|Qd@luVp1`{0m+ITqihN6eyG4O-y&~Te zz&)?Pw?~n0A8-d1_|jhIWsyvN-GS>PuwL@ZRpgrj+$;sY21UMwz%5hYdq9!z5#XLy z;CowjmMZSFCE>++QEAll0w?u(&ts>upz&)YBw?mO{ zH*otD_}czntvosb*Ii(Z^03&y7F4p4z-$yaxA)4B-TeTVF9pua?snRNc=4gjh}Xf6 zj}#aN#2;oSEjSuinGD<b0|MuzS8aE}zsDybUW+}TdNdfAkpkyt z4`}~Z4luJ5`0V4)G=ADBFcdFcZuN2raJMAz!45gdWj!#%-{Sf3lFK|`>IBY9E{lO# zA#g@{ILPH8U^WPxmt39&W@iGQvs?}e43~<#T#f?Q@$Ka0)?Z+f@nr!wR)KGhBA*|) zu$9kJZs$N?D}cH0k31h<`+)WW^SQuzm0SDWI4=Vqy4=c*?Cwxtas|%dvy?B{(^l)K0gcGHi30ZAJvb2ihKuwJDP-#>hJmg$7MokqsuLQeSpgnShw_% z{7Qh)1=h10R z+*)9sNP?RHzUP2BDsWW)+~(~|-s5=%gk5g-We#vv0_&Dv%EwY*Rtub${MG}rDG49h z=Uu?;Q{X!cOuN5W^va?K{lM1;m|}tRvd^=C(UagPeL-NF1tuEI zcaH+!vxYAG`PDJ1_-Q|y((1XyA-&23Vc^9 z@+|@G76rcbihNH1_q+n%9!0)=z#UZJOZ$MAS+erz4qP9B^(v2CMZPJ(%~IfNP~=+( z+%g5e2Nd}p0q$u9zPA7-h4_#j6ktHz6?B6Kh@)h{}ihMP|H7f9}Qsi3$+=B{y zTNL?T18%nh-A1Uy4{6x)8o(Wt}f%TH#SVg{k;4W3*3oG(90=GngZ>=KVgTOtZz_&w@Z#QuJ z6!_YHs#YGIfa@->Uga@Tk#9V3Q>=WJdYK0O3)=Xg_ZA$b=PDb{J|9{Q+(H{}nvL&u z;NDljeFwNF4p`-9=erQNqc)s9AKiiL^O=>;j>`jXoDFA>cLZ?P+HiJ0lHXG{oU{C% zw&CpYlAL=VwB`f2@@N#djEn57^=j#ox!H;%J7m3Dx=gU){y)oS(dUlH>~fp@?B&)0 zxH}ba)K1-N!`aJs0dPOD;q2v`1>8CRu$HfL`U(|rncyo`zzqd%i2{!D`=kwL&o9lZ zKc#@9_h05>)dM^34B!U+(~7gF?;_wPDB#FmU1`JFI6``l5B2ILKdJ6CE*3 z!nDk3Sm$fOX>e-N)6)k}$|)==oK##`TAWjsTabN$UR;{1&&;1bHfvO7<^>M-3(NAS z=aiL9*Yolx&X}wh<}wVmK5bp%_+_=y&#>uhXeSuL$iOgmO`B$EjN4ajA$Sdom(EM3P$GUh5Ze6 zflw?u*B`D3%neoqqyF%MK%{xDzrKE8tU4H}sP{!;%>$zm|J%K?SJ(L> zHFL`wg0&TMvjz333{|D)hU@BswSkCshL(}0>kIt4FBXdg%Nt^W zsCE{@sspw4frvTuTL|^VYBlWBv7k|>!U25SR~64 z*AckdU@Q>v)kYa0io}Pi^n@^fbtD`L$HUs=As(ikj-M!ws2;111bh|RY52b(ZjIQ3 zA+U##E6V2hoXn$v}8R%GHne;5@rE$uDb%VEz(1E@F^QSE$$zKc+D zdnlgzKrBdHdN5QGXhJa8f!P?oV7H+eLW~;e0-NTgZ(Jll(uMQ!`yVU>9)qT}%*F4? z_^!ftA-=D{_jmAp3%;k|`yqT6;d=|d;RUt)5#J^F{siCC@ck{674p+^Hom9hdmz5i z9JNpxqWNl>hVPm9uEh5&d{^W9GJJmz-*8J>?!fmPeE$sJNK4DJ_@0OFH}U;leDBA% zj_>wJyAR*z;JX~(>G<~J`*wUI?Jf7?`$~NO5#P1=?u`7xTr!=$18J?d=o1x^vQDch zRI9c90MamucI-8wU;3L`)5;loiF68VhvAP8kwQ&z6^~wj|NkPPrk#Q&gbW@YAU!8y zd6DcW`JEAPod}FT51`9h6yJ~GyAj_X4=2fLiKc4_B9Kq(qLB;LqZ!ACJX zoH06#a%{w~i?haMXD{&8HUzYD@JJ;pLO=e9UJUO@uZ5dv-05$=6QMiZ#4{P@I~BDN zt-HAKUGojUFA|6u&kQo(stCu7Xf86}fIk*bzyR}|`r3x55zlz@o%s#$bd7lCm~Yia z=NmWXnQuf)H?A??C^uzuuK7kF>Nk=+(0rr97p*oTx!QcEwmdGfh2|R(+>j!>*n9)7 zRGrVbm7RF2HXJf;jWyp2%x{3hC<~`o!mXxwsgd8n;5$TX9K8theGt7qi}q8H5Y0w-y*O@>^~hGHNp2 zsD=Y2OQ*pU-Vh3E{UM^4(E^FeZt2TpXXob@=al**!TOk%A)u#l3LCWC7Y+Kgz5;cs z3kqG109?8X?E(Q5sut4`Mpz(k~ zvVhW^3sNs;B}6i3De9@6nMSTAzx2XTFebY5I(lyYY9_g28iRI8av%~3N6<8L{kRCx z6WXoB1v=JTAJ7H}tXp|=ELtibz@&IY+{QB*IWhrJ;s8^g0r}*hD}Dl&K_5Zx&j1HWd=pI>MQ9 z=!i9!m(0yEme&xi)E@bjTdoj*{ha!jj?dPgpG zbq?w@e-Z@~j@0SC@+gMS(Z}RBMOwv8G>_~q)ySIoqmgh!s6vm08-0-q{i;ADj8R1n z5RXfM9tyzvV<3gRK~voN)P_18PG=xHyBb6DJT~S$kkX3;I)e1tFct}s6X%W$hAM+- zjhmS+yTj%;1OqXBs&6XOWp`XOScQRj8r~-?<-{3_;rwzE3>@TMUZ6me&mUtxv@1_A z;2%DGly_Xro?y_5oN-s8x^P89ZP*(_`9qq?`*-Du)(8ABF0lC(9>oOTt2q>iLJon- za3sLA!kID_@nMREx+NyHG8H&iplGZa7KxOPS}40(R0OMn7}6$bdjYaCnZh_j>U>Q) z=Sd2~Y*RQym4!s*&L&~re8G?|fnIzj82G4~IY%7vRRo)u=VTH%pKZ#{<}+ftzc%cz z!KhGF#{`+LqS+{NX`rZ9Lajv2H0iUfZ>~VD(^7?8VNz$wL!orK0?qnH3Qn08-Y(OU zcq)0usV_|S#Y|XP8%B$1vocO`TcL&pA?MkeP%AiYM=}-AiPnVD?Zs~@1L|5OfeN#6 zE|A~G5Vmk~^@-E-_2Qh%^vTnwvB3noCmcI{VqLwCDqvJ)NC5j}i)L;9)|0rNxU4bkn?CpJ_G`Dvn1*N8%BqKEUErEXqc!u<3y{`oQmu}8 zK0eM$;W8x@9;l*`0TL+Pk@}5081@LDep0sRj!Y5mpk;%PM+0DVLrNMqFe+F@EiKtp z5C09`0C{huOx$}jJPE7!1|<1zBtgoxNH-qFjJqGR+I29!W6HzfS^{!I+!feskt~__ zsXXh{#h_rBbqcO$9S;hX*`CUVG9*@N*HoQ`EJzT9m4cY6H?pSIAQ4?qeX34F%92EM zHW7;Xd8YbABGqat45AOt1eF+tOJPoh_`?nLmN@OtX zBC80OMRSG`PUCh&BpA9Q3+F83PI;gz7&3Ue8sT`tYG^FVDmqMYQ$}M@CXu_s zg%>5Of>0o5xTp%$aF~pR7Z&ZhrL-()Q|Y6w#gk97Jrsv?dJ>-!$)XOsd$OD!LFz^b zF*%!n1nuPM6Y`RgiHc>(mGwE1!r`7NbbbhF%*JChU?D67b2JiWzKkd36xcANl}~}C z{kX~ht&dln4y=$I2TjHF7VAQsgliC8R=~6(W^((@a{ArBiG~oct>SN&9C4MXSS&=CWvZlg471!LXfXd6fO4qkziFd?=}%Y`Y$E|Ds#4E z>U=>WhWK?8rXt|S;u0Q*7}_`A4*O&A+k8OZe4A!tsM2|>!q6cWRiGxBrMU|m2r@H9 z{Xujnf|ZzkkqRTE=TN$WSSXAXm6mQ}tqeAyaggdF+OK4UP#38QTBeN>S!ceEp$Xaq z8-|<#Uu}K0&mcObMQgFa^wL;GFwDASB$ds4h|w$+U&WOT(O6|LP+Jj??{pgxX(k65 z61FFtrJAFticKKhu`3rALsparV^CcVaWDmea3vumi9rhY2G0Y84YO37LNt{zC2Thl_n+hu&MNi{DxsZ)R#?jhRm7%*1nGQGbDnqv&l1~n< zeA>al`0DFfou{WAY)dTC5b`q>Ab^9>(5Hs|Y{4A!dkN%VIRJtyQA<+`Bxpj3N@iBN za(LEQKR}6{1cZZygbP$Q=!p?t~7b}V8xqBGYG)+eB6 zob}Q186;5ASC7{ei?5y}g$dPwNkbut2@fHSmdPzQX(Xt(NTw{e365sS5K8<}QQnt` z0uUX{x3Oegb6P;EuxWStem6_&&$f{`NG z?Q>QP2~QZ;mXEY}CWjs|#-wHE?Ly^8kTj|1TFVmVt+`~S&NQlR=(*OiTlE>lL=CyA zSoq)-6@f8}EbaMl#|%`28!+1$F9XRZ+93-c4TMSm+_^2b@R?*GMnEj0Fz^ZGWXO-N zI`VqPC@5(FhjBkz7US>YsC2kbOuuA{3QE z>YuZ?ogP6v)QXTna+Z1GLkWVH4~jmaMTqtX4e66DqZpl~@BSbXD<5?$0?WhZau_XQ zbt?z=M-gu>9;P--;}t_M#F#~(t{l6qu$e31kLj#8ABgaE6narOT(4uG1e=vEjxXY% z+F)u3?PifWgRCy{F&0WOjn4=t-;TH1?u)ZVpmy?yWuIH7IPOUpPk}JO`5^T%rO)J_ z*&mr9-7T3Z5sy8QEK_kIt7E(-92%3wSDomS1K1~r5p%u_35z%aRoHTa zykS9ElU@tUBFC;o|HvM#kz_e`b%`MwcdycTh?F5gHdObM$R_@bA)F$SS&_G&l z$~H85Bx;IEqTE=lNs={n8aEFr+8D19g-D56wJhtF44tIvYW@!uv1J_-N&1^oIjn1< zib4*<7`JRmy%`bD4H*$KT0#_#Dqn{!t4$uY+4CW*>}hz^lt}J{jEMU*@_vGsBJPuq zBHi3{p2-EU=HUpNq~pd23&p~)Kq8DUf8z`OXxM{dPGHV5oGFjn6t8rW|JH_i1$Ld0 z!lku$hV63nxezDEpba*>Ji%+8q67=YEN!Q&$u_i1CLtdG1d(TKh%oJ1n)GOlC|R9u$SoQ4fE;?F@F+Iw&|KUdd4?wFMd%a6*jyaVI@2Bb zM3L^Rg|`sIB4di3ZpjfqehXVjB%2)jE5dwe6DCploF6?RhyC~+n)8!nLW_}tke@vw z6EH#K5wS!gF}(`em$zCHZ#7~o2~As4L~_cYNH51)XX6PuOHf2}+WeMGw45P80;(cR z1jZdPIRN2c#|rJnFz$#!etw5$42(PJta6Y*@eEBh7@h8F(d);G8BO6`3d*q1^ z9-+y9GGNAi-n&9U&^9wHR;x;UJYKeS_1Mf#%9=oLlrUS`j#0nbM0%r~%Of>B_Jqfc z!mgtoALMCiX(_y|(=@IKWvGZ)(Cecm7Ayo)9dIG}DFb}ei$63uh3rrWm zI2z&j&`H90b8Og&s#Ny-8GQ$olwVFY}ST5AZz_O*$Uft$M4Fc>@AawG@0hppj|o0_P5Lm3gJ*BT1b?nNn2 zQNFEVVOUK{LlkUl2#h_CV?|a(tJoS2YM;i5$3?^0n#b85NGXGKURPT4Jl{k~1f~HP zOv1AhYtS1Pma#NQ$G7OT(?8 zc+g+pOd~fq-GmomLNz!R{$hh$G(9*-g-4N~>c=Sxwpw_$YJu`rv8*aaj$#aTgVhUJ zVC1VzhJR}w7A+HLmwW7wSrJ3^*q`4=J1wncBxxXBELHVb>m6teMg#n8he!ju6H{B2 zFKlzh%5S)!iJ3C#lI&XxT~cV<v%zR9XjzSPr72^RCy&u=u?v(lHH@3MuM^Q)lKB z73N`i`Q#bJ`BTeS-+}iFfQ| zECX?h1yNgzdP`?#u`!76S|bThrTqdlph36VnI8`4G{nNJ=o+j~#ao!1>Baht5Zgh6 zb#E2SMJISdG7{mFaBLnQ?#iixyFuF$q9vi)X11A>o;}r^io|F0f>ErkYIb~_2Bu9z zTw+UQ1vaWyhz^-$FpI{sco7*l#3tP#IOywmk>w3xE+M%?M&0#vhvb5}M30C@sO`CP z+=gu4KkJ;oEF4fKhx&{?!(Mw(lTuOwR5Q^zw=D9PhVhfTZ3 zm9E*-UlLly^}#%pBh`)HiI1|#@I*EALvKixMX4mX9LE-gsnDtriOF~$$4D#==9MBh zP7da=<;L!5R*SftJk8@47jrqMXr0osX-I%waPYBnZ9Mj4R!u+)HDSWgnd39KNW~1~ zguEH!GfXNmA&&zmWKGC1cK9dlkg(Q|AB1Oe>*k4EJNl@{lx^m$S|-u;Nmx2SUMe~e zn0m6e;MN&z8{VOD&V)BYD$g%RZ=?pZ>xJla(J>G>*0Rt#Bv^-&V2|ert0@t=*aeQ5 zdF?&XgRb?ypjfGqP$x-u?1qJnGg++)3rrs;*R0wzf)?03GD{-~CR3nWTrSyr72gg% zn_Ph6;Vh)D>*A`Cq;Kqf=UsKQ~N24{2Rw&(h_RfO!emY=El;B)}2Vn*&EUt5uH;* zddwm;MaSCGD@0_D?bor!CdOMjrRB)hMVnNVGr1JAgyNiZomQ{X&;vG6cQTC{SYh$S z0#Tfk)F~~~l@Lhm3(*Gmsm-)orXLpa-=x?Q%XGV#>g{bgK6sxh@-3_;fML!aeI zxN~aRG2`z<|Ze3B>k1`90oz!wlkS19PB}Y3gD0aRf z9XCT5sq2ZDIt-6t-A1!*{526K)^HoA0~t$J5|YIXxr|R5wnQSF%^$^);e0lnk|p+5 zVP&*AgD{y!T(W1Dh+yY{ByGKprA%1sMT_*!_LBF4aMUD~MkYF7GeV6xeo1ev4!|sj z@O}{NKgKxWNb#IZe8O{CL);&vWlSU&DL%aI1aCgUi8E|j%sai}1)0ld>~V~p50m_C z%KnW1&K<4okK~^ikcCg3h=@{0-&^>%XOG3vixx5X%CHcp4GY+yf_`fuOG@ zOM&O{!(V0NixM+;P~*curbaz?+Kj?bWf-rG@cF9)^b?&mZ8T`Nw3-&_riZ8C;Z(?l zx0f^75>lG_bDAbjnvyJ#ohnm89*FDlkbKo+<~TSFsc9MNkBrl9r#OrR)0<`Butc#A zKi)M~l^t)H^kd637R_o!NYmFc6GrUcv^4 zscCy*r}D8_D5NucD1po+K_R0K}%}dE}8qd=v$d;W?6S*nJ#-y%>Jp~6(IJKL zwH}mQZ4#b)QVRW>&-t*z8$VOsP7EK1K5S~*ewjggdCO`AB`3}Jwk!oZ(#W2C1g3ld z9(f@-IomnQ_Ve1 zfhSMZ1c+gI((Ilfcv_YNRzK7?#KilX$YJnRVP9ctS`9oT7K3x;ciEGMg%qi2-#J4j z4&G}GjvhH5f!E7?$LqJ)u!+qvuo$wClhibY;(*#vqw*`6L%q~j8DM8SV@I7ly7^+- znSw>~scGX!%hb-KePw)o21%h5H``%NNbBUx(9Ca;YHV&nSd4Gug;AWetbrEHk!!?i zG0EuyIDq_SPArU924dcW%>@X@HDnb0RB-?1lf7m-Esd)yqAubYH>Xd zq~XiJ#^EfC)U@^S67}Ic|3>VEpwoTgOY$#fxJi!$8V~An6jKMHwvcOn^j8M5{0JAyRN+nmU#CsLT zDhgV^9!obb@f0(M<1S`PNiQP(9fy@bscH3bH8Y*ji|snFy|6hf-TaV#*-~JoIy$X* zg)|qkqr0b_1?zFyxe`-mnzs6{-GBmtp9iTN#M=tF;xx4q;Z^_tAJgklx?ZTRw8oc-)nRonJP7Ju zWUAUOX$L@k7M?pGYdOx7!#WHMM_q%^GfSnGJ9f1z#DG)4AMX1lBVOZAO@JbSI zd5qo^c@HQ;GUlsfr4u9D@(gC_h?D=>3!{|WY|-XlJraur#e!s3Zx=~NhQ`pFvPWo2R|cc}=k#ARv1nlX8p2(uYI9g0-ceJWKNLa*s%JnQ$tLZ>5aNn#iV_b1_e zMC_$*z&kyd%W<_8QAq%n(tE78XetCF+H6eyV(U%3f|UjWdPwn66>}d39;bCg19Av& z=VjTom>^y(|1IVMig76<*D_EDgZ30u1$g&^YZT@cXj=kK2R6n4*bFScYwe3b(?ChZ zAIXVR+Rk&wtCdsJem7Pi^qJ*xZYF$vDmxM5HO_TO)aH;}sfG<*oW7$|0&K@OUu-C?Ptw}rSO&zcS z3&oLB?DIQ!P=JSkWGZplYtf=4l79;Dpg3O;`-46(YuUvZYX&d3K+AprO9s*%J?O@g);<%mRy=A1uMf7JZ>u zl-~YDFZ$H!TnAdtNvmaOkeOap>ihsdsgMC_{*&HX>wHFk`%5rRJ0UtWyeT@czY_VmG4V|Vl!(MPQ&7}1>AsU z;^Ft)@1viVOA`$2%|%@3WAH@YbRiGX^<>2*davxaMcer;Y7VC3>FcG9rNwZ^p@Tsa zkPk>TFsvExrX(qi3_N<3iz<-eV$1ijAKuibup10<^r%K1ol0XwqbT585D?=S4I%#e zDC$|4$;lraJcOhCcrj3azM~u*vv^*PZhqo0m=?wJsZ!ZhD!w5mxrVlNO%3bV(TcX` zr0%d09-f(=2tPfcC1By%+4a5{4dbx^!evI4DuWh4k67p9Iz{8u_nv9qLa-JIpgDh%ea{y`3QB(_3Hhcb{ws;D0sSxi{?z$b^v z*6)#{=6ZbnfvNQ3bs@ndrC&5o3*qTr(x^FiGL2&6?z(6vg!?+vb1kT;&4I3v2TEOy z;Ui?d&Y{zhS(7z}k66*}k0oKee#R$dkI{U_J$0=J zqmSn$m;upq`QO?K{HB^R*=Ec$J@@{&}o`Ocb{P&GU)cZk}oCW-pY&9=rHQ3)(Y?Mxh+hJG9rRbhG3t4ij#m@I)pOh_GhDn&?One?mp7_)WYf!6UUt#05` z%xB=xq*iGcTlJc2cuUg*m3-|eP2cl2Q>^==3AGLhy*WOQFC9z_l2Q5986yyQ88+*6 zqcui&*RCRAHkav}@21!0fcR9oVoKB}mV3wXEUTS%N3#A64JY(9+*XAO9UtAGodYeh zO4tVqY-M~2gh$Km_DK7IQ{(hlSawt|$E{bS=xH(*Yp;#|B+G@wq0dlLj-_Se=2g4A5J4us~g=JjtK~gh8>=QtOAM(v=4*a8$0J zh6#PO#t0Z|6={g>GdT@y^~K}qV5>y1A^Oe5Lw$*#7$Y_I zzQjmuM4=(l`(*LRU7JGnsZ?)wTn)))Pu`MZGo4t+cJ0MqzD*Kis~^fFjd-JrTrmu>wv002`cT#c`@^UG&QXk+AcG4{d_{NLJ*Ap+m%Q^LPY5 zDRoG>iyUt~S@u4YNyCbe8q+*IQ@&<7lN$_S9wUgCmq)5_1T$X#OG&z27Lb1dJ2A5% z%Eo0cOth?OomJ`!AC-ey2?M2~M9IkgBeCbmUPn$Xbl=1|)?kI~b^IG=j?n?9(M>}^ z(AlNYNc(aKTC&qYN|M_$X3+;HhT%kq3g$swW?dlQ=s}gT841(uQ^I+_(!wxPL?d;# z$b!ZTimGDOV#1#6{Q0)g;sgWdv?3(|V6NW@(Ncj{8a`q%_IUFF?yC`Aqo6{@K-ckH zut!_7UY3z38*y<>0bd5QQdUjN90!}J8pmqTHmUJ!D4xtZ8^wOn7L2!_U=IS64Q4$})=K7By|an{v#b}`G@Vs>!;7+Yhrana9NJ=}_E)m{n7c!& zLk*5SB-Mvm8%~Ysl-{zZfEUu0^G%90CrYn3XZFJU`g6TB5U7Fw&lYUbE7I+VlKMah z@8RW5(ga5cz4;F95+fPwh?rCt<9ofR!!z0ulGjjI*Q^InL)ft%PfFtz!r{wo8gXl) z+vme+50RKgy|b?7UI#6eO>jNFxo<*q`bVS&CDwj=CpK2n%oGx{bs(4=MVD0jA)wP` zE0b&}!{jI%o<-t3ty3$^YX&WP9wsZT z(UQ8fudGlV2RB&lqcNJ(<#>oAjBTQrpQy*YUd+a`CB}~4Z!jC~qASRK38-fq+IQ?) z!wl}ViJ4%_hG?Pjaye1V$J2Q8cfJgS?#rzuR0P;nLWz6NSOQxXtiYSMXfp!ux(VZF zs!WbH(ir+dZhr;BL9G@fH+%oa)|V;J6!`DozEtWdOAVcgq(^a%E}d-iAGtJISfl?e zhYgBw78GHzY-xhwC|?yr>myfML*Z~t3SlF+ubEB8-|TQ728{#G1;GeApb+moV6I+& z`@KqEu(knjqoU?ys{J;W-C!hznv*6MU&k=QY-Ef%Hpb?PSOgZ7RX=LvuXACbqiDFh zIzSpbTa(4fX(DB>?CkU9M8~m3rR`>ax=?DkSchy3nqjXIP6&$|=1jvIjoS^=mNaf7 z45KYZdn`~I@1#+xbEW+cg<&qR8G%nk&5)jXJgcm4$P9v$=McY3zhpzfWXJ08P{frk zWo)EP;ux(F%Ez>jKx#Q!T#8O?3Ze0#201%}-8nQ!Fd6n@iZPS+P1ZV}%nk0a2MK}VX?gmW}uq?4=<8N|cwjqQg6iu6{Xq;zG zV#%-x3hgo2h8%C(a2&_GM9u!6334{@o@=I<2_h>*-IQNuh}s}$vbftqgY)-E9l-HV zcx##-!3in>X1cC-X*%S1phmMJX{wD9%fiXBzHGVRDKcp`pM+-5#<8Q|R@v)$JfX64 zDl?4gNfl$Qu?ma%=l?^J4wZGei`G_y@&z6TFBvLihUqs{ehSXh3JIV#?k zk`_N$aK^jDL4&<-flQt;(%Q_Si@W4SB*x=;v7;#M7z`~!EwZBYLbXhnrmU6 zybZAg^K1-9JZ+75yv1iyJM!@#Hk^dSx0+~v+#Ek#7Qdypd5q$hOM-Cvb86bC6C8;# zLVFn^>oZQ~NJz=C5%iXz;h*pc1JvK!!2FWK6x_e<7zw_Y;c;2Vqs`G+piaz?(hBY8 zq!Ctj4OzuSR;g38!y&7NP^5mbeLFc;akt8aG&l`GpNH6oNk2xM*B!5uJ#qKj@~$rG zWWBGVB2d9yLsIysqyxg2atCmPauv4V@slCGl(oT_QR0>OU(%o_8xWPb7nRssktCQ` z;yNU5q1EO72I^_@C|$?dP>|FE|AkyvQyGplVjwGVMGbkZ*BEQG_`>&EjAS!=%`<3s zufa@4^=aAuM{u|x?b+gv9!1)i;5E`fh8_wu>UtRMxa$!(ODvLH8w@UGDy!&&|2W`srNIPyw8J;;$pyMH7V5;?FONn+Fv zp+=OuoAJmqQhG)M>*X(;ux$#+0PWv>&zOZx()=0OQ7+VkCwLtqN9uKBo7ik$BqSUu zG8`QpMt0c<4O^Bq%QP<&KX!<(r)n!}fg#c{+}WdEkg;5`A!`IYDcV#^v2BuS9tyzt znwL_ggmjONycdyyv-HPnyC)j+$%_aJfgT;R_<0jh^@F7--Gi( zMg*9pBL?0Tr~u6nyy}JN`U1X+*<_zcsja)>c$G5=S{`y`em{(VS$?i1eks>>1J61@*YF zRPAnrZ;|@K4dZ{z$e*?jiTl-mXyObPyC)K9OokgilyQPA-#_@c?5V`7B$XiFI884F zxJw=sA}t0w);6;s4hx|<(QSs$Cpt|QFVnj#MRD^6mmHT*rEg$PJ>ORfdm)w_h%IV#juzE;+Gv)riQc?&wWmy}&D-Xli- z9zU^>?S=VG;uOwtT(VBv@Mp^sHLb0qGMDBJZWHwj`b#4d7ZB47_NtPxvd6<`iqUQ< zZnU6P=~qe72z92Xne5{+kIt7O_E~k!DlZ81U7w1#~orce9HHHoOo%6*n8uUrGt!-8^x#UV&!bUqfSj z^6e|}Jek^g*M0~a-M&z^XUd&XCcXGb7tM&gF8$1S0*qXcbeWI$*F@LQsK3-ww3ki0 z(J#a#1FaG;&V6eX-W@qtqhy-nvcO>hn1eGPLF$riw#fQW+_5)aK+g$e%SW~9f#I^+ zwX>(m$h2935Ek^nY@~b=ZTu=$Ao+cud|}1e$fENXDXts zyJZ7ZG_a;HBv(3f-Lp22d^=+lF$}fFz{XAL!?0dl>M~|@Cw*9Ygm-iMYdERA(~2mO zEfU||QhbuaOwJI0kUC%>_+TQ7o=u9LV@IxrKVG93K~B?0y<~ke^~>4*PpaAGe)%wb+%xd#zik|wWT!iYcvV<3stei3xYab+sDW>h7jf%&Y@sCY(B=PEG zHgCLLT3UTpu1Vcwn%KOt->^$U>5Z0%ErnrkpfjsJIljM@TBGno7Z)EqlCt!5MYTsKmMIIju#B-=$v(Rf;(kG#2)pQP?OMjIc1V9iu12%i{#p#nDLc$8t={;CHbAMgt&5i0HV8 z59Grlx7=J=(`y(p=A+-^Rr$Sb89Bz)GD@dv@Ag&zsVIg&A%1c+TO!6Y-bw$%es zyb@KT;j18bixg~NVjE410H~cNr?6Be%ovTLDKWfZq?Yvqua(WXW#W#FF?}D;uQ42F z#{m^1yQZGBoWPY6Q*hQ;nv*!Q4C6Y1Ol=ow%NcT9Q^8dv@r=SVBU|^3bc;ISQ8ap5 zBZPrr%hT}Rui+)tqLaKpqnnt3)vy|{5;v(&{Sz2{y*y9_I4d0-ZHgAb&vyu%4nPce z+@$F^_B@f}{fRhog8kQc2R4tZKNdwdQRk8E$$P8|y~kRd?W=VL8_iaMtqvy*$5;z} z6{cw6lGg=8^ty*?46N4TmERQc7wLF7cR>s_jO|@-poq(=X@vx4i`ZD=PB_bn@7K;@ zn=-nHm@sr(5oB5Ih>&5>Dt%gU9!uJDm?~f$&mf%(EHjE;2Fn=@7VQK=#{m_5Y6@Ad z4C~lU?_)E|r-IAW0p;&aqZey4pN?K^Wx6{98xO@h+oDYMZ^=lwKM^}cg2*)u2J}WQ zO^@;ih&Jy~ShQy(CR)4|oDGF$INmb7Fr2L$ zeFdpAMU8?KovEU5RT-TaO=JBFai)OI={&b26KT4H=eInHdnH`a+7X^p4pt$tGB#s!<=HOK_~HSk ze&;4j0gHGIS`5dCxyXurA-tU+!ldxH5;QxTmm8}clM~Y_Dl9XSV;yg0XX8~1Q&_DX z?E;v@-d9O>_D)z6Q`(CIby(jkQ%w4>!~z+GpC}g_5O%8$>G{s*(OtSuItp^j~FH#0t%u-{l$N$ zp|#SBW7OPJt4tn29d`&2Lf*-_#5t{a(o}Yzn!g6vU_R+ez94Jkqq1wESbXEG3lCs z{~!3Ix6`x~e0NE?>5YfKwPW{=dwH+XI&@wBhkGta8QNx^rd`j% z3#R<3{ND5LzhmT%hC%Dz8gP}S9cJNgj^3J560Y5K?<eyq@$1D z&+~oi_g&l)-S+vWJMJppe9woPwv~nVDxW!Z&bqaa-t@)Y8Kdh@zd+N{zD4*~uPJ)y zt<%!xcHNVE!{u+?fP6Kv@Rc7fxV`?8uiBk+N=s}??c*?`dsujfu6f$ty+;Oq`PT1t zoumIKqG^**W?fQdeNj5;$mZL(zVfG?zr3QfV40?EV&PRIAJ6~v^d6tL{PgJ11!?yo zJ?W{0|I4=BoileY9A5t6u)ODo^}ZeD!om;SQ#kc*y~pH#^tS*PE%P18PR;ep?O z`>_R2m7aH1bN}yL__y7S)x^6Y>~UJ)4dZrWY5 z-@X0`%qn++ZgokyrTZDfqKBSZ{i9n0HP`M~^}eRfXW^%ocKqJ>oSpaeKmFa8=I-nI zv8FxE!p|++Rk8TR++Up^+HlbmZ?8wi>2(_MY@G4V-8C;)Y&dk;vc6~CHV6Ds7M}Xj z?Vo#j(D*uk0S!_qF`>f4%z4_kV=^b|Ri&sf+X#XJWDuSYsr z_}mvh@Q;6~e&EmFpEj#c^?}`pmxaH1;a@g(-1YaCOEPbMsB2SJNYgHYG3t`?>FUQX z`E1uU*G>8Qv)7lN_Cw_9b{77{kdnu9j(j%Z)boqpd}G$1|EOtSu<$NJ9~e6#^ez8e zFKqhY{)aaHLestjOVK4|Ztkcx6N`IZo%a0$e_j9Hl&#P!7XIi1xB33|O!{fLftz~& zwKO~%b_0Dd)YF!%!|To~y)e}Gz0*tkH8-|`WFAW?)m1Knsy;LX=BbJp3kN%AN|Z% z10#P8r>wjD=kNbY(|*FjullIA@cRC@)V$F9hrfLH>N=z|tt;V|-SN&d-y8V&KVKd= z^QU8feOW-$Dp>g8HJ=|kbpDo-!{a)S+V<`D4r$tU7CvFvxeu59YH4Xn{?@k|eRt%- z{-819g)__U z|Nj1oKTE&-!-q<`U88A(&=Pk^xn}lH_pX>Y@}-5#KN~)9;;`>)+TARCOWBOSo;LKl zzJKx8Kiq9@9`vCd8p0i>u39XZAS0ghI$R#)FtKXQ$L-v?vyhIcKPTkU*@0B zngsjF!r%T)pKpyiyyTQIe?M*8hE12escCPq@Q)rFU-9wF5BziPy;qGrf*!8zR-Vga-ejf3p4ESvF=CwQCx&6(8JFb6!;|5LJ&BDW1O`kDgP3D9B z`ouQwxa)h6%|);UT~f|^aAEnc7e5?a@zu>kf4!&~WfEiIL!SToifSq zc-tVvi}vpSa8Jw4o;xiP#@jsW(kBJ6oF%^wL;E zMKC;fNM_ckxfr>r!$5SbdG5^Ixn)>s7@b>Oil14-1`Qc9XvoM>nZxG>L;l)^iojek zB6h;#5z{Sh@yrThSy*E=tO(-N5WIM?d9J^{eqgLR z7^$fDMPkhZqY?kys&KffHZa$4`sbE6;C+Pg{}0R>G#q&&C}tKg?X5S&g0&|hV@+6q zK_@_+Xbm&wOHP&;V{8@BAxF%ovAMC6q$Q;Hk?6_D7!-uwW_+R*qzSRq>S4UX z>ttk#zhwDD=V^gIB6f~pv9No#T4DBR#MPbXxS2bC6vYWIb6!VJcr>-aIy5LJJQ~ap zRA3n_UjD~k99n)7Dh*%GcEWSU*883CSeh_ZfT`mX9}g@V)`CzxC!;+#+I$_x03+~& z{QeW4MP7kVf~6q;fz1G&Xj|Gu4iUWB6D~WNk9Wz8x}oMy+)0o>TUv7L>6QL8KVpNY z`(#uOf0$m&+k|pGiE+}r)X9skHe7WQ^dRnP7z48>Ay!{4PFV@Ys!x3Xp^0mzo2DN( z&&Q8Os5V&c7LU3GFlv-9R(%pmf*TySWFI&2pp9mm!(9yI@rwsbJYD-7tuKT|_-4WI zNhk(*v~!!dTkFv|Q_sLj8s0cbl`C$fs2@XagL{#v%Lp~rt8CSYWR=ApIfLh+Ors&KE2>O|7y!q@QQC9ucEJ%Tjhth=Y~xYc1Y zZ{&-)$@92Hbh1V{FkMmESV7r2(an*ZV>HIW;#fA?w+vYR?wAv zMoc?^>0K;)(Y~b>rKMvH$r!9PD#Kcjj@ktAtAqBs5%#7Lmf1$rj$l1YM{St+)j|6u ze*K<3`;_?ALHj?fA>v{0ieDYHQ?b713-)ZP_|-wX7r%C}XMZYwbb4E&4nwTNFGw6nmKhIKL>wR6O;4%#p9>s%K0sQA@E`vKN?4951qj@pmJ zuMS$9A}*7TT08NpgH}!b zWt035zAwRt^7x;66(Iequy!j&yAi+cWWRoZU-#fw8|`QKbuat16~FGl8mSa56;fQq zew~9~Kg6##T0i`{oBf)GUu)UjEAZ=n7FLg653pZU0{61JKfteh*sq`A*N@q+qGfp* z=M*d}%ji9&AUx(ZZmVdoz7`~r+8P~yw3YOoT@h$~#xh{h=>R(5X9>q_r zv0_)z^6N4_#jk?pcVzsHzE>1wWYQ1q*7(nY<*!Q`b_>tY^Gmj-EaSh-(Cc_~%fBdC z{&K+zq*T+`Lj}vX6fAy`QmDT`NwZx=$VIwCrtU?KDN{egqozzfO2Nnp35haQupDbm z5j6D00;GxrhMO(;VxgvNA@xtuv&fVYT7baK2<-gigr*y>%eWWCCxZ%>Y@WujH)l}! zio9?*?)4M*nr!!$Ym^Yuexjl%m$ww)e+c~46jX$A6b@j-4Yj@LA_B6VCapbJ}$oU*OLEv(4eDMz}e&3k%hl zkVHn8Pe`W}rHe40n=l-EZ2S*$x-Nr)S;%F?D55D?J|UHI zbcG0`+<(^jB35pl`@Mw+@5p#d+}q5)yA-UrIU}B-6=fNjRD&MHO_oIvx8OIgLG&w8 z6$w}1Sc5?F1G+i%WiG14FW!s)I@TywpYjro#7wdhsf_*WP1i!WrV5o#!KgE&vBFAh z#ZS6O5Of>bH4Q<~u5Oe;Drue!2G?Eoaw*+?GM zrTx`gz(?&((F!bFrY~+YxS1k~&4B$s_O1o6j-qOB+Z4j3(6k^FLA^l46bhsdN`MMC zeZVcWH1q)lftxf*+t4%#Nm^1xxFrQz(@M~SAc{o+0rBSzEg}Y5p*)l-ium}kB51Lw zJVc(t|9$7o&OYwmo14D<>9#lL?Ah7f*_ktE&YU@O#@@q*#!LxB-q~z%%2LsqBgT5= z1$&p7fL3HB_o!Gdi7b~QT80_X3*^ldnCO69$m1N)hzyB^rn zg6#(OJyNiJfxRy8Jp|Ztp`8E>x8e~e0)y8xu!+FP`UTEez`iZ%I)Pm;*d4$)NGNa~ z0`@DRtq1lU!Tt{H0m1$Q?1zHwkD-~q_c&nB2yG^?p9^*+uyum{1lVhmzqf$hDzrY( z5dTN8B48^8`!ujm304B^yHXm51JlwFMMqSgX=fzcUq#>hx8$;ks;?y5*Oa8rS-q)A zmQkb#du4x6$E9mgspwSDUiWIhi6>~T%RHHpBMZw)klO$JL3p2X8AoEu0ad{C>#qZ* zrTz#oEv3bts@E|VTHoWi!d3x1wHiDjBlmOgn*O~`!pPM-J_VH3x<7tT9AxRRRbh>J zzbjFCp%oVoYjp}m4tfIz9ybpU4lCv z!)*nK-GucSg1J2LS-j~tPLLGS|r|OY|C%hO75;w#IQ<$R8;aOt-NJ@#4 zm95@4@2RG4<8Jl?(5+h*{_*(ZtJ^Y=@~c~xQ?|N2%GNEhm@^9Hth9u|wp`u5W9xQL z5sz-&zKPD|rrz1>_86>OF-Kl?tBFDz(`<{#lwO!j!&#CCkFVskrH?S!WiEON7H5qRV69orUKHgy4d4c$(L03~&@)-YxZ{;d!;xunf-CPWM5J z*8e7h7w7 z(QdkbOrFxa`v>I}eW&}!NPhC>rc(~<; zD4?Z_Pts_F@f!Ph>DCX&m7n1y1^A~5-nG!ZhxZK%{F89)bNH3x_x`3Rcp|tyHbLRs zNKhZ25AK2Hy^|GEsp^{A>iRd&Rb3>2ero6^QgQHVz zg*P29gD_Q{K1S>xKST$CaR|uF!#_}Xe`u<^jCje1@D9Q5_C_X&3K(~*j~pN!w!LHMJG)=s1iXUEuNV&~A2+so$| zJ?^ZgdhL#M|B&rE!sj?uTGSS-6r&v+Vun9w)ixv0=ImOtCby=p+Qengw}bk8=J@y^ zL~8e0DF>Pk>R|-(02%$$P{ctSFdzw$@jfKbq+X#;i&8YM@x?~fjFq0m zVon;eN@2GkU#90#!*xIC|MP{?+pUh4S` zomEj5eIGG>T=Mi3UZ2SkL)@j#yLSXkObWvno}=v+?{#&weIIKRlWHmr5vrQ zC$lboU5|N-()Dnk)%AX3i;@@=Y+O^?y#@<1-)1P-HG#tX0K9#7NIFp}u?(qT_s(9J z+bt@8unM@#XWA>*y03yZiaWQ0&6;N-bTNPTYzoA z56*t@w5cFzMSwJ&q-z4CN|HJQq}e1b_DGnltl&JnOj}MThMD>a#g)V`y*Z(H_Jocn zCUkW5zke$8w6r+wyLXYC!TQ;hT8$3MnJw*VCNLFO3xMfhb}6u0xr!m4qwVkaz*Y;* zwU^%92Vo6E6J-BDDnwnAZ+|(YCwy$IBF7&4vH8^PCs8)nuopjMNWMnIA+SNQw`~Gr zXC9>q)mqZHRN#p(jtkgwjrf`h=Le2Q5NvtC058h++**LX&$8OP5(*iI=mDY5o8#AAD@mUI(ZxlZa4i#ZRW zohz-&VA-VQ!dKIH76oP;&?hkY!4#Mk>Q4+`JrFkF2YcGsVv&V+`Y9p``9(I3NWv9< z3IwxHf>QWp6NtRlG@%1dcyRM`UGLz~))$YH3?%6mCwXk|f*!@%l9dOrrNNwB{Fn=4ohY%py% zs;qRhm?7ABU=4DW&d75Fs{{5Z0)-Yh4ZzfM%17uom6+oI7lwNS8Q(!v z3jBD;5vpG*O42C%%%c=OQ+qmn=?R6SsCdGuBV|BD-g@oRc0g2Q#DozoC$^ypt8j3I zN_iW_38`#Et~db|f`n8yHdl~<3K2po8>K5kK!xz2&?y6z+g)MkHMX|83LAMgHr3VE z$h9P{{Z_AyZ#K0*%5)f(A<$%!r(_;YPc9lLAFah{F?mGkc@LngHG6ez0 z!T1&7cK}bkqta)1_!u%KR+3c?#h;qi#^&Nu>G4Xu!trC54AdH>*?bRFp7s{RVh*Ln zS^Y?xZm^iMA7q23qmrnZ2~LJ*s+p8gx6nbzh6<>l>K@PL z@Ymgxj>=Y7vi%2-zb7<&9|Ib>h$GHDiRht|2HvDiBA-|P&jlqmI&J|*L^cPvX zilgw}>Ofa97x@_(G9J*#!6|2UEa~iBMfa+(`Uix#s{7l*5~=$;HvL7BjNknWkI$c1 z9+_;_Lf>FKjK62zCmvg@RQAYZuHN6zmBezOW$Z`qhY3 z)JAAK`x)#j=1|pfr|VZ;P5e+gVE9z&9ck524#$u!=w)QSK9U>4!<3ziyPD@@tWVk+ zu3x57u%~FG$CqB-p=t*^RdWg{x>I*&z!MNaAulv`>Jh#}6(GNYYkn`Z>7e~hXr31u zXQ3)V-{_~q2&{cTSUaFR3=b(?_q5TFrfTOS7ITUrPnA|;uv`X!7x3iH90mYxGiDBv zHsQM41aBi>_c_{KSP)#twdv#Y>!Fy0$LAS~mj~j5!lmhYA{}f?lUPi)$yC}qxJzli zZZv33;iUX&p~9qn8&AU4qd4~GA31!=Gsah{MH^4d)VQ{)YMFY({-drU;ocX7erv@= z_^gm))>G(#!=*viD)Bvq`3oBif2TdT1J?raAOE>66k>>RhkKN^(qKK*GGMTPM&b9& z@GBeQIx&3%GfB0h#B-exH6&rLc$x}yk4K6yjc6`e;|I;5YBZh*O0AJt1!G&An&Pc%LJSL1l3i8+!KD=J=TX{GGMdExsv|4G+Hs*ksN-0N*zBUs&EI2Hr-!D{ZC0wg7J{GaLV(oJ?GplZjE#&U3=1DPYRZ z{3ts3d8|7D8Gkawx)&oAi-f*Ju}Id<*XhD?YTh?QF=oCuyYjDlE*zXU7aBjy3@*&z zG_%BsBGb=iEX!PMb|$Wq?OFj{Hlx7NUYc0UsYD$qt;S$k*{p&VVA=$%-v%AaAVM*M z^NUcQj~ZPi5N^unqDD%Blr$csQW6ySSHOwF%F{CIxR$VvYe`S~;(b<318cJPRYLlL zt3Bxp!kUWI>J#xUmA-7`%C6@DQ<+Ov)cK+B1A9tX_%2}T81X1Dx&nG^y{?bryccq7 z`vp>wt)Ig0y^t;9V`G|f^@r`|M7p^yU-|cvQKIC(_OmykGiE26dAP%rN?h`Jy0J5! z4N^pB%uXZ90j>>n*H^`MxW)l4jccyQioJ%;n7$~BaV?`0Hx6)}xRxPWjRRa*w6Z3^(AEw zVlk%-Wv?{))F~~?;@A9pUh=gYxWMXW^~dyHdxc9$VmC z1x)+dn}N|cz+=P{p)D^B+4t{5D)y;&;MXgEMzmx3Ef*xfs+y5JxiwyxcZ10PSPlKZ55h9vh%`3y-8DeoDr{Ax1!D5|lNx86b{y#kPp z^)^7au~G}v#!4*aoDKd|TBX6LCL;>8&jyoY1(Peav#+)Mk~9bSE`|cg(Npo&kc6gh z1SJh+e8nLA(L=59-Poabpa60qJDv$xm!}s~L{zy5D`)~Glf;nCwSsyK64x@5zbwzN z9nQ6CjCOp>hzW`A z114%y+gW%Kg{M8&4#j6?Y9%g>J^aTVvp`BX5drYB2o;?!(FOiJ7b@*ms1U>2ShQ`W zan}~5N$=u!!RvO9ftC0Iclpd~z>OY=F!DHIBxiPnG`;YGUc||IAuiWM2zV2puxx2D z4eMehTwZ*CII+1?R?3Xk6O2~I(y)WEj6P7wpiJjN7%bmm6!v9UeJB??1IbJZJkPgU zr*kaB>_1@g#=8Rd1k(B+9C(IzfvaZL%R}DDu{XjPq)_o&39RpKR8YA>hO<}&&NqR@ zg!X-4bdfB;*a>4Kq5THf;X-@arh5YH1C2*Mu)nB7NlaQaUS4x2LjQ<6I4c{oQf^2%^qq>+059Tev^xd zJE@baTYQE+BvQ78r!HI@O2x}Z0;KFL!SJ-XQQ30FZUxjX)4=KHojq_MeALfZ(vJq%J{3 z3(A9qfL8*x15*Ak0(>0sQoug|UIzFP;N^gy!gCe_9tyYw@F>8q0KSgv^YHxB`t)Fx z)Xpa38)|v7EAJ-5*lt*xuv6&#{}MVqUqi=*G12Ys5YUV8`wV`*Lsu#8B7f796TaCrX5)D-!JjK5) zLHCczGg@5t589IX2{)AP-=4QcBO(ZU7K_Gc2}$R(XmHLeu5~DXS-;t=q=(qnK@8rC z;18v}W3XJlpKI~tFNSQ~13^Qxk^b$n5I2QH+NMOB6Xr1?2RGfz(*)=9?@<#jHGW69 z)Lb9Wy=|!x!}h#LtF-k7%T;P?kY;|4Qagb%L=XAeEl_GExb|j*==2FtWz?yRkfEntpjPAf`^jWt_oG6%86_NFbWU7M$9{q=c0yP3pgoM z=%;{oFn;5h2H$56Un}-z$s3z$o2wwfMvanShw(2AJ4Z`1?%o!J7>9Cv$uZ)Sc*mq( z^^LO}Mj0&wrMj3Dthkt0Yo@-$6EWd?1oJisLpOL}J0lDo69sAJ7iwb~gHbl}bOI2q zEX{AgwKV6(Zorpomq$z^_$iI%L8Wci!hW--g*|*T3j5rxTiD;Tg-uKgTWKt8rES;3 z{*otz^W*Fhn^D-SCT~^F?q$UYF)eJRv9Oi4T?_l7o)-4V%_!`1Y+_p2 zN@HOwZL1bGr=-GhgZ;#xy;~V`rzO)^PpdhyPd_d{iu$oCbb}Hh#N@co`FKcCbT;CWF`5Z z#5{LlMbv0r@SX0Xfo~VJn4L%voz`Pa7;~2XMgp9&hwJ&E5N`AZxO_cwh|fBFI5(1%en89H>S+V@aW!Su$#)98bP7P#biynHZ{#3eZ>^C*yZX{vxTSao&vj+D)&J*NTD_Le}B2 zx2cc}n+x-qPmR#l!W!ZCxHYn;Z3)C;&i8OlX)FiN~k{kt>d-)TLSyDplMXVT;F)QgVF zGx1@}!jeU@nZU+=$;TB#4#60T8xOzb#p_9gH=p)+5}aDm{`YrX+BL5Tj1+HQTfmO- zmBqdF0dfzvSk3-rcy}irjF%C7whI#n?e8S|FM0-N8~0G|{AjIaqWwa|pY8uucG>xT z-r_~Y%kxgmVz>sW``^FZ+@+q0S_8Pa0vC}_0(@kR)FF`B$z@ZEYdo(*DUQ}Xe8sV` z?<>Q>1jv5enKviDtTQ*a;7#%gv){PihtoUiZ2JQo5Bx~2XWxjQw~M+`!$qwvN3 z0sras5i%j=(_G~|Luoa$oa=CZ=0O*|{x%f4gHY(hhKs_w9%;i0E4gZBktnR#lTCc_ z;vlu+2fcPmYgKElD7K{_;Oj`NsH%~4B_2uqTV*~b3F37lCEcVs63o026dqLvqjQGZ zM$-%r_nba=Jlu17`tmr-q`%pmZ#3u6n)AP!^ViM!RYUdpRj61V?)63H{AzRk4Rh{3 z?=yXZ=|6AI-RIq6&MVFP=ugPw1)QscyXZNuDOLWmZU+IQ@4-uk{y=ZI4FdlWAT`&A z04D+d81OB?hXEP)y$g^|(T@Of5$dCWg8>oXJ3R;Rr+}9MJ_cBVPk9`0I3U7)r;h@B z67X2Sp8?(g_;bM90e=CAJUG7u#Lsyauoa*3E5M5Ze+{@0@Hc>PeRO^Ycn9D={`q10 zF2EOX{sQ110p9~$5BNIry%4{1oF2G8=E2+nSCqWMsp}l%g(#PELwR8tgTI}V@bew& z3f6+xx9+Nb))qHfa$E!?z0%52&o zhMP7>nN1r+)3oVk$HQ$39O=eMFbB(??EuwcLuURSe8Z6~wP-b@5sNt&f%dQ6NxQ^g zF{dwX)O5QUEarT|(%4G$-p^VZTZ+=?qO12FV`<|ojY3A#O|!H!Ev?ql>MU)Zr7f_u zOD%1QrCnud*IL?5mUgS9-Dhd5EbXV3_JpPV+R}b&X|Gut-AVL23ehHCLQk~2)6ZZC zLkjHoLc7LbG3VdF-jZ@=D<&3m)9Aj_TwM#E^g9$?z%`o|gFT0XjWXrPJ3 zGkZLTJS`1%+NXeaFn%1Me)%B$(WAR*U+Kg*b2&*)$0i3|es*sNHArnOi+CSlFzN@y zVpx-_*zOLyM5XnpqV}P(4$qV9HmU?3+$s7O`HQ{KUHF|5sw_$$R@Qj@F3!KQ!U4H9 zeI$NP$Y6CmGQwk@;(+Fm5TgDOiHUZ}b~3`yqr6ha;u=0F&2PguibU;eD}q?e`5~?; zjisZswU$Qvq0;iI9PtIh?s@D~*nnXvJObF;fm)adY2<{QAIm^uEeyl&ajzDnNuQnP;o9kvSNHteA%yNDDjW1&zB4~(9kS5-I4@Vo2b?dz#XEUYcm`h;TSlTCxl6+!a zb4#oBTQbB6RiOEFOQv@ZmSxFGo|_}!q@9L;vd~`0 zS^@Vgaz+YvCa_}!a~tB4jqOSBjxq=jn%r} zZrG_be2=U&!s51WrT}Q}PvETs2C^bsu}PgB0NF)L&b~+#N1~4gNNt~5dx7QwBcXE# zU}+PMzRriZ=o+w-LeoF|#>zg9vkTxTL%*v)tNLz0+FS1dJO}Vz!1Dm_17w-p4@foZ zb0|qwvxuRqw=|Zj(%!MO4=hcbs~N2vH5OsRUPv=j5vrvhD^#Vz#(k1veQNd7dJpeX zX>lYTeW_II7+`l6`ny`nr|F>zJ`FTTK8IayN4SEeHZe3EHFTtLHy&F%Q#JrFzMKed z+gw%G+Tw=6iQ_4mhrd0ZjIY7qcJzYQ+7_uD@+NBs6(HxMedoTmSs`To!#uOXb_Jw_ z=5Z_9BEREyz`=l!$}$ebH_JHiZa_+LEI~{2Tki*C#Z9yoM=a)i+tO|@m`Zp}#}d?Z zYi&A8c%|9OtcVO$hjv++Z0|bKm@#>F3@qLk?8Z$@N@11z$g5qIT=oh4byh)Q8Ov7tJH6)hc^Yit8hp!FG2sNG8*2LGvORd4+QNp@ zc6ycky;OArX10C(dS)iE60GDT=X6OX6Y90PWba-s`9qaB558xPB(AB@k^p!d7Ai9` z6T?tb1x_8XqXfGMSeal;fZZTW`+Z=?3GIJ?{Y5ZTo>MN^kAPhtU~ZbQ=7gA=+bkiu z3}zN#*k%sXDNqY7odw2-~Oulx>*giHD=*k7LHf3<>yNG=@^@t{-+Y8 z0KX41ozlU$z(#-!%t^J>eX$lM4E3lr$+0^EHnB6?my2O2fm<%qw!^IxXyLgWBp$yT zpca``dg}ZU=h|}K0Hw)L30NL%I2ZyrHHJPF4S{8Jx@iz+0J8H#|Bx;RJR6XoiF!*v z1$Zvt{{p4}{{=V$un5n^^U|LHtOaDlq7YJvNG#^OXK5cAEaq@mM@`4t({wb(D6PcO zOv6G0DoU*`!0oT&cO!o1g({rfOfk+6JTpU@wKmSJt4>wb)HK(&V5`%XQT2@tv)r}A zhAA{n6B2;~IFD+sYklLf5eI`0b9X{ik8=eS16uSN=QUTWQ#31~)OQ#2mv6!99yYJu!$3xrsV;@(l(od&Z7(*7!>)Ca3rDZY526;{hK;p;@CqVS+oslH_ttaTJ< zCXHNf$HuGOCc$7T=Tja_3=*+e@>pU&MWRjl?Q0V1ukoG;IT^y^gEg4m62Z_AoyCGR z0aMySOZ&Q|JpgPagkOO}o(WpaX)!rDG?I7%sVERu<9BtKO}1mi8EBWI=Pj6BTUF!j zmS)rtEN9T>yB)K~{h>saO`zN|5B3Q(9aP{_(Z13q%tHMVP;S^qC>8uN(Sk^%R&+fs z__Ux(A?qL36OH7%0YZq&F%26ev+l5mnv77+1UwDrX92bXegTl8;cUPafad_-3W#7I zX?C+IKnm~Ez*j1~iN%~7z$Z#0$0+R~OXEzb(()MPuvwV_4w{}0R5sw1j*ME|I8yW$%Bet01M z=;5)F%T+r=mWZl^W+uK|V09=bEv@m0*el$P#e^(DYxP>{Hd*$2h_=8|wBGhy3;O{S7v7KN^_%WCrNOFotJ(r6IUM8xqyQBKFFahq*P)7g@+#O#r{ZA}P; z1UC-p*P0BG4mZ9I3-iiy*?lH2hq}G!B!O-(A_=-ZhZ;&Lx;^pSFmHeaNP6GH6v=G; zVP$IdD16`rD9r+yWm+H@C7;THS-?7lb|J851zQ44`^f8nX&*_IL1_r4^P5ur=35wFZEjI z4%LsU(zz`KMx|RZ0mun{cG*;~ye^xHej6yJ%bqA2iNw)KgBp?|6fPwoCyti>9d;?{ z;iX3p56;LdlrH|k*$ni@-Y})dUzjeu#ux_qHC}M$Fpd348WL)PuAqA{LXe zr_$IbDeZY+FH5>V7%X}ga@j;9xZCX%p$bMXZgj9eiyVTnYcf5Ms{+op9T&!7c5ek- zMgKIR*ldA=(=wjAqcTwtcO#`_YzIbD?C?4U5F*)b9~D7U#3*Vw%0R=9j|QfDFHk4G zLnL}7uv))>Z>~3 zozfzx0TPQj^cGMWIYVibq)OXhX%Ue#SKuL3?bsPu)o!W!Ov2Ok8j#({nRf!$)&OM; zy50yq!L-i^4w2&Y3uGFeU{4ZJnK&DSq}on8lkE?QtE1C;KHW7}GBNZ+--F#J7{6LP zu?vY1^0IIOaJ@kuT!CR%;7$zQl1s{q0`9rX{M)PevSHD1$jgOmR^WB1)no8?!){ck zDu6NaM1k`qV22C#EnqLp)#re{DA+r|TIFhQ6t_mN+ymGVLfaSErw8#V2LKDIXN+eV z_A?j^8e`PO0T+iFvl@eS1gLR3R4)msN+yH{_l9N|5O@{M!XQo;g zm|-NmgXYzy>Kf`=Q>|6Abf~fdZ_hlad9cZ_#(n`=W#+v&r^&i8Mq+gtV!AF6M;#|B zhU%0$KMV`nS;eZ{|vPo zR?d^=RW;XOsI-f*QBb96)0Fa;<=ceD)emR&hW;g}AS`n@k;(1^Uk03m^NRq}fENSu zZE3(2fC~Xx4wnG_8L%DjpMZ-1KLCW2UV2x&=W;*_?VsRxUC24@V9<*2I{-i5q0VVr zy`p>EYfI-7^&NBs<9B?<_Ypw1$9LrN&~x0#Ra8F)p=GN2K`iE+h`LhR$p(u#t(Mki zX?yp^tdHC~$Y6+11FY}veBOG4Wm8j(#^9+bDj=d`S&^ev$ZGoiajrrpa^hhjE{7Lt z`6nJ88HfaWs9FHI0Pl-dnduo7?f2r|5QP3+4Naq;P}^V{TcjPGvpe|j6q^SP!TdBQ z7LEW!!8u0)vR3XcbZdoJ%(=$WD0P)Kb}_aW2&!|?uOjw}fx?y0^3(pwZ{UMEC${xO zA$k|6Zq&|T)+h5a8+?1!1k6MV#E zp}yaHiWt}NMBb8lwY+HKVZPh#yWLmwE=$Dg+g&dTH8g%6WweL%N3(%_Mfx6^Pm6^1 zG_d}Hxr!v++}HFz$x2ita5!gH0?0YAn+_yJ4$m~O)A$(faC>5W9Mjn3_PaZym}0@3 z*(2N2UV2)Xp3YM0@@fEPF|Sf%NFre%Vlizf6(AmbnkpTQ^J`~%iy{I6iuXfOHj^ig zkfajvIMpJti@iB+zs|vSMKel2+*FSrkLPxQ6F=Z@0AY!7o(DV;@V9^q0DlKao#Xd_ zD**ohNaNuD0&=eV1;9T7{t@tBfa?L-ZeIkXG-YIU?c<2WoO--pX-x)$0eCS59|UAb zq&88cQZexj3(`3C8GS>hT}U;Nj}TILTnWbmi*bXB#r~JB=go!&>up@*?g$BIPbn`Z z-p~`1d?Nnn#)%NP5PyasPriTrpvB2Sq?PDfT4S1k@5hsMb($HAxMK9rB;u|hpMPv4(uKg(C-6NQ9S}xrx@nL zoUfw0FOY30g9C=&qw1av32oTboMZ4D!dnjnqQ_35O(!s&9NJu=Ek?!`xAWT>fO?CH z?k1OG12DLftq3dGhL*y9(%02jKsZLmqiNjcn>wTEh4R6e!Y4O2wu*V1-k6;p{fybQ z&9!oYa-T9N54rDJ&dsx7Id8_}1LM;5c+y<_aJaopU>==s8-a_@mPyw!z9rRCOMhQ8 zTIFDsxpxn?X?7fYf^eZB{tE)0?fu_?rvSbUcqZVxfPD4)fZqoE0FVmce*hl^{1A|H zN*@9K7O>B*PI>^IUjWDzmR#*M5pZ{$PX_D<$iXX~j}>9TRbENZi||X}=R0)Jw=>AL z=rKEmj-8p$Q1qm8+9neecIKbTx9E$m=|h+32<i%gv`5(#~?rRo7X|ZTz_M@``cgs5NgYl$^2E>ku!U zo*0T{sO8g!4Na8#T0rU0ge*+;7NMK2nL!kb}yb?AnV!&<4py!sD)o#po7o|yI!1w&_dj5 z2ca^T8nGIUHAFuqZvp3*QL=qQW)Q<_Zt%0x zt}z(f>C|Evq9+s=a;;Wrq!pa&Y-A1>i?))~*qe(OLPq@C)I8qFRWmTNxJGYG)Y7iZ z%-)5@SKwfp+PPLR*K)iVlu;o+{&PTM#?QcS=^*^kLmSuFTBFv;qAkp)AK(lu@)wPp z9MgkXw!jKVfYb*A4@~HBX^AVh4+fcwRAi-=>ki4Z?!kO;z5x?_b`k9=M+@~KKw8>< z3`n=!M*x}MN6qz9ZJ`s3Ip4xHrL8bn&kDVKB}P#&3q_Uh=W*p|yu}k)KLn*FRH{kP zSgNdzIs4&{9^q0=HPu(uHE5%=3Z$`CV4kNH7vTVs$J$1gKE2Blc+cD5OB6L6!dV~8 ziCM_V`pClKOvTdov-k)zyHf_p@A$kqZ?>gPEat4iHKnaJSkFp3qnsnlo%Mgdlsh?q z@AGQlR!}NKH9+oX4NSmqa3){Z*J7>K_AGr0D)(SsS^8|J%rlP)Q`(aODPX1m@>`}F z`aZT6h{c>PTvHnBLunBP;@r|^V-ankiDcih-r#@OV-spC#md4&>;8UOqprQ`JJq@I z36(w5@aDMGOf|5J19kK?D04$~)CAg4{LaH~d1f8K{h=|i#@uTnc0hIPv7>7ns%Ouw zYMv9^VJGKOU^W*@rUYKxgyxCn;;rdsTYzIRiL$2KU1+guiQBHC4&PKWzAiuevsmtR~Qrc+{)AhbedkLwO*7LgDQ|q$53w=%AHTjg*^L+n&>#y{@V$Y2B~0cBnD1P*HWAlZYcl~^Yy3X9)+%hR5sNwGaHXv?Sf*3H zx8U$@qzQ+h90*#G`F*2D?ZMs3#&A8J5pmD~fF;OR?4@0_$Mt+&AN=u`U>vmFlolvK zGz5Dv&n!U*4C@g?zUNEak~+(l6fq5mt2CCG(yTs|W%MAW(h?F%XM)C6Piz9Og;{x813j+lu&DQo zwKb_3Rn>DE=e4G)>La^w%hmAa8aEf6O?9o@GD`KRI9`x>_;uT_L7*CMEsuT6eD^S~ zEPQ{*aXd6p=KlmhDk}*MJXq>@F87LY0yLIa$)L& z)01X_h{zsaMIjj~O1l`ji%uG%yADPMo{$P+j~5q=eae%9x$=ioZ?}gk?E=sa#_xRm z{Q>I8aB+H1zomIGiGR)5e{Prj&V0n-U$RuO} zmW|5_1WF4^f(njR_r|MzmYqrpU(BS75a1u9aKP3y zq1f}phZDUlz1+>p49EfNn-8o^F4>AiajYO)zH)I|z zJ67V-iqF~phZd9BAf4o~BmL`Xfh_^KV7O=w6BpDo3KA2?LG9&I)eV@5OF>qtmYQ7K zGOyl*Od>l^$Im@j&h+&y1e{=qUqTQK3@c5W>uFDd!Dc)cj5=CN#KfrwDgbsX&`;O)2Ile+e@MXRPOJGfzRtB;VSt<+H zkdacW6ZosL=TTq@kvKmGHeRs513OW$UcDS=xL_v%Q@M3EFqLKJ15>&6FtD+b?nPju z1v{v>i1PmmUN}4;h+mBdLb)sV0I>PsJFEHS>t@LKzwg zune~p8pu}QW}l#=>P5ye766&UYJ%a6GVM;#LjsT-KLc_T$i_J0f4=6Ivb+)rOa}1XU=#^9;eZWk1~~yeg^pT8S=m6UIml;}?w`c@ z9}MkgNNMumEr8QW(SqsfNYQdC7Aa!Y6?H4WXwjMQNYR2zKDDb9d_{pH)J)N$&&d!i zAV-Q8(EUw6L$t_SRJrqu7LZ{t@{1NwqC`vR`I({x35;l=D4~{^@HHH^C(050w{u1e zslFG^p8$mVDxuXWg`dLtXuzidsSO@vwLxMr=WWo=@5fOw?F+NQBFy3`vA>YNfo{d5) zkio!w!Cb|Kv4YMHt)HHO^!$#q@jGS^{^+4*X9?eg0Lo@QO-@_tV24AT$puZd#w&PR z%yl!G6Aeer2yB{S%&ACoq2~&um$yaEywC&2avXQdFaX`9W0Wqspu&buW!v)NS@=5q zgzpKgC(fXQ!)-%-6Ah7dhdn)HIQJGHJH~$lvOeDi90E948WG=2Eap4}K2Tbh!6Jrj z-A=1hb2m%BMv-YNz_1u3gl2qIzn6v6W~$4?v{B1v=f(%ra5)*dQ@*VQwp94G1=z9x z2md&NgVRVg6h9gw8lW+mV~6J8R_jOaP00B&Oy|n&$id{4%){@V5aQq@QhOXsjk^Mr zup7FMvw4Giq=AsLA*aPZiS&)&T-NEUfX4&=9qnE(jyMX$Qx4LgoO6_ntxx)Q%19Ed-9_&93E6XI+Fsj7yWRAY0~?5Zpt9Ma?b|7;EZ75%57 zzR2b{+{oFc@l0(@)zs3{0s}!^CqWHvx+K*BWEx09l7$1eA2PRZy*tIk%wh ziS6#(Zm|4j{H$Z5v;eFK&BDbQx|GcD9)lcp3fIz$>q^1cwu7pECvtRBh%c!^@;j&+ zzO!TU<^OB8q~xZq?;fs7&*2&Cg$JXr5KjY60A#ck))%9#kWO7dB{Q*@b0g|mY2-$w zMFz>BI14+j?g1LLE;yw-KOTrbdZ^lPQmqEaV918lS&e z^SzvI$A72TJnCS4GxLJ;H1qRWKz{HYh3*Fviy>r?OY1b48Q613kN)6;RV+?B%Y+G% zy6RX-%O^q!rb=cKd?8RiX3MMcI z^U3nw6>zMf?Thkd-Upd-hCC4CF$~Hg3=aULS^_sQF(StSSs#-u0}{hn($cyN)_r{( zR=;QQSye5ti=aL*a}{^z#ZV>oTK83QD_(efs7g|x@w3jvubV14YGm0qtP|uXTrJFN zKGkw8(y>}j0c5pI1!T4G8{?*0uCmoaOkI+cwg#z`X8psmG?NE6e7EC>2RHP#%>+>a z*bY|O3*FbrW;T#MFK{{rW*jpob@? z=QUi=T-DTs9TK{AV8|`Up-@4#P)M0sDeLgg!YVZ{CSabLp!oY`_&(^QD8muQW^!k`4dw%p~W zWqG=8II=Z1;4&*e;>b$oL5~q?w=CfH$>Ikx-sjfgFL!=ZxZDd+&iu|@0Qs#5zb55g zY0I5hOw8L#dljjaCQi{at%3SD1#7-Vy6)RxZbn|-Ho z*2yHx77R&tytaz9|K^RuyRi99YgIU@4&6wVTb3Y-Vd!BQDF&GhayCdlygTEse2;I1 z$AUbny=w?_2s3^#bK-FDi0lC!egfVdyty*-=1TZiMczEfe={63kVrT33BLu!1&^-e z@Tc`c`xaREZBD}?QUQ{M^zO#4_Mk? zfn6x+-UW6ps=mM}hIaU6p^XHlG;BiPJSF#Hn*l?^*vBcAMT&028V$;#P{TsZKZkxp z2xIKL15Lsl(ui8?=GLZW)waq4c(X)J_ja8zZ)VCiErtoutHjKHyw)dnKv3Xr}N7xIKg zL_%ex(j;g+Zjb9;J~T!1xF@dXSIL=o{<1m0)m%RaCBuW~ss&SkHj!iwmSG#DC6(P8 zLxVUJf2be|E^h(}{36E{FJ^{u3rL+kb{wg* zJ%!G_R_G9mQ7dtjw!6V%)D#VkTcK&X&so}GmUgtI9cO8D>eJ_uYxLeqORKT8=uqej zUxiSG#_)mYC_Y7}i)4g=UID1HK#PjklE&FhC>7|!mlr=Tgr&vn05{-=t43EriV|uA zT_ob9l(vLY*P|PA`9i|XKCUHr29hL%EnF@!pmRrJP=>v14p5t-6Il}u@6d~qF^LiLnBi=jTb8tnb83xXJj#kq8h(Al^OY}Zud3KP3 zG@y8&-emI;kIF|INBbo*+OL~X+@`*<+(M-f{MDayU%sd~jjXZ|1;Pn-G0$7}Z*v0Q2+n7@d7=u|7uV{!JHcPMk5WNF0beVQ(*O*Vu#%G3At8)w<8ah6T+ zDxcD1AKm>|O3wLWJPD8Uy~lXQ&So|$c^PHuyZj0)gbv?^yCQ4bXt8bwBP`M`yl!*l z-N;W$nh#zVcn_am#w7recS+81gWvyH>y;$8a=IeEj&H=erW}=q0(eC#-v4IvOqMXU zxCtl{g^^|GX5LmM3d>i9oq1&<+s%B`TI507#KJW!+tlhR{9Pfcb{#MV>@9HiKvk)G zG8HLxPaX$M-ILD%rf$rXRl}v{d>hye@{}&cn+>F3!V`4ikol2*WfMUl$(l zbAsk7QF6(*CdG-!EwA)7pMk}sApfS!&s;?1$LRyK- zkUHol?K(btiPbrf^f*!*y7i%Cj!Qrf7@$7|VueSX7F;hQ4vM9?9CDKO&uzZ~mNug! zx?|4v9_IJ-=9g6lE?E!DHjfH#% z{kw=Ccs1S=^aH0php8cZu>H|}^KejF4gCvPI?T3t4j`-UT)<{P$OoD9uL9&?vKsI@ zz#70?0BZr)0?q>bHQ;POR$Lum0iHbv@Kb;Yrkmz)un~}Y8A9r&PX%lSoD0|jxD>Dz z@BzSifR6*V0lp8o0B~QF9@LohVSpC`o&@-1!0~_=0oDRu4A=~q2D}rH?&5G&cNXIu zF5?cQT$;783=p1g&J}=#DBVuL;{mS(#J4$L1Nl)+P>@1B9Q{O+^7dx-7W->pFqb8Vc!Ac$4HB7-3M zOIw1$b?fxLjhyhy;e>gyAT0cZBCZx?tMxy1+l|PmSllzdwabduD$M;)${jh$g+~ zaWjQHh#CDUXs-3o-=BgU)t`cF)&}_dQ%#)NpMoCQpMtKt!}$AC5OejXxa{u!;_o;? z&en12rHqaf|^_6*MJ`W$dQy4Y3 z);0%LHmMleV!~*cugn>}bEhy;!wBK!yt>+b`w9u7G1r1HJ?8opJ#-n)EP0>I5SIAHw;mfIkML z>m%erx*G5&fRqo686MUJYC)%bI0rx9@!udHMsy<|cIpCKSr_md{&(sETSXj*Jn-uY zY_DNG;a;?F%7gm>sV6)DSPlr=tt^pP1;{bOgMf5)s=^$YIy(`IIU7N{uODguG+4~} z0NA}kb6}As7L(b!dxXZFfr!N%&fDEBG+Mlg#hg=MYu0y6G8oc9_9*QjgT)+fGO4t) zEDd%JL*uNP=I>jU293wi#zH3kRlXx>u$VIn%F`c&mM|FhPJrONU-H-AU@@lw11$aC zW`o5fsH)yO6;B`*lQ@-sl;=H!zrI_V$GN`aBZI+% zcTauF?#={*AxtT-7vvpJ8!YC0qdz=?<$2c`4EsVrNbB=HG#EDM8|dDfG+4~J7ucWV zc`FSTbK1ciKa%HNZZO1*2lk-Qt}z(GQ|#@&<9&n0oU`|FpI2!xtQ`inUf%J%!D7z$ z;CJ+pJn#Dki#fZ%)TMcj84Mc@!cSlCZ8DhgYz~K=xHJt8Omc?5 zRA3sVZ8EPV13?yY`VUXqLjecAqALvA)E?K)6D>;IXw>;+d1Q@WCU_S1+7J{wGFke zDM_8PdVid&CqqWy?}e{+;Ub;CsN?#azt)kA^_fld{Ng%IoFm;L<67h-s}lwE|B!TU ztUlxVereZ5wRt8zZc*`iJb3<5d8R*1)6-|HZKEtxYtxM3oWv6Pq)DEZ!D~kf0Xx#T zX#e}Wusw4TeTLfC79e^26$aVK@7*Q@A&MZ4SAMn&)zXe1tk^wTolZQk*OH zki}jD_DvCa?*sdmU}fO-OXQBLfOQD=D6p>xwjS7}g3)Q~r-c+uF*K_+f>i+1bn}5- zCg~8B!8~P8D0+Hz2rzxh7-0Go*_~XT@(s`y$-R#QTP)ZMz^;@0aYL+o4&Zy=0v6mX z_YLG}R>*0qFDCAf#@Bs-)aO8DF^4#9rObRbR%+BW%<`?>@ViPAKYqx(hL*Zn4Yf6K zH)6gFRJ+{A1z^y@ij!EwhC7^~C5tXY9qmvcc0gj4qeC;b%QuL1uG_#7Y& zKi|Y}e#jx^V9>xyV9mgxhM&!0_Dyt}`98|)f>0hOnLM5p$f9wY*%Eoo&%tF;bgapM zK*+XhXX=!MOue324!0A#Yi6Ua_sVutq7;E2%TFI#nmBFT=&^XjS@1sc3k4VsGlT+Y z8A1WH452_;hEM=8EEGVRq(b2kQ~b6Oy#YepS0}6|wjop@BGT&d3-I0$pf^GitFeI? z2DhN~*@HB?))7-9f~KPpLDO*+mD0G1N@>Si+GtCoW1Xg(Y-#6O+6+r;u(W1NyU5Zm zv9zyR+Se@YdQ1DRrTvek-ECGHODlv7&~NK!u$VIl z<-9@4^Z&@W(mZ-v1k2jt0)OW7lF zDTXLb%j8TH{PH_{J&0G}no&W*dp#b9i`q4hF;yNtLRmJ^Mr`EpWDpW-KW^56FMKr( z5(g!5K;NLGlVl7=rt5N)<)Yzwx{puO@1!1%(K4L+r4#6M*Jj9t%4`>)IYr;mlo8rUs@{R7xtg8d6vrKn=Nf|ch8jicjVppPwZ=ph?a#jXKmL?{%`;h-Ik=M)1z za}W?cL>1FLZ?FJ%e8c?4IVKKZ>pTSA95uhOt|nfBh`=?q)%AxCF7dg)a~sI!hN^ns zZeEb!*blP0*6dkuXoluC1UC(de8$w-2r*nUv8thJR&8_q(81BEM!PYGx7?esW%ZDu zLxv3*K4gSC?x)?d2|&go*}+B2|)B0Y2NcWz&8O)0N({13|NGF4+Uh`&;-uV zu7Oxgfr58YhNAY);UH=H)AaQ&Xb^LAY3V z_{sHU7}u6z-I(5v28LxlSS+^ja~w34n!$T1PZH+g37%A%lSdYUYDVUM|_wTm2 zaAOwsCbp z8FkOp>buFbW!@w3RBVCHtvbAw0TXcfeEe`Qbpp`55UCq#+Zfb=zWv7xIFo5`JcJkT z>6~lMcabIHo+{5Ay9dkXHT=L#62go0!+UGQha&-x#W^@4T?05AupST=wKVf{G~n%k zu-l6N)G>fR#`$r8Ebmc($pSX!B- zMOfn2;lX725rCHEmlm%ld6`+N*YVEqF4+$G&D)Y4dX4#U42#0@Y`D6V{bWKexfU1p zh#QYiR&%{1TZUPe2y&?iD)hh&AD*KiHpwJ4!%R?4kj z*=#(`eo@3{nle?ZC7!Zg?v{@g`yE=nF;=yAAqJ3(Ux@OYU!G9_d^ZaKMYG&IYH9Hb z5HpIQ?<+H5TpJE?p$TSUQ6b)RjlBMyNQ(`5BDMMy{8gdyzremIT`uE^t9T)!sdyO) zOvTGfz%<<;mNTY)&>;g0cE}vXhvP<}AvqLc#ehG=edbWxh$np9#o{7=n9Iz=l|Soo zDI|YbH0KB95BnuDmXSYW=Iho!E4-Ah;Gjra4Dww?B9bP~XlWfPqoyQ?-iwBciKGIw zR{S8lbiZIO5letz1lk!i<+MmrR;2Hl!-QDsB~{r+dkO^$g$W*dMz!r{%@ZZrP?379 zS@W5$jHJXn0L9M3m3Vr-i#$>!9y?>^#ywakEE{%)6ka?|fS_VMod`G@FbQ}DAQld# zdGE=9uL5F{HcgdnA|RiEsoL~^0MY)^haw|W0FMHk3V1Bw8Gt7PP6s>}@GL;sKb$WB zz6p3X;9G#_0=@@W3Aiirhv|uQf52)$3Qz_%PytFT=3I=lN@KharCniZvWqp22ANV5O5LQ)iM$P`Ks%mD0`Jf^UvA0I;$#PY zfxvdl@yL@xUGce~v0kU+cP%DC&Ed9&wiK3*%&Q$0Z3!%LlLsI}+;NN_2lX6SWxzxe zYG<|zx0QIb$#t`4YvdzxLn(gl!8~=M@$>;KHpKl=RLm!ymu6l+1;|=B(RO3RG~krd z$VW=cvvg6gQqEhcbXR=>8Pda)Ze7EUQo3k&Qo6{Zlr9)SO81ktbct!{DvhP9w2Y3v z{Z;Vk2hxfA7+BQKGOoTaZ9RreT9!N_4^$(crFe$LTvb!=l?!Ges*^9VJXvS*cG9>k{7G}Fjc(k$9N_|fF>>%8O-^=h} zXh_x(H&v)gWG&zb&}Rb90h|R$)x8doJOu3+T_ zx63Z|&ix#+A330O1G3;`=YX?uRXLyzSdar=0;N5~0bc}-9MFp2OOYJ#-&gUJo&H+q zH->AyKWdZT{Ru!CQ1$_2ZSM<6%2ER+2KS?hEN&{`)JbKbGE4-7`jn%(Hc+ot&{ zTuz1xeGkxfH@|Phf#{*luA;HJx+)wASmvJMxuX|q55xZFT&QsV9%c||*AEn$*TaCu zf?^@K2lG{l9tJJMP91Q4F!Oq+@h>~s76dVj>v2tKcN#29LF|Rr@mP+6xIWB%kp-b; zv?Bz@$Ja(2Zb#2*Fp;`#N6%{5bKh_^Y)U0ewv|9E=9Hjpl{Um+fl5G7!z|s8?NX%s z7>o=K#{<0p?@`=49I2>w9FE`3{3bmt_s-49y>T~v0J_CSl_$)-Wgabqdzs!nm@jfK z{#zAkHMo{}#Z;kKv7R(sJi!(qG38>Vk&Bh)YtB6>!16!=MsdBr0KXH#^_c~@<8XZ( z#glpXt1ry;tUg2YRUf&2Q!DRGTY1Ek`;|uSSK204-e&`qcQ-Ow8xmRm%InOl@_Z)d zXk7@KJIRPTj@M-#{<1aOE?SAgvNbec*@|4>)WRKQ3zrytSn&#_J#8@BZ80bqyLfEz zpkOgqQpcr4@aecs)LNQ0fC%>=IBeOVTb7Cuny5kelaTQm1|3s5Vd75#MaX|D+A*xR zT}Bf!b4z$sk_qGbKIm3>C?{W*BnMH`lCx5r38J$^45qXgxuZD;FU4L>ON-Mu*GIsb zRZ`S^1aF3?SC_bo%5ws{khzae;?ad057t+;dmDI6SSA@;$IO_l;uaLmI}rw;_BEBM z)nv2vg%ri~QFvLf@xWdYjQZ(|f>F2mt6LOk%@vcp(_qN~`3sMr-&M%TT@Xbxe zejf+jE=G3!d`y>FUN6S@Cv~119k%52Y4mmYQV1n{tfW!fXv5o zKu!}~1xOp_)qrt8xW%W(0DcoN2?*zS(YwckD^>3%7IQdxq%?A)($-qq)0P$#Ola;= zgYV$(g6$kZ)4Fzsv;=qDEWSV?uBY5R7{6ioJ&Wlcb7(g`<$|iFR8>u2+raI!O@9oJDF29oA82T~Iu<4iTcyA~qH;lQ$pW?nAV*NA+nOX6b7%ln8tY$an^SAk z0=4!lyz%lJwf4*0wN_u-VzzhOOd%G}zjKf2&>+yc8=6-KY(uOt_vlFtaPf<_C1M&7 zU1_i4aY~C07n)=IpauzlK*xlymypxEEG#&K%8PI37j`1Yger)30-Dfh z7nnE*fAmoCH?3hN+%6XQW~$xmLFjh9MId{##J0ooGdbV)4zlV0&_m#Y#yorukof>3 z$%j(iQ6?uAL-2N0fp&M;O)D+(Lzm(5={Y`>{<`J}erWgly=eFD%|RF_1-t=57_&xx z`{kw`T z90gMUj|#?S@MFR52lkL)PXW8&0H#|9EI8-O4Jwg`%%jvypfur<39{*hhimhQw!cY(=I?JfvS7U$>jFj= z?7m98JEzI5oLG;0w@%ZS_UxXi6!+#hz`e_Z@s-ic+>)v6fPgP6%LSnGnfR~k4VX&BUp{1oQZSUSN zG|0VlBq3&`rRe8&`}kypPp>wpY?1~Rj}KO{G_8SXX>l5-^joS_|6V0n0Rx$#<{3*7 zkwbY-k<&?Ng-C9ZBlBmjWe8>-S5R$y%ERd{fE9D@B?_$R*{n28snw(L`c){N0%38* zT0m2wL-y0TxLbieEa^BlR`Ih2n3mRaz}~}Teu49QVBL!!7R536y@=m)2jPz%u2$mb z%DI@s%}1TxWbxx~u5Ly!LNVee4N`{qS?m$5_+dSU#SiOvv&9edcMg6y@)AFll2re& zoGE^G12iJcSq^c*vcCq99nH0XeEteR%GDbHuLk@s;12=62Y3hIO@KcG{66585I0-1 zVmDRXEEkbcimxQ5;znr{H%g-6(GW8g6f@LX(#R*3 zkR~?w5)m(*x}>+wcm=o7_qWZN-_J|2@sA!(Ss}iUdNXAOjL%sux?}Oa`|xcA4!gva zf;9tsK(K|t?iY;KyB9?oumJ?6!TX@pg_Mz-KpTqRckuglZfPKXOHfJR8Q(mwx)mFn zip=n|4!;tcw|-&NSnc|$C9oZ^>%>^bbDv9taNJ}eLYeSu2xsC7KL7`tXbIpASu_M{ z$Q4Xz4t_gZ=&pb)UmpAHs=I%G25>yi);UW(22#IKUvz#28%hgu4=ly4Hk121KTL~E;U%T7G`+4U1A6f!b6oQ zBS*~SxY;3Y+ygY%G;jm&*F*WNrluKowZ@ssc37##)wcBaatXdr%yu(0VOPV9?&E@x zGi0>46oEVgMs4uj=~eYQhR$b9h2<+^O4!es65!4)ri3rp(k6!RD|o)rRvIkJAd;?= zmxR{5_zULBP&2Ix6%5@QOp#2T3uAI?b5&jIma#|rJ+q{7)|!3jwxGo`tV~GdH&xX& z>o;w#MO7Ih;zM9+9a4%vX5uIJFx+FApYIc78TE@{H|8F!yRiK!8`GR%nTA-5%Xl57 z{mNijn5Gbyf03g#&FQ8!iBF8zmgKa>-=MZ(HT1X+M!-hwYqp!yYCmr)fSArRC@qc> zR$8PuW20V}qXI6CyZqopiL))k*7-8+Jp;E`ftA_#%C&Rox!qjEJr%IHdRk& zaY_BC8ym4iDvVZ1d* z6nCVyr^{O2C2gks+}?9@n&Dzw(8SbDR%sM;N{eiUG^(x0QP5ZAF6eF3&*Ze|dtJ*9 zLS4(|6lkX{P+~FXRg{y`$eK!vEYNmbo{*zJr)F)Y!pPhu!5H)*;%bKu%U4A08x&ES z)ojb`#}iX~zS5|+D=qTluf^pVIX=F=N6oiLjQfV$zL2-g;fRxLp%8;_1fHif zYN|?$ER=iD0x!&=pMGtpe!A&yOGf+5rJv@@E)2Q zW($j$y6h^As=U%73+owNz9vUuEz8YaThkXOZ??Nz9Bj6X!Kc_3Br#q8uQZy6l@?i$ z-FXchoSWdes26|zsVyQYff2WY<@X>hCBD~&Pb@C=CUk>r*8K9Nm zcN%_6LdBUHTRXFAUVUrITCxKsGfQ=CipL&nZQw$}f<+yXn!fuGt&38;D)XSnjvL*= z_}#i2s?i9U#2u9*WWY*C9{LAYfOHa?(xhIVe=vhy43me$PZtJLy9C_-Qhqbd+xYJk zOJdleu+*C6@GcX)28)FQxS}7=8IO=1#VJ_1+z*UT$ys z&yf1*uih&|BfPw;SH~;cbEFOHqo299e})cKW9;@dKg9EHP-dY}xIsO1bVh?xQ$=)x zx&eB#Zw2tCHmN1HNfC=V+=^Ohsga3L-X8#pZHS+B<4DbPvfup7cZ%9Op-&=5;1gQEE)V@6H49M-S!Ce5L31=jN#9wJi)j+K9Hrn>M?t zoN{DFQ&B5abW^!5ds89LD2?2xGz2R#vHjyis= zWeR%YY+B0+xaO`d@=MsBu+5W}ZHTE?y3(X(gf^9RBvfE+`u!YibNZ%^id9B=(>%Iv zBWffQN@KT;r{h3-PfjZ?+e%FYglS&mNn7pfhxz**ZC*NQThYFD@yI;x6k z)TME5Bf*0s4!4nzWg?7B%!$v)q|8r4V2STp%sUGb+K*kq@E;T)zvUxiH5z9NkQls` za7}3}N~J{>)_q|AS)oCuzp$1=ikqWnDv+k$?lv5^s~4HuLaTPJ{-{ z%JGfby>5V&=^j0)o{Meu5Q{mSFi;vN43y@p9Ut#u4WYz_E{V_bSEeEeZ zyQTEQK%x7!!#Hw~dHDG^LOUe?`m{r@s5g~=FSkWbEGBzCDQ!Jor8Iw$Gt>b)q(LSu z`n9Vh{Oa59dYsKACeuSjiz#Q(2tNz>r%=(>)akYp`K-FjJ>{z*P}#Gam2ut*Uh=3R z$`U#)xeO-)=97Uh{gQbABH&R2+zXKT|BQ)E`7Yf9@f7#(A6fJ<;IW_&+b z#q9ZJfh)KQs>00uass%$tB7X^=_P+;5_tR|#A>!~P0DB!jMz`t;RpynTv#aXB zuQXJdThqhg*kfzwHq}>EYmD7I*rl55w%qxF1ag~su)T2-x&oJckw-XPJsl+1A_w0A z#;D@rZ3?x5;W9v*xS+mDHgwP>-Nv8C4K>BYY?f*gMr5uQOt{Mc4n+2~e5ZS`Ov4-7 zFEc8^6@Z81dMDs0E z7~-%R&=_v$T>SpMFaGEu9an7w0!49vsJ0YhuJ3{wHg=;PFjx%h#lM{(3d zT&h*Ol_F$1^Kd0Z9G86F{_eud_t7$8t6|u=`B*|nGM~W-b&wgUj%4x+n|y-T%)zo^ zC@?>>?13iC^4k-TqX29bkUjyh2#{qu0Fcb`Roldg#T-ulC~d64!hO#csPOOM(Z`2| znf?lYdxx*^9mA<(llaWAULJfVeMPIhyJ_tv6w}sf?VqrfKunFcN_!rqptLP6-oFGj zc%R-Ui8OOd+uz!M71I2I;{9W@|D4NRAEOV>x3~N|1{-FHs@s14p`@@ByG_ad_OnH$ z*w<_WA{L`2?I>-z!M1`Fdl{`JokNOUnymr(3}D_ajZ=d=Ec)FPvL+bURrS?O#RlKGC3TyDwz7!DoDcAPr8($wlopy;KK%@gt`T;#v=r&-% zz#~-4!)pjH18p#V7vuMv@UX`1!&0c}niQ6yr&@>jaBXzcacAb?s;JDxUY@f%8(kWt zy_MvzNe*K7RC1uvW!5C~9Hpi5JE)~{>XlmRX@JyH&jWO|)bn<8hcv`=nT66gKv7!c z>VVg9IoHzRT|S8fdPvufP}kgY$Bh87Jx3O9n{)FQg#Ja^Mx#UgYdbtB^`+he_&SUY z`T%0YDaR-KYTS+e0cnyt0Fc9hyKR#prb~yFMtiihkihRnzJHAA8>eSY=iI|AIr;Mcpt|D$A=*8>BVj@Ku`imIl_8kb2vSTdEHg7J{eG=TtdPvFmF4gAd7g95d){~V z-rX@E`^5`)&+|U#yzhI?^Y8pW$4V8vqi@_%!T!JrmRKTahrE=w*kG{e;3@o}Z)WWoGl20`T{%=e&7YOc#Tu|#k)@}sm{43@{Fu0-(E0vYd&b$?h5V6S9y zOmv|XUX|nWg{{k9E}U1`j|(sD|B1A=o6Q`!RJnmm~nr?L}wNE#^n zzOB_%r!#}`86R@YBbErB0#B6ojKT6~40(HT0gd@c9#iSxXGBIe@Rb}_M42EZ&w>WS z3=STtCK1!a9F=xA5}~x5n$({I-JFLRqDkR`M7cHNr~_4sAEA=!v0-pU^CHIxV(LJZ zMhB|2oQ!Be@NosS;@CVzGn#pYhd;wzR7zsnKPZPe&t;UD?hmiDF62aMIWzh^g6}Di z(eLMx_~orl4av$(roN%EzIn{(O3xg^rmibYr(=u{+vhhLWf*gGyr4N64;9s19$hSZ zpVaOO>s$t7P7RK^#PpOzrLozow4BWCL~y))=~wWsF65Z|>`>F++{#e3KB5Z?ZQci^ zS)8}6zJ!?WQKPh5kvpa3%=||Y9G_y~XZ{CyG%Kej#d=nXRRYsLvQro_-!X!i`Vytl zmnbbKBR+-TLYwtGIuJ(WHK}4*@{_1tAZ>#&jYh{5V!Bz6((c2Xm6nq!4(?>n>n+_s?uPXmUT=crqh#^_5^aQw46*^hT!uHFzp}xYm(ES$SS*H znGkE;42B60J0=iI1S^p@rL8hpo(fwxg3m3$gkKfXoXpIY#!UPCMxMvr)>PMkliccf zwpr1o_65^p)ssP)&l1N3V#)-ikqJu6sR4f|2N_Q`#tl z@%y(74C*IN(_O$gASy@yA8;#mt`$`7$U|>~M@Brh7vxZ7p)Hw456GK?F}L zz?lEb!IZWG%@XWQQFPOmD0RSWAf*ya3U=i;*N}U&Z8?#I_Jv( ze;>>EyvFv)V~_rqwVrafv78d_ymnfDg5-|+<>1dot&Yy>SlHYc>=%@dxa|BO$joZL za$#f65f}1y?a=6m%e5HNVqe!1K=S-LK#sWF=>$tG5iEqPl*TT4r9}nnbdCQl@wjNcX72w*=GjP1Oq1>;=SsCDuwh9kEVET2BJJ;&32(NsDpUF4SsjS=89p zZsuc|EtQ+v8{6vITg{m^8AHYDh#lW(S)8#p2Pn(F7mwA$zY)C%@|Jh8g+Tqh^<3$3 zd++?lwnlMl)R|8!FkcsL zy@zMj9?!-V$1_%V{)zHI$5e?Wf+u0CN_*O1iQu=6#!^G$f$t_B50_NhEx=wxX*4{z z)nM4h1T~Jm;bevfn+=8t@H+p(UfRX zOYalkmElFk-<;$9T6X5HEOx$F!4wk3f`f&QmyKiMck+)&gglBVW}BC>j@F@ajdAd45`U%I2Iq}aBoR)DzJHi zp%+Vf3QK}|U>x@>3EF^hazKe3!g#M>wkB{lWO`t%+whBse++&r@%z)^_@kH91e#hd zZ@sK>@_$OdVU5jv1llR|wV=MB6@Zy@E|sEtK1f@I6mAI1qMoJih0|Gd8~WIjB>rO1 zFNYu<9q0creirl>{r8MNNu1qw(3AMti?ZUxZ-@~K&h`4LndtphNLsC%SR&{}B&BUM z7`OU_y2TbqaDBu=YWg8~pVM?zaMB0lrHxaErDiVskUIPq{djuY_XEf46JgmsNMP|IroH%T5< z^b9f_rYR*gT|?iCK8B8f7N9;R>QGjI9&t3rq1*zx4oaE$#-XePJ>qEKQ274Uphq0d zgp<&SxMT#E>aeW76D5kbfdO^ZUew)5P;M0MZqdnz(jZF*aR4B7`ptl>X*9tS)E5y; z1mA!yD2-O3w9St8grh}Qs-k4gbuxyu_~9S6mz4)|%ic4j>;{^qcB!!BwDc?b>q=RG zR!UJ_DU4WTS4xL;r67r0hiQsBc|Hfr>CZ{KzZRJG8FT= z!4bgR2_ps4wsL8J&S;$5F0J5nNISP_-u!lHf?i{uwN27{&An@qZU=!++KXvSLy`6d zoNS1fjnMrKngO|$37DRJ2(Sh42Y?>{WS-gpsbi13+AOg|z=?lK`?$dpa*Vgq$SIAt z*2R0!(TdbN6m6bfQ2U^^Ot$1$y`2gVwvw!@*j;RPUNv-mrSt1AU^s zECZz8f$5@mHv&@cJ_bm=y9tnbSLS>hG1WVzQSX%Yc^8j*r!?xF#-rXTtw_C7{o-aT z$Cs9MuE67=w^M4r-Nw5@=dQ@<>uQiZ^>wUIsjvG0F!gm;6BA$eX<+K>ZUd$|w;GuG zx-SEZ`nr2SNyU8K6QEIcKg4fD4xP(A&!Y;l`(D1+yZDg4UeC}%uXmMshxK}N)V!S6 z)7e74-(z~?e$Usx;}K5%`z|2$?-4-iAMpY(z=jZrRB`%{~-8FF^%#wx+Shr%xJVNeAF9%2|{sm*77lTwPP+ZU4)>t z*T6lc4t)6U1}&pSpF z({_)#okoFaNSI7wL|foh_81T6eGUu7(q-IJSdH&gVJ&` z;uZwg70|dBie^OKiD|{NB(~mRFq(0fV+gTCAPoYc-HRM6Ehj@BKyYUPhCH9w1b602 zhoTpA$Cf$_&YV8ym_|$&J1C81u+nletp~xg3NUSZKU(B;C$iF^c*TjWbr_T>J>Zx? zOsBXjZ548FO%C!9 zYJcYXDXkqXn5d##2JXZnQePN~QKY(CHd?_#nBuMESac?OZh0^YakNtiVyMzU&Pu!2 zV0l);u+4o+0V{bfmqNsQ0gBIZe7(n@3ZfpDX=1wILuof7S4xX^2%*0**QVg%G0-v( zQO3yZ-roo_2SYE%=-C#$7=1<90o)LK9y1-@8q&#qzeghu+ZQDPyT24;Cyru`zTLNfbawl9cmFwH#I13o*X zXs#F+N$)g{vFqZ`5ksif3UZfZ&k^NNkV+OFO ze*6}c8)DXa0cg|@vi28w^D}TCLt)b$ zro5LkpM_+748kdE{6yAM0IjUgcd{m?+Z-y5BmYVppsaVAr=XuwPoWs)s2DxPOL;uS z7ZDcU8Orw*oKR~nDgDG##QpYw%+|Q>h$IaylqAiT%7|huza$4^wX>ZhiRnQQO6$dE zm6l^ZMv{)d6fxX<3{Js@nWn@{%hqu6_6SaLkm*J`2V(25Frfi!7@(QKCNy1aF#vOm`xW>BUj+;|8aZba;V;jd#oLE0;T*ElK)HaEi_r2`Ynkob>!Sv9X zL)zyzEs|-u@PEOLLdwjjzs!wC-gJ>ER27A)l9Je!7N5H&4%CZ65Pj3kWOY>Eqcn z;2c2ayB?5(JKqPl)XNe}1kXDf8Lu?o@-VBUoaO5%*#V0N4#IL{1(T!yp@rU!1Y}lYYR|hM+< z&&YOIZ5{RP8O*oVCPA#G{V%PH$njR0f0v{dsZ`@psClMLrLs-z=1e}FqAY9oit5zG zC8|?bzF#vt1Nbt0F($sS2n1#(C4+(~nnM^89wn8WfhA!uKAHH8l2Kr~ z)I7=4tmH9sYz#wXe$*7a_{|VSNiZGQv4XuH*d)O|2#hBNhg!;p=bbTWej2gJwVUz# zCt0JHnrH0X2bKk6$K@^!Vo}vW$A|-aUbKVe-1o9YaSB04z9-@}(;%4>^`^jU^2n$f zkPbdT6y~feQLu6L)g>}bi?yBD$<2J;UgQmZ>)wEq4Y3Ks=j7L=fM|RMmjRv+*bI0r z-~vF-scHeF)g1!~sD=?sU>>=pQ5s5Pqg3OuQK~f4v6uHaDK~`|$^w7f3(K_{M#94> znhDfSZ<67SxNg)sg8NFT8+6M*63jaBdqKG}rX`nv#K`;nIdyBy}hwg@klev z@=@egB|`fI$Z%fPF)W`|F_z|P!=!78Ee;eouye=_t1`>h%&Hi- zg^BeX0Sa1lI61!n(bd4tO;=L_{;4DwiznC{uB#b_32iQDQ-!t=*gis|CJqtIN)^Xe z2lvG0RdWoS?YJ)d?vFJkrFv)NISbvw_Czpo410Qq;YM%}UXE^Vs5<5>^BnU%9F$?a zcsIS-z{_kdT7ZM%2~tqazL)j?^z1yK!gvDK4(Or2A*76USa@x*l=mj;{!{P}XpTh= zmZLo^$EwUr0eQe&J0K63>jdNhbM)!|gx^pPLJXr-c#qOX8Z7QX@>dw>5t6bVn?B*N z(2Lt%3#|=EdCwZRiuN7m zV3GAZ&%W8!l7uR3c%@ri;XS+!`U*i zM6fR&QW~vVX*pT|sI2GcYLwa*N^lhRsE>sf%x=i;Dbl!tC$RN;QhTOj8w?vFRWlm- zNn+&aV+zg@%o;fp_oY}Nz5uZ*@#DFrpFa$L^a_nUGrzH}A+xBybzx(}8?-k^bx3=Z z!fGTvRA!N1my}HHwjo|yhVNnEj@UTH$aVNAX;m@;Z4pkp9ToPbvVK1aB(LL(hc2Z+ zIt$}yX!C0mPW!{+hEH3F8~$D}bUKX^z&U`!jNyL=mSvj$z!E_cwxzTRgSo-~OwjI}E zsK;wNYR^#;{I(ZmKsADR+grmwR7s^>4 zxbY5ilh*z=-X+m#ggBAjwYAIbg0G)b zSASV+M|;M$%fk-*B4#|%`R&ZtiEM0YqtLnnX6p|0r5M@RffaMe{Io`F2t)UfL^M0i zDu2It3bATqGMuot%J7@c^ob>c$>6inQU=?3GW;vj@tIg}3e#p~_^Tb2p-9{w+c6Mn zMIS6uE;sd+OBsf<;EyA6IpJKPvFFWecO{Wud!>Nnlgl@pT!`r`K&5dOpwfJ^%IlXS z1H9S?CbhDj>DZ4<&CHBpz!d~*QSl2qNl(D1{uC3~OvE|@KUN$MiVMtayCgjVnO(3Y z6AW=zf1;q{{Fv)>yGW!f<0@=wvz&gP3LN{B*R`w2*+BlAbCSg3jp00X=UpkZReOYn zVQDM0OirP3zcek`h~@BrdCe`_7cG`1RyGR*6}U5dO-SQNYC<%+`^D(a1oq8{`JI!) z{N9IHmH4q;SO1?TNfddowJK!YGe4G%G(S@|N=w+*llM75d~l6!5$5}0zQkVSDR(zR z5$W29Zj>J99`4y)b#1b;9rnF{AOKE-TJbAQ*U0u+M9L6rH!A$Xmp+7zq zpZMRHKW62a3NZ!0>O2auOFi)}czHn|94bLJ^uar(1WEABUgRT{04#PD-Jcnu|J@0l zSVH!8Raz~gD{WwdRQcOSkI9Vri$ z+Ij;qJ#$QHx8fn{I z8!9tG}f6uF)oS#kb#I15b+2BzqHF4M%~4PDf8b1X!{?tqot zEuBpxog}itj`{+@^ba#XB)NrYQIbVBb2j^7=1%q$tLV3pYNK+y~06>%rn6U+(eUci1xcuGMS9zTGtX8Jf0xfg)Wq1O=E?21+d@C6J5aG zDYUNudrD}wqx=6riEkP59ni?ab@;735P$R%Q4Ml_NpQ;LSJ z!yqN(sWdK>Rhr*1w&cYuo}%_80o`f{-8_=JJuX%S^!JzS5#4Ivf(P)VMm3t)Aw(#O zzx$-dpP=!fX%o1keKHb9wx7qWCn~Me^qb9o_WrxPa1X_PlXQyE;B;&OUeCknB^$E{ z%WR;cZYd=@)4;wj*u}t9WiJD!3cVPZs_aLBsmk64jI-@Zg8PB}T%KJI?AwAp2JGDu z`ai(lyFcUo4p?-t))5duT(zn0G^Ib{cgGu1wX;ZA->WL6%}g>qrrNiF^mSjgt-e>i zM>`wZS{Gj_+pi}P^Oa+SIHh@^ki}in3}`ddwtkWZLkX?M;3gIK-P&0_JFpJgUZhbf3CrnSaF04wbTFm5 zU*fxxn-!jk;;d4@)a9KGOkLh3z|`fn0@G5O)u;cJEZb6=ZZ7W1KEn9;EyZuu8_|`e zkg&d2o>Dq&(NFT8VIJcpaxYvV!FYX(q1#6@yZ}% zpKHcYc+kz}oPFh^@j9;YFTv(=I?FJu0Y3_Tzcw}<=v2g_PdFLBHS8PHOR80Sc6YF| z(F@K#<>cKxtSXXK1zS&HxAi*?j#QOten$!^UR6#Sg(aXacR|PD;9d80PoM_)R@d?( zhP7>or?lq{7B|2u8sNTom8%bPDGt18dJBj_S}U|kxiK}@G=ozn*e$!ENe;(H)g)ho z{cGj(lVYaUo8~gk_u@$!CujC`ABI1A?J>@JImW1%so{H!a{#OooN*FU<5U`rQ)#a5l-n+`j0PoU9_!<@+^`s2gLlS@K{^2TVO=x{9kmzrHf~jOja41&tcn;84uak*jfVm# zE$julfG3nxvdlxV6f5)WSpX>Wyuyt|VS4#u9G>`r%5~*<=+CR{;*-kEB^zi;Y2(MaCgq^@&1umwm)s1kR865jzJ0~%{R>_5IZ=8N^@mJGI>xJ*a!7Id^XE=C1B zPe75?&3g`Y)lJTxp;cWfq|90Ei~T7v46zr}$sJHwgJTX)&Wd=6gb>_TtpkjLM49_a}akU7CFZb zz43?Rk6uy-)+tMq`yI!NuSe+j0U5B}m2WTL|7~AH3K@-^m`R6lE4o)Ojke%oMe>aE zbnxFTRy@#bVSvL-W$fT!K=$d30=y0IEhc=D(@V-lCL(Q>qB$vGs!i;vQf;~jm}--4M;($whng7+Ka`BYDifWK5Yt`ql*SDSl$K+H zUv6!os5#3o+T+Q=NUUxR2P3)V1qicvW}kIto+IM8&cUK4wZKLRW>sPAdz!77bY!;}^op3f~@xPqjP9kR#> zd$W1h*;`{NB1qOJySr{dBINerEDH!;=60prm|NY^WCBQcA$=v-_73VPn3eiXpiGHL z9mR9-F8r>>Z}v$1(aSFn>e||x8r!O?rz%oFQg-|+g_qn=;VKZLjHKE@o;jqYV*%=J zZCFxixA}@ohiQ5iiDtT4(D7;vf-DQqYXIj1UJH1Ip>t%1@2-iBV6n=?TKFOOc~@eu=oMn2;!jY1@MTlX$gvCrU zcVD@G;;&LAgu7bJpbkQ2NK8nzNirQ}oTsN`+96+Od!(c5q< zdxrb6mvDTMN7k`))kgC94qNE39*2F&VUIeDVvRPia|!?Nh()IV1;5V2@JFwK2*1ic z6oJ0`iwQrCi1j&yPX*25chL^GE?*^M8aiM%mMV!aqdBhv;!5J?r86G*aC-T9rkgD z*$T%}P~sJiFM!6;lw0xp;{o`i*FeggqBQ8XEL-qU27?P9o|PC1?`E4mR4~7)R3*E1_R?Xb7gCmNl;h1fpaz6jq(~c z_DoOrbl-v}Uw~roK!(dP@p!4+Sw%*@$i6<+aD8w4+wHw1 zt0ya>Lmtw2!`6K%En@iZ(#6@Nq@}yNxlBiY6#-lIZvKRj2%hj48jZf^XSFmsI1 zl}_0Nl&#@Rc2K5RiZVXQ=i0CKi9J~oJD)8<2FSr#xKj=ib1CIVNbo+wSK6nCny1fq zPZNtgO#%{x2DVhswkGI1UhmaO-pa?GRPFH~e(2zIJpk&<HSt}p7**xKg%=bUdOfA2;;#I!Sx>h{B z(8Ljl`^DyM3YS&zyQ=I6WS*j2TBe^z?NX2jV@zFE#I@Qus{_J*7T7g!>DHC73>2DBOQ$|b>Y#5qf_CSX64(7S-K zSEnQxifX{w61pF-nS!0^Xm3G<;AM$d1?(Gw%>q^}*d@SD5NtKD{}ya3u#*KFhBD(M z!A1j9+6BP=CbUli`=?;5fc-lAdqKDf<@C%U^{w0+b#YVs zm6^82g{^Jvi!zuuz1Il){>ec87t+D?Hau7bs2xv;-Po>&3ZM@P9fNyEo}(fD7bJu0 zFwdzj-EFe{OSSB z;C>n4B0wxv$o?GgM!-sZe+6JY;Ku;J!W;v>4v0!dHidWo7vQ;o=n~A%14Q#Sdj}w@ z67h2Uk3aM;8y_I^uTk$ zl9&Oe_(+>}V|Kly)@i%fvI7?$4mKW=E@qeQlFwW`n_W z-_kcpvyl6i5=+QL=tG3I5j0|nU?F{i(Ao`_r}?;?zEI1&a9;hn;^lL;ASFH;k@Nj$ zXqnICeP;PtTD>qW&QXZ0g-5OrEMHDW`7eJP?zJeIA*FhJr>;DG)A|bOYsO58<+8Df zRKZF$WVsANx|#0ktYnr&hRf_W+c7lR%ma z?}K8NZ5$aXQZJ+$khGj_Zfc1fDZqEyi+KxR7R)~llowc&WqzTy zGParoL;=KQs9DDOEI6h{Obq=qjz)7<+76G7pb@~`M$tUOyVBuco6^z7T(S}YXkumw z*|F{oQal)u<>QEOeXOu-1MLX>n(=!ZGGwltvMjcOH61mwI-ZSW4!EtZj#G-1{TI%4 zvbO^iD}~f|fZ|V12E>f>8c?4O?T-B{4@7wOASiL3ahV2mLN=rw^#R;%6_WX%tKr1(RDtfTzSXKk2egOh-PIb~j=x%}tF#qdC|5 z9VrEjHxJE=s=-v#W!)P;Br5IG4i}f|bvdEzwXI5P22&~W#cXFI~CF1BLfp0qOMPOXQ6gmxR&Fq-;UjyxE{9eKD z?fsN5vt*)5Aw8(VTl!wMYa@lA+aYG-aqXO?+l1s5vus@T;5RQ;f1n$r*G}T+UAY^B z1rs~)CiQMkQ&G)k%8j)y^%2Ap!Be2UBn`7?43-GkY)had9nKkhg5_y&?ffCQg0n!~ zjE$7%x>9BD?G5eE+^FH18)I<~r;^AaOhYG&Roa%0wTp0=Oeqhg7MsY!vhti3vo<=- zh^49yc-`Qz+kqV%F(Wo>;%4-9(5Rm1I|@FZvq%ZMRSIgRxYGfdk+{>{te#bp%t~Z7 z$7M$ArCzri&A4cjVWnG5hM1n%v|UVQ6LLdLhs=kI$#BS=*zPfzu(DiW_O!DblwOhf z`L4w3=^lk-cX#oxDMpfl>U1T=y<#Mt9+vjP75BnZQVy1_>81ne>f&GXS{?e(*DBuU zF|;RF@`3Iy0WOiCvu7K00Y04_+@K5a>1&lPz|niUdqM8*;$QU!rqEup2^9E}EMYWc zvk4)LhCF3L2*Z$`?q_k|-NnBl6*<^KLU)${mm<)&DP4e1e^u!M936~Bubw&84VK7IhSW7XT2RsKXerVy zrlj!}Ss`_bkYcrqYw_*($7&aB5wLb~h^EW_^=lUe61ZbEid^X!W75I&c-M}kqbQfi zqGK1QqnJr%Qe5ofbQIOOPaS=iD%rdZ%LZhP~ zmI&BE{&u0wH(1`HL|eJxWalHq_;PhcbGFoy^+|lhf96mmuJDAZCF|2W@XX=@&+I9& z*of@D7cAOSV!aVcEY5?}5=&=4v&2%2C6;0=vAAzQ*f#F3#JXeml~||mDX}1^9GBm) z*u^Eqzg>wn2HLER8e&>vz3fUXVp?MD=SnPMT4Eh2G?rMzw8VOc&{$#-`~RxM>ThwX zYhI<&;q*>)GCZ6e1s3try7Mp=ztJeR8Rd5^Jd|C?$ILSaYXAP> zY%jy?E3^|NY|@zf&4?qPF!xW{`-ij7`j4j{&a$oIUWa?OQQZAQS++s+RS#v^@UST_ z1#VL=UwSCZ7DnW&VZ-9#EE^NNG~?2ssKPC$-j)RC0n?tAc@F!q!?+Vfw9lmzVetmV z)rj>@&@Tu4%V9wD+Eon->1Sc5^;-KSK&FA6*6i}R+t6p@tnP`x(}2?edEX2;9dNO^ zUj}#v?r#M=6Ohl&0A%;=S%8lMo(=d5z?pzs0c!yN26zr&0^dCs@U4L70UiZ73ve9Z z`GBVaUI57RPu>ey2gr2ftL*P-{6zQr+=-2_f4icj(iJ7dbO(N=QCpQpH})4PUT6Wt z@E-=hzZ4rK2E&*iu!DrQ%wRfC=un|?o)EGBuZkDHL6pol%8N-Bvb}cLdBc^dh_35T zfrKGdq)x)1P)eqQ%Mh^=rpT0Y5@hAZScr#vG3ZiJ#Y#Y<(SH`db7DO*SA#~wzZ}2h z;rOGM=Rm_wYxKdm85SWf-7-o0UAtE;rz&;gy7Jr`Sl#iHEi~-H9 zAQ!z6^oLTZfJG2CqnV({&HT_yYRaczkeQvKYHcV-`Jo_QRVh-PE%1Gn9|F>1{S65L1Ma-l+t=3Hl^(g zdwm7v_VA$GV3=b9tV{~$RR&806Hs&?EVM}mO9Y#MC56U)X8|TYUuoUDSZ`tfmDVF;T;p8}Vy+KF8%x zf_qO`Iv-^w!Lgw>bI5|mx)20eCzhCykv3h`pO+|EU_lTHNzF#(NYmRedG~{d2U( z4Cd+zltIYc|3Yvk#@zitL!*s}3l2nYo4I6vp3HgeZA~rnykn>%2fdm78*y6L)Wz*r z8c-yo$AYc>o{QDHS9A*0`^^^NKPt5hAeNBUrqb?3@|BinGFZrr8xVD7j2X;7nITJb z4gjK;GUJrimi9VKVQ$0m&x;zzjzfmyq#`pv0$Rh6sZq2h#VMBgeGGd9>2-=nPA@l@<7XZ^yWWCv#kuTjdDzxW%T%c94?ZBTNIif^yPLc7Dik;eN*jV%kZd zGH1U&BP7#%ZA$m7N1N_-T}6a7=2Ok% z@`Th{@W(w-8Gk|-m(yh+5?)#LdX4#J=f+fK!-YuOM?`2n4zuF>11N2=f{D#0utl49 z^pJXq`1B~6)ZP`A=*5wS$@2*Q;11A`@kpF7$w9qspy zM$YTAC9rdSw$xy*N|m>)fRM#zZC3yl#`H#2;Ki4VxS5%Y1Y_3N+U>$G-obJLXzXBN z*ZIPjwbr+`=(1x}%i5ai<}_oaM_*dOG9o-YVo7Mb*6WeQ_F_8XR(cwCKV{lZ2V~qd zAalh&3S~brt(Pcmr3vkih2wuLmSULbm`B%3BM*zz7Eq3hSqNFhWW5K!))>nc=vof} z1sU@(S+T}k)khhl8d`|}d+~c@4O)D7rCzh3iA=-!MkBdSMOi{D5iCWR(kOJLMI9I1 zMZu~1kv%AI-vOoJ46oveKEI?uSy59w|2yt)5E?EaD1 z{g2K4*a~&MEOvSEeV(i3r|m_akQJ<9v5v5PmTrt3sCm z(uaKtzm6h%>;}v19q7OlnSa_955y9|w~%I~tv6UAU_qg@#~qCYh0>mLG!_&}WA2G1 zf`2&L5O79m`x$I_Ky6f7rK53yxzgDE@_&-PTMcG>rFaMLc(uNpfPM;(nO(%*OXDn0 z_gr03j)O_dk)A)_C8V&?yAZ_VV@8n#jl!qr`oF{QM=z06yDW35u2v{|Zo{L{RtWjk zZFrN{yrmBMo->L2EVAi)PCSuCEkc(1(m)$v)ap5jspnK0J*U!4!=kue|IWpwLHpaM zti^YwDTf-OR>**qZUGU;!AixN&6~fL`lZeNcqSV=Oq+I!t|Do`{Uzo|u(>cc-Or#* zMun)OzCE+By-j!Ej~y(W`IjEE&EtNq`L{`HK^LpVb_((sk21tlJ?S)<1iHN_H#Xx~ zNKnss%||nivTOomv+7d78o*{i#<@xiv&vwYP6T~W8Yh|%>#t%%BSgu*N%Slna(g_Y zX7m+L#!Pc8K1#EE7k)1uh(CIXX`=IK!NNB5MK(5M!h<`m*142TErbt$ggb+;$#z6G~Ls2mKna^Kb`VP$Wx_M0GgIQhHYr~F)bq^|tN1D? zSH;A_syCCzs{Si+u@u>5eNAyTQ6!s7a%wK^TiHacNR~iz_cI#nE9^Mr^|vSr!$#0n zQ0|LyhV?gc1{KZVE_S8prT$`8Q^S>+c^!3a4XUN)zy+_IFT4}K78rwnOOZVNHCj`? z>c$n9d0mJ)gzw6q+)owvXMj}PrvS-|rva(B?M`ut;Xiz?(%9fvnyXfzN%Y#fk$B4M zM5<*AwRQ`Lw&%#*a?e0?9cfq?OV5y*pycJ|Fz-rAIGOH&Z<-fXv$=*}RILO$A?qabHBG`6W8Hlu9QZw~Sc$&+#_ zc35Z*_We@TOXkQ3JpIvC#@+8>A^IcxNWzRE7CbdpSSVhj#%ZgM*g8Zli0ck=UW0=k zNs!jQo21Nn^>uA}ka{JExeij-PM$PE?M0h-3bx|6jUPa@kaqG-z+(U(1e^x=ZNNsr z?*Lu_xE_!`XDF;zO95hupc3y>+R+9pvSeTjreLLp9#K7mt<-Sqzq@00ei~vi{VDuD zdl>%cWy%QHd1gM2;K(ehZ(Ycmeo+&5fy}gH2OQ%)c8{GW zJu~0K!MMXM#>~mVBI^dD&T&>Qy;||Q0d<^q>(>p2@1=ITFW?x2?+2IyECZySu1EQ) zc1jGDTG)=#UNcxxb~>X+w??V59SlJHirn$|)Cp2lTO)lPlufaU+$o^ZNKeG?>BI3y zFE!HhTbf$1U1?o&(^at0Id%1yVT-1WHG{AP=oPF}b1o+~D!Vh^SEK;%IKQs|QHORH z^UqcZ{<}fwqw-ylGFLzXM zUX^@+B8om)q%dyUiNaXpgh4DJlggC#BDkeASHngPIM>EsZXiu&a#!HF2TJ|g>pLOV zZ85&1j2DAp*?w@G?-w-Iw_`qqRMRp|vP&M0pH*WrVPPo}nc`H832D1%SAU~OSzdH* z)UfE;UUfAPV*MLKU;gvCu;uwS@c;P&{68=c|936tcfs3>7(-qlYQXs93lKq3DiA)6k)^>%2B1vBkM*MJD;!G)DI0Vu#dewpRr& z*&Mb?aW}1Ep%)fuakBrrHnV|M+ULdG*h};~!C0J*71!4Q?Ds-z19qU$vcL`!>_%Yh zq$`mDp*8yx`y6P|#wXWp-5pb(J3(U~?Ctn{KGyggWa|vQ+=G0Bs6j1K*7vd}kS;{f z$^)F~aUNR|q@1mc?FdNWXD{Zx7X=*#lid-d;HUIS+ah8WFy`-G+RdOI+%nL*VUnn}V%cDK_@- zsz_cH>5AWRu(LsF7|=!zfi|m+5c6Ddp6W-=u^O6EXcEW3xL%35Fn_G(PL5^jB_^>u znxOD=yW=xO3c@>|-OM|nC=PX^Am)jps-Jl;nDGnE{aJg4H^rXsSJx1GIoW+id#B_6ArQK~pJskl@yruQZM8iBmKB-)ca19UdjSZ!E+IR5A*mSDK)x|P~H&|5S4^46w?WMw8( z-_Tg!JZ5yISM3g0P`NhjbPTN5wbVBn_d4e2j+RAD^I94kl9>#mA3Nb_{PlZd!*@iM zf+fd{&K+wPe93ftHZ;zy>u7GzG&D9hwwoUH{}>jSF0wr;@Sm*$MV266iH-mDog_>@ zGYS63_nq(CM>~n$4>%g(7Xi`_T>?noc^SNyRtAVAf~)bc(y|8I`Mz_w^PPJ~eCK%7 zB3_G?QNHi2$nQIII>?A~(;nEEzv=%m?Qil-wEstT{7Xe@!uoTgmAdVeJAU@s5k1() z=>ajw9I{Z_41;-kP`hi|>}-q|Y^~>OpQoj&Ll&GV7!~{oQLScR+A6;an6}E6u*vGHOb5w@RVX|&YtCX|9`&^sNU_$*Nd{%B2RrU zTVaz{JhE=49TaHAQw3Ari^#KusK(*HYr}s46XVIpHb7RP+5yi8>;UAn<|_c{l6c6D zx+G$%ib|s@8XAt&DdpA=Z!}fZIVn`dElw3j7F5N(F+!V56`#R7ZY-dRqhsFC=!(=T zb$V)C>AawbdU^E1j})mgkB6gCyGdo9aVkShPrgyw%iyBYT({2~O=bQfO=+skD}vE` zy{n+gG|DuVk04&udp!oqH3d}W!@0eeZ6$~vgu`Wq98r~iqZX+mw}$-^yGcd<4Bo0& zA%;V)!7HUbZ!oWbE7V8~_l}P?6=iUS6ZRH~;ZvTvV*smTY#LsP-_)3Nrh>+%A*U*= z;@m2|{Nkamt*wcR_ph0%Sdo>48!DXN_BtH6?}2iGSaCU)eO_D(SenPfHX)rc(#k%h z&R(2TVWu<6V>yne#>_82hP@GHvg=*@nNkir&tVM?>u}f&4r6~uw2z9#e*Aos&w@tw ze-ghx9e_W2`RupF`Pn$ilS1(Cixfp2dcXXcd)l+X4SZD;#EKI|XYc$1{G#&F*Xilp z=L%+(?=FNbimgcTmG987H1TpDb`%tQ=2plc>;#3q0g7aicdDssD=PwjaU3GnFNf^O zc+!8PQw+9Hp4w@17_cu2OW0TcUxJMXcB^2PP0K;KAZDZNOrw$Q z+T!09;cn#m?!M+Mr8DZbIK)E5NWn)1j`>367*-2Wa8vytxyIm6}6=Zj~uF*T%&2y7~ zbnGIwgRJ>Lgf(^?@|L;7O4gh+rcccS2gTY z{t#Y!T7fKGkUvX$ewJpd-vhKlX?X`|8EMftlK9z+EPWQ1ftG^Xm*65}1YdS6AeIPj zMjWNxVzA=aGAxVeQ9oR;WOIetA;P|s@U#|9GaY9A&k9g3jIs1W&}cv``c~#-Y3QaS zT^{xrF6fW$&sU@Z-41W!l~>drnz?EZu_D=2IyBCvVT&P`DCf-KB7P+xvUzTfN*3z{ z%E}ZlWo1||nCobZfax~*mc2_siSMRCEhc-fz;885YIAu;IMtT<=SI(-xW*nnk+cs* zpq+-xK@sop2`VmGI@+<6SaB?sZ6JMCMe0lRuxuV{`LCGGc{jq&jVYF2{y*H0VukxU zQk&d{k40*fx5=aDWm!W}r6N`=2hvgf@mb=k;Hn+0RI`d7daPVd_%y_#{8RXSorqqZ z{LjNd=B)b(EHcLn!+Fa>LJHoVwSz( zYF}3KYhy+L{gCPGdjq~7LNk}Ng^ODgg-t|szprZqO8V_LPF zIZ@aeW($azaTOu=>3qeuE#ndG3rIoW|%lz3~b z5j55*Gx%)^TVpB;t>1aOKwXoGk%aLnJlprO9hx-=@-{Z&hAkB!oq>;GMTAsDxIqgm z5xlBF=Y3jlgA;LYta&>~Y~tICX|Ih{%72L!56sW60U7sMz*7MK$E<{S09;Zr5=#Vk zAWUg@8Z5!FZ$l%;G~Q-Md&1G2xRVq&UgwJ&L)dN(W5fk8^SWyi&F8|1k$(`BX)$9t z7BsrZD*P^eGydqM5|TQq*+}P___j$&8#e;2LGXRvwn@Tca+q{`@!RpeSB?t8W)I_5 z;+{Eac8-8pB3R*Qtn(?&aV)QaxXu1+%*IHvObvhXZgaGPTZdq_p=_)qE8@U0@R9GVl1B=m9r_PzxiL;0%&LX%84I5j^B*-*>bp9gSSpXSX@p%Z}!BXuwt% z?tXM}#Ok{7?sz@Tx4I9+tPXRy`|N&nOh3b++BQ<}dr5Gzb0|Pho3TFb+3TFUP zLabaU_lfBl#Y&?rl~yzdrEXV&=V-lQRiqV^Nii$%Cu3e2}dyY7Ti^8OV{O+@9CgX zA43j&8I*Z34$K0Let=fDW-xxh?(1_+5gYr2yH0o;`_T4T59h_QHn(jvy>Z)~2ODM{ zngAyNUJA(46A~Bg`V6?B5+IhqW(7f@G;%~~8y#(vqZO-hx>?lTX2(0He)B{OtRZ|! zL{kFnCH&~ns$*jCw=H}1FhtNx+_4VPK@$}zQWd?eWXRd~m^Th7x18;>!w1ulMJ1By zv~Cj(KQUOaGs{;@1DptW8X)5|B9F>iVu^rtd!;d#O1s6;Zgn(&?=I-}sIcbE@!fGT z?i>KxaQu*Vsgwcm!ZORYIxJ5~wlrQLTv2lTFRKo$zwzlK@Z*YBtp5tQ%9X0L7b^6i zy?1_NTcc`S+?DbBlfaq104wn0wHh2?nxITszWGarBcF$?l_SKo>qu$jgVOxm=ko(7 z-qTy~M36onw%>jf*Dj#!coq8-Atl(KXj<7Cp+q(|Q%4~_VKic;pzkHW{UE~YxOq)lt19v#y8Y~u!bU0r?xrc($cQ{gMNSTBZFc0i} z@;wfQOhs^?1f<|@0i@tQ14zMPAXNnSBsio+B{2vNVM=?(V7t-dR5`)@VnBlX#i2;6 zUb|Cpp~2-4+}C$daI>*Cjuv+zAO-h6Knm_+Knm^>Kw8{0PH@Cja7v@#loqwPysh3z zTku3+7F*g~fY}cs)#%X(J6Z(8mMu%8uqgNvj5`yn!<>pp%)rU`O^6i*dlrlpxnL~r zJCa~#-^*53Se5bCj@kY4kAy#q`VQ7rCVB6nth$C$qG5AmMW71!F~DljZvvz&KMqL6 zdz*9h#1cU-bU@h0>k zQka(lve3E=kcCzYAPcQlKnk_m36)qPc-hfjHCU0pL;Bxkwcln_c#+cCi|&3>JJ$n= zhSb;)Akh#^d(>xu_#wkqB25~$WWC~%;7wkz;*sEOUa;a}uqj&EFU8819`mRe*{j&K z4r3>|(!S*|TRjWC!}SLD1oj@F`9p4-Qw=uNjdJ`*dN&z7ri zG6%`%J-9ig6s$~@Dj&&t(#lCIkJ3hwHY%j0d!{GT-D%YGcFYTF3UDs&;;uBDFkdn( ziws)lt9T#x`AI}kxA;|uJqL`n(NOaL4a)mtZjt_&l79iecl0Cq$aI%*lHNcar8iB_ ziuJam;$o##skho9C-$EyRrP$7s$!HXt9->v^{u;7s-aiRA=NMDl0<9G#p6%G zJFjGmNEy-FA0)7L6pfTQb6Daikgwc@ACWJ5= z@{|c73`2UlpT&K57ypJ-98?)I_gnbONq~VxDK)CQLhI4%i%!u%2m;f&C4CABlRZdT1R?H---x5>Cw*Sh{bI# zRdA*q8CXMmnVs%=Q~LPQ_A^PDoyM*s9b<}}hPPEVyu}+Jk8-}OW((P}!o2*|bWd!W zUeCiilZbQibf#V{FrBH#T8hrpTMF!(Qk!H6c$duCyA@b;dEs-Q#OM3p1sXZC3crUB zz#qMId@(jbFJ5y=+1L@7XRaP4GaC^P!$({f)PccXBkaSKK&Ia(voTG*j+0hde9r;5H6 zp>8thvWhHjy$$!2umwajQKfw!J3$45)o_*^tS(0=57Sv%(FJUV2FRv-b_NUPjwaJR ze@*vn)5xpLQ1^osSv=v9@eZMMZk(UFWW(_Y)F~FH1JfxMnQ zqJb#bspf5VPR4fJrwxsO>C3{aV}61=U+PSdnD(;(`TW^{GXT#4ybTbw_3WL1P+rlR zx!{Is4Y7o@H-3(J3&Vqjh(%17cxgOxOXEFgu;D?kqlFqm1%b?RO&^uMdu)&N=5&vA zvWg;@iA!2CNC|Kv-g;w1QlA0k)R?50GkW&Z@H=B9{^;d-_OO*?B{q3-!5K0mFpFfw z2(s||c=OC5&8_nwj1eOyfik9olm#Lj&W7Q2G-z&?X-Y`?hiMxHTOS6g6m8# zs$p4nC8I|xI|XnwAoDN=khaW4g(?+d30YODG;%>{l)lpLbF`=gQaMWzDLlMGG^GwV z9W5)gq~5hYz5dk_&M29^Xz13<(#x56l+V*DDm^@T>i9>dtX+pNbFRWV6s&=ocIT@@ zI`(>Od@tQVk`GT=$A~k`o6O3}<@+&6pBUeJeQ(Dn__yr(Cd?yGUxu$siG&HRIK@t; zuR?8u2Voy2JQyvQC>V|TJAz#U?6y*dvZ(p4&~69zJ;CU7Hwi|TeNN()0DB3)E%?Q! zy!{+B3h5{K9T`>^#QX=oHG);U_g^e(m%>Z?UbYvz20`AQ2dK+SNp(iKc!rwRMFH2i zS0Pp<3>byiSyyHn>e}l>Bd<2^eHspjF7 z{lV;lUVJljLM=#0vfaY)8d7F+wb6Q)Qg+un8QD{{eDjR$Pqp}`{sDRX6 zdohhnn$Mui;Q^_TR{%2Yivh`?TNBnJ5=#VY9qmDbMHqx?ZOEUWBF5)p{9*F=o&E7U zB4*^fX^*B*>5kFe`H_?ym+gOJihl|}=rI(OI8PaiJ9qg!ZN?5=%-%g@sVaQVj$J)I(Sm(SB*=jW-`qxS4h_#d`Ap>-f*igX^|nYAOjKHuni zlhO4{jjlI4T_=WPFQLCm>oS2Q=^{!+hriV`}Z6#tUZ3arFTgDD0U)%Y9~`>=gQ^N`2mC zk(gs+Q`)8?))Dxz2ER7so%od49+m%D1uu7jw`ER0)~j{;6gc>DSm?0vl?Lf9A!V#Z z#w%Rpf4su=N7U*mlWl;M%S)z~&kdecZ-`;-2jr==TMWiRsE8@_R&UasSHp3(AM^mV z)YBg}*tfokZEz}<(Wex!ha>#1c3k3T{$pj~OfxL`0Cx-H&A}1F+#qozD)zYTdF2 zXt9)nRujD5EJ}g-LVyYb#?8c`nu-2 zwxn#QjXCB(^vvznws#g;4~cD5&vGc~94E0sFnVYKMspLCT#UXI31}?9=v5)3Jnp%YURCbr{DLRBljxpHk{E-ktN56vvVq^CkAX?Z)p4TnDN6mEE923j|y z#xyx*5K9E9Tz&6b5HaXRZAQw1WM%^#YVgNW=I{_;XQJ{I*3g!N(iEGHgeC>L9<_$_ zDro$IXTaBlbmY++nm;38<$*0eVCa`|GN;qa493KVc z%$O!rf<``331*JOAGz}E@P`djr_5<>Yfsm;G&J|K!Qlw$(&cy?udC4S!Y*D4kCz=G z>eEu z%<5gdvd3>SbKt1!(k%nqm=1UoSpp5w2pb=BY$TT8B=SIM%M8|EkHgo76v>_}UKl@; z#b-~+z}ZvN)>@BKqEA`aL9P|StYTON$04kGvtbnsL|F9$$0}mFCR%B?AZJSR>%~i6 z)bj1Mb!4SC0G%2N2lw#O3Qm5}L*LZrjo+B=URuG)CkT9zm1SH&R{{kQrNGh(d3G43 z#JD<5W|>lZrl+}`ys6e9ln?P4fw(Wly$phF;fu|vm~AAdm)|TO3h!xscz#pP*gZGP z>+%LKGiiG~PYl^?$s`p+=kw(wE7p-?`aPugUgSI7`Jlj{eYDGdPb%HBf^Cs>&oT*g zPn6^Ft^1O<#5DbilUu9hk((8|kFx!-m{GUx$GY(1^y|HB?Jjno^EaWznB(HI&Sw#u zn?-4=`RYybYJD2Fo8{I>3&~}ar%1Cyl}jt0^`odjmoL-zpq~l@nalJo(rMMRX~uH< zhMVJ!v$vejYt*F`3{4-e z_w9$eScpM8q)rgZ7q)(r8N1isiqaXOxkO?X$FhpWmX(nx668PaMMSCKL%usfu;EJ_OeShl~u0Cyt1WoA9600jzr!Ri_CjJa@m?}4PJ~k+%Y~m@{ZovJ9rOk z*n;P15CyHDk(`3q&4rD=#BXn|;G6TtzS-n7_tQ>wvLaFlF0Bk(DsL4|F{gemk@<5$ zLgq(;voJV(-bLIR@ePQ2jz&E|qN)(UeR(I`93@IMNrNR@fCoqr-EHTlAxI0c{91#w z;welDip@MrW8xWJN#~s&|Cqcry<{WZnRbzlJe1X&>+!L}PKZ z0}SN~LLUP11quBDu$v_Gr@)3t=rh1RDzxW;4HeqU!1faC@4%Kx=w8T4iO>!LHcYU$ z1M8O1BZ1u}->3ribSb}E4QyYDcPg+?3hfGDYb4%RfF&gK7r=fkv~9rNB(%ek*PjRt z2VMmG3GH@Z&k618z&IzTBv=njn=PAx>9el@(`Q*}DV1kSfvuA#Mg#k$U?&0lm0&%< z<_q>|V1E$o4q*E1J;3f4+P8q+BiJSv%Dp8xhqxs8EimqgTM}#srg^&q)j5^S-M~~b z_W@JMYy_r~c@&sR<|n{ZGMMcad`7tYKfv^f?ZEbz9Q_s8EfP8e1-|lr1TYO91xzKA zbfI4Z_9sc-W?+95>=(dzQcX#)4cI48KQ0OW0!-&FmZG^)h51lnL+J@fXko0ObRc4J zzS(PduIz9idgZK@7Q1d^TI<Bb_dic$OfUR9@#0As30&{Sp)86sl}ETp_G(K(Ze zM*8J*8Knt5+apHI$Nlqizo4$AZXOyU{$$95k;$*)hpP;c7Xu!FA4Z{@;Q02A#JwH? zI0T;8!HAm${H^q}Pj0Jgnb&wy#f&Nm=t4jl%y#CG$#WX#HMK|pXSS>e0~%Wz3^|;b z`E~@i>H9fpj)l={kUB@i*~pgk#M8tsw9o4^%sh*uB^7+8S)%VBTry&sWN%oo91^z^ zWwzlldr_w3>Dxef-ViqhK^8m<9s%T0KaT>Q4EPuz+4Up97XUW{eh<(781VamPXhi8 z5R-4RWYyDv9|MHv$ugP02K+AIvw+xnC3p_-1wec^`wHOi0FQvSZvm_Ud;#!gz!w24 zpmRuf_5{G~fM)^z8L$BmUM#y9@GpQL1$+hYHo(6E{tobOfG;6Gx8rwhOs9_ktsFnw z+62n0cIPSeJJCNf7JnMBTT?}qsCcD*B>wlh14KkJ;`atf>)64h^B4CY2X@?mM z8@xH%5=Z;0qkY5CHai+iQT+z1$@)Il6qUwW%U@9@4-ZNVhE0lrm7^pc9^7lNL@*mZ zaFoz4GFT!gfnPgJXr%^A1or}~5ZZkPO9U6ezrRyxwFWaiGt%d9K08#gWc!8m^0Q2{ zx^rV?=Hd;bzzD6}NiSEQ$fh|IM%KDTj>r$NJWuy5zZcntV+XDeC4uS)aE^!4%a@1E zRE^I9N-Kc5y6n)GTKP10sHpG zV10x1LA(kWbR-@^uLQ6mTT2ZVl&w)x*EGyLK#Q&Gz=S9T-T>Ayd|##0=(~EdBe}qzhr0 zv^+KMU~wrFh*!FkQ)G~@r6=$W2w8!ovXF5f)*g`_X@N6P-+`GOU?E?V?tx(t;QxNa zUau)76WRSCabtZ+EAbBYB@qVghnS)0Wpc0Y#)~&0P`i(a@nU+2^Ru@QLUIEAPes0K zdrNHpm`X6+{^E{2c{#;w*XVVd;!>VXgr|v0hl%y?*|rbF7Agfw8g5{ z8xf1m#V-NA`EVe54YFoEv!xLW85`R%{MOncCH}LJc;Cx57^xn%!MF{$*I;}*+Dx2)pq2G~4 z=<9g>2l2zjuhBQ_*EH^;OkG=JhNqf0&26f$!)*U}i;MU^O$}w+B~)k0NXTD zFcLKZj>fUp!mAr8WV>=Go}`+yUCD6v%JAwzxHq{^>{mkq>H~EgG1w%O3#C_Ie6(E|W*=qr(0xknQ1@IO?G<&nm=jnjI z089h^32-{#KLF1FoQJfW3HWiq8Gx$+&jP$3a360iFjq7U_R4;JJXa0WSl5 zAK+5J_XDztc?W(=Vs>x@XtcIP}&68+25qOG|6CCe+BF<(!AMXFpRLmr5`Rd*13o! zf@!E59VxW5!SXeOYPDh#wrsQ*%-x7^^+vA|(Qiv=B~s;oBnhQ0)Dm*_AnzkuO6Q#E zv6eQ_)2sE{#&plfBWHtSUhwu=rVB5~HUS<0$TXs&A#(ya>qf1NSOOa)DKCZx*BLAk+yYGF z-D)s5r2^y4<>_IJ5UvBe33u_S=d9PD(a&TApXrA^vH5M_)>Jz=Fg#Te@5yo56#^{d zJ^|+zS;Vy+#47J0rioL}!Lgvi(8(sIlWbyIEt@zNqiiCkQ_+=nH)1JGOrX!Ke$Lis zt9&iL(2p%l%w-G7bPolHcB(X?#7@vC32#D+z-)GQ9I8dU6PQ{A?O?v>_h}A06PQ}W zIfgb2LPK3p;>`ipDA+t;pG1~Rc#MO2OFJ;N4c3n|o^KoRDMZ&J7G8!9Z`5k~5k91S zYFk@t+lY?cPXh}GgzL|#?vP)a8R2z@_rkzTh)7pYhxozKbeO3Y)#tW-uQ7Tx*BYQ_@zOGXLDS>nNNl3_A&FM_Yl)T8%H7EXNAe<99N0ysw<_fL~NyLmiw+& z>#@^*djd?Vsk(L_vCOTqa0fj#ES@-!_9?u$ggXw1KuUtKz-|_rHJNTu&WRN#CxFIE z`b7Nxei;7fm9IGQtmQP=PUGc`x^_5eAB;eL?NZEGNEQF?V$W-mG2I19pY{5lnS+a z;4X8HIKb18PQ{`wleA%Q4=DL09$lt7%1hl7beZZXSu|@rEA>uL;wPJCLBq>}tMHrA zkIBGD&hBV#_9QO`Lm~9N^83j?Q(3ckI_@Z;v*IYn0WL!LctEBR+8~aS&s;P}M;Xh^ zfc+%3jdrElMl2x?oLnCs(ESrrC#msnHBTf0I?30ZlO#3}C#l*II!V+6w2qqDK$E#h z)WeFM<;y8CV@G2EWtMJNbY?$dhrC1c#xprCn)g8{6x&@`bL+f}XX5dS5Wi26D_?fC8z(2LDQWni-{%V5MJhRxO4^)(|M&D?-o3%@ubnhA)XqJU@((z1Or13 zoVQq;9<~i++ofzsbgGtwPTh%y%#IcAR*&A;O7Xiky3p;ctuQdM$rhY*O=iO}c=K10 zhY~s~Sz%iOCAO1oXu9nZdL^(g3r3T@5lKfcE3oKRTN^;RBqrCJKm$X9W%#|`j}wno zde3fcZ<>3h5>IJeu&}w&Or@^DyZT%tt#GVPmtGUqZ^WCdQQ6bIaZ%@4kFLj=~`n zN*HV%Zf=0f7#jmH#x{Y2V-qlpH3FZ(D2L1eyq6Df{3A?b79EWA5dt`gr z>_=qE=j<>+U3_YXUQ!M_1pnP6(iMCYhFRo|7{1}X&7Jw)>|lJaWoz4^+siHzx}_}I zFTD=W@XDt5T8|_jy~&)?iHXk`5;6@YyY8KXYzUYSi7@ZYx4&6Vg75ePBc-vTfMo;)_-x&Oase zMPTI;x)1cO424$-`>cZ!p|O`eA=rl;?Ki;mE$j^&BB6f=_GZC`!R;%?J}||`1H)(W z<`aSGSkn7|=`_PSU^>kZo50hs5%2%8_a*RE71#e4hzJjqfLd{BeG07+w-6O0B0doH zsh|;1sa9WN@*t6r#4Hfh)+nw;EmE~=wWY3DcdZt!OB5GutwpU%)mCb4#p173Yt>qp z|Mz>&%-nhREm;8d|EU8v=e%?0%$ zLxtlSV7kQfMqoF~UCt$4E$`b2OqUrx4osIB{tlQfLgcvkZ_#1Ff=FPQmYK3>k2oh> zuDJuU`hS4M+X2y#)4lHQ^1+JcbWL3~oU%DwMc8s^I$e{l5udEnrk??=&0Y!WFAsN} z7*6%jF5M-hI$6k9g5MKxVLk@aFm+A!byz*P6(a5qVyWD~9FITQ!gYbQxS^XLG^E>G zWqPPZxRUP1oT~Pechj{1WVL~^;>afoN!mx!KMvIG{|s;ees6#|ho=Dh18xs_LlZl= z02lKm9b9y=5#T|9Lja!zECzfLa3~-hH_mZt%RmfW0`MvgvnPVlA@jf3E@l%zr^+<} zlSjts1e9Q{K|4H!6XZwov}LT!!LKjhyJdz_&~J;wGWz~ z?{_0;BXC`dYuI-9qhYO-a9V9+TYZgguj&@FPLY{cK zqwXW$g9<{6DiQ(Q1O>}?!?M;6zTY=YL33JL3z}F=Cf}5{3bB;tT*XS3@o><+GH&A6 zE)}}WWzxtdj6Fj18J^&xLMI|F<55+0t?2wusIS)>THcjRC@Zi(NH4GncRYVFhhsP=7%+4(Oi@m)>?#Li z$EH&CWn;(MjbOUmVMKgT>Q}j!Wy*vuDC-i91;e&5Jd_he)R6#$uE}KWHvw7SF2Hp{ z#OPBWss36R^`BTQD1iG~{i>*Q4FGA(7^4j23nj8k>)nuJBf_f7Z;QkK?8g(+P&05VF>?);2*OOp$W`p|-+ZC9m$M#dx!#V9@hazZ}C$TYEEdwQWJdV(1wq%=cjZ#&s0@C zmV+3dsKRn&K-&&gg8ITxIy|x=48KCC1?hPuO`PAFR!@dz!tUDH+ML2M>aA6E4RDTz zgCiNLK~IDnQ|cO0$A?^8SF#j$8SKWNFX>O& z_>=diKoku2J{N;9*o{G@Z_U@RfikS@$Lbw=R=6(>=LvwAm!QYrF$r)E;4y%x8Xa!~ zqOs}t58z3F8zUWPW5>mSrvS1{(C-${>h=NF;1G+^0}GUfCR(squ#KZpgESsBNaOA1 zXjtK5Xw(Reht(&B_8mvdv_E-U@fp&JqgJ-(+fTh|HQo?=rK43Ism5Z_niE-(&{Y>R zRn8wxv_<9Ip#2E9EBho9owsZ%Vbq1#hxgp%05T&5`UB>dNeUGdj||hu7(H5q$_rm0 zft+0hk?MIqxLC!*nP#QkWbVd-7hJrT9gR!VG#<@?@{V@2JsfR9rie&bJ%roN4`*3pWPenVe1@EF7zonqPzQQBmqwW<7A9e z!mSJuQO3e>8iU+j6k#+YFsRJ&^}e`Q*ARWogx4za(Fas_chy_&kP15MLm1IzzKn4Jv)Y4I37 z#D=QWiT?oZ3-}RWHQ;{%X{0{}q*?g{@MnOZ0=@%y5A^HeJ_ig1>cR+M#kjV16hSJ# zQZRIxTl6^I-W;B4j%LrRV7=%gN;AJ9ERZ$<#A3mw7+g^r7x^jeJYa}~|BDQkual@| z5KfEzm`aV58)boI&3Ayr;|W+c*d^!`Ogk1iBo_`4>#My#+SvtM=dc&R}WH$PLfhpC3fnzY{j zJhtiEX>Ma(O?=e&IR4SS(j0ZQTMq|QO7V`n!HqW_7FVm&3*yRwpM1@(PJb7_l`6La z%86bGWl4{Kp&H%+Wmf~ZBVZbkD-&h{GR}N7JgPFpVqCm#XeL_(L~J>q4N7#m7wn*va|z&saK=o~a-Ni)S%ood^aZ6@)2Y^GR>JO!mFAXW zHQhe#3%Y@8-m!uCpd9hvjZ4CCiyRTJgZUc`Ncr6c?N#{^(}h4vTVn1;2cYv*8z(TV z2`Znv!D?`$>SUgCEp=uG+*pO`T_kIK-VkgOXs-)q<@+m8qFaX^3K~s%64#B};g1H9 zZ_f|TNKI^;kNVVbQo6ZOW-H=0!3=17<`l4ZbjB7a4eG8b4eY&KUDZ@oUDrB4oK8-7 z2{G?Y8&LmUPa-%B+qUw3js~QMeGDKi%5i{v#}pvT=&z8BmJzWSzxg+`-y1AiMin$| zo8qSPN8MTj^*!lVF6cyO5MCw?9DiY}9h8$JCL=tiwkt1iU zu!2*iTx@JnAzuh3K-9e%xyLs&9sRW9hSq^feflTNW9VKne>PBV)HxVNH-WV;bc(W^ z07y4$BH-SD`vD#VI0=xw`GWx20XP`21Mm>Q^8qIVvK*!WQa4#^RX2&n__2_ou_Tp- z4|@y^pYj-5=1>XR*X)hlMSoQHpl&cbP%fj2=wDeB}6e-2mARR45VtS;G(pDpu(sJy-4-@dQoSEjC8JHf- zQzaLy7~+geB@cWmnY$tHRId3pcV)y8OfnLl{NNpyYh`jrF%yV4!^Rt(Bi@W~u|ql6 zh~Q5+Zx!TTRnZG2dxCxFL8Z6;=HXV zwMgJm*@0?79jL&qEFGZF#R4}s4y&(`X|BqUG^MItj0xYx#F|poGTZ47)rTqA!1t#5 zKp(_0BmG3E3;CM?#{jkfP6TWPr16*sNR!?Ucp~7*fL8&Y0!U-QN~mf^EEWugIZztr z#RZEtWO+2qo+e2Z6BAIe8p-Pfj;c-ESFh4gz2d4~GuG^xBVIgIFEnh>MN!-qQQR48 zHXx}4O&IivW@Z8mo|>72VAi;7jd!^`Vq9o4X^y@yjaY^ESYcWC9#XkI9;AgM*|)YSO!=JxCh`lfO`U71XvEpI?nU2 zmH_hnD{9;UNK`eBSS%<-*(hyygT;b;r;DspCn~NAsv3mj36G;Pl}^TJzL4~YRO@LO z#|t_*kmLQB&%5lN^1jgT5B@`qN2Rd4RY;>KO(E=Ha^Xkz?Kf>tJ&Reye*e@R6BInhFIV++9B zK4?(xy4~uro+1Gqn68gLrmOu#C@ zTEN+WCjia`oDH}LupW^8jYhyf12zGE0(c@I%e5JhRqjA&gH}0WI0*^&l*ajer4{7GC_Oc^1V%JKWqlj+SaUF z7sPFh3}{UuQ=tSgmWkCwzOR+=;`5mUPyrxvJ5R)=(jCmlxqvif-v^|8&Ie?w7ntAG zPF}=xA7`bpzA4T3mJ3ffWXvjP>*(#O>Rd9|iiGs=;CVX_3en5CSfI4HWgN|tbP*>k zD@HaGCaeEX{{dl4{ZcAW0Ey9G_#bV0XME*BIyd>T)o^SGm z&C;6#XbmR;)1F2Zu-^&|rEN}!z!6c!vkvc@M z1A*--7$=z@l6a>ByHOn2vw>wgu;+qudZa#F1lkUG-a^2;z6M0Yy6V@sfy?^2vJ3&U z4Y~lU!#*hk+IqDJ)Fs25i$U9VDM)t;DK)ijR&A?zyX7F7GpmFsCtPt-HHjOc{Y^Pb z%LNduUgn-MiN8Xt9mkzLU=&cD?a`)WC;|C+B`bp*ddh=(6S#An-kDG@Iie@zow%h9 z3p?ak`-!lDd_L9s`KoTE(fx zm{~_Ne*YN|wj+2AkdttK0lWbaeeI500N()Y1jGnS#|MCK0%Eyo@OMBuJ!=3f0p9{- zTaAr*Iyk?HZ|ucB{Q+90_M2ENI1~4jM(tAC5=Xnn(I#PyKTL|hRu#sjV7H!CY&Eh7 z^WtiENJBk`neuPor`wf$lAZ#F5k{B^7fHqdc0r2$VN2CHA1K&F&;|%L8Q37fC|#ZO zWP3MN>RAV{X@XgQ<`ul*{K&-R_YtcE*BQ9d5r0Mo>UE4hHGNK1lN}&f7Zq+N&*ztO z-O|n4E2zg_`ufbZ?32dFN4pu4@6Thl0go;j>gZg4>N#Pp7Y7j<5yM<9QSGzD? zHUUkw-#)s!vU&jP%09@qwo|k|2TL6|3YfNRGl6N#b_%dR3Wu#B{|2Q!((0TA8YR|& zYeXD>G^~qCz|piGD@dfRNg_KLZA~5pVdD@--0a4|v+xN-uz~MQ3-5b^qhqQ)Wq^m{ z{%(MkfV%^B0PX=ut$7(zRjnbW!y`)L@QBiKjKZO$bIoH~|9SGlPI_+%>O=WzJO*oD zId@4bseQNvu)Q;E-aDXN7%9<%K`X&E30Hh`{LvsKYGz+N>$FaXFedSAutx2^#qEPL zpmi(Q@_XGk+huCPz#Xdn0o({o)>kDE&k!ebq~0q{CSe2Lnf)jfsGCXK0sS1xVH6-` zv7_ntuxG5LM=Tc5vr`&}xsk`pt#XRzX5aTel_hKI&~zkU;83XOsvBQ;#iBpGM`bPbr?( zJ7)K2i)_f+R`#qUuE2xLoV+cGP5S4k8-}>9O5#1pMe7E!Sio@vrM+k{vxws;cI@yW zQ4z>ALO0=RiwJHb(2!>&2qU%5J2co{K!;nnND5EL5$psFZ+q>EbtZfR!o0FM@C^u- zBy}+VeE|6meF16y*_l)!5sL+#j`oPbdMTtuU$l_CS*-2~smKUv10$sVMo9EVR7k{B zNJ^uSlxEg;WNOm9zCn=ad*D#Sa>3W6Uq*}~e2h6w*wV2jja741b!HXL|M-cwYKi`L z4wfIa(`YVyqD|1D+3p#I|4w&SRve3Wp>a{GP#LibS8kwI;U|E!3O@y;RcJ&*q6$we z7I6KW(zyOjX*m`CPhh^jfax658-@2gygcV}j`#bhdE&%-Dc2#>GUb{z=gkV;UBM1= zf+ZH?2^N9UJ~UV!bGr%T{z_y(z_%n%aJ`xaagK9al6Br=&;6J$)ha?YAG(rpZdJV< zB;mrwmOAeBk!qdalr{qyq0wF2Aq`nv8Ta+ljGe%P!l1)w{_jOC-)FZ>ZCsmLzNvFn ziQ)4|=$O)WGFUH_abRT0LT)YjN*VuuSH``2p^P}6M;y_sOp|l9X>vAm%1BI=QE600 zrR8jL9){IhSfI(75b5URR>sg|aeb8;k4#OI#aF4&Y)tblhQyS*+>44l9&NMf6zMp? z+SKGV&Os%n`}!#D6-Y;Ey%JvH%PG8Zy%AnM&3nrUkC+NiX%wE)atiMT46!s9Xp_Iy zL*Z$|{e>>M|FSlgy{KRZMvPPTV#S^~Zo`~;B8Dy?%3f)Y7%Wd)*_D#))~&WOG*4eC ziCw3LL$4d#8nFA1^{9HGB>VSDN%C2eO`MVtQzcOvl|*SdEy>3)G>;Z&!?x<7CGmPp zxyQt919xP)8Xx=QYv8(0rnjx%p_mBpTEDev`wnwLCl=#wM}g8dHCUdS*_F^A-43Oq zp+J`^teIU)%UIVhO6Ze&F7$kwUg3mJOogsA3SDVAHGL%ndRYNYuk4}FrDR&=q|EN= zw9n96?fv?+b*8;o7-2?Qi0LADrLBgfl-4UjKKB2EAh+tdAoFP?R+bn+5>r7cje=BK zPC>4~?dY_lKeDnz4{fiVDCt&Zw~>3Ri68a6O6ME%`vA_bj`=uk>nQnP@W^naR@m(*y$yX7<=nla(7KxURPcUsZK)?0;8X(JYb3hIy z4|esESS+9?q_hsa4I`vD6y7H0*O%tCvv(p3j%vAIqgyTNt(4 z(x}x|My)n-YDG-dN@-LprS-~Mu~QdXtDhsWmIBsl@>goL9@Gkp~QS1QFJ-B6`&Ks(zU=~VeX)ej?9YAxrsbeyHz5{;}@L0+TXede_@ z;!k{t&o}84{s)l$#7E|HPOcW!T1pHe#XY5QEr!y1B~lLbc3-56zfh4z*0$iqyCc$% zjYvN+BE_y*;-YaWu8NeHid1P7snU8SQVzp}B7F>r{h)xB?iUg1dS2fNuekdv9Dbaa z-y@E$*}MvCG^xQ?15$&pF>5vtaYlidcC?hX3bB;dD{*t!rTgN3ATmJkB@(yy8F2T- zeVq~a^+w!FjkqT}aT8NtCPUnpBeCiN+FhPo+}?1M4j6;a!#X3xoBt5BFA&M7aF(72zgRyU|~XR{DHeh!3KS2#LjH z9|)yUgi7m`7II)Ftn`bKSag?j-xHXc+s1Zh&2LY%&s*`k_S(nw&8mIGbdOG@aiOl# zdL=rpbqPgx6FjoE0$sfo(G^x-`Q_`tFR#Xe*WPvZa(O(_L8%RlU*6yN zN)c1PTxs;nmDVej;yRV?tJH6YLxDAjvHxnUb6pHd^+2T}oxSd;)Ig(BF{4t0j7kl3 zDn(3HN@-Lnr8$)<=GRk2D0y!WBYaUMU%!_JZLy?1?PQ1&xnl=5n!$-D3+<^V>aFO*}0dyRKsE$IRo0!;W(%}B0+B$FDf%WJGvV7 zQ+%Pw{Coz;JmEt%>3H1dEIYASun4!5c9Fq6zoL-L+T+E|JRt^>))Qg?y%S=rthn8O zZA4a+Kx5v<<2p9dI(BdU7rMiftD3Rhhi=uCN;k}^nw8eWi1LY3KO&9enf*&M#F^ER zWB#Ij;|WFwCjv6x`xza4%E^;hETC(lv}Fe4#xvdgVj9Ohl-QGBu-Ts3eIdRYDPfcN zI_!p|JGe~8mJR(59w1-*;X`TrIp`v4ZW3SpVSlsuZ4hH^WBuMVb91QYNj4 zMX#j+*Dbl7zAh)*quz9v4C-S~shXXZ!<)DXYN~PO%$BrP3=~t2U^jP9;GXvhAa`D= z0LknJaF`}z_X3D)u@ZVn<=zu013H(~UCyI0+=4C*<#HP!zuLbYkTSXhka4Cs8$>J? z42Nu$#_ge$=4=qY&CIor8p>67^XC>ADD_evsm+hpC+qR96PESGk9+w?CjCrg#FTA3 zV7)dF72!7Gm<*hbZP~(aKtV$+?q&5&@LvxlEt1cjXP^ca$tHM9ghn;FS+I6sO9i7K zXz*6x+9RScXM@H{d>XDvo8pfKHFzje?0!10T6c&@*qa&9e#*&0+p(B6(jA4tf;Z(T z>y2b5MV1uypfT}k@TsWmfJ&wEAK0gw#w0rLZN73p%cYJ9!P9~1HphB0+pzE&8zY|{KoD-;O~r-BIdFK z$W+w*dPvNK&^7YbDak6yFK+!lY(Dq4EA(Z~(10I1LYIP{p;@6qaUW&>qu-=`LqNWJ zbOV3~af}z`fwhJmT!iotAnVP;fSg!|V<9E{sDVRVNfXmWIZETA9HnLMm66v5m~E`B z)vs8M$DzKjP#A9F>b~|jq|yn?;u3Q@E5F<1N2>e|xWRAbbcYPx#U=sTfzmQyB}j0L zV5}V1N<3TTw?g($i73m-h{fvGhO0KRL}Ts8x2L4%RAV~`Ec{N*Y;K$*1)ac?vV(Pv zSk=9eZk9c3cE$)$0#jn#1LXg=Ufh|c-Dn8#mTJax8g{C|(mEA#? z^a((g-LC;@0G;^ZBGQ7H+R1~$hZH_Sb z`{saR7c9HqU7nxnLC z*BrEWiPcC{9OH0P9Is+Xlj!Xy#Z!0U*g<%=PM#zZ{OjjkY%ujYGO5ky8-g7OCdG~d zHd!jhcY(bqcWuRZ8I;#jh7Ei-Hh<_nxs4Iq(X8=(=L53&I|&e;bZ{~tWpD~072-KaPMbYqPzXnR&tN^< zL@Ad-pu~Mm!B4lrSj0}MnWS%+6jN6Yj1z=K0ZU#nmi#y=`I*4RWSGPcLAf~MI5mMr zNt}RdT*M@<=Q+UcnTrgy*q%DjT3gp5jcO8kzC%cnEw*x~#k+``z-0s9n;mLjD@OKJ zt@tJ&wc=ZV)Qar^DIa_hD_XG^q^ep$OgBkV8oxGBS`IUTlFhYAQjYT}@EJ;^=>7}J zrIDiJZdoikwwwEW0Y&Eyj1hl0j$C91TY9Cq<&B8Y*i(D6N-qK8R78f;>l^#5aWKAn zbg~V{s7s~(7?3jg#P~ydy5b_H{*cn>4=K&_UBg}}`_IwARDUh_yiE{6gSZe7NKIX9 zU1I}!3e9y@$JeLXF`QqGJ#q_m4KI`} zlXMOr1RMm|X>@e1dud`in5r~3luFC_()9YrM>NfU>4wNlr>3;ErrYHJM0wjet%Wb`*uX6v@0B=Is#X! zw*$>n=HsX)(Jfz1kfI5894mp}MTlZ-C&we>AYuDt>0QbZ^JqX;$TGkRz&!x@USrJtCm|QLm&9VheYmHzPJ?}Ei{`k`qiDQAe_J#&i+fiz zA9F`*A!E z(>N<#5|1a4Qz$96Y7UdnIwiIuwR}8cU4^(s!Ii+S7Hlc74w$o|;AUW%I~RWj%0ZE8 zx(qaU7{ML5o*afh8nnl_pFQ$8JpT2t<|b_R&J(tzT2kcM!S;YEacd|NHPzBTzO@Or z%9JzLX|I0N{Sb{8f^AlZNTL{GOt*7i!Txe_1lkV&*mGNdtbB5At4ut+3j&{Q1K+v)7B_Q*-6(BS4b-*J5zX3>hiND#JYy)@(U>xu)!0iAp0UQB%72r1k zX~FM838^j;i^1Qqv?~l23zjd*xDJ|5+MD(CP;BTOsS3HUy&CusNGIamFl*L=q!Kt6Q?!0~|n z0cQYi2v`R=0B|-SO0(llz(If?0S*SFd^QGT{oqN~T0e-zaKeS9akZh+c#N&ad%)3t z?Px3sjrY2vt#-7`$p9#Nwy}>Ib}CVZT_-^;_#8!P;1hDJ8)}$DhNZ_DONrJ^xzB%X z(7FxjwMvtEBdvmKC`Pz+jIPQPGTV(c=Xk9_bhG>gJnwB+yrs4Uv>@6R{1({cV(R-d zz%tu{^C9=gBRcyEVvWG{Jg%Fz#UBmf=;4=YLdsMb>magLWC!aYR^pbPp(~whZfQ;J zeh6a?-rQ$7NE!8|tEP!s4gZ|sYe+HyXp>~q#Jt%P#Z9$zCx$;nCWOd|;q6M5zbp@q z_|cEAH}t2_{b3oc1l$eqX~0Q<&j2zf&jMBg{vMER(sO_p13nM8`&B$h!0r z;C+C90%RQ=>UtT(V!>4CiPDZVSPVP0TiSOWjr-PXJZhHmUgKy>9WBRtjJ2(ZRjva0 z6;Uf(^I+agu<|vv^tSR{)K%r%9fH%!M^S3!dkolA82+N*H^4G0Uo*rJJ-+8T#45q{ zJ6wBzzJnd6CN=XAp8{T;UzfZk>uhLPm$LSMZVHLA$8ApMt*aWALL$>~A=nyb&IuCd z&#z&0)flYrNA+e1YuLN^?#Q>5LP zf>_(*IuO^=;rOFL+l>kT|D3%%HC>;sYSAiCYTqIQ+Kx>ERPX3zUDA{_xGD&W2_%H-rF#R-81Q#BeO{Mnr3ktmobg31bKZ z-6puK+v1M~uR*U(SJmKS`Nk&h!26{<72E79Aq!x_jp@GN^)PZ&x34Z%w3*O)?8P7t zKiu_$T}RYcGL{t^dtX^L#IzmDZvY_6aG;sS>vYOOOc&oO4QpfqrFmnY9DyiKhP@)- zi2 zjvRFXDdl+W5t(w-K~-968<^cnh_MKeRf~Z~@A7>n0d5YsKVTg20ArQ!cM>J0$3H9W z_lTvm?o0G)@YF|)q%YA|dMi<>xn}#HZtGwuyTuXNu{~T{$^Ftvj#x~NEmRtPA*K0} zdmL1Z2rp;pyo2i;T!%+wwJB&UEx1p?Q~aYr?bgJqmbz*=2CJ&BA>Ev6YHnR4k!oQ&jkh+>4&(q-YojN1s^&Y7nt0LEcfg2r;jvOpv$D@)XWLPYO9>4tH(V#eQRF858 zDkrwfNL8hbvcWPNCfurY@i+h{x4;62&73&e<@hjFLc1l`0Ml;Ct-yY;5tZW?z%sif z9A`W#q9zZ5MkC5b;1ljUm8%QEL9Q|8DYidwmHF-Z1Mh-RYlsAV*Gi}l?3f$l+TK*}9RNAcuoK|HfI9;o z4Y&*7EWlF0X28*arvvT|cs}4BfE=CQ6OeLb#Z*6!SS;Yko6=r3SS)zM(O4oHFF?bt z@rn!(_6N|^=}-(B5!iRLqJxV zn0g1=s&{~xI}7ZY&V$kK(N#T)u~zccih?77>9RQXuoP1MfI8LcSRrjl}8Q1n}MycuW$YsPJVWpb^tx0FSkF1270aC_F zI9B&Kh&oD_nkE}~*%icJLjz@PfZ5win*df}CS?Q5oL)54$$e3<3SKky;Lm_%fUf~g z0Q?IebM`vme89f~{t)nQfYg~c09j?Z>{6>NF&sM8*U|l&OL)-a9Y#^ke zk4qI=q|@=kB5R`-tr-;7)J4&oyk(PfYfaT1U@ucA?vLZkNk!whCFh5V0?vtWb#qa0 z7O=kvW-HYPpqvzG4=x04G_HlX?*1D7Xjn&X!*qU*gjFW3?u64)`-BW=n~VggUHJ<3 z)Vav28@tBboKzaFK-YBwRIEx|Ht@YWp;*uWJ02C>f<<(c#a)0@sJj8D0sa!O8gLmP z4cR?_O@Q|Ub^tyANclYoNCo5aMO83jy4*@>TyCYbOjiWPILFuye20WlCVq>ii{zK}65#wn2A-k8n+jn9KF8=XEuDnqvi?ogJ(Rt;8))y}3T86r>`n z$@M(Ckv6o%r|L;fdA{(p1N|s-Ma_!#IptY|9t*7=-{~!9WXuWFw*^mzh z-v^DQ_%^P+a$9(@_Bxss{e0QGr5`F!@4hyBdjVN(J_yY+{KqNtGql-JGqt(IM%FV5 ztv0*Z`L&tvye_o)M5IG)J`a%E{3IZ?`9(l#^Xq`rX3ExT^WRV+s?EgoXjG*QhBhnh zbGGQc(B^*YU7L9%rfT#1f>E2_70hb$-$6OLfHqIhZO6N_sZbBJ*xOUcYH{(dxwP0( zGqreQ8#z;pUF1ybTdM4zKV-o>$6ttv~ar^Ovddc#n#}n}(;Cu`oO|T4a79?kP z!X4q5$@!D|3`k-w7OswUS;QTo`=>oRjzirgDw_nReY;v0wxN~B$P%6waozO*T7e@UZ|A0Yc z%I76Oy5lbcvg7j#AfNh2z~ce`1lSDtD&S(kRe-kx{soZh*Iozw4d5Gql=W)Bok&Ls zX*D1g3+Tou?QaH)1#y&{(ncE0b623UxjKk$G9h$T@~CA=KDC5mt6J)30V9zg)yi66 znVR(oD03r*l+xf>93^@2`q3;-P8R%TK<9rF$bmO@kVmJe6YnBs5|<5p2Wmurz;TAS z5+%p?dK!>5^%=mifX@OR2>3i8-}wbVmM}+Jw1kQ2DO^f>#oXnf66`^a1ye9JxxTZq z<|yA`^zi772e&`4ABthHM&Kn-qT4wh1{z=GAY3=Cy$5&1%sR7ZJdOmjgB>g^#VyZ; zvm^fI+;Sepjr9yVO_a4y2}^0;y`@rTd|j2bG=uL(PYtCQP=y%=!K32)ZUo48-WZTY z^_ugni0L6hz+UqHF0>Sm@I8q@97>894vpK~G8Dp#P)o`ssA1D8>$yHobxFl8S%WxuT{ z`~6(m6N?4oAa|uD43@u6qoU^6NeZ8~qtOjNZ69(s24t^Zb0giL9Zdc;E;|tb-Zcg|_>iG=hJgc7bbqvwf^V*P>zn)Vb z(Rx0@l=U|Oneg_etS7m$CKe0mE-8(po=WpqsAMdTx&{f&i4?|A(Af6VgD=Tl7~c3r z)TDa1jPY!!u1#0Z=2EKktS&ZN374*TO{Dcvd_%}QMg?>s=AfDH#emHF56ztPADw`R z=@K5L-G^98%M?&?xPIprH>HkW`dGXlEY2`ZyaIXxQ5F{v(9ID6rH<4?3hQvxBX{L9TecW#xCAoeY~Jp))3RXfh=zI1 zRZUp#Sx}C;5~mnBKXGwqhQ*co*a?zYELep&N_*X4 zy;#)%v+LF^04q)Iy`rtFFVJqo34PPHEVi(VPrKu_ERYXs;?z*X5br@3zC{8acMLjp0g1HDmpAu4byCHkE@pspGH3c8tWrwmb= zB(5al>;l6}&~^U4UVjGsT#mmvO2uIBmzm$;=X6qQ=<3?Q_n>{|yRwtPaBHBGebBj% z`|%qE-of|01CVh(aJ7e649ECc8cRxPKXbHe9S!Li-n$&_AxEQ>mG>1#Tjgkpqmnt! zDbu|%trvs7%5X5Ol4ATiuv`<1;Mts-XODt0n#?E{Q%R9`n2v@ z7B>lJ0+xRsW5#^3Ymfh~U-)-)*_qchfXwe(rVIa9yrp*GiN%7Oa8GG88cOSd`2Ltj zd@Qr*fsMZSZgsUl#kZcP6)D?Ut+ieB0}6;Y>Xn=YH;v*w8<65X$GB|=Ic+Bv3!cP1 zrL8nrELaEPJr{|k3uxy(xy9>waa}ripPR_ua3UiX3zp#Bly;55>=0q-zs<#+y(8}r zbruJgP56tO;*W+@3d=29=ci`XHy)3jB5UxuOsn?#ZH!FFdd3c1G06RpRI}%^2d3gCjfmLqqXW=WNqR`#uMq9vwl_La5-v6S`;gAJ0kA4*$GabF@r z9*u-E#mxmI4;K*kldho*#QcQfmY;H*0!C_T(%NNcs;V=chqY``3!J*T)7-|on)oQ` z$o8rXL7$!!_eZX{iN%5~A#bHo@=Bu@sx&SFQQBG-_r-aNn=W2e zf#SZ)wLH<{?z*?v3yO;4jE`m2Pz!w=9&ujfY9lB16U=zqfU07lUNZuOZxnn&S{K4TEN0-eG`?+F?*2WP1!D&9Rn5=?T z8YQ4Kjw~sy)6smfW1yj!0}aE6+&%Cd?`zI05xXKH!>vK1tFtAp6E?>m4XU??Ry8*_ z&P%by_RmV*sji`wq6~MtwQQM?%VgParjvKcFmZM!r)TOM9owrPDNVP#&C@Ml{-V9E zcKChFGd7#(V7^Z>ejulqRb`3kUj9m3hFD6=F=v{4&>r$LWAWjHIG1r?yNJqpM^n7I zCf}?Iku@UnVODZ@=7@gDYCN3FIZ6W#0b!`0%TD{PNG^PcYdJ7PWhTuzKD1^>ZiGA9 zpDo}d!3^0A7v$;6@6QszI-6Aod|0qcK;xSi1uK9ZBnHm*zL%gGiyoHx z3}Tfq9b8KzW^FBfg$#{JApPuMJ-!Ou@+RQYz#Rn7Jr}wXqVU3^RB}Fkoo^ z={Tpl6-P0zquk=d(NsM?A01a;HRt%6s??YQY9*rnVfnB= zpdj6cXz#~#Uy2U__XPbvfK2@(z#{?w3s?jAFI^6QzCMV5nP;#x+VB&$mGf-hyK1SZ5M`D7?w*(o;2zLEa0#t84 zjOq{v$$S@J*DqOBD90@u_-@g0!lTW!#4&(laQ{1ieD`AweY|U4i0Og_rM-t(N^^_o z(1_$ao9o;nJ%DTBU_g8>vM@0`bItvNN4$xkSCMvfoa$iE&|sny35EV#OQyQ2sj9lJ zRad~nqT~qn1CKcFdHdP0a2We&@rbczSQk*bM&BXoo@%+9`Fu8zW<%3 zbSAjcAr=c*CQAFzV0MrOUHRP27V1~2J+nYt3H^v{w`am8Yf<)+MjMrF)8vH{P@pR# z@k_MbGT#N+Ux;WHMV5pg2-z=yWR?M*YoH%ZHK6Jt?pnTifVPx(UcPJ6KCqfm@MJHRB*elUNUPu9)hA;3kRQ6GG<-ZISa<4Ex!vKlg1%l{D^I>pnOs}OXwk2gTrI;btxo#I zzf=@9Xu5Q_0hoSMWIeTk$ZoW0I~TE7DHh<`B~mHYZ`0Njh4Gp;yH?$O`;+m-g`;M! zRnO55;(g!6H3OFolm(3~+!gn2FF&uRe8vEd2IObgt#sI>>Cvn&7c}o0h1c;^sjF%tI$Kfj0;?B>`bVUwz@XAwBIr5z{?r zm39SUDJ@6$2^AuH$tk-)XrOZJ@6R^!TBIK?YPu7YLnGbNiJ+C>qQ7@vq#Ked+%3h9 zRob-2!J8e}v|CLyKDW&9jut9&XL=bzEt8H$0@RF-hHLRly$3MQ(XQ&j=$i69CIj+a zrkJkkLy&;VnpjLaXG(h#v6SZguqH})YtY@^)8~!sz)x;4GK0nmkj6PkE<9so2jGyq z6Mb;<+>q74L6jXGl53_RTAX9t=KR9wf&qU8cqPr3e7ac+q+-E}J}`Y1v{|(oiOS7Y zcv$O@1vMipKIL|Z2@^x}^6rpg^qLnu(v(`hAD(>?>Qa#y`~@c@_qUfYb;X?oq9 zbTg`4Q(LMPXsWHntbb`j64{{?^H!{E9k{hCtczFKXp^WuHZU(saWTKNCk(se70Uoo z3bM!_F1jr8M`I_8{LjI?n&1G|QWr)8W8LO^d7-k0FSY&Hv6Z9orv~eWFciV1Qhsi| zlusWfO*ZrVJ4jsBl$g#MD(xC`Hzu|OJxIjkcR0jMqbl9OBe+Na->dw6;r12lk@D2B%fE%>w0ND?qlL`ff6P9UO9xQQ#)Nb@^>96QfVho&Xlkwpr72=+ zCV<9vg5%SdM@-FHk0I1lwN{C&eM5lhmDXwQ<~;s3p39UcXTy|ZZR$$aet!`D?R<+f0gE({MmK|o4+m33FCTmWozpzOxE|H6Tm=w1!lL772HcPyC za~ZI*Ym;d?Sn2FWz-AmP0a8};LUZCP4U50BU*__YchPcFw(kK_zW+8Y`F~yU6N?4k zLAfZc(qKI-{^D*G|I5fi^mHv|+ZO+wYghcyS(ILt$OkYF-lV%Nk+W+AV;5F8GezHR zb*B`mtKKBN6|8Zw?2v5&v9bl5y#$x}jEeRQ-Cyf{CZJEOH7TO(mKuE z9%_5{jNJ%SrAH#-^|gIeMB790s_m0~O24=%`5qUpHz{umw>x&MTeZe7S{gE2wEuBM zODq;};$3O{Dnn`At~GUN$7D;8?51oio|##B9tI`))!QV{N^p(GwJj{W36ZwS^UEft zv3`F}RrBnr>88eJIG$t2PHk)GNkd|5mNy4)g>Uz|F4Tx*S1i6mp^C+Kv(o1tCR(wG z>4%6)dj+wS)@|w2i|Af6auX7tQlMfTA3F9C(aTS>2Wk&mYb#`LveydvZFESwY8SfG zQs+}}ZkC}UCWh^L@$O1{#9%$JUFeJ@k`Jxwm!q-HR`8`rKYHSiui!i7RdBPLL2uOf zAK_9GE8%{_doJOgC^0v1Pze*$)vwd|en{gxpU8v>evic)+bb|_r8da#Yx3QqQzJEI)GZCje%nkyzWXdg-`7>~RO|dET?br@B(j5DA`-`~BQeAU zTkDpHl!P>YiAdDkGLKQ=E`l(b@5O-3`wxw9A92DZreA9*?LNd(TE>`e5GvCwlvZiq z12e{E_);9w-5A&P+u@G}X@}Yx>P~D+hg;{jwqa0roGgkgNu{c5($)2&b|~?@g>Y!f z`3(m(w6s<=RHw}{%TYVEHMG>tYDm|_?UpiN+9_umI=nTds-bFDx;Z{-hupE&!;{AA zqW2opwb!NK+Jpa}5kXv5z0OMOW)oH|GNGMgrVc$govJVA59J(MW}Nb(%+7z)hWa7h ziGb9Qvb@u$Ea-H*}N@$K^Kc-KmpQ!lz^>!B#0o0=)g zEMwdgSq^lvBo+%^hkTT_+F;%UV(!s1IAx`7iPr*d-mpDbKSPrcj+?Qk-jHM17tUv} zBd(1@vFDUmWmQ9C!~8joZ7uPJsyXQvtZztTsMl3)bULsd{@Afl$W*hOc&fXt$B}k+ zu#2!taqGInBhnOc#yzIdz@y(M+#aYZK99Fl-;0>~UP|i(m(n~{#I(h5Oj{J~*16{E zoPQ8k3V*PpBf1XQ(h<#BakAe8Z%N~Pq%$$%I?;WgQO00<@ZPrgqrsD$nP=0_XmMt- zO2bCXgjO0kWeL66YYB^L>aq>jlK}%kKEsD!T{W0 z4wYuMCrB=A9a(t~U-MtrV6_M)a!Tbs=5}KDz;cAKq3GPqK%)Mf>lHybg%5w*u*0!P zrjA?wO)$+8MWU^{JtGBtGicl3x(?SzVF7!+ zzp-OaXf&V8ClM(-*ix;;E$!ol##dCFH*DbZIv_}7(QX_SRD#4jQ~|Q091qA&RvPdi zz?p#40P6tf0iFPO8sHp2<{R%Ng5k63A$9x?PWdrF$RuNqC;f`b}qi+4Z@1CeTIi*G`%+9KO6s`{_RmW&7{H(AtUc!e*tUp^2W{xWv`bC8|p|x=i zjsR-GBscm!38BvyUpD7tbbPuXr*dC zCvf`Mh@^`oOGgW~85WS)W}2DY`j$1Jy-h+A1iGt%A~=E;dmYF}x5uOXrR3 zz|Y>SpkX98_GmeswRW#!OnO~@ntfE;6d{&O`R59p$H!pN!6;1TT zdc2TEs@_VcuEg|HZKd(;l*aWleFssk2N=xM{@$&m!43#A9*QB+Q^R4b*?3&kq;3ov zJ^aDAen4xdLE58+HY|{WNv*G&Q`g!uE*$)yQ`O#`(a>le=d&)w>-lwj0n8zve+D4) zaHcVjH=sq)I!+88evf-fd(mJ{v1}C@5>}z>5hr?vqc6ROdn-MW zwVA){g`9qOc($C@MoKR^DG}4*8>MwZ0!njDEV}<6-!mL^Z#)9c?&Oh8t3eFh5ExuO zoUy^lU{dh`WP(EtB_@(ARmE~acF;asAv?b79a(;g*h$9Lb@X!J-G|X5?-xFfrm`}% zd?b=zjjExZ4=Y3w<~y+>MjT8wnl}iIo%1b)b~dm#VV;UG8Ha`fhB$OYUj?N#(o|js z8a<>R;<_~Ah_3a*!3^tCi6>+S>$NuFmbZ9ta~PZwkjyfh33A9XjWtiqV$*7FOj92@ z#anLBIf45&@clYri#Sqb$FjbS1%`a*qXFs29s_s;;IV+;1FQtx32+r;tCpLXe#xY? z56xXy!Sa162-QifM&u0Di7Q2v2-<)x(S6;KUIYt%GW1mop0&Ct7z3IX_rbulxQl?% z`CWl4`f=J(pz$?Pp@LsTYV-P?ea$HMQanC8*m6(cmiKX5t`>#w!I@USMY$23U%uN- zfPBAOOlLR&NokQ0iv_RXp3+tsY`qrQo36-cSPB=}706JuarcYtSGkMKGp}83%+$kT z*kmd#uNy*)8r_~0!zxz{#A3m1cvq$U!eHHB5mNXojO$P{Lko8&QZMusM*Zf9pg~=N z!s8TO?)vOuxcV+LMT-G}FMLMZ)N-=R$QLMs)oQ zn>4ym^l^{g41Y9;yv%ekd&@c*I){B|`jLcPIFVc|!^EG+>_A8Lj8UTf=Z^z*AU^?Q zzCHz{g`V&9j94t-9D~v>HJGdJeD~1%IR&@(k2Hn!O!?wyGlS`y;*SQ;8?Y{wcL9pBiHnp@Re z$H@jrv9XoAc4FzQRFG1zWe0yr(rJY&2%jIVAV;9H$vhni$b21TI-jk0FEtLtRHRCy zNR`&DX@?vi!R>++zAjFu^+H|&CAt-GIcOtrmEqboca!GTu-yHvXhYW}gG{$KwYAh@ zc(1y<1AE>|FuShrKrDYor|n3b0-MV-;k!jWlPe*4zVA-}`OZHzB{9yG1TkIvrL^}D zOKDEI(dSraLwy)){QQUdhUXgU`z}1TwHfL=A8&GG#ArVa+9+JV!L>oCUY>@8E0QvX z`taS{+7I+)FAHRTmf~WSU<<{7iXy6jl8~W3SO6L78x8ml?w^Y*z0QXEGGDCc1AUtB zr<}SH)1f}4@$Hnxp}u}-Ep@1mm}zZ$H`M2}Kd)&o5z|f^k367D#ihd1fyy-PG~7FQa46YqI0%R}+}roE^Anix)xpf){doa)W7+FY_d->OWzuxx!PnC!+0@tS7{ho7R>py`Ht;G z#lT3`N`G7dl!YB^^D!XB^)=_7#viOgl?#?F0UEU83|aCm=&Z0Vlb^toW;^-Sj0@{t zky=jsb~CJl+H^V-MO+%fbEARH12zdBW)V(bi;hHH07~?$uCqWx0}*uKIy$FkIuSd$ z)o}?}bDBLfHRs|}Re&cuSpT~cx6TUP(jjJS=`nEgxn1O8 z$Y^E1%)z@2F#W@K=?}>F+0aY}{d$0v8Zq4wU1=*3OKJI~HimuY$eJfU-Ae8I+v10Y zo=Ht(f1zJGavo(}mf6M_2Sa@@W!AlEsC=dNu`4xV7}rBND6PU^UV8 zKK_pM!m+*UQFhU756VEJJ*IuSG%{AT*0UFGUNnx>vx6PMF2yZx=EBWFkZuF>*%_$? zM_`tLc|X$3HXLQ(t4^N8bizt$ortY8=PDOdp0wWHgcW4Wrs3SI-R)%gF;CQ9;O}d9 zE4ZWEG}E>*Z{u-&D`NA_)PXvMvi(T3d+yy5PAl!T`jmz z9rGLg80$JSMQ}YJ{j8;ce4iW4RKcsRjV2buXV8$Y&{i0%Cwi-`vT1=s6>da=I)`(N zV7npd%n>HI4iIx@*JK~iDE>Wh&54XKWh`52YgmhgOWD<)&y9{OfhKAS(aF-KeF0hB z8bnl7a$qHF5qoJBM zTHFnex9wQ0lrn5Vrm|&`A46DKTVn3Uf~TD!RTFl>%PF>+wmog5?j216FBw3fnuu%X;>C`OK% z1#`8R<4}wo^~&Lu2TR?Cv5rGAax`Z>14F_t?Cm%dBS*V%q&S1(;;H6QH+ma9QAiTo zZSX@sBSN!r66PW7xeUkkJ>;kl7D=L?B3L`H?@KPX*dFDx*lM%t^Um^4gAwO!i33EA z1|eh^=iXT{zViYXlMC1wiKO#pDbOG7cHafPHIwV+IE!I2)vzK%mNa$F@GU!+;$T_zZ%uw3#jwXQi|t?P8}mIj9n6Py$jqZICQF|8Et&5(kX#w5h`ZO_QaZ~Kh( z1^Y%4E@ZnXF9xeikBjU|KzU5COM$HrY#Fd;MFOH#cjVKml@bS$v8!7cCOUa4MtMHz zVp@6rO5`c6*f1@x$zc+~el88gn8x#xhH#h?9&F7r?oM(Xijm_L<4}wo{guO$E*|Q_WXGWxIR-0-Co6V~ zY?$IW6eGtl<=}f5o6XNFY&g_$C`OLqS-Ik}X&Vl69Ey?S8_MBH*Y^u69EW1$7^xhd z2X>r&0N~+{LosrU3OS~#Ua^N^!&Jwi7&%G{a!hj^ijiYX$YE*}t&vqn? zB$%)}pjZ7ZdA-40mNrVGWo2M{#K8Ow$8`kWsE_p6rVB<(d!%4XfmO--(&p9(Hngm7 zFznrYHupG*gUG=L{A0olCr8C7$D<{twYN4VTdV)W$az2cnqx!Z<2}YZ-bA_%ka>U1 z{N~KNP3IXT-B0{D#aJea@l6$rJFHJ}zo2;H;HE(pAR+iZn&u+R5A!@r@*L%2H`E5r zF}V~Y*Bs$0-1g6Ra{Inb3h>)bZi+Fr7KvG?B`q;2*p~DZm$sGCvq-34P}nCs({cIU z@6j$tiZMs0_Bco9xU_AKelIzazU)-(%bsoCg5VhURK@tzg_4H&%TrYw(;mln9EW1$ zxG>~sR*sWBj$<8%V&wRdaBMLeJ#3RJGVo5=OSsy-%Z0pY!f`G&#mIA|#Oz7QUFXua za(WR7p?7s?dR_{1qE)aw3^Q=?3B3(bOU1f!1D>tE{LcmJvqM<#FY*{t?oAbAK5mhG z!$xw{(}lIQiQYpc%|eni720`|zi@AJmtgHkp;K}x_41B{mdmAL%;g7?OJC<`O>C%j9Ey?S6Xl?PX*8(WMhC2O z9Ey>nADmpYHwDL>hDaPHt6IhS~0^it(wNNgBSKrrPL$^^QX^a%`m>o*zEiIeF>>r&kfX_QC`OLm3UZw2I20qtUIjUt9fxA%*jG97$g0J0C`OL`mBTAR-+TKf zqUe~sV&pg^D_8!qz*hGR#mI4Z7RMM+ZD?~Gijm_elbTLd*mh5B^u=|R9m8LWi@i7Hm^o7wv~;N%ffACy~JVGF81;_&%Lu^eCJvh)7Hm- zfsFd-$?ae-jdquYVoaks%+ca}t@robbKdt-o9|LnjH$It%tBI1m=vr{InAYQ-{If- z4taF=B==Os_|!8b4S$r_AEP+gaVSQP?-%4a#c?P`jz!AhN!D-Ezw0;@BgZAmk!Mun zdyYdfa$HgH8K*i9#mI4$a^xA+=x`j0kz;9?E937^2i1nt9EW1$xFzH;{{96vI^gM! zLossvLO2Th`<)Vp30=fLCM?G-Ir7Nv9LJ#;IsOuIlxYvK+~kPhT*sjpIo=cwv5U?5 ztkAzD4pX>|e@ytkOHDDR_D_jfNMlM3x7C;rUD{S-ctTviVC1wiaiYJ><5ST#iu3dg zY;PENpIY-V-ciS={wvs}pnW3PQeXp$`M%454H9hV&V7T8-pyAQ8%P{P4wmze2@73W zD8{nrBQdR1IieFtEFz@ZT>i}bCVfMZJ-HP_5(X?a%jzckWY*~=w0>_~kIpPI5e&9G1BgeN2ax8KjijiZdf*cn*4#mh(mc`-E zCM^Kx7M~iZJ?FmHv9P>dY&Lk`oP_%ljZIu6CiacUOF{`LWYKXDw2k>kvQ96xm&ijiZXa(I5Kul-9L zhhpToFpJ{=P;K~`<4}woKT?j7W_-O;3jzckW+>rH*t2~Zt9fxA%xHXI8N{{0@$DtTG?h=lnTwO9%>meCGKPFu7Qd5jPzmk~r3i{h<2J$XLT>ff{N!laALEG@SV73)A(O@k!*cl?*@>WYey9;#y!ROPKw1HR^qTyhp{eeyh1InzGL{dl-;lKFnHXNnIV64NaaB; z#mKd?OD>fixfCPU^IdYOoXMpaxn9Z1H41lZ&@v&HV&rOUMvjk!V<^WHr>b`ZVx)fc$Ka0Y^(j`}5$8si znqo{1YjqKm^^0%f2V39bhRB4-F;Fly zKhv^3u^ITyXV&9l-8l~z-|0jU?K4YUT~Q382^3@g6pK5o#9>hlAAvhIXkNoy^PPvt zn?|{Ot<(1+mty4FtV=GH0l5?-*H&F}sl3Rg7`e7pF0WntE~qx#Jh&ywa*;o^hh!4kz&lBVsVF+I4r6Wz8+~_!(3BJ2)@ zSmB`5D+RM9#HTUj(u#jMtr+aIVpFFTU+=Y6?C7*YF=~Zk%%5U$hm|-iTE4zkXkICE z#VDm}dDAGDuNC@U;)& z9C>`x+Z=~tdXBXL0!bw>un%V&phqIlS@UNub(rr{hqJ96wYJ z@6GqN(E)$qI20qtWm&lz=5gHRI20qtPlcoKtn`f%hY7JgwBc@-nqo}tT8YUzXJc7t z>rROw*m1O5T-vs_?ID`)kG$Ss69N3Cd#Yl5>g|$-KZoJ>_Leyg#mMnX;gEGWdHV^= zUCwUuo_~)^O);i+zr^gxTR-N~wr^doZ|#k;HhE9I*F9A+KJ^Jn!dYE z6ONJ7G8Tu(9*wqiyac+9MtKX#p~9qUOaD3KNJmhf7pxuk|17yIJmd8ziNnO$vf6N; zduPS?&M&!`R?>Ti`enuj%54IG_q#L{V;ZlAIm$cM{I+|}xn61yxYQJ5YJZoQg`{Nj zW2N*jm$rR}edHYq>+i>otJ=%agDyvkF-PxrnWGYug3S@nJ*FQMdNJd>k)r`HM#|;q zsMF<0G3KbR#4IGEXpRQCw5^Qx)pGX6nfy_shul*Y<5M@5G-T{|nD%ZC<|~@;u;WmS z9GfZ!M!vTw+e|9#bQ>LTx#Lib99tITc*JoiMvi#M(X7vy={@67$DtTGzNH*qOXI)C zV~#^Ha_poWY-yTx+~hj%8IL;-#mG?>=4!F#Y8%fGtZ*EPk)vEVq+T!1*LR#Gapcin zYEQV-6k}@RC1xQFNk}r`T9gA_+Ezo7sv+J=27k2S*Y2r`@u>$(8lT75as{5Gmho`G zq;*@YE6tuWZ$|JNmrKQ%%OfP0`Q|X5bR3G2%T&KO0%pVS+*1|fQ(GjBe5(LfIu6CiF~1#Y&UEh*v5(SZIFxJ%ud}?-y*{XL_LZUn5@b^=wID8ng6P@QJzSr!h29 z6nwqUgy3sUn^l@EB$o8F{}0>_g$L1on*Z);f$$h0+!Q z)8}3U>{{Wy0@$a*dkwImk}`eJEd{#`*t3$}GKY0KY=y&CI_yP|j9=1Q?Ru%&XBWvkLIaTrVa=W@3cn3llq z4x^`blicmIb>CoM*#=D@$hP5x49`3HDaM>$FFEz?PMlFqc)@WfMvj}6!?PlOPw+*@ zp%^*t6pk%QF%R@GzO$$_i370QLQQ{A;_>cn{A0pPE=9$dB2Nv}(OMhJLR0;4UX=!G zqaSu@v)1z7%+N*~4{JZeL-4YDs$zWVqmo9SZTba+PT#Ppe63krfR;4WR_f7Xy#rV{bl7?@?{L=fo<4}woqm;w*Qc~VC);JEu$WbaB zh2=EPy-U(d?Jbv@VoYs}#O#Tj_H}7nIkl^tJe~Ee!~eObD#oWylr&ODRR^gl$G5bO z#+QqPWnN~1F2lvxHk<>*|6POM#;LJUzEse27$jdM_nAX7%yUcJVQD?l=@9#}UFY6t=JbRQ=w747{UlAX~#K zi9>n^|CsQ$OHDEI93wHQLs83aB@j2`_CyZzg@bZ9 zMKJq@%;kS`%7Klrjdih;gJP6}Vuj?O>4r~W&QF!6%c!Xt{hJJ`4ez>lRg4^GDu=gX zdK()Z@L!HYF>)*vj?`hZy?D@l{PL|u#?5a0h-w_AZ?(?eBucTkO#<7>0gfxPm6?HC`_9zz__lcujcU$wD#a<`Ri%%hATP zkj$@3>GKVE(E!-Dp|q|R{sb^TP?oH@FK1{DkH2Hs0g&jeMm%c({Tv`kc}@b*hD)7> zDaL0jM)@fgcUTE9eRiqC${iNf$q~3?gT8I}-jvY|@{U_XR=$vf?-=^(q0|rKO%pU9 zOi?kWc&nu7@7jQ(ap413PKuG^F6HogF}~mPq2o}D9KTWyZ}e=gdqNQW$8jh|j)$^1 zN<5B_9EW1$cw9NW@zr}hj{iCi#mMnn<;c@Qf9yCEBgeDK;d#ftultGPP>dXZP!7+N zIn>M5r;bB0a=eE^O#H6eGuG%Hfsy{w_XRddHy{IkqbJjDe0rF>-8M@I7LVLosq}FC0U6#Ohnq z7i6Y*C-iQ1lQ^WG&Oas$a;YgMJQA}ft@;?@poQE^Fl%LLjsB5goA)x$od;-R-R5kr zVzjx66|$h3ZukV|e4IQT8;fUz68vJCy$!Yr27dbeM>W+;rHAJJNYWc zTplR7^n0TdZPI`nIS$3hF-17G*c&4RuZ1H7wYY=G!7gGqfCLM?tZwYmQH<$K>qR<4 zTsn#|oo`Dzh4n2hahR)H`NxD}mzrWsEhRCjZ!Aqe^fy1^2J-dDQ7arQhuMNzO)}A( z=U}@LO!s}!L&|H2$P0|Y=7MnyFz#f?w5*m+!5u#H6kJSe5iU9t*Wj|xyxVE7V$?Ln zm_Nnh4l8k3A>G!zhPmcDH^`etxkllR4fQjA=!U2>@m$fX#$PU@0Nv?#R*4Og|^Xuzk@7cp#E)`=gFZ^6`S;*d2 zm>g0UsZ~F6Z*!?&wV+)sxoih^onW#$_l|rstV<*gA_tfAj|rQ&w^xjBe}%-f+RhUH zEW@HF4DZRjgTSBnxH_R2OH;9^{`x+#rW-ziPro62m#O*QZ0E_+|qFVH^ z+HojGj)4U^zV0{_BgYWs@HF0^4fuxRP>dX#6@11vjzckWY?bv4e=U66aVSQPZL^+n zIH)#k>o^o6$M)efOnDq(qXTZ|I20qt&dQNz3~PkrP>dYADTlX)sKR^3NXMZVIrdTx zPp|B}KN-L2I20qtzRKa1#~zGo!nYiUV&vGrAjkHOLosq3A{;|UL3f|Y*Nz+|aroG$ z`NxD3mzrWs?Qn@%sKuUPxM^d^!Sh^oCBdL*^%sPaL2}a%2_7GXqglf z%W{0UgPz}i)pWxrFdvoj^ultempF)=A%`8D928?}GbLtEO`cv@4yQ>RM9z@IC?^NSnA*t_vnO&mLpUghvjy|z(6>uD ztaNfvjB-${kQ_8!%0V&a{QL5BfA#Q-pxUsbdsoHCu_)v)Bj<ve&Y2A#jD%08@39;9D10a8|0Ob8=0c{?_yeUSFQj9vP zSlnThnbJxfR_?HYcggT;u+oeop`2|9Sq;`@HY?aDT6RuJ1K7*UVfq z_u?FOoUNoiOb}+&5C-d7n0+r&oz4=1Fr$_*SSzg&ItxjIG6=$q_k_XPC9?NQBPfF) z%=q|QtL74Hay;i(WeF>ua==(M(gCNZK$uQ7oPqOs>`#;SF&+fkzfCN0I zak3%@`ksSGFPt|6ofTyep4~kV;(a1sPDlHJZj25#wi*B7B`w-!f^eH9sV2;)$IO^u zzZW452GDU7wLuWJAt;3~9q8RvBX`gCNXMXlL+tjO=&e$5IAC zm@$Mf@EGI05&nQx#yH9#2s4Hg2J2Z3`ze(+We|iJBME~w@~5)O7*81lVaB-jS|yUF zlSfz#9m*gGGbXe%c&irsIf^c25QG`V3`6jH>XwWSF8T}p!%KS98bR2a8KWs^)Ee^G z@OF+3wGCscmW(OZlQ#ApfeEx!f^ez!j1BgkX7;SqrwoEHW41ts0c8+`8TdO9|N5MU z{l2v!We|iJUWCy>Y&4<_f-oaMAY&qB5QG__ztw6iIt!_uMr?vGW6^I6wyzo}gCNX^ zBn(#k4S@pC@dITLgc+*@G8!p^Ak2tk7y&MUE?yoX93OPXAN?*wp$@Omkd7g600eaO zM!%T-zcu0A2s`0<0r&dhJgk?Eys(ZBcrTKKJVHK=Dv?2W-;uzeDuj|5REJPHLc*MH z2<>K2-zoTQhRJ_l#rehgVYdGW)K3*ek}t7lvGh6xLgBt#N}C|KX`wK--E~U z1|(olpG8M3ry~KEUx1D{$~@u8MM%K;73c`J|KuokqSkc6ybg$dWIC4 zQe;KZ42tGa#J?9DjB+3m@3s38_r+eOF9flOr!k8l%sTwHtl>})I+9+&EP^oW_}{YF zJ4n)lm_-m~o%th+^fqP@gju-8J$8Yz-6IxpvS^6 zXP+>S5On3m#yH;_{bDvGQv}$u3ZD#m|67h|F#jdt@pl7xLWsGtEMX8HYsC!uhR{t0 z;rFg(g!<69@C8pHUiwJqJwezX<%q?5M^=XHJr099I)0)If-s|!Vc^(}6Z#guppZq* z=zEn>2Vt2P+e18pgF?^=+?VY1ch|9~5GEbqDdX8|i0ZA)s(T-V+5K0Cl<+KuG!KCT zApC!D#F3|l=}|+3-Z4JMQKo@G-UvNqau*_0&7d_1Jz-D^LXR0lR*4;SG@uO59pvS| zt`c=fmyEYU*05`)eNPbf{!2y^qAIqA6Yei|!rj9mIoQ?` z3{d)k3}IVRsIPI?+n_&KzJ~>rMxxr`3a;eUG7%l2F70(B2#*bd`cTBBNQENoXQHP~ zks(EbVlZi8dt0%8ni&7^v)Iv;cmuNt!mO`<%NmYyAQ8`D7D1Tx<8N8)vWS;4iy+Jr z?#;}1*0ujcbQaQQ+UEpeh9qIIu4mXgVq-Lv$U9pEVTKf8u&%PEvxdkd${+|cdj3`` z_A?9<${+|c`nQ+Cy8>cgmrbS&f-qx{K*kixAP6&*34_)0Dd;RDQ_3I+Gt>!#buGZY zPBx*sHjT z-OwLAQ2O)gi@qX+&hMYh$i!t6gy%OwxE2I)DH1dTNqyRDhHXw~S|Nx<>W*0iVV2z= zS)`qqMG$7qA}rPzfolVl$+4jQLl9=nBMjD+nK@SFrD>Ew5N3D^WK5?Ff-u8hAj6U} z2*QjIfeb6kAP6%S3S?MQ20@sy{5J-BmfKJUL71_!onb@vGwf((OBn=V#yY}a%|Huu z7Lpxh5QG_<2!qvwcr-$?rwoEHV~aqB17#3|89Nw;;LpN1!06y|1MweTa-`M>!q#>( znu6}vsPNc$#^V`vnA(Q9-I^pkwaXW*SN)RqJo3ugT=jxrO<(TklfDbdNHG;6U zlmEC4xzskap)1n{=Sd!JE{mMqf`WaRZ&JZ4KQ7_lO{~R@F@gQee-0w66|WGSkNup7 z>PYV9<}=6}ox91@dm%z)43gIC#F78l{{QH>uI+Ea7Bf2N6lXcB(Am_31YyoqMiYF2 zqtbK6ADD~JUcmq*yjp`+H%0@q3Bn_tApU4M7*lzP*ljNX^Y1XFv;Rj0e1S<$w7vvk zMpZk5HP#5~VaD5bh75@?W~?&i zQ3gSn(b&%5mBD_p;X)Y%Va6B2V7=MEezM_883bWQTYDLQQ!6*hAP6%$q2b5-);1f` z4s?>42km34JEMco+u%REm&b+(BTa3?SnEY142l=BT2jGSo$Xl< zS}H-fR5`{5`gHnHSQ|c_-g!#6ONcve-Cq-~9dBzvGhm04!aIYf&>HlMtwWlD03P>{ zMkBzQYH<30&5?_0G5~o-h@**+3gaU~goZN+w?>}H^+u>agBBvxk3r7%8^mZr?}8?d3bjm6BML|KFFU~~p3*UN#Ku4HWN{>bojx=o5rlh& zAXFR=aVZiMrARH>>x1j8!PJ?b#lET{HO4H0Fl#hnv33OPwb6_Eh9Jz)Aq>2y9??!VF)A(RUpF&s`Y-qd$Vt zLj;a1E0ly%iv(ed!Hgz5=D>6j!*rAuk^?i+F=G+Kz~gx-gU}yNG=pI5!;wd1m|zw2 zA{lK%$mShQ(GgXU^N^W2_$0P7f=5K*md-7lCyRb@)!gVBexfH2T z^ymNnYxk!$VnHGn@f;%vduJ8XHlYsI#4y?e1Yt%TVRSGn!zqIx%t#Q(h@cFDFk>rW zbg*VEpbUaABaJZd%;&AU>~|>_QU*bokx3Y=w@4?Uvyc{120@r{u)Pc|GRIs&9UT`_ z20@r{lrTE*?h?u%2s2IzWGtl&f-vI(VRX2<%D9RuRGwupxte^~nFyjGXbl}}+${+|co(e1@hB64kj8_5~D=C8@ z%y>r_9gN*oltBt=+`LRv!^1Yw3SdUpmr z!{}gKt)&ctFhi0sSmTPlKCGh*f-pl$U>R|gK@ev2WEg@!OKuROgOoYJ_zy3|Q)>ia zYyBC`f3m+;qPAhx&}E`H`wEQNHuFkdPfH~Tm#WOz=*Y7hD1#u(P#4J9NErlS#wdY| zO_V_pW{eleNT3XYFvCC~Bat!)!VD9_K;OC1$3~9noFH@-QW9klgc;`T3@yT#0qW?O zOc?}WhPA+2ZKe!@FvF2BSaF2C&)h;81YyP;!suY1xs@^q!VEWowMwB3f-u8}Fz`E4 zHsmga4>}8J8)XoL89@w#`QGW^F#4K_DaygQ|89bv5b#kT;e?}-$o-WF1_|L>=8#&t zu?VTOmIUE?EGF&hz}wp?gCNX^A`DhsafHgC;||Io2s2^{gLQA0JtxyBgCNX^Ck)mK z$KE;Zqzr;EBavYUzL&U@(Lu_bIrtARrBiDJVQVRj=0Ax<8PqmJqUj_O;WqHz^>czE z(Qy|ol^|T|9?}MZ-<^JpmczaunnA4*gsmO=$89)4Z9^NZm^L_D1qQi$v{zmQL0rPW zn^;4VF@eYMX;d~D!)F-8ya5+N-jOV36||eSlptJ>3rxM)yJmL8$fOK{Fe9HZSYx;c zt5SO?gCNW(A`I3T)@IdeFJ%yf8Kn%v*)D*+>~WM(4y!1ZjeiaDbFuI4qLPU3?lFj2 z{dm{54lJ|#Xe|lCwX71@uKkoj5N1^WZM#%Z4$l2|)8Do0C2iNM-`a&{s?()5DZO5Yr?51nnG; zPzFJmA;vHS@9Jb29i+^O!hd)vi&`THTkFbb{*zeRliG$jFS}H-f)IN+2 z_Gd3&hf1R3QOY0)GX@ey2Q&N_We|iJN`%2$rP$B4k5dLgn4!ur`u_2`_E<&_5jdXs z1_3YSQi}v(i<*ok_Aa`~$RxPii(Z{z(k|W+&oImw&oJ=a4Lt_o2r`{P;B9n5V1g>a zkzW~?f)gCE-fPl>2;q9*+e$Fw@qJeOi|-i0Iot;P%RVQLWc-T^Q9Vh7@h|%vZkYko z9wme(G6=_N69!ozWXhm<2$?g;5FvIlMFMg)=P^@fLv|Lzko#0%ZnePNX99C;m|R>e z?hylC`9;V%*gwax^HAD=oQC~&9REQ{7P%SwXDqK_LJg5VB^*)t~PSw$F3+y(`jIY>^;r(eWQ!EI}+t#6Q>~LD=G)e{3-n%%LOkDYi%u zw&?bcEz-*(#3nt0EfRz+`ut;y9*6~r^dh!M5Vjb^SY%dQ-knMI)ypLsVF|*FaKd2y zck}=#039z=20@sygfKc-t@0>?Ak0`HkdaRr1YyQ%fs6vmAP6(o3uIiO41zEtNg$(; zG6=$qZG@qTu0QXP>rXid=_vOqWe|iJ>4bq-U0#1oL}wvgqYQ#DV=rN_R$U8FN5>+{ zAP6%K|JIHkEXH-pAP6uF{i20@r{hG7W)#M>*34lddZ|KX()YKeXSd`RDy7+#f%N-$$<_o{-MmbJMs#l2k1;3eR0C2YolMx z{&y4D1U?smM@&tyJ4o_LAd=1j3&%|IASJFm<$GR9d|O?h6u5fDH4!r&I2ZL z;2dn{0R||UBLi%^_!<@49FH@3X&uAF^&tqCMG*D}vCE}Mg`z)S&9!?1*Af!3h_6Bj z!X@uv+SXANdrN&s5M~@A3_PM`$lDI=J>)yeAP6&#F$}@0?nOoiDRbD@pYN$Pg0QvI zjOIUCbuUxf&?D-q|Dii|M1dB+IoU;>t8XNFbeQY zc=wmt3nO_6$^oq;I!g({vy>qIdohDi4kTi?y#!qPN2YXs-)p0s|0&l|?gNehg*LW~YJTgS7F51**-3Bs-a!L%N{iaqo8FTTgUjngIc z3tGw4_XJ_z6C}v@#BO^Dxb)6UJ(;Tu-ZN14H^(&7`Vxd0J$_?2p|g-aQwBkp(TicA z_oK&RE&6`6tw&&(PoRfCkD7vxxE+wZ5n#)ckjy`KK=*&c5#}+}16 za$wq{g784(A@Y4L0~lnA&dD>V4j}~weM3kUAz=>wE(Uc5{oS_=q7GpF|D7_UhfZ-q zS4MjPSNR2UzAj}#|Sa>}NAuIJ!P)EnF)HeiSh91LU zt}S^_yfFdiwC}P^86A9n5B|eT->5Z$FlQp8`A=4Ab7~v>x{dLx;LnS-qbzjGgr*i+ zBZ6>^rqdd+6d4ALYA%nD^D)DbVc$dV!3eltB{sEh5M>aA8GC_iy^Va8#G!T;S$+9(J6|KCmg5eLsch&qsm zOUEgg9GKMxkJIC*Mr54kFvuI7%VlbbHS-vR{cw#z26LrKVmNNYc}5SP z7sbPbmqe*A2*R~F&1k}S1Wh<%avg~S2;o-XodC23mvn{U8zRI`rbs};f%D`qGvG5% zr57@QZS3H=rwSd}HNe->xEw?D3uzCXDForN3Bvv(h)aig5pubAsj;X>EJE zv5$(0*Z=t4OYL5_L@Y?8Ol*-LY_W`36u9$##OPov4fqc)iP1hJ2wSUQGzCR_Qyv@c z@m5pY;P<_Ze+6H|zosm9`^0ID2*Ndb_Qx8j@YU!owGB1eN5&oN`kKA|NYGLV!ll+T zHad!dl9WLZW_{W8c5NfzM`i zqYQ#Dqswm$cCETo20@r1Es!Ba83bWQZ-I;+ltB5N6o^R>n*gqc3F;gc&n`D+4Lf)Q>UUBO##+K)J?WcF_0j(*QU*bou~A?<22%z>n6a5K@c)7&lK8QG6=$q?S#R4Ry2jh7(y8YVMfMpwen>#hEfJWn6dvi2D=Pp${+|cvIv7UKadhl zDwIJGW}F}l)^i;8{1`?V1YyQGfn}&t20@r{SzsB%DT5%)xJnqT{y2rsLQslSz*`1+qjR5`TH@XRHwFp5SN@UF zLCPFWR-q$l>j}cGZ(uZGMZx>iSInw{x%jLR1}LEcPIu?!j0R>Cg#AR2pglFQ+g<|Z ze`iV;V*N+h7IYSp7OgKqm?1Qf*%fs#>PArpL6{*<7#+;F(Ud_DW^^MAR;?nTO6WL- zG6=#9S%I}0OBn=VMqk3f(aeT?E{6}RjB%7f5N0U+RtEG9CTdd#L6|Y*HwJr#j;9QQ zFk?8w@Cl4?@%M4(x`cRz2cX;9oFSncV;v`}kRY!RmjLc$AAgTfuF68~vBR9E`M8Ay zg$8+saUFa@!(IHjwqfD!K0!`enj^IW{cp+(HdG> z8d~GVYmRa933T%hclU5wNIvwEW6aUvIH9LUA)Fxe{njBI7ft|&%bAQm*Vv!q!3jlJ z1wFOU=8WYGLweKDc{fHk6zO|%!ce{gIv2_bM@)Yt*`jmd=-px;l<$PzDc0nSL{Dd( zP&q-!asbK;M0sJHMd+LZI_re)ss*7Re`EvOx8`W#N`b$O3kg^9NyU@a15e`M?Mxq9i%37lQVDyo%xRSWC9!wR?kb6wf2iF*(qa`|W zITq;ULR%zpk@N5w8;(8dKCCr~Gl;2@4$AsZj~?^|fiC_Y|0CrDh6iwzxt=a)7PxD0 zIXYZpZx1&=?mXl-)J*$O^wGIat|4ANAx@Km+?e?j>g0z0pUug~-6zy7D8eITk&|0+ zuzHxcPl$W4OGwxv_0SMEC$FF&FMkgwSC2q9?*Nw&KPT64AAk3DS$(9&7!6G)tQzJW z;^E@%9Oe_?5u)MEp%fh*pFs4j5 znBx`{fPCT-78LRy?@Skeub>d0Fz=YtLobzV%^z@f|=%~p2c319-p-vtmi#0fyN z90wAJ1vrSPaXHh`=Rk9r&w)nW<>Sd+;K6lAO9J{}Vh`rDOPEhkU??}t8}%Q`Ti_BH z#tjSNx(A_C9$fs%(Of(})v(BDgn9>s`@3_!T_QZVE^clf!C@ZmjILXFNC;YF+O2ZY z@YLY-i9HjQLeO6)jw=)He9&Jf6kCE&sB8~?I3Kr$1YsX^#ESqvgM%s##W+70{irh@ z!dBdQEyuxM9chOk4JXErc2K$7IunXgLyg=brc_2UI^#8WQ2*hC%{2G~6}R zEyO1{jEi1t;RbnfLtFyA{_|mYyGm|*WO*a3olUJrGcKkB$pX2`VfUU0|Z?s7rh zsMdiF4nzKEAh;ndvWxjwtl?p<&ult^&_H2tOSqib%zw@+{$*#xMKudY6BAEw{CyXA zaB-R8M~--6;BXd*Cb0+EfEZ2FaS70|nx+#RfC@4~+d3VjfUy;WgArys1aHmor5110 z`2?ax9Rd^@g=p-B`nY@W24B06{_0139#3(+qvQTfAi>+LiOd9GhZh@kCK$CQ1hKF$ zu$B$768Mk2{@-18dmrKbF5W2O`r##o-DW(E+jIXqsd0;-mqL*q4%GbpMBJ@sr;k>W zAg+Hirw6l&xdjD=xuExe(Dx_&?wr5wx^Ya#4r9B4Z0fOVJW-4A z>P+IhCz7$#AztE@4R85f7z;QDm)AaGd3EL0GYnNXG&l(F{r*&`zg7m1VC<|=W=!IK z#}@vYhNHJ=g#L0$jXATqa%f!_4Qc(BhiZhtl0@%G-sHQcLx zgRT+m?#gM3zkI0I#gzOUN$0SoM!&?T6%2~&q`AHCD$+XiO%D;9EDoAjU3h$G+q|?N zuf?=>OgGsQdpL8mGP_eoue z1&)eAha>x^Iw$T|SnK|API^V-wy+ty-FIDiUo7@`a;9#f^{gXd`;$~&3^W=zzvjvO znv2U_{GTsbv!?3K@u<8J!h77;pU|#ccY64Qq6cE7^$@z|?X5_B;bjf2cdPe&j z-IlC)I!WV(YsRe7^^w^H_qA4z9v*OawR-cVishximnxs5UioHh%mbfC_5Q|jeTO_* z`1bQ1gW{VP^Y%5BHuMd!te9x=$I{TJyzh z^xfVULLKd^3JqL$$~>)VlvWZu+O5wWS(|6h%M9zYq~(Rqp%sniw;12Bm|vL#>p)Ib zh`TW6@`QJ3btmG~)SsX6SC~EW$L2FNS3ZpXv^dAGZEAz>n2g%#=$ef9y>on1lty9s zVW@wvpGU#6}Rm`9->>& zZ{V>*6(FZRpJ<(*Z!!twF6D8?Ya-*cK$dkc8~xHxi|W_*3=g=xL8~+5=NiA34E1$= z4Dy0I(&~>)JtRQBYI6Bo=Flr$w&|}MKjOgNT^`au9j_O^(Yhp6(fjqwAs zh*#{}XP5ni-5{z_|p{Mt^x{H3=$tzWqz z(yaAtSd6&$ow0Fd$y?NH4s1U9e)zN+wP+#R-9IhwXYc;GW7pHC7BdbE9<{_$BGa^V zR^smIx;y9Eg#UaOxxrzlR+P<|v8Eq4l#2HES(g+ptx%XXB5q>i>-??G1zt^qQf)Rj zE6i}B@nu1vGLTKN)W>4N*(*W_~g&1h|^ zExmv6uJ;A$qCy45Y_E0c>u>qQXQjw*blWDT1GzVPtZ@|mA+=woi@K1^wQ%p)METCKYd#;JwYJ~$=Um?~Kl5ti zM<+ZLe@>WDJ6 zI5)+@bN8YO*F_%j4*~xh*`~g#s$W6pWhWI?`NbZQ&mcd|+~(Q6gf<6|D`#{&I^SAv z$0C)6N|{lzlA?2uDY!X4Oa#Afa)_2(9{T!SW>3?%J%!J%g!7>RHeJ82T>Cv;cx2m- z#!m(?kHK#4B~jtWV+Y&^`R*9iQ(Ezs2_OfXby6Sbr_>$f+UEKGUtjDW39{E_oej2b zYrH^ilL;A`H~#PikdyE4FwYBXSP$~~r}ia*!}fIsd0#+UOyZs9Lm+oux3Mkxh4@d9 zz3QgkOdhkR3goBHYm&d~f2;s`v}57JPsuaQL7sf=v~p&hi9g6{d)kbrHnr}YUNv>j z_#rdm-!e}Lxr4$0lKUTO-mlar$6| z+sHod@3)=Kr=?rk{N<00q~rCPS)YY@nMJ0cU*US7a!gSP_18w@t;Sw8)w1i4M?XJn z@MMNz#YmHefV?GLt;4r%vDngUo_mvHgwvpaDPBWPooT2p?IxP>-99qN5$xGKUUTHZ z?P+mCz4lHHo5ZaJLa_1O`o`HATJerXQ-9%Z6?T5_E+?`AIFL_k{+vXgjLx?{??q9 zJo(-x1|XY0opvU?>}4Iu8N!o?6b3bCg1o!7$FAjbwB11d@hnsIPOR{DkTVtz)P1u> zfyOz5UGwf8OmI^Ck7747FCLrlvK8_lxXAdg z34Jm-M$gGDs_gl(@SqWj5)+G*r@o8Tb-Z?J^5{F^X5y_z37)S;sFyaJ2sS%pKgP)Q zcvW3rQ)B4_QNMvME(WiEjJXDK*0aIxJw7FV`tGO|^3ZRV{5kdOA*P~!2H8{fFFUBL zo{<^7w96&~;o_MqYX?-Xnc(|##8(xGIg_@jmv8ti<|85*tt|fhnAbyv(w*NHyRKX8 zr*5cUwYy(McdHezTnEUSN+xR9lrA4--{--Z&kya_1%7V&P&qU>u)@6H!fa0KtU~!d z+r&&)*J^DBxmVgbnem@q4XoV0?a8mZtAa(Yb(atDR;ma2hR(aaO(Q?_ePFxQySO5z zJXcLVv0wJawu-GweSFl4pMBogI$+0SuF&?9UZj1prQs!;&HQPyv z&>vss2umuOf1&Hbbg@>iH_cLXp2plL;VM78@f7q28}%NjJS`;{{MS?@rUOaOdN%UvGRa*}KQ+t6LTn+-&KYxc5Ex&6xA)?=_wai~U%s5#_(- z)X`xxt;?^wwRS$N|Mr&4QLRGj2S;|Kb=7g#v$=d%cEo_3`_8x5w6vtV`ET=Uo^bMr zqgAL>+LZYFC#tQxj4OZF>wAMkAI&#uV)L60&%Wlpu-|0WC0b{fDn|yN7`epOY<0kx zJ@$kBQdOclooZWaZ+Z3UU7zv&H#BOPSOiE}$JHtx?lQtI{G^h^%I7lIH#pn_y*aaE z^`~kMTB3P7w<7goe$m=tgNGdwlKNn+-}XK&GBSL><(ts~1B_cPuA0}{SNU0Ts-Nbz z*{jO^GB+fzP{@6)*^iqX<+Xp)m-Xr?zTbQulmnATiZobDwZV1IxcYVd`XzbV?(DM9 z_(|*2&+AGqDx^Hyv1OgY_vC4H0~Vce&M3>i=XGh1@a|Eq)3n|vCf|Fv$$ij%m={*r z#oal<+H)aasngZ&(&4IihJW>zp?GrHJcUw7cI`!H;brN z%m#nC+&rjdkXf`<>WrsoQ+PM;A$Py`PWkBl2=q7i6t?r;5cc*@`X@Gz?K&Y>oO|W` zhuz|1MqU1szWTs*Mm1<5E#GZ6Wu|syW{pKn*}5jZ(9OOI*-xF11no1oyeVrz2L~9X?Kfu3c+W7TL;;j~X+?eb(5qrrWz#I=9;NoDw+V1&xDK z_80`aAL}>jP2qyLC^u0{gF*gYgC~gHhq%i*y*dXsmK!~q?7pc# z`2YSSxt?_rFPo>EnCkbHKic2QtG7O9#m~ekN6#LNaJ2e9u2_8OqiH^!-k-=DrFwVt z%(7JqCZi;T3i{Q$Cv@BLf9n!pi!p+M&oL{z-7FaKtzJ9u1u5g*!!-Z!g$C-0$~(VZx;E z+}F=O9hE)$Fvcm^Wn#~QvSFO;$OUx`-`5>bIORCXCBXONFjcelVIV8M|IyT2U$YFZ zuNEw`UT~rRh14r!gEnK=HhZcyjkWP_iX7`#rn*JfYq#98>^C5HS>W0`d%(IIib>{g zb~|o6Z~Wdxt%>Sy8;j`o3Rgl} zZC`2b@qP!$&n30ay?J%{63Av%uTy^YZ+HgsthCE_v)Z_WVLiEWHNQ@|hsZVkr^hny z1uppd^ZJ`-r%yd!4EkHRL3w2(jpHEBr}; z=|;%WNy4ila^ihu@*34`JU||E)Fw(PeCFozZpj91j}{+c0>^)7!DVeLHD(Gxe`s=Brd4 z>R;*~xus%0_|vG?M*q#KTK^H}!!_cHUSBE+l&xO2C+Ys=G_ecTAD`ELS+8AdsdQ-u z$Pzu>o@#`;T#TsS5mI=i9hn9 zjfZ{6xY<4I`B+n#3+ZFMl5fRjyymzd zE~O+=sXHbs=0uZtX3lYkLzm@pCQO!Jrt?K9&tuHdu14-Qw{x#eF=|SfFzTK3tb#93 zx{L}mJe1y`xa-1onJ(Ft8(%&gSkbU|b-#^1qi;(-GE}KZ(Ce)RactLHpT&)rI*r^M z{$bMilun~g>+h585fOFj{L}5m%Pf?2y_$X|oLU_JvWG^N@=(r@6L5cZ$js@Ly}omv z-@bhB%^)#1shaCi`4OVapR6%-uQT0Jy^|{wvhPb#TEfK*olMU-m`srwp3<@;uywA^ zhoz4fT&>JG9QQ2bZMXd=rmQT?GPP5^cz>AWiCo81$K0FlI4lubt7!7!&7|or&nwo- zozjf2cj!9!{@93<-;^444Yg)Y*&magdqOV0)Nk)%=!c;Eivzm6T1%-*K-_)A1c%iwWQ+4Zq1zzZ8={wq&vdRD4i@yrREQ#PCTznAtSD7M$j z<*OswZta+RZfB8i&&*pN3%V9`>5&xGOSk-*PW%Uvl~Z=hc$M{7HqCn6m07jpdTr&L z+am1~dwdVvzmPJl?Y{JDri6{@_lL@A-UqjBmzdCB-pVLn_MX^;F5f?A4QlQ>Duc0AyCiYfvQ5cu(~k`9+MXiGQS%xBiC!dfDdnm z^c4GOc*w~)XME9A)tfIbD0b_!v2kBW!=58GGF2OwN&UEAzwM&GPLa(u-cXe%<^n zENjXjp(CE#r*v1ZKJ-Pn_$|nrPEYuv)O2AD$fwetpZy*fQwjUsFAtY3S*LquCCDvf zE8ZS2I#>(xlf#1=#dTaCfShsvdh5Erqn?AD)#cQqMy}x_kay@?i48cnau&#ii^|Nk zyQ}R3*}BGI?A1aCdVS`KVO$yn^mv;4Az&6Bkngf^)h}0^1j;I9r7)=hlA`i z%Wc}_6-)d;R#~-1YW}etBakuwalhwfjlauLGozx4JD9os{Yh| z-s4#WmE&J#ta-L$2FMK?;%D8kblC;6NAl9OA08|^4RYlwnX&nv53)fXZFfA>{$?Mc zNC{h|mZjdpAG}A{*vkwxHI?;r*fmtjd!0hs$U(Q~Z+o(1Say2a44JgSshqwskJAo6 zRO#|bd{d}y>!$=c-&-}&D&{z+?4ISu4evikPmQo9NzXo^5yge z%EQ0!8nCp_;QG1#i%qwIoHbHMxhc0y{Q4^Cz}#o8$43+|mi0Sr)X+WBR_WHzn&Nqz zvX!Q5=H2#lm}yiMCB1S%O;to};LXT9;deS?%_4`L45H?MS_z zbj<3KySUz$-Ij{E{ssXBj~9fTTOE65VBbo;LWM&S3;Wp^l&Fmxd`o>&azl3GtJp)? zHNh*j9gG*AY2JKKZGwjHIL>7WE4`HcPP=A|%jYP6Di4+Iw>5QRkLL#!%d}qAzNz1w zX|#QTb+a7j?()uZ{ZFRP3HzD5=;HXNMxXPJyy>JLD5>{p&A*8ky!P`)XF5sm!~h^R;(M_XXxF;C^$+gPXCQ zC34+BuD{u1@1d_hewKdCew_bo(V(ug#`zl!XufbwOyht>vSR$fo;!aIc%j{sS0<5I7()%&i){!F7uwD?8ut9Ec-Q!f5lpC^)O9v2o$ru49= zS#;P`ZqcH*bGn1fF$w5uu;bl5ke#ijPR}Y`NcGRmpLt@uZ0csn@6u__FlF`EKXW}I z59A#kWV&kp;!T?aFJ?7f4jp@K=NSnR{pEAh%fwf%d;Dbhg8ov9XL{u*s<|)fe9&@f zs^sPdElG17)onhaC-PTv^0kwEvqR6xZxa5g{%wXvh}xCx0~eZ7^Fn`ZFY)fBRwAbC zwPe6qjn!)>4m6!xE7trr;C!q~n5yQ_Z^wqmJnuE-)XYc8J)-;h+Q|QUIAc&hNuk)( zNXxv7!uOvPcUs~#wqeE1@w=`4Iz@F|66TT~wP^R)_gi|4dz^NVpEs(zMDLQ@$zwuQ z?7Mv&8kdu&$BmoOXV=^Vi{^uV*9%6srinZ=vkxkDefj#N*^16%hZOW1bPM?3Ijby{ zMqjOYw86kZ*SqY_iMc-eCIue0R~I&_u^Z}`J|};b;dS4~LhGgURiw69yy#O}nWbu{ za89yhikE!V(#6hWq$9+}UY`Z)zfi*3=0~pg~=eY*DW;&U9JXn(Wq015dAH zVNu=n%OlL(KTWEVp1E4@NY%l8>diH;Vm$PRs;xOKF|hQeo6m&=bG6=M-Sd~+&3rJh zORtNqT{ACUdZGGDs`NpNdna8_DUb~-cXd*IXypU_zg9_W_Y+HBVek{Dr2MJYj`2be z53eoz_;_ZJ?*Wjtz)$Hk< z(wx>~BKCpCjgLYcooanvAEn4M?bzJ`mU0vUPD!5s7?1Y(R+nRir&hc&1B|~4l zQt{YwV59Zg{OZ8TGVna!?0n)c&vMIHkZ)Yk2o9LND8r)djJQtQj{TZ4x981nRTw`k zzRT7j_XAEfR%m>TGwWUj{`dbFt6KcY?}}J!e!np**0l|Klr(eHNX;y9#XZ|S7aeQx zJiNIe?){9$68~xAU+FpDUaJ!FdfD57Q`Pm-{EBiqiAb%ScKdFg#w3tes`!jwSS;M{ z?aO=4&kg@rvdw8ghk4 zPk8DzxkrU-M4DrF?)dut%ZGXy#?(cq4XGV%F;nh#s&>NDA;*td2)Q`|AM)>1o~{TL z(=gIdU4F-Xc4ul|&DXDRhxFtdX)@!@FHHBHFLTALOnc|MLf{|SA@^KgZl>qR$wI4j zlieOzMN7U?s5BIFxthDNp>)MCsNcHRN-IweHfZGcANc=(nC|S0F+n%@W$<5uU2dgK zkLy1=ML+%Z;{34h7P9vaE4GZNf&Q|MF?Vv%a&Ce0pufPL_|cI+wdc(G0se_il-+RP zMFF_Mtu?!}tXIAwP1W=N}ytF}~Nn7ayL;|9pOSW8&JSolYb^-Zf=QOxlIP3Qq5@ z_1aeQ;{Bno``_&jiJKDccDwek$PoYRLQulMAhg7G1`yS(4bUWb2)gtxA~a<6M% zP~ooG&U0UV|8Dmxs`rTF`TX|WPw(}gH*1yCGP7L?%0GWayt_7Tujkv3m4-8m1J;b| z^KfD3`m5{356K?W=(S*XRe2E96Y6o`v&pYQ`;8*}^~hV2HmGxE*64HIH9zLhu)gSG zI#TMmdFM$B4(j{JsjZv%MCQtUZoXooM`h{Go|QLIc}dpd zzWqf+3N~Ba==`elt5->>ij%;;_wl|WdvrDhK=}p58`kKZo8JokfBMi<|AQ^J#=<;? zeoJ+lU#gn8=LeK8+sW-~ zo3ynI+6($8BBEc+QID?$|0w)ikdT~tu|L0m`0EGdcho+x5B<$Qzxng|=QsFY@BLei z>^BpIVO$%k>mDC!;&BefwavneRHfOkr1{4a@cHLOj?u8xn{8b;>7E@nWU$UQef#r6 zdKWECx?Vg)`O!0jsBSQ>VSe)4fp*-TU3huN$)6`+K7V*sAAMCRX+_C_=Cc#4lZ3&~ zDkr~RU-m7r{N$TD({npl&#c@lZC0ABs~xhZb%BNgMLV34VY7r(}rN z(4Vk=f(+~9NyDPjKE*=Gu&zEH*|a=P=W|cc>u4PODgV)ydHQ2Q%r3#Wg?S791^*uw zw%hw=`SYRRfBto2;NF>H-QA-HKt9OeH)t2gaz$O$UFB8sN>dx3^zHf~3f2wChj|Y5 zTUIV~J#oHKKIFf3?wT*xN74r5xtF(2zV!b4dTy?z)UJe7)2FB9`ai$%dfugDuJ3kv zgl<{AvsGj6TP>s5;g=q(<{tOt?{APH{`{-5uWr|}cN3&;f+!1@jLVg3}z%-Clq9oZUYDcsWe z&g|9v`vZuF19PXA9q;{k0oa4MY8W`I{%UnYLPzTi)F0+E#7pPq>SP@m=Y4+Rky8E6 z+uB0Bg!<&hihOm|+H;V)7O)_Y}A!wqHrbrjZh znCB2z4a7Ssy-p1*9^cDFbm0&mGngk3hxlb!|AfBlZLQ_3DCPGP=*#3?_y1)$z68b{ zj5B^2^bf}#YF_NnG!tal|3g3O$y+}6OC7$<=fg4;+w}N?m#-bS-c5MAz5B<=5ubjB zJJ;K!<`~TJ4S;jRMa*BNLh1 zwySb>dswcSdiIKz{>Y@IaJ|Y=47jznuvg&zM{{=VhZI zj?DjFw%hiZVi_OxN5Gp z_KLY_E&n(G`Cr|?K)c7@JM%tjZ>!$d$G-;Z)lNSE^|ww)D_m8w`=ZVL9)`lM>0Kl? z-2E;+JH_&BdTi@CZ)H=MH?~`fOvPT;+=uePAFvOD>y+6S$_FMl*w2Cc3|@QJ%~@xq z{{VQfj_}LiKZxhB|0&7JO&YgSPMhCu@u0;om&9y3$Zv;VhH-J(HO^K3#kewl`O7Ph zT4M{2Jlq$8^%&+6)C**Y-yO-I4{?=WAM#;83Hh*Jhw{^{-bEa~ekz?mp1}GJ>jKpO z`qM2FG`yZmfPMZr5Aua1<(&h+roA3^@L8h6kC2SQVW$r_Oi%d&{d}}dSVHSy_=%XW zZ|=K};8?=^`Jd*&zRg0yPCWUiOHb%Gh!;6RkIp^|vVCi`|ADXPp<}lK1}=&(-{kZH z_WzNotCt+Sw^$R#1H^fd`R5OeXUGSA@F(~I<`cvr=#P%>8-PCSe_?-GDQ=NC^@_sy zvP{{9ZbRx!JKB!|pZ`7z$gtml{Wpvs*iXX#Z(E6Qd7g{vSBU$tjzIlkzX;dMu)hYs zLtKabVn_E~V4Z<^&hNjDCLY6|H;vt`5cl|G40nPdD_C^tOI94D?~#{7JsCq~zOX$6Lnd z4i5Iu=${-gHPFk;FE=R@?n@`<)(-XRda2%f@;R%gs>?q67S4U}`R3*;c9QCAQaev| z+qyyKtn3b{Nppf8cWp^aOoa0I>&IW8j_M13g!K!?1@sGyBfai3-#J{pUI6+K=fKY} zuJ~oJxA^G>H`zizH~w+WZ|_pfp}dsoZ;C#gne)-yf9->d8;oDiJ8bd@h%5hHGWY@F82Ay|3C}s8KCsW_m*M(RV|-xwN=N5m z{MSvO5AA_{HSB}<^-U}W&z0;NUF1AG+xJutm6yJTjt5^~KJgmjzf^0`$hWuhZh&85 zJb_w_QQ{x<*h!rZa)f7A5RcfbwC#1%CZk_XV)d!+OWR&hyuoQ}FiHY!3yCWyfY&zs~b_);(9A zDm(pKPq=T%KfYmJ{ptQ3!~>}Rd(ooqLzk#;<1ZiV?ftQ1%9Lg3!%z60r$hPh{0`a& z&-?h>2jzjkKp*BAzkUAt{8Jg`0bED_Q$GLt!q12MG2?ov7tS2C?H+&rpUUTto71*y zsUFO{T(nF{$W+Vh`3P;V^1&C&_cwI3PZ)bz_qtH!m;NwMpx^oH0dXJ39rP>AOMbue z>q9@oxZ$_Y-%fu1V7qV2Y^7#>C^mfm%qqorty|Fimy#~BLty`!kZSb$#}}hwh##tEWY9nQRxit2aOnM^4D|{9UDK0> z$b`DsS%TkQ*cmFw4k-K0-(aVseui-X_X*&>1k?-mSJ7j7lwI5{R0wkHm)Pu()MbuO z5-#N3cE4x-K(xU{WOYKeyu!6v6;ZC59o<)tT&(!L&)!ew{QiLP4%cfiU!va{6nM8v z1W0Ljmls*GHw)qCL-ENDw^UA|^}cX<8>&jb1E z2mJu+66_!P>qJF28J(@>Z!hdWhAW*>Jdy2Q3UL{pe}Vn&!g){jY-y2#{Eqg;pbz!` zr}kl8J*3d2Q2XS^A{aMO@9Zaw^$0x#_Io6pK5Q8B`7_i9-ml>2UtGDVJZI_kp>V$x z;yB#L0R8*sJ`uNLmU2Ocd?*jvL*q2>x#geoq5L1WXJ+2eaLj`E$nRgU5Br#o#!G0$ zfFF6u6%!zS+AOrF>i#4463k~ElL#+)Q`sl{^8~IJo>hIlFm0o~AAddg+Xebg>L$j< z!rn#v`ie%$uH6@8E5h{w+J{K{| zA@i-IiNy2I-K2`AHNWl@H{WTHhEhmlXIr(ozTc&$Wi8`m)hJu8Jgai-kV#bdk`Hyp z?&VyaJ?B~`%KkE}SUB?Oka-D7LT1_{F29fa;{R*zv<+@b(h;JrIfo~NM}FRHxYkbY z-mCAwtc2tzNQm0sANbz(PK8~w--ni86N6X!)dbo7)Vbogbdgz2KZPw-Eh(1QM&C+;yvkfJ%t%Xnc=?%v?c13t z$MwPTAR9(B;RF{n3G&Y;XERTPIc}A5D)R7*JQWtVp;% zDOx?THGS)bp0WC?2ZVE;%Ma#`+8>!YXUFT>RXq!x$MxN_IP0i=@aK#bT^7SJcUSYd zz#*ghncO+;`rzKCY>U>}6H7dkRQ&bE2UecC5^#v~^s(Cc^`8yqcg|b$Xw=yKC9-DL z%jNQvjyHesJZ<%B(LE)h6rH}C!JeAxgL_YeJ)b~l8{!YV{y&VJ2fR#I*T!e=Nc0*+ zjowA?o#@ef@4fdfdW#5xAS8$&g6Kg+5ClOG5j}|ByNHr}YpuQaI%nN=KkuAh?wCCD zU(d7mKKqn8({gog7wrB<@W21?w++g4Xy3YDt~`0B1p_0ElB-=G`1;!c_zmpzO^c!6 zQ&-Oa=4yxEMwqcK3K8%Z3XY5ygf9>FFS+`(Yu&H4Q9{I&fq&w`y}P}pe&~_-8x6P+ zL-&foE&e`$Q8L!8RJdrt0(tRwAB2(*f5}29`KLuz3cyeBSSDASzJ1|gS}-#d#9xck zOD`)S6A{SO558PFWA`2?;%_5`g2ki5S60Klxecb=M>Sv>{0dk2R8H=z?aivCfh{s(75>)rT7Cr7_eOsEM3%fl^J$6oRre&{f= z5BzurFwJ~EF_jN|f#(18!LbSjvqDQfDEOZBS>5J1{N6<5@kvAs205RE%I7U&8sRPcMeL0+TKgm> zW+9k3pSP3`{t{9sh`$GptvEDt;?LSADKRU3?Mb41-X;cHj?1~>ZT4xOWbjBR_zZ4c zd)`()$%!cow>Zw(V=qjpeNqr}5^kMOa^(YM|8tz-2kC$*0v&fgDU}ay5uxB+xW%m~ zTC`64b$ehH0&~_k4^u0jG{k%Wox<6c>iga>5hAbmw8XpwAKXH4N#pYwL`pii4Fxm6 zEsjszQX4{k#_SW)6Z4*BqMl>u5DJz66W90jzAWRDF$|wf#5D5xWK=$xiFy6p$U;m% zpHF7xla(0!%|-0{_eEFzqsK5CF&li_U{>XmotO&Nr{a>@@Kbe>*F_FuzVfvvyYj(3 zZYbCjZgC9Hmsmeq`@Bm`d0%^SDxX}$yncLg6O-82o?OZ&4>9idp&oWh_Lpu?USiI| zty}MTlutflK80Ioc3^+J-xg_~{KVY$wI`qQDL~8!xW%mR-Y5pgoyg-{keE3>p90FK z5HUyL7LQW7f7tbn_9;wEDhP7@Dx`dh5YriN;cw{4;_w5xk=s+0m|nj26j45SE)WXh zuY=(}A$8X^o3&4IVrGK9YfmxdQ-YY+?|VxUGuGFh63VAk7(VzV({PM~j=T1hQa)vf z=?htSB)b`X8w_{k@hMBpAUHhZ*#ItOd_HC$RSr~dA2lpysaTr9y;CTNdj^OLjLcv6 zsGl+WpYp`Ketd8%4h0kY#<{$&J;tXZF|Xgg@W>ttzJyyhJ{6Tu*jL{<w_;e!%+k@l0yjkTtx?kOii2;Bc=WfcU2QfvgPvP=2VAVz5ANC~1 z|J<{O^65p)aJ+@TrA0>0(muV3DdTHTFXhvR7~E4~E6SZN5k-6Y5|a#k+;Omv^65uR zN?>Bbz27>f$fn!VpBU_y^XaF21`rb$ZgF`U|Ju*mXCOQh3SNg>x4s4_ADl&@;Ol(` z6LZ$*Gf4TsX%qPDhgRne(HF znFqJ9sRl|W?+cNU=jv!;qWSth%9mw)#t@SYf?~nFjz>2{ajrF%m|-xPk-=q*&&RZR z9H`#8R^7{$;%a6*F`3~O`}I!Teue#vY0m^=UOzV`60;9(-MX0IYmf1nL=0Zx!trVM zPU0W+_R)$;5 z`s&12UHyz{^T))LgIgS*7nS!U)LB!B*$wN|wfSRTmhqWJ3?4B73;eY#6--{d=f8$F zof!Z2HBI?^LJYPU+tX-3RoIb4_L)J9|G4vs@|j5to=su(r3?QS)IP9_gzx2|6^ zl@C4>3I!OXt+u=W}BG<1=6Rd_fHDf#F{6iIu+AJ`0Gc z?CaMT%4cC1K8uvkLgn)%F+1TFx4~6C4(!$KSxn6DzV>{ne7+*44Gc~kxVL)1NjP{$ zUSCUyi358tw?4k|`Iv2RDKU6F#kuiv!RAAL#%w#wh-rhj@V7KyrznoyFs!h?Ui#X+ z%$H?+mJ>4)Z{crY;R#Xrd_xQ#o7`Mou6$MygR>f$SX;mQR`-1+F`d8%_ffd4P(G_b z4Fz!|VTb}NR)2Cz`+zmhRbRhWDWBEExbdmIHx>*n1dDyk8e-1+d{!%;wZy!BKfjKc zAK=!F&sycPo|tBEi%YQt2`cFJY=B4L6%Ai|)+?Wl#Ne|7T#7bn47K$Mfq$cCKud7vjZQrY~E3~ z2S+#*#B)gJvsL+QBW4URcy2R)cyl=DMIIkG#DdR0VB*0&T(&8n?VyH&ulLzO%n_f@ zcIC5^m=4h3Byg`;k58i5*ZoAyh7@ov2KR8;>GLuBgk7M9f&-u{N#S0Z+&%u(%x+>b z!!0x^(7MuqxBZOS-uDpm2DImGxR>|*`*5-xd3=5*rW@=GbHY7b_Neyk1=V|QmHoz+ z2b$SOOa{2c_TaU5KV#anpO|+6NC@}-xL4y7-JV~F@$bj>``TlC4iJNhI5#f6%zQ)p z93*BwWV!Rh1Ip(RG4H~V#DIIxUhaOTeSRgTm1W?60*92(VPaa~gRp%2-RA1r2M)t9 zhW_p1u<|)djPq&zaL6$2^PBQHs(g+SgL4Vj_Wja#!7}oC|DBj>Fg`ejxExbH$3YDR z@fi(PH~(iDOvlJRe-Kl~=W|^7oFK;SH*%~--^e~VGNB;0%C+Z&@`1wxFt7JHO-wCc zdrm2zGsNVFTfhRl`u2sD9JxKPtA#AQb?rH$e9jT`dY?auY2<6qIpuRc44(_czy#&? zoL4>{L7&n04tz%7nX)Ylv?6XTyhmz2+yFnq2O zwxktg@aG<3H~B8I$!l zF-zbU=luR}ALi3pxMhWccwNHv>u;6y4>2wauYvd(ll7b!w~vZ?j=dlTw;;DJp8K+l z&&x1;UJ-*Eh4Xo-eEto?=Racn+w#B42X_VDzBlTA1&P6yyY>WvaAG0eOA`@>Pl%Y! zKA#BX6D6MGS7y zu3w3iPvS6qk`RNW^GU3Hl7`{)HZlHvZ&KxhN5D|9A+#Ab=fInjo>$WQsN}>Hfm?U% zPNsZPgyDl%-9y2Z5afJPC?A~d=K4S=N;iwc+Z4S zwNDyi@O6CGo_CZ_+Aw_55%ZDHC#~{HABIl`V*Kq%uY58JpOHBNQ5;h;5z`KCUB5Ca zpUlL-%BIoH@Ozwh^!Q{U2G@x5$*g>`6620LQJ-Vu6?J(%Gpq8+9)?d2Vjjb-+b*&z zpPa-Lgnq%DK#mG4I_ZAlGr>^sg3l+X^2rs3Pi|sxyKwEvrF`-b^ZN10OAKy_&L@xZ z$w$oV`<0&<+ygtGe98xpN}*sD7#mz#bbpaYk555j@J!PA6i_~eh?#DgOF71Tt9=R+ zvl(ukPa)-lqZbOc10USpzi;{@oODOt-is20{c_K#izuIB#8d$fTw>R~n^*f3CuStv zy7m-PJ|)8NDM`#TpHB(pQz{If(!}`p^QDwenJ|3H5_1HG&GoB{@+lXF&wIq+2soc| z%BMUr<6(?(E&Y%^Qw}}O6^Owz6X#Q2`BWsvZ5L6W*Ht10XRPz7sC@9~|G$p!Rfze@ z=TlkvR1L%DePVEb=-N|N`BV$Tr#dnI=V;ZGPmM5qY7(;>)`M$L4dsJZB>va<)Fx(! z&!?91sS}1zU1I#}y^iv!7lu!LVov(nQ&0Ic2*al#G5&FGpnMvI;nSFy4Zij?Qa(+> z@M%g69x>heYNC9ah2hhj82|ZvGv(7F44;<7_{XP(@@W-@PitZ>_{OJ|@@W%>4_-ln z=U{N_#;1+)!LyqGHJ{rPgI7MCPdnw)Aq=06%BO?!=@f=fXXVpL`E&`xrzW(c$TA02<)r)&Qi#q)yU#KeIo1$ey|mtj7iL8RcP zD!lg+*InGCuVzLF=D)$UA82NzVAfnMH`>pbYgVI(Sqi!MJZ18}7Zr8iM-y`aZr$7% z}7&trRb?P&)W3nR~s4~fBZY-Dhmqg+8|TlJ z&w?;~77}y8*PaE+XHghFUlMZ`Ze4p8DWAn*_~5gcP;iH@J&Tpk5@PxRgIB?Ss@fA? ztcbk5FC_+#&aOR6l+Q9^8d#rG)d%gfc<;rITF}0vQ z*qgcMI%L=FSxHPrxOM$np?p>mlLkC+nK|ypSncyIG5+?fQa-DRaqnNaQ-4hv?X!j$ zY_Mz3YUQ(*nBveDxD&XQ;m>v2XB{yM;c@IcE^C#~`Y?Pp5c4(EJD>H+XCpDGC?ya$ zc)S=K>X7zdgZ++}%b>b`ZB#y+i22Mim-CG%r+qdPgJ(hRc)CgXY$2uv_+TrVe>if7 z_W7O|e|xqlpRL4v3?7(uZfJ(_+UEyiYQgc{^=qs0*+xt~@WA%`SMOWcL?VyRkHnPl z`D{}@+llFJeI8X`3ol7V_SvD@vt9Y@B&Is}z@5O6Bh#~LpPz`q(RTgXseE=3QwBV6 zDVgZz1MRb$m}WkoUCL)q7(PD}lgH+E_;>F z{xE!gQ9k>X&jDhZKn7+N>a+fiZqGqt@Tls>`GE2{L=0YghdY517jJ&AeSRfon9t{s z@;OWlwg-KN{MY+}_Bld~|2*oj@;MrY&u_%|_lHN7&oN?Ne}4EoF`J>iZhVd@pW|Wp z{6P%v&79A1<#QqopOeJg_qFGQ@;McT&uLnkR`J5*P-=z=-{^A98NAX(H1!5Y(ehjm4Iq&l^&-E@6 zlNla^JAtYRO03k(U&Lgv41OlU&zR?5mxzHUIkbPSJYh&v-LK2U`1c!^eC;tlSBR+q zJ~)Pxo7^0teXbIN&*R+qTv0yPh{4xJ0ShF5m;-jP=;%KVUROTXl+O)fia;gY3Cvv) zBMP6J#M}mZ*Pa{7=N2(ADCG0x@%Mvudu|hh$5ZEXOZnU(rX~1bZ_;mlD~kR6U1A=? zmOpihR3lLxIFV^8K39Gynx5hC*HiLyR^>>Vot(j zcGqp5`+Q8BUlQYQvu0iqlLd0%PN3GDS}{sWUa zIS}L5jX14+-XP`~FbS+rG@p+d=QoLQ`^>T*pTDe`=)}0bXL&FEBF)4g#;vbO@Yzz$ z#1vW4e@t}U&zSLvMGTyX1n~I1`@jbSb-!X0<3E>(C64lmM@%7j41Kn2X&FoV#3yDSJnnqrDW3$yy#BdfLiTa{s07L<5izfC z&s)UccItc*DIfe+giz2On=1ZtdWG&+5@L4vd=e|4q{QI-!6kXuF_X(OwDHz-*_!%>Q@Do6x;CkDh z2nO5ZXH0w25;GNUaZix`=5W{?;eW(@PDc!W z4iP3PEooJI(i7vhQ#=-ECIc~UdoQ;8RUyq}6wJdvRu9umCcz|}v1y8*G5yL+%m8CMY0bbG2011Hwpugc1&Dls^p(WmpXT2Z{8?R{cO zz`n)p=c_88YQ*4keDwLP*`lSoJ=KZvulH)orv@?Z{eEY&#K(H zsYOg|XfvMo4&Re-g!ZXT44#=J0tS~_J|DB4)*;5fKlC$Z&etU-Eja`N_1+j7#Xg}P zG5$8!^<^2K`oy?7HvHEkxpkWx5EBhw8N}2I<1wXrVdfEIaUN7iIOf6r(x+6`Sd2HGNb?&*l-~3`-b+1ZfXChX z>aBeG5>pKr%-WmeL{jb3kC+W$;(YolpZ;O^3?OEtZ=CxppMk{8g0|qkcU!1wCfy$V z6hkOD(dRQz`3w%jX9zL={m)?KGc*jJVZ@~MwP&dE8BR<&JI(`=bSkU+^#L&xEd&1q zhAW>D#C#5q;rM)Z_aR)021)FHMiS#c7agH|MiEmEDzW_Ldvt4R zmm>RoOpO0p+!W=5&t5~pa^Qj071QGNR=nrmZ%iX*j%DDVz*OZkoftfRVfB?GF`#LY zeLf+^KhD#Y&kSN*zlz)}8pZp*W)kBcpBc($7BP5C#^vJQ8H?!ld`b+?AGf|{DWBQI zvw2+&o|0vx$;>NhR;gl1M|nVXNB@v z6^75Z%4e1GSxrm@J3djr&bWpce3i$wXSMQKOAH=&01Ff>yKbEx=XJ_wt@2q<%N{e-g2&+wEgO~3rZ9XqE1yluXA3cXAO*)K>em#$ zC*~wP4tHqTqI|Xza~~eX?eya}iUE$a|9J5OF?bwwK3kQ~wlI8tR6g63&vs()%mnw( z8;c}-Pq$|WF)MxT*{*zc67vl(xK9|JYtdru^Ajh}i)-ZoAm8d=3zk5ExuGteM|Tx91=+*Wq#Jb3pkVA|?U3 z1Olz6Oy8<~ekBI4OE{lH%I9zxK1Ybbt={<@Rz63G!Q&3Z1-?&Jd5><-Z^Zb|H;yWw zW5jd@54aO(eB{&w?ejY^X?^`VrhJYQQ{T2{NYcSyYo9-e*$0g4*Ky@@f|zpFr(NGh zd$rF=Vs`u5b3*x?BBqJ;8J%cRH|=wpm}kEBoKik#h^Y+>+zA~2=))!2=PWU}T_A(Y z8Rc_M_?#}Y7EVu)_V363BnAeKea;}fI_e(w>bN%oNF&1J6aVUECzb->)0W=N2(ZV224WiUw|W z?m9`2&uwBZ00SrcwA}Lf3?k(YF&W@KZttz`Y-+5TyMn>r3((9xVscoYVHy4{sG0l3 z;5x;uBr|4@(98qDtUEDcqh=loCgsG$as7;0?~jPt4F|7`kd-dZy}o*U9uspA4!FsH z!R3(}pC`n)@kw~PWG&4+745mwGixTz{7sA-pU#V0T+qxj;qz;eHedJ|)31Ms831jK z4S)5Dm-$im>p3w;;Bi>>wEW}im+^T)41TT)m(Q}Fny7tV5_1wBck}s$@_9wfIAG$y zU$!>o<7=OPiD?Ea-ECj5d_HC#{znYX4Y(7iz9H$Ce#W#JPetH+CgE{hqCQpziTME@ zcWn-YU=3Gepb|} zYq`Eh^ZA&*<8OJH&&RpG`x(>s=)_%PY!=4 zJBmDp@ra4z^NFi`;uG^3cwoOSemxqVLPhpTKny&)dXgg%#oYp48`K`ksuK4B!FH4&eK8{fudIa$>4kX6%85|LLq0 z#Psuxb8=sn@kvR{>(9ee5pxi--26$Yd{Prr0~ojycvj%oN4h=l5R(Af<9t#ppESg* z1P`1wer4mill$?UR$3%CJJ+oX??r-X-Qk@WB1X zvlt&7(muI}DFQyOJ?|=?+{BCr56r6a-QnTd2Ve0F1*`eSIk)o3OH5VpzCByJ3MNCHD_>@#WrNi(kLrf!IdrB*xvSIj? zQ$A&t&wF9`lqV*JuV3#ep9*34R8&3{luxBFd@2)j-`Ac>%BM;gK2?=Z73K4O7(UgA zDdTI;`^u+!7(O+WPj%%}GYp?v#Q2XpHI+~8FnsDLpW4c&ZWuoGi1DA-)m1+AiOCE5 z1Q^Eu=Y2a3h@HJ4#ZsWjZb^!(=iO6 zPRggF^64CgPZwfN`r6Z3`E(7#ryDW;dDvC?bPvO)hw|yJe0mat&kJz5d2V48@4f6r z%no?m9Z!2IpWeijM-y0{jcGeipGWl}<}y6)e0nRNzQptc2G66Co~SxT`}8BGmT$k& zSNZfO1}@Uk>oQL!&e^Vg1`tyKeDL`fF8!6yKw|Lu4lbqIl-aL+1`&hT3S7SiDxbl` z3~yj`kT%jQ>1* zl=2xvOiA#7xWJwN?oQV}V~Oz}-^VDQam2j-ymve?J0Qoc_i@T+LKr?1iSb|inxK3p z5z`d1XuF7ga)$2Lhs5~L=O-zj$zk|>qJ~NchEMlsI56;8f*MF#_eLf`yudllKGfVl*CI+u`;&SQN=V`Rh z9Af;(i`mL&E-~qiP2f!Z#>uqLXTY^TP0%Z`uP{u3z(%&*#J>w(Yrpc`6)& zaAy1WV_y(+(C72H@>xJk9bn*2Ak(BAu!%(WSx8JW-#9N&K8uKfg9Nqt*hhO4YM(EO z=>$IRn(!j!vzVCm;Db!PHh1A^apd-VMNBJ@-S{k4K1+y!ofln~czLU76yvj$m~Os) zEm1zph*=IkfCc(o3?epD7QA*VI1W5;M~0vr74_CI;TLO6%+3k@~PnM{ds= zVsL!i^{Ca#XDu;(zz3@bC7V1#`>Z1-t*wCm zME$!b-w{*U*Pe~aXHytHn~Cwy!%fO(3o#v_JrEbjc4S->*L%M=S-$pcQ9fIVfsK=v zhEIFFt;gpFVy*+>wy&+qXPfX@5Um27c0^w9KPsPX%4d5RK0Am>;Op0R<+GER8o0k{BFkHxExJpHsyA1`IyG zXz|IgceT%HlLhu}d`>B!GsLt74{Sw>L+jdUpR>edg>iQ6Iiq~e5mOaBaH+CA8f>zW z`}HR=Iek9ol+Sr$)_@0QO^g};vG%z@Of9f??K!V}E)oN8Mxj=WexqeK?eiBg{^zF` zmCq$&-2ORt_J2BSpUcF!=ME4VxTJip5K|5wgYF07yu$Z=MjoH5#Na%1{ko!jt`Tz- znCS4=c3*iIs>nXqiNW(ax8AS$dXAaH}2yl@ZOQ}DaEm;H=+ZS*EFW#Ms5n6)By zPn~s(7@YI2%{P5n#^*NsU{=+ndEihMxy^To`3L~#b6fe`6+U-cy;Vm0+#|++PI6cI z+$Y98r;dFo^#twnfEa(j?kk^%qCHXf>k%=yE?mDJDxb&1l!vjw@k!CENEGjdctT7J zpU-3E^Hj7a>hbxT7&wXN_B>TS&qR9`#=jB8w)_t<{_%OHe4Z227P4?{_lhyNy&mTm z#Q66u&y~+hVq$^^F2D7gb4mNWBF4WBzEnQ{5`)iSaf$W#OL$rwc^>{pjQ?EgU*&^C z_dnnNLkzz2->vsRG~83?>eqfyzl>(PhzP?cL=2uIIiCpS6O97BTPH z#}^OS@j&~;CdR+sV=13F#1sJ^+`fhfGezMOml*#whd9b79x<>3$_7<}y4EcW6nVd=e3Z`!Sfbfx%geSJXal5#t}9M9L>IF-O4zk0}W& zB_E)Dk`U7i8tjfKiG4nUpboBX6XWI~9#i~`ne%TGgYT8V<@Y)Dy6CKA#H@kG;SMct z`?8Era$?|3ezbgaFJ*J>lY*GbKscY|$|of;_#6e7%j;)F@w_P&G5+h2DV0xZ;dA_H z#kIOU?-1kPXQoy@X^5E%ZJ~AXY)^9Sla?5~&JTBJNuzwy5d%-QiTQK*(z4noJuz{7 zKIxQChA@0G5_7?3VS_R#pG?G*gU2B5|2hB3Ow2QQ9PZGPN%>?UCV_oC>i1sayURks z-M~1XEXpSvG46R&)W7wUof!W-%%*&DgyEBum<_)6o{j+?MALjayf*uUy3J z_W8W4d~y@x_H|MJUTq#?()!kWZsn7g7`IP|_;D+&mdMA-e8l+o33+`!W}lFs82>)O z&zNnw05RBioEwA2_ur9+qPz(_q9)9VlKnu&Zm&_ zDMCySU~pYb+dul2_9;qCHQyK(Q9i|par>5Y!`tlBKE;XgUvns?d`g7jQ<9irzV?(* zKBb7s2YteEo{;lq6xZ}h6XV}Ul~O)sh$#;qxa5!aYi-@Hvc&lNRYv)gBj)wTulI=g z0dn9DE#;I?d16|_qqyF?oZit(x2FOzzr*9sr@Zp1NK9p5aC{;*w#==4DiL$g=Tnh< zKnSeF8(PxRwh{^ZI3|-)iYNu=qFZoF4FuX-Wl4nd z!RNYeG0cZb!CxtGi(&A)#ob~Q{MKN%L(kx+Nko z&{tM5nqwYY=51Dzn@A{hOi@+>kkz+epKk4OW2MD0RhV%~Yo&~|%35~DPcq|@GUTdG zS|t%H32>(X%LJ~em48_oZ=xg3dW# z3@QptVxQhtnas)>tMq2&rBzDt$QQLwQfIL;z$#5yS!I>;oc_`(msr71aNu$-=vp|- zDkC^OT5LiBE7-ZIRR%M&#VSi!$rr~|hOO@C#-hQl#RW1P&q6ddMg?+xU z%9}i5N38OUng6UZl(X{K7uX9j)59vOSXpe9&aB+AN?lfZ!>g;f91psA7z_$n-%HkYG>B>ssca74W zl>@nq(wLQnd5qGOmHv2A21|Wb>J%_aLsoLz3o|=|ZhQ_}Wgs)R3!AE;ti&m5l_jqN_$Faqm=cOvPOx`$HBVq8RbUMwQz8Gqg-QUX$7OK<&i&C z(I{7#iBZ`otC=ZT#VFlbXX9wt9V;wv1*2iV5Wst zMzAv4D$hA0d{Xk(bk-^l*rz%?Yrth0 zSN&#{F|72jW0-qEH>2)ZWfU_L;F&Tm>$zXi>ltMrD}$_(o70w#qqX@-{NeMplknWfLo(H#W=`Rw_0zN?ukjTO|`KothdZ3oCJ( z8D%*uqph-sm1kC&!OFbmrm8h76hB z7SGqgCGJtQl4*&&p}5jN|ka9Zl99?rCkS^k(N_R>?v>EvvWb z)34{iwx-UF&sxi%YUb)irNruFYCNW(Qd%ixid7ErcCkw_SCta8bL6adl~PwJbChz) zD*buHLR}&|S5nFvrKIi}xvGg$<|^fkQu1|+>@!d)+msT~J#tkQrA)U-5u^_91$sfy0djjR&E%3Q1b!#)SCa)p&=R*A(*j$XE3?9;_6 zW0?8WD($#EC#+JHl{CGLPb*fMSfv^(Us|OBD>tpugp~q)j8BoE+b(8U#oM!`?Q7f2 zRqgvlR`8pRaY@9zIB1n@ye&rzFw6vI-mywzR;pTM5-VM-l7oG=SmjC3wfUq~3NaHL zXtIX0Pa3Oi<6ca$%63-%wTjpGj|Lf^LhSRsRbH?XG1xFMd7YNCN_R@PZ%W6+JpX{#jQ(TFzG_#EY`oK{)ORrRg1o|Vy7+0Rv< zTjdNhTdXpJnX6Vg&q}gkCjB@oHLbFWeO6dy1uNBuo2n9AHN+~{Sozi}H(0rEmAu^d ztREPkYrHO6S|u?vbFDIt(>H>01PbxoCPW4eM!>9y=2y0Yf=eTwKhZ~$5QqltF;zc1 z1+t8iW|U!01>O3pVwI=d!pT-S&dM)VNzH98IokLi2HY?|?5)b+nq6c$MGR!zu23sW#E5BJ~3o8Xa zG*!1)nQ4{SkQJf_|FcS5R(el1Rgbu8n^i`!@{d&x1YN(r{m4}9Vw8?h6+w4b zTV+32<@(q#ds$g+l|!twm};2q?EK0qo!PnPG{X$zsw|%vWiBfpTBT0FwdXgh)L6!%6Z1;7`LZ~ zRVs4TZ&oSARk`Pzs+r7evPu$GKKtA-V_3=Zg;55vGQuiHSy^J0q?~ouDhXJby}eB zr94-qUS^nHtSq)lTvmE~ZJ1@O6#B*}nOPaM!YGwl`PnLqg02^-zctJzR@PgkG0)ZL zs||C5eX>|3z*Rq6S2f>j zm=mmgX_aK`lYF0H&M?!+Dt%b_!Yb2P*=LpYtlYKA99CNGH_k&?NqWF2r&y_d&?u8w zdGM=IuCTKBuu+x;-3+gN#3+}T>3q~EOPCq{n^Bgt@|ji6an<2thWU(@biW(rIV)dS zWjQN<{b88N>>N5_lmpBZvPutDa-KBIR#wWLGRjU?rkyrQ3s#DsF-mk+u34o?(2d4| zvxaHKO7e3?sliGqt2APzrBzz6a?~ngSjluDK+6f9V<|5hr7tV#|1!#9RzA68lt47s z!f02FQh=2qSB+9UK#HU9?IU_R0FdFwIyQX_Y#x6nSWvPOQwe zN-kDDcx0G1tQ34~ln$)Sv`RNtjy^F=Deh^LXGW>T%s8v`W9GC~?y-{SA5)c&s}@=% z8Y?@V8zu!SnO_-YGW%2x1W8)VOgF2PU}Z+oFsr$$QphO9nCTJCDA`&0@lB(=$;y)G zM#;&__LxQ~!^$tQjPiHD&9R!Xjq;e4LUD|;k(K6F*~H2itCV5oUOZD(mFGtB_(qw> z%1Eo!V&!M6EMn!21g7c$D;2ErfU|Piw++qWeqFN4R8~T78J_~IbhOGf_Q{{vFvnQ= z&ML=Q$&Yp+!nvh%2%hS|}a4pp#F3F9%9Y6Syr zAi-0X)D8v`M);Lb-C$sWsA^r$IHzOhruB_dj+H+e8l^KUvBUavPVU(w=6m4mge^@zWl@Ee$RA;s}%tclnTIFw6(zY?oOIDg# zYY2L{&3At*yRg$ri zsEc84u+qpXN#Q)xWG%8vepaqq<-LGo+IBZS<5~I7DkFl9`MIZI{$eF#FQdF-rG-_Z zbKi6JHcU!ZhFB#HE8DD+ft83prYajN6|9n*m628{%E~sY++`(a-(aAd7}bTK;4(7k z`qi<&QT}CRkySFX&sD2rXC>PJQ~@__*pzzg`a#OrGOi;EzX&hNzR9r$xh)m_jU@8PboLf ztjtnMQ>U=cd6&*rmy~i&DI;7uw{V4XW}m^1;jAT2;i?=?;i|66C%0p`YL#PHIprAk z!B6PRk;l*YNCiJpND8+wgQ`lWl(kOb^wmz`^j%6>pp@oHX{nULN-3(8_momWDGl9- zaSJawhI@gZahBtQpLUnZP~}t5G3>L-DV)_=DRq@{T+OkEiaD&5+e*PtgvmBJ8UIR<1dP)7QF@XXc7xRy&5P zx+`V6Q`qO0^69CVGfrXW2&Ig0O5Qwn5T7gOXG+=Rs@Qp>Q;N8Ck<%&6OmPY`nU#{( zDO|PPDctvSPGKggQckEgKUVAXs8a9~U2?m4pnR68sxeBrr>aIdhI_GIwRxaY@bkj5 zJr|u1_x+4g@RMq?3O{cym2-;OsFY1g*`k!ZPT{RGlT)~-S(LKeDcp-aPT_5NhEten zt(3M(>8q5(YF)gqnCeO?pw`7yrQ~x8pH;r0_7d5Yb6r=(y*>+n>|Qj=ZnsV$FRH_4fD$v{^t&JRTX}hg`7Y5>0qf$P(7`od=@CBno>Sj3V!-t zX5nXwr7}*X-*G+V(dez5@%swMCvQHx+d8DyV1MV#>mr&`UO8vZ+T#=+`2~-hzM4H9c4t`COP`{A(w=OXsWzrTpWvIQ@!JVkreL$jDJ0;~36rM{S1o zuu@eit&~ztDGij;#3|h7B5DmLa_wOTzbQhtd4glOg^8WQRg;v0-xNVUZr}q?TskZG z4F)o6xbtCVo9hKD+nvHky+W>v+w;OHTou!;3+_dHr||ZU-z_ZLGubK3By$R9ZBxot zrEGM4=PLYG9GP`gRjpN3>y@%!Rh?1H499Ta&pU<3=eSe2g{zzoGb^0JObJzWO({2= z!s`paZG-yG$~CtxSix`UAttX28|Tuw7meIZa7f^kV_13WoLM=p6#Oal- zPbpoLQcEf3sx<89d22f5TF6=box=S(q?8CZf4B<2zeV<|q#BLvu06CL`vCf##wmQY zkQH`r;~3rsC%6$~Ws+04s+p_eUX*hTE5}p|&1)h4<1)SgDf=~3IVW)n@1Mswg|h}Z zg-8CVQ@IQg9 zu(IBQf0qXE^$Qpu9(k_f_T&OiX5m{Iq=K(LN~OH2>ZO#pN?E3q%u1=Oltn6ilT&z{ z8$RlTK@2vwEUDZDk|TNPziEXQ!aj=6QpeZQ!xPADar z^1(L(QWmH8aSE@&X-Zk|6i%Px6mH=VrJQmKXH9YnS6xxcGS%iwidmwVU=gj;01B&UP6nx_^rRT%T2kT(%?Q}|hw8k?OPeE%u3V8}1b33pC z{}V_!!tBR(1>Ebfoks=({oxU#;GQ4%ew#_bbX<0h3I<9C9fL~pF~Pt(Rd`quTR{Vj4JxTi9H+r-x&>&8w8pYQ@Y_ zEllnd&Z@7n@XZafr}#D(snk&lzO_O!xs-x$PmxRqrF2tDDb>?jj^Sf>KgHl1ZDm$I zSH)u(O(`jyLRa~!!~acoK6G}`ofVJ+`{60nTk!9cfIF9P&q26~vlcsNR!S&kwaa3r zm}0Uk15!%Q%I%l)qgTE03MRb7P}YHaUg&kY$|0RaM=LVr8CFxC+00om$Au zBByZQ4>*Ne_`qc`Gt2dhm8nW8pp|q)z3&a! z_0Ctr4CCJ)rglEu!mLUeqFOjbDSebOLn-}~f^VRaGhvWYrYi;Cge0p*sW!ubBob3m zDIdEk9_JNK;nCQms@l8t&dfZw*J5S9^4X%4*~)pBQrfDlxhiX+a^9|dX1gk$&#jg7 z7s>}Gn;hr(N*Sh<%qqQ|Qqn7>no{0TN->p{QYn>HRUXAubqtTj2a3TxrR;k~rKEB` zyx!4JRwYylo-0Wvxl+=Tl50@A*8N(;U05o^@jVobVg4sD<>(Jd%&(=O&evmn_pDHj9s>h7?Jh9$U2(jjd@ zswuJ>of`Dqt7>Vhh!I(}MArT`(|ee2`Nn?ruvNr}tlAy8f zu@*jmZL+B^8<0~TULR(+AxuGh=k zUR4uYMU2R5AhK38$k!ziXU(!z#E7hhB5TUu=g)gp$88lcBCC;+1342daTEV}j zJ^u98z|&_2iAueF&b^uXqew01dG51TSW{Cf&W0k{&~v#aH@!-VHAIR z+KSPr{n59#J?FW2f(Z*TVl>)`(TKhKkN95IU$%-Es?R>njD}8cuSUc3=?_)75F_Rx zULBCfuZlbmci1XoM4LN`HXrSpytG$!!&VU^vO0;Z1F@^FFV9&C@pKXvVnkMFkyZA2 zl^I@DSzASnSj%0g%FX%bHJWzV$yvQ@6)}|hH7K~2J>?=OxR#CLU&~#|8EKsJPjk;Z z;5n!I#Pos~(Ti@P7v*0}DehI(u~o!?Cw$8@D6QaMo!*^%{Bz#(*=~J^5u?#VjmB&q zjlXRbF&G|54^I)Wf1XkU6dVns_(!9s7>%#{=NsfX55uP#un;3gqn8+s^WVmv<5exO zRm4#JAy8VuJ)Mr6bjO*E=oVm^Llm}%Nf3_KbL zbOi;++f&wqg5%>UFF~2cihq3iQWnxUTgHd-b@8$);nPr9h!Nw{kE-1H;Tt*f9Pp~9 z*eYVE{x?t-!adU-e|mrN@y`~|C&i~Gofxs54&W-Z|2g`u9p;zH@&DS`Dq=*N2Z}a- zc_QBjUe$72MU2QAB(km^OgwQauZw%OiWreKSY*9;=i~#gDjhz7gM}E8HAH0LG1vSO zF4A>u6)_@fsK`26`oS}=>SJ3)jK~@$vhaM&{2~u#?YC9Lh^*lv3(v>As)#wJU&M&4 z4@4H8Kbv20!>nSqiWreKLS#+bv$?BRHP}`WBeF)SEc0tAn6=4P5hJojsVuMRsjVVL zWQ`VCcs^!+kr1;A;ETqv5F@h2h^%%Q6X)=%df6&sMAlf5m7{v}$>tZhFk^+SB1UA5 z6Imrr%vtAE-LzH2h^+A<3!j6SUk$^ote=^F5hJoDh^!nbYo_t48rv#jMAk%+g>(K` z&^-s4WUGh~S(8K-oA6@^UExl)!tSSBeJH8EPUSWRo$>v#E7gBI&w(#8OhA&jY zLX60oA+jD{Tv^7eT4Ae*5m_@u)|($TUNec;*9}`mjL4cLvZmdu7Q?H`^Mz?4F(T_z zl{J~O2G}ZMMAmGTmAyGDgfH^LLX60oE3)1`cw&`T)zDTEBeFgd zSvU_%@mbtAwu%^$HBV&Ww(M2ivsJ{1tobTy7H8#OX!=Er$ogDl;dL#qYLKlWMr3^< zvTz@ zVyM0byg;-N?&YH6#85j|bXRd`(jpGA6Adu$akB5N5}>8$Mdl0GcNh^()<3bQu0|7W0= zHO*ELBeIrLm0N@O?B){BmM6A~7?Jgj$VxQ##ZO*Ug{7v2#E6->f~s)jktq1$UTLpt zrmZ4Iv~VR=;T**(dM5#0cISFR)d_h<>dT{o3`>zm2`B zq{~efF(PZd$hx)T^A{_4ul13wB1U9w5Lx)l*Q>f^tB4U<8%0*^@ke$I=6+TA#+C)`u&QJYdb;Bi`m3W28B1U9w7Fj(vWWVH9&9YU*h`F(a zs{C`_t4gxcWDz4;_&rtm=e$=n$5s&|vbIuHE0`DfO#D@^yfJcczf!I;S;WAjfxskC za11=<87Q?_@$ct<;PznUgz8r_dd{7{HO|C{5!*&p?m7PUwcFx)RmW`=F`^egQq@Gr z!Ts3Szk8nP%CoM_YLi6_HYM;0DA)^6xdICI!YKY;Y$s==aePiTo_ES~F1E%v6C--D zL-b7uj-VoB1UBWEV7>L|L5K* z?pML}CW{!6wO3@d?p>t3SM{l_B1UBGqbj%FM?C-bU-Mh)IHFH&6)_@fzsTzQQ{gLK zRkaPKg~W*2`wLaM?ft-%OGUk^MYf6<(ZT~%<)0f~)jzh17*TbQtFR|{R%w1y692FE zM$St-u+#of&DrT5o)GtdhyO?(+f`-3kvqaDE?mjCVGMM*>k=PRk#o%dT~tjV!*CP)xD~kTTB%(V!i(^ zvT!?1$Guo$}E#Rf)ehS;UB}KSUNjt6j@k18fyBBI|_6y7OuOyI$2{ zTSbh>I!RS-JH^-9R&!RCt)_*-L#Mxk#$*Q;Z=yjoVD9l5hJp$h%CGc;Z;@MVX}x3 zSyxq7QO-JGtB4U<*Ho5QRdc7wB1U9gS6T0I)^E0o7?E{DWqDOie==Fbh^(6`s{&_T zvQ@;0tXnF}tLlbtQiFvUk#$>S;XG`}=Pi$I6)_^~j>y7!=vB4eZL)|FS$9PiZp)WA z>yWJ?Mr7R+S$G}5tBQ_q^n-;Mk#%2W;XJ&=V_3#k5hJo5h^&oy6Rz>92HGlOMAk!< z^=3486@8VhB1U9A5?RlieEFVNb;ec^BeEWgEWC>TjQbViXEPeah^!|f3$G}8Ri$ke zF=9Xel&U7e_~NsP%Pqh9U?{Jz{ViC)b5zEwxBs;#Xe2AdO@2TCjWSEv6&KK>(-=ktg4Ax4b+bFM;n9QlGg z@(K5uHWMS-{6e%j)1S>ZdsPi>6)_^~B~`ic!K3*q&YEwlh!I(@MAo6y(TaLir)(85 zVlDqmRsN&7SCwSH=@&7gh5u2Ne+<2HC4ojtk@z8`{h;r`Y0R=JJm#=aA#iWrfFzlHA2!xFE$9rdbO zoHA9!h^z!63$Fxj<*Y}iO%*XBE1}4`K6`CNud3o%Q$>u(N<>v|AB9%}hx7WHbIw!| zBeLESS+T$WWrbH2^Sr4dM(m>!Q79h3jiEk70tVrivJmm0V<%KRURP zSJnBNsUk*`y0A=2bnqW2%S|BbHiZ;WfQ?dBjTGGgZWhtan5fzUJap zeRtnf5hJqFh%B55%X!3dKQvXuh^(|C3ul5?HU5#QB1UAT6Ir;Yjl+ASvyV*`F(NCy z$l6yqYXh%p;8RmYjL6DBRc_10*R9U;7$$sXs)!L;8AaBzKc4>KRki%bR1qU)T_&n> zTW;Z2FA929E1#PxVnhowQW zfi?e{S8qKfF>Dz)DxNYp7(wscGm3xCXQeDRh8N#&*wf3pfL}NV3o&90vr&~hlli?& zw#QyoxoD<}7^+|VMnqsC+|%jV$;XY)r)kf9=J`aAZhVLlqnd-Nl7SrL{H!4D$K%HRK2Q-u}u{*A}bg73$yV2uq&^@@8Xy$ zVnkMMk%i}nUR9lVrivJml}BZD=d3&NO%*XBE3eA(swO2gRm6y_d@8FkXJvfLR1qVx z@~bSbDwxDn5hJn+sH~=(bq>EW5Ef!YRza2JReg_NrvwWzBCC+fs?S-UrZ82+h^)dY z%c~lSU+)A9F(Rvo%4*12E#EO!#E7h-D$A=XpVm|nBeIIAtet!wl{LMoB1U8t7g_jz zKd>iC)xgyRNoZwFkep6Bc5`h`lGWaP3s$Ufg@vR1qVx z%8M*~7U@;}p4(IrBeE)}tSX$fIj^ZAMr2h~SzguW`ArouBCC?hD$QA=3YscnL{?>$ zu(dS7HUZSdKK*a47eSy0kc5hJpy zi7dQ6=2ayuZK{Y7S=B`rzP@vV_Y$Mam?~mKRt=Gb=WJfpnzE*f7?D*|WZ}8!HO@L$ z&QuX2vTBK}^Up7}^r{l!SIEOcjL51jvhZAVZ3IZPRIFgCh!I(JL>9hN*Q*+ZUtkXl zF(Rw3%DTe++FHp}5hJqdiL6Nnhqv~s9^zMf!a|J5s;{zEbHB3U7Yx8cjL2%Bvb?JH z@0%)OL{>wQg=aF|IcpJq{UK_W?XXqEh^*$SUp={B zCGg80U?E0iwGdf&Ht1EYvsJ{1td=4R_Zw$8D@$#YMU2R5C9)bl`e?3K^`)&MMr5@X zSvWT$I4e~hlSPckY9q29TT9cr5n1g-R@z15Hh5JFY!xvg zt36e@=R`e9Coc7z=f*F#iWrgAL1d+h5&Y7tdS$DK5oZ@2sS2N0;&{yryqe%u<*sYS zkQmXzPE?f#D)2jq_LfdO(W`1_tB4U*ovEq}RNynNMsGx``Mxyn6n@~V>7GyNh)WOd^zoz>7*5hJp?a}{RctK?qRTw6tq$m+pWI_tEp zB1UBO8u5|iWrgAhpTkf1zSao$m+{gnDxa6 z-*xiFFnt5lFJeSiKd#bQZEY1XBC9`F>8vHTiWreKfU0oj;(|x>XS`KjwN=E3tbrn{ zaMADo^r})eH2oq*WDQbTn|N8b(!a&z7hCwkbI|t6(ED8pMdK;UcT+)QQc#s?N5G7_n#jfU4Y{ZO-LcJ-w>= zwu%_h!Vy%J7S=GlFc8pBmOYrm}`Mr4iUDz~M0S#g?}ei0+G#&MO- zs$r{$5n1E8N@q>CRm6y_30$SKj@c?=MAk&E(pgEHntl-@vL;cL+XLYF#uT2tjcgS$ zBI`quRd#Is!d}%!wu%^$HJPg1mV)O1nK^5_ts+KbeI&A4jvt%at9oIph!I=L6sq!X zDPC2fW@a>q5iR_fs?x%+yDi15>SwEn5mi&E%55qAzk0OCtJ-X8x07Obdw-S&O+!XEm@@#E7h~xJqX&wpGN4tR+`dVb+^JTAUt*s(PWGxq2cnvlw zXWg(>#E7hKL>9hp(5p(-&h(2Ik+ni)od|+NOAT8^jL2Fkv*3EKS2fF45hJozi7b4_ z%j1yCI%BJd5n11gEWB3fRn@_-IfR86k+oW6;oLaNS^I1iF(PY?$ijE>cvU4jm@HyM z)>@H;>nmk6kZ4(LtB4U<>qHj5yT+@k*U@AVBeK?0mD^+E=Tjc=`g&%oh!I&EMAqYt zgPSg`dIns@mZXAizS5sM^F; z_&B`_h1b`4TSbiM*JjZ#{JhmNuIkpsWDz5>wumg8hhwfKBgF(T^+k+tjLU$4BX!?ubTvA(uZm4AJCRkgaCEMi0p zf21n^`tquNw^hW5s_k5b>kHqPGK$BrQ4fz#) z?+<79G+D%mte->{zAweAO4G|!5hKQM7gbG!KH-rl>!38J2XfX@TSW|ZJCLroc@@u7 zJ_n^1JYp38t9ZM~+06ue53uK)vX5yGF`^fHL@)3?z+Tl%TSW}DCr;mpK&vRze_pRRromWMRW6>Eux>PB1W`%pJ+3_;^S3)ZL5e8S^KHVjSs#{=VAyX zTB`RqS;UB}Uqse}FZxyUs(!Im#E7+gfU4YJB5iR^(^~Fs)!L;f6A=oW0QJSp|Pfl7?E{eWZ{`Z zUd~!?tB4U<7ep4WFR!ZcIFm(;$hs)9@V&B`IO|_qMU2S$OJv2qo4%V@_2GDvMU2S0 zB(l1sC^at&XC;|ns)!L;mqk|othYm6)lasH7?E{_s@(n%KkKoavwBQ4S;UB}t0HSd z?14+Ys#~^-7_r~DMpbSDyuDLWte8Fh!I&2RF+qD+*T1IvK~^Eo8kCLfxetIe!9sb zMr1t_SzQ*S$m&%M{lrueBWA*5s&X?NkN93y&l#qQ7}3HfROO%HUR8&grivI*^^~h{ zR^j?O90ZA$=Ce!{F`{38QzT;H=hW}>7^eEvWDz5>{t;RD zJ~Xc?#%xnXjL3SfvZ`~|BU?p`$a!rxTF)YB(FMgS8s)!L;uSC|J z>z%85RWEH7F(T_!Z#Rrp9sTe3i&u|nyn&6 zWCf|p&5iS8|9jz89kf;d$KF}M*Hx@tKa}F`4h2Ffo+?F?RG>nI8bwdj5q?Ag$ujxBa} zr<}gBsGxUd`u}rso|G#Ebmio8I^`VXuf%({PUa=Q>5lN-29zF#An?x~=UQ$+Lor+! zRIaG>8*HO)-b!Kjx6XM+L4#}W$dwblyI#8F{7yM5%m1~I^-9$RopRQuE4?o4l%wBd zNV<21`}Xpie$!&rZ`S@*{*U`x^dfVIhRR|QP};inZ-c96kK4r8=T{sB4W)EZ%O4>$ zZ}t7$K>g_`Xvk|Z^3rxX+LwEmi!FxGkk{hmHE!bc-vX8IC}_xQ3G&jmbFuf@+fmSv z*OKI=YkGk?z){eU*HWNRa*`W=EOWt~4|uP$90d(|Elpnf&Pbphbrdwzhc5#v>cjJw zzG9s~{p2WUD2B^|iud7x+UOF?d1#1Q&Qp>soMybFzq=XhC}=2M%Tv0ReQ3qY0(F3+ zpdqgnJf&WfN>)B%aqo4Jqo5(L6+NZ(aPRL2bq~~oj)I1~R-$z2`uuyoygqUiG~~51 zdFlFmpq7|pc?b=a*D9bUNbFRx&G8!-4DjRN=8l3!e$B}_K(6RqAY6G$uITK`uEhJO zRegMvoVn^9v5>o5YVm=FQn8w+kYjR!Q;1KcqoAQ2TOCx?OYDE{us;X+9GmMXXvk{~ z@_P7(u44oBuA`tKuQka_Tke_OtMg@+E@;SWE%MSHDNx-U1r2$vo$y-G*SevOf`+`- zAunCs4OF$Gpdqhy6JGtim%I?Eg_r{kd99c53eE#wfXvk{=^3w7e?#pY6qo5(L4arN-APv+}j)I1~auZ(Xd#^c;f`+^{A}`%J z9H<8z1r2$1O?d6%z20>cG~~50dFcoesHLv3JcNe4x+T2M^ z(2&=rprShteJZqtuZKrF3L5g-jJzIx?fE`|y4z9EQ17=nsA#m(casD4ouip&@EZPiafimHz=gU3)tU8cNqzl&*~~C|o;GS33$C^2#GGZC{7`_Vv4? zpdqjBk&RK||@?HIbN=) zE?jw9uIOD(xU%fEopQR+l@W5~U4JD$E7;D*S$@u0;=mW55AG)mrGL;+O1Jlv&I+zA z{qm(-q}>pdNG-G?W{=cq+>IK&^h0#Sj|u8s^ibUfT0NP$};U>L^K* z_KQ2-@zwZJ-$Sl(i+Mq#$<8@Mu4wHGSH6@hBmI?l?>7n|M|a|jAM@LqA>{G@wUD8q zRE(xn9JlNWdj{$rM?s^}$=T>udv0#=iMx+MI9j7*StsY6-aGCU!Z}_j{ey;beyoqP zQZM&9?~6eFc@;i;*SCQ> z$5GIb*IuABC-hIhCbO6yQ&ya7UeJ)&-sClI?J0W)s?br;kk>xsrR!{+yjPW@pdqgm zdFkCmpl)*%G~_jby!7ePZ@w+(+-d28hP;Z%Yqc}-rvz#{M?phg6BAw^d9ON0K|@}} z>Q}o?y}r~hP+D2OJ|HZzPxsI z6g1>DiM({i7^pKG1r2#kCNI5%KGdh{ZAU>vUS;HkJ!YO-@oq~OG~_jfymU+{@qO<= zM?phgQ_1U{XII-kP{%t88uBVncn$GhFFOhv@~R-Oxo`hc8>p`LSh}DgugZki1n*Vn zC}_y5io7&kfx696(2&=(gx4vu;%Ltgumm!>OFL+-V7K|@~E39oV9>r6*MLtZrr zuRwj~C}_y5HsQ60_v(9}#Sj|us!MnU>S#wnLtfL#OY3}Je^>j4qo5(L8RS)X?S*3k z)$e|bAvEMQGvT$OZz-2M3L5g7MP9nP5~wE~1r2%aM_$@*Y~t@Uzi|{aB>N$ zws^qO1r2!}Kwg@MNBVS4aTGM<^)K?$XX1f6-city*Ma1v{l?1P>jpz`8?1&RlX;DXtM{;h zDsmJw6vHDy>5NF{qIwS-sG}VP4N*sditeN~I(^b5fx6vM&=57-r%S9bs|?ipj)I1A z<7iJsv&ulN{;=gCG?W|1fSMpas#xoXuIu*kr98}0(8#YjIS0uVEv0bfX1Stw9Cjr> z=RX!9M{`I$-!FvxxeFN@O2u)M3jK~opw@cCQUML+*zx40?c!g)T?};;G~{&xdFeCy zK<(=&XvphCP533)u7(zo{{~@m~KULHO>T*XxL$&TSP*EGyx0M6+ zmZPAd7@iKQi{!el3+mg-fm-Epiy<^bodGIO2>Fkkj}AHDlt7Jk6f{Jg2`YYP7pP+# z1r6oKS)Pj8V4$9L6g1>@wx=Y5Xzzhq`3XxGG~{)Tr_@W&5D3)nj)I1~&h=E%>s&`c zLtf{3D(UsUqo5(L^F5XH>iVRm3mWpez*9-Dsg8n%yekSp3}+Ld^p zc?qRL`^*q>-qRK`G?a=tl!{|-no|*|nT~>nQgJD$qa+^MnwEaJ?%w5mD(-OdFxE8A9nFG?a?VDHYpXUT}Ay-f|Q);MafF z)|!&;S0Eg%3DHO$!kH|T{y{_a=Son~NPSKIOWy_R7Dqut)Kxyt8mg}U1nN&mK|?9M z+EY<45vY;RSqz~euWLX>xvHm0tnF*~#g2l8ysjlLJ@q$G?>Gt?svFmViu&hI(`T0l zYR%^@hR{$9ucsL5*C7Kn-cisHbpxm_l7Ctc5B_u94S_nxQP2=|qfeJW$oW9M?kH#| zH*WHj=Dh9`4%9|3Sh}DgubVxU^r~_cG~{)Qr;=WGI0_o_`Y))cAJdu4F}{>Lzi2Up zhP-YiFWuP~r~*epLteLmifWXey0E(U+TT&okk{?xwa7vbULL6X9R&^5s5?N#YgC{X zf63AX4aIOS#ZYThpmuc>G(_DAs*4ns)~If4o!=!;7dQ$UqVDqPib^?9pE(K|%8k1{ z6_s+J@?W-eK|@~mcq-|2s-vJGuX{a}^!nUU(2&=CprRV3_osLHQqF(HVh9a+-A`Ua zR-XD#ppJDEH01R_!fUSgdeu?Tkk^9=uRv}5s>Ki*@_LB83Ohf3#x4GyvCdJ@kk`ZH zrC)Ln)Eq}aLtc-Nm%h!kyuV9&(NWNl*Q4a6Yt(^S^fgNtH01Rdd1(*uoX^9p9R&?} zJ)ZCi)FekiLtamim+tqw!RO&=j)I1~o=kWJ>JdjlLtalMyl(Pdzc>mS@_IVq6{yW$ zw>*S~yq+O1&BMoh9!_u+H01RxdFgJbKppBRXvph1^1>N_K3#Jh1r2#UPhMI#-tg38 zj)I1~ULY?`*C{?-UpfjJ@_LcH^h};Wt^bDQAvEOm5_xI5-tk^z9R&?}y-Z%Z7c@{O zI0_o_dWF2SeZAzp9(5EnjY}CH!WSzkk@PErO$J(@i{-xQP7ar>*S@+ za|3mSqo5(LH^@uhbi2xXE&Z0o5E}A&le~0yXrTV)|Kf>rqERLtgKam+ou~ROfdrhR~4LdkL@4yjQ-XpdqjK z6JCLu?I>u->jO~HjOgMGMlIUi_w&y?3L5hIkh~6=e(U3bTJc>=7c?{@`Uq4sBRXNk ztS17stD~Ty7=8>&NAu|JCQzq13L2t50Ttcdl-_pog@Jm*QP2?esZW>AQU<=f=P`j= z=RHdoG?W{kc}iy~y4oD5az{Z!UY~=C=lm!BZuAaEK|@|&keB9spnh`{G?epSf{N#S zptgSB(gh90@GDU9oDbAYM?pi>*P!A#AEbw*LR@eIlr>6^JhB>8uI#{yfo(n^_HWcp`8B#R6OScweE+OE@&u*KZ1(qe4r*e z3L2t*0u|5sKwa%9Xo&jRrz^_&Kz-{dXec*+@l=%afhzpS(gh89{p!=DUb-*$a6dYn zo@YcqT<(=0(Fa{pwU2cUX?5QFJy2f{J)@iORf}% zwv&1(lyk(Vw)b*je`U+hWJQRm*W}80qK^LDR%t>wy}#&`Gm|u5$rW8^?d(IoUhqvPyvY{Qb+ud>Pt;o9cFH+} zs1xPN^>pPQx$-Gp+5bBWIi%}nx$+}vs=x1)lPgz(<}10PU3ZQ*V z0=4^JMnOYfi+C#OwdLPNK|@}PdP==?7hLe_{Et!4kk?|KN_xHKC}_xQaZe@l@H*GS zK|@|kfQs6e&T>2Zk@2vFG$h$at{U=MlDu^O6R3|I1r2#EMPB;+;x#`O4D4iH(2&>C zrqERLtZPAm!2ROsQ#TThR~4LO5~*{cm3eY>n=w@ zLtZPB*J?LDu|%LYTg1Gep}uz&P)A8^Q^mj&hyFCn_W)-&3L34DIUmavoy~LOwz${ey;5u^Od9Ptyw2^NxZB{5p#*oHIfGE9t&E!qN7n z_cD6MT?l8YQ2GZA<@_3+(%-d|=lU9TyQ83?IIl@@)^9Wis>|Z$1r2$vmGHXDdmZ5@ zXvk~rgjb-xa1=D;wGMgdDMkgp_KsM>Vh9a+txH~du4ACicN8?_wH|rtddr61>uX0r zLtb6TOHXGCRKF!HhR~4L`sAf2@I2yc?|&Qx4S8)qURzg;S|d>3I0_o_+K{|-AM8!O zyap|0F@%P^a>+~gNC)aZM?phg8?XdcN8?_)s4LL{KG(vSjJ)q4S8)sUfN@? zIg24QL~Z3M?W1&``6E7Er#lK7N>?7GOP@{#>QhHSLtfpFg^|eOEFsXvk}ugx9X#>qAFDLtfh^yaIL7%H{

~^a;Z@QwA)lE6AO6- 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